Spaces:
Runtime error
Runtime error
File size: 1,352 Bytes
e935eae | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | 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())
}
}
}
|