package ruang import ( "api-service/internal/config" "api-service/internal/database" "api-service/pkg/logger" "context" "github.com/gin-gonic/gin" "github.com/go-playground/validator/v10" "net/http" "sync" "time" ) type MruangHandler struct { simrs *SimrsDB validator *validator.Validate logger logger.Logger cfg *config.Config once sync.Once interval time.Duration } type MruangHandlerConfig struct { Config *config.Config Logger logger.Logger Validator *validator.Validate } type SimrsDB struct { db database.Service } func (h *MruangHandler) NewMruangHandler(c *gin.Context) { ctx, cancel := context.WithTimeout(c.Request.Context(), 120*time.Second) defer cancel() ruangans, err := h.simrs.GetMRuangan(ctx) if err != nil { c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) return } c.JSON(http.StatusOK, ruangans) }