Spaces:
Configuration error
Configuration error
File size: 1,252 Bytes
e56783d 76a3612 e56783d | 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 54 | package utils
import (
"net/http"
"reflect"
"api.qobiltu.id/models"
"api.qobiltu.id/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[any, any]) {
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)
}
}
}
|