create outlet

This commit is contained in:
Efril 2026-04-14 19:09:09 +07:00
parent b3359fa6ff
commit f25ec1c06f

View File

@ -102,6 +102,37 @@ func (h *OutletHandler) GetOutlet(c *gin.Context) {
util.HandleResponse(c.Writer, c.Request, outletResponse, "OutletHandler::GetOutlet") util.HandleResponse(c.Writer, c.Request, outletResponse, "OutletHandler::GetOutlet")
} }
func (h *OutletHandler) CreateOutlet(c *gin.Context) {
ctx := c.Request.Context()
contextInfo := appcontext.FromGinContext(ctx)
var req contract.CreateOutletRequest
if err := c.ShouldBindJSON(&req); err != nil {
logger.FromContext(ctx).WithError(err).Error("OutletHandler::CreateOutlet -> Failed to bind JSON")
validationResponseError := contract.NewResponseError(constants.MalformedFieldErrorCode, constants.RequestEntity, "Invalid request body")
util.HandleResponse(c.Writer, c.Request, contract.BuildErrorResponse([]*contract.ResponseError{validationResponseError}), "OutletHandler::CreateOutlet")
return
}
req.OrganizationID = contextInfo.OrganizationID
validationError, validationErrorCode := h.outletValidator.ValidateCreateOutletRequest(&req)
if validationError != nil {
logger.FromContext(ctx).WithError(validationError).Error("OutletHandler::CreateOutlet -> request validation failed")
validationResponseError := contract.NewResponseError(validationErrorCode, constants.RequestEntity, validationError.Error())
util.HandleResponse(c.Writer, c.Request, contract.BuildErrorResponse([]*contract.ResponseError{validationResponseError}), "OutletHandler::CreateOutlet")
return
}
outletResponse := h.outletService.CreateOutlet(ctx, &req)
if outletResponse.HasErrors() {
errorResp := outletResponse.GetErrors()[0]
logger.FromContext(ctx).WithError(errorResp).Error("OutletHandler::CreateOutlet -> Failed to create outlet from service")
}
util.HandleResponse(c.Writer, c.Request, outletResponse, "OutletHandler::CreateOutlet")
}
func (h *OutletHandler) UpdateOutlet(c *gin.Context) { func (h *OutletHandler) UpdateOutlet(c *gin.Context) {
ctx := c.Request.Context() ctx := c.Request.Context()
contextInfo := appcontext.FromGinContext(ctx) contextInfo := appcontext.FromGinContext(ctx)