package spesialis import ( "net/http" baseResponse "antrian-operasi/internal/shared" "github.com/gin-gonic/gin" ) type SpesialisHandler struct { repo ISpesialisRepository } func NewSpesialisHandler(repo ISpesialisRepository) SpesialisHandler { return SpesialisHandler{repo} } // ListSpesialis godoc // @Summary Get List Spesialis // @Tags Reference // @Param search query string false "Search keyword" // @Success 200 {object} []SpesialisModel // @Failure 500 {object} shared.BaseErrorResponse // @Router /reference/spesialis/ [get] func (h SpesialisHandler) ListSpesialis(c *gin.Context) { search := c.Query("search") list, err := h.repo.SearchableListSpesialis(c, search) if err != nil { errorResponse := baseResponse.BaseErrorResponse{ Success: false, Code: 500, Message: err.Error(), } c.JSON(http.StatusInternalServerError, errorResponse) return } response := baseResponse.ToBaseResponse(list, true, 200, "success get list spesialis") c.JSON(http.StatusOK, response) } // ListSubSpesialis godoc // @Summary Get List Sub Spesialis // @Tags Reference // @Param search query string false "Search keyword" // @Param id_spesialis query int false "Filter by Id Spesialis" // @Success 200 {object} []SubSpesialisModel // @Failure 500 {object} shared.BaseErrorResponse // @Router /reference/sub-spesialis/ [get] func (h SpesialisHandler) ListSubSpesialis(c *gin.Context) { search := c.Query("search") idSpesialis := c.Query("id_spesialis") list, err := h.repo.SearchableListSubSpesialis(c, search, idSpesialis) if err != nil { errorResponse := baseResponse.BaseErrorResponse{ Success: false, Code: 500, Message: err.Error(), } c.JSON(http.StatusInternalServerError, errorResponse) return } response := baseResponse.ToBaseResponse(list, true, 200, "success get list spesialis") c.JSON(http.StatusOK, response) }