Spaces:
Runtime error
Runtime error
| package utils | |
| import ( | |
| "net/http" | |
| "reflect" | |
| models "github.com/abdanhafidz/ai-visual-multi-modal-backend/models" | |
| services "github.com/abdanhafidz/ai-visual-multi-modal-backend/services" | |
| "github.com/gin-gonic/gin" | |
| ) | |
| func ResponseOK(c *gin.Context, data any) { | |
| res := models.SuccessResponse{ | |
| Status: "success", | |
| Message: "Data retrieved successfully!", | |
| Data: data, | |
| MetaData: c.Request.Body, | |
| } | |
| c.JSON(http.StatusOK, res) | |
| return | |
| } | |
| func ResponseFAIL(c *gin.Context, status int, exception models.Exception) { | |
| message := exception.Message | |
| exception.Message = "" | |
| res := models.ErrorResponse{ | |
| Status: "error", | |
| Message: message, | |
| Errors: exception, | |
| MetaData: c.Request.Body, | |
| } | |
| c.AbortWithStatusJSON(status, res) | |
| return | |
| } | |
| func SendResponse(c *gin.Context, data services.Service) { | |
| if reflect.ValueOf(data.Exception()).IsNil() { | |
| ResponseOK(c, data) | |
| } else { | |
| if data.Exception().Unauthorized { | |
| ResponseFAIL(c, 401, data.Exception()) | |
| } else if data.Exception().BadRequest { | |
| ResponseFAIL(c, 400, data.Exception()) | |
| } else if data.Exception().DataNotFound { | |
| ResponseFAIL(c, 404, data.Exception()) | |
| } else if data.Exception().InternalServerError { | |
| ResponseFAIL(c, 500, data.Exception()) | |
| } else { | |
| ResponseFAIL(c, 403, data.Exception()) | |
| } | |
| } | |
| } | |