forked from ebhomengo/niki
66 lines
1.6 KiB
Go
66 lines
1.6 KiB
Go
package analytic
|
|
|
|
import (
|
|
"net/http"
|
|
|
|
svc "git.gocasts.ir/ebhomengo/niki/patientapp/service/analytic"
|
|
richerror "git.gocasts.ir/ebhomengo/niki/pkg/rich_error"
|
|
"github.com/labstack/echo/v4"
|
|
)
|
|
|
|
type Handler struct {
|
|
service svc.Service
|
|
}
|
|
|
|
func NewHandler(service svc.Service) *Handler {
|
|
return &Handler{
|
|
service: service,
|
|
}
|
|
}
|
|
|
|
func (h *Handler) Health(e echo.Context) error {
|
|
return e.JSON(http.StatusOK, map[string]interface{}{"status": "ok"})
|
|
}
|
|
|
|
func (h *Handler) PatientsAnalytic(e echo.Context) error {
|
|
var req svc.ListPatientAnalyticRequest
|
|
|
|
richErr := richerror.New(richerror.Op("fetchingPatientList.PatientsAnalytic"))
|
|
|
|
if err := e.Bind(&req); err != nil {
|
|
richErr = richErr.WithErr(err)
|
|
richErr = richErr.WithKind(1)
|
|
return echo.NewHTTPError(http.StatusBadRequest, richErr)
|
|
}
|
|
|
|
response, err := h.service.List(e.Request().Context(), req)
|
|
if err != nil {
|
|
richErr = richErr.WithErr(err)
|
|
richErr = richErr.WithKind(4)
|
|
return echo.NewHTTPError(http.StatusBadRequest, richErr)
|
|
}
|
|
|
|
return e.JSON(http.StatusOK, response)
|
|
}
|
|
|
|
func (h *Handler) PatientsMapSummary(e echo.Context) error {
|
|
richErr := richerror.New(richerror.Op("fetchingPatientMapSummary.PatientsMapSummary"))
|
|
|
|
var req svc.GetPatientMapSummaryRequest
|
|
|
|
if err := e.Bind(&req); err != nil {
|
|
richErr = richErr.WithErr(err)
|
|
richErr = richErr.WithKind(1)
|
|
return echo.NewHTTPError(http.StatusBadRequest, richErr)
|
|
}
|
|
|
|
resp, svcErr := h.service.GetMapSummary(e.Request().Context(), req)
|
|
if svcErr != nil {
|
|
richErr = richErr.WithErr(svcErr)
|
|
richErr = richErr.WithKind(4)
|
|
return echo.NewHTTPError(http.StatusBadRequest, richErr)
|
|
}
|
|
|
|
return e.JSON(http.StatusOK, resp)
|
|
}
|