74 lines
2.6 KiB
Go
74 lines
2.6 KiB
Go
package handler
|
|
|
|
import (
|
|
"apskel-pos-be/internal/appcontext"
|
|
"apskel-pos-be/internal/contract"
|
|
"apskel-pos-be/internal/service"
|
|
"apskel-pos-be/internal/transformer"
|
|
"apskel-pos-be/internal/util"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
"github.com/google/uuid"
|
|
)
|
|
|
|
type HPPHandler struct {
|
|
hppService service.HPPService
|
|
transformer transformer.Transformer
|
|
}
|
|
|
|
func NewHPPHandler(hppService service.HPPService, t transformer.Transformer) *HPPHandler {
|
|
return &HPPHandler{
|
|
hppService: hppService,
|
|
transformer: t,
|
|
}
|
|
}
|
|
|
|
func (h *HPPHandler) GetStandardHPP(c *gin.Context) {
|
|
ctx := c.Request.Context()
|
|
contextInfo := appcontext.FromGinContext(ctx)
|
|
|
|
var req contract.StandardHPPRequest
|
|
if err := c.ShouldBindQuery(&req); err != nil {
|
|
util.HandleResponse(c.Writer, c.Request, contract.BuildErrorResponse([]*contract.ResponseError{contract.NewResponseError("invalid_request", "HPPHandler::GetStandardHPP", err.Error())}), "HPPHandler::GetStandardHPP")
|
|
return
|
|
}
|
|
|
|
req.OrganizationID = contextInfo.OrganizationID
|
|
modelReq := transformer.StandardHPPContractToModel(&req)
|
|
|
|
response, err := h.hppService.GetStandardHPP(ctx, modelReq)
|
|
if err != nil {
|
|
util.HandleResponse(c.Writer, c.Request, contract.BuildErrorResponse([]*contract.ResponseError{contract.NewResponseError("internal_error", "HPPHandler::GetStandardHPP", err.Error())}), "HPPHandler::GetStandardHPP")
|
|
return
|
|
}
|
|
|
|
contractResp := transformer.StandardHPPModelToContract(response)
|
|
util.HandleResponse(c.Writer, c.Request, contract.BuildSuccessResponse(contractResp), "HPPHandler::GetStandardHPP")
|
|
}
|
|
|
|
func (h *HPPHandler) GetRealHPP(c *gin.Context) {
|
|
ctx := c.Request.Context()
|
|
contextInfo := appcontext.FromGinContext(ctx)
|
|
|
|
var req contract.RealHPPRequest
|
|
if err := c.ShouldBindQuery(&req); err != nil {
|
|
util.HandleResponse(c.Writer, c.Request, contract.BuildErrorResponse([]*contract.ResponseError{contract.NewResponseError("invalid_request", "HPPHandler::GetRealHPP", err.Error())}), "HPPHandler::GetRealHPP")
|
|
return
|
|
}
|
|
|
|
req.OrganizationID = contextInfo.OrganizationID
|
|
if contextInfo.OutletID != uuid.Nil {
|
|
req.OutletID = &contextInfo.OutletID
|
|
}
|
|
modelReq := transformer.RealHPPContractToModel(&req)
|
|
|
|
response, err := h.hppService.GetRealHPP(ctx, modelReq)
|
|
if err != nil {
|
|
util.HandleResponse(c.Writer, c.Request, contract.BuildErrorResponse([]*contract.ResponseError{contract.NewResponseError("internal_error", "HPPHandler::GetRealHPP", err.Error())}), "HPPHandler::GetRealHPP")
|
|
return
|
|
}
|
|
|
|
contractResp := transformer.RealHPPModelToContract(response)
|
|
util.HandleResponse(c.Writer, c.Request, contract.BuildSuccessResponse(contractResp), "HPPHandler::GetRealHPP")
|
|
}
|