package dokter import ( "log" "net/http" baseResponse "antrian-operasi/internal/shared" "github.com/gin-gonic/gin" ) type DokterHandler struct { repo IDokterRepository } func NewDokterHandler(repo IDokterRepository) DokterHandler { return DokterHandler{repo} } // GetListDokter godoc // @Summary Get List Dokter // @Tags dokter // @Success 200 {shared.BaseResponse} []DokterResponse // @Failure 500 {object} shared.BaseErrorResponse // @Router /dokter/ [get] func (h DokterHandler) ListDokter(c *gin.Context) { var list ListDokterModel list, err := h.repo.SearchableListDokter(c) if err != nil { errorResponse := baseResponse.BaseErrorResponse{ Success: false, Code: 500, Message: err.Error(), } c.JSON(http.StatusInternalServerError, errorResponse) } response := baseResponse.ToBaseResponse( list.ToResponseList(), true, 200, "success get doctor's list") c.JSON(http.StatusOK, response) } // Test repository GetDokterById, soon to be deleted func (h DokterHandler) GetDokterById(c *gin.Context) { var result DokterModel idDokter := c.Param("id") result, err := h.repo.GetDokterById(c, idDokter) if err != nil { log.Printf("something went wrong : %s", err) c.JSON(http.StatusInternalServerError, err) return } response := baseResponse.ToBaseResponse( result.ToResponse(), true, 200, "success get doctor's list") c.JSON(http.StatusOK, response) }