323 lines
8.9 KiB
Go
323 lines
8.9 KiB
Go
package bpjs
|
|
|
|
import (
|
|
sk "bridging-rssa/models/bpjs/surat_kontrol"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
"net/http"
|
|
"strconv"
|
|
)
|
|
|
|
func HandleResponse(c *gin.Context, res *sk.Response) {
|
|
code, err := strconv.Atoi(res.MetaData.Code)
|
|
if err != nil {
|
|
c.JSON(http.StatusInternalServerError, gin.H{"error": "Invalid status code"})
|
|
return
|
|
}
|
|
|
|
// Map status codes ke HTTP status constants
|
|
switch code {
|
|
// 1xx Informational
|
|
case 100:
|
|
c.JSON(http.StatusContinue, res.MetaData)
|
|
case 101:
|
|
c.JSON(http.StatusSwitchingProtocols, res.MetaData)
|
|
case 102:
|
|
c.JSON(http.StatusProcessing, res.MetaData)
|
|
case 103:
|
|
c.JSON(http.StatusEarlyHints, res.MetaData)
|
|
|
|
// 2xx Success
|
|
//case 200:
|
|
// c.JSON(http.StatusOK, &sk.Response{
|
|
// MetaData: sk.MetadataString{
|
|
// Code: res.MetaData.Code,
|
|
// Message: res.MetaData.Message,
|
|
// },
|
|
// })
|
|
case 200:
|
|
c.JSON(http.StatusOK, res.MetaData)
|
|
case 201:
|
|
c.JSON(http.StatusCreated, res.MetaData)
|
|
case 202:
|
|
c.JSON(http.StatusAccepted, res.MetaData)
|
|
case 203:
|
|
c.JSON(http.StatusNonAuthoritativeInfo, res.MetaData)
|
|
case 204:
|
|
c.JSON(http.StatusNoContent, res.MetaData)
|
|
case 205:
|
|
c.JSON(http.StatusResetContent, res.MetaData)
|
|
case 206:
|
|
c.JSON(http.StatusPartialContent, res.MetaData)
|
|
case 207:
|
|
c.JSON(http.StatusMultiStatus, res.MetaData)
|
|
case 208:
|
|
c.JSON(http.StatusAlreadyReported, res.MetaData)
|
|
case 226:
|
|
c.JSON(http.StatusIMUsed, res.MetaData)
|
|
|
|
// 3xx Redirection
|
|
case 300:
|
|
c.JSON(http.StatusMultipleChoices, res.MetaData)
|
|
case 301:
|
|
c.JSON(http.StatusMovedPermanently, res.MetaData)
|
|
case 302:
|
|
c.JSON(http.StatusFound, res.MetaData)
|
|
case 303:
|
|
c.JSON(http.StatusSeeOther, res.MetaData)
|
|
case 304:
|
|
c.JSON(http.StatusNotModified, res.MetaData)
|
|
case 305:
|
|
c.JSON(http.StatusUseProxy, res.MetaData)
|
|
case 307:
|
|
c.JSON(http.StatusTemporaryRedirect, res.MetaData)
|
|
case 308:
|
|
c.JSON(http.StatusPermanentRedirect, res.MetaData)
|
|
|
|
// 4xx Client Error
|
|
case 400:
|
|
c.JSON(http.StatusBadRequest, res.MetaData)
|
|
case 401:
|
|
c.JSON(http.StatusUnauthorized, res.MetaData)
|
|
case 402:
|
|
c.JSON(http.StatusPaymentRequired, res.MetaData)
|
|
case 403:
|
|
c.JSON(http.StatusForbidden, res.MetaData)
|
|
case 404:
|
|
c.JSON(http.StatusNotFound, res.MetaData)
|
|
case 405:
|
|
c.JSON(http.StatusMethodNotAllowed, res.MetaData)
|
|
case 406:
|
|
c.JSON(http.StatusNotAcceptable, res.MetaData)
|
|
case 407:
|
|
c.JSON(http.StatusProxyAuthRequired, res.MetaData)
|
|
case 408:
|
|
c.JSON(http.StatusRequestTimeout, res.MetaData)
|
|
case 409:
|
|
c.JSON(http.StatusConflict, res.MetaData)
|
|
case 410:
|
|
c.JSON(http.StatusGone, res.MetaData)
|
|
case 411:
|
|
c.JSON(http.StatusLengthRequired, res.MetaData)
|
|
case 412:
|
|
c.JSON(http.StatusPreconditionFailed, res.MetaData)
|
|
case 413:
|
|
c.JSON(http.StatusRequestEntityTooLarge, res.MetaData)
|
|
case 414:
|
|
c.JSON(http.StatusRequestURITooLong, res.MetaData)
|
|
case 415:
|
|
c.JSON(http.StatusUnsupportedMediaType, res.MetaData)
|
|
case 416:
|
|
c.JSON(http.StatusRequestedRangeNotSatisfiable, res.MetaData)
|
|
case 417:
|
|
c.JSON(http.StatusExpectationFailed, res.MetaData)
|
|
case 418:
|
|
c.JSON(http.StatusTeapot, res.MetaData)
|
|
case 421:
|
|
c.JSON(http.StatusMisdirectedRequest, res.MetaData)
|
|
case 422:
|
|
c.JSON(http.StatusUnprocessableEntity, res.MetaData)
|
|
case 425:
|
|
c.JSON(http.StatusTooEarly, res.MetaData)
|
|
case 423:
|
|
c.JSON(http.StatusLocked, res.MetaData)
|
|
case 424:
|
|
c.JSON(http.StatusFailedDependency, res.MetaData)
|
|
|
|
case 426:
|
|
c.JSON(http.StatusUpgradeRequired, res.MetaData)
|
|
case 428:
|
|
c.JSON(http.StatusPreconditionRequired, res.MetaData)
|
|
case 429:
|
|
c.JSON(http.StatusTooManyRequests, res.MetaData)
|
|
case 431:
|
|
c.JSON(http.StatusRequestHeaderFieldsTooLarge, res.MetaData)
|
|
case 451:
|
|
c.JSON(http.StatusUnavailableForLegalReasons, res.MetaData)
|
|
|
|
// 5xx Server Error
|
|
case 500:
|
|
c.JSON(http.StatusInternalServerError, res.MetaData)
|
|
case 501:
|
|
c.JSON(http.StatusNotImplemented, res.MetaData)
|
|
case 502:
|
|
c.JSON(http.StatusBadGateway, res.MetaData)
|
|
case 503:
|
|
c.JSON(http.StatusServiceUnavailable, res.MetaData)
|
|
case 504:
|
|
c.JSON(http.StatusGatewayTimeout, res.MetaData)
|
|
case 505:
|
|
c.JSON(http.StatusHTTPVersionNotSupported, res.MetaData)
|
|
case 506:
|
|
c.JSON(http.StatusVariantAlsoNegotiates, res.MetaData)
|
|
case 507:
|
|
c.JSON(http.StatusInsufficientStorage, res.MetaData)
|
|
case 508:
|
|
c.JSON(http.StatusLoopDetected, res.MetaData)
|
|
case 510:
|
|
c.JSON(http.StatusNotExtended, res.MetaData)
|
|
case 511:
|
|
c.JSON(http.StatusNetworkAuthenticationRequired, res.MetaData)
|
|
|
|
// Default case untuk status code yang tidak dikenali
|
|
default:
|
|
c.JSON(http.StatusInternalServerError, gin.H{"error": "Unknown status code"})
|
|
}
|
|
}
|
|
|
|
func HandleResponseSPRI(c *gin.Context, res *sk.Responsespri) {
|
|
code, err := strconv.Atoi(res.MetaData.Code)
|
|
if err != nil {
|
|
c.JSON(http.StatusInternalServerError, gin.H{"error": "Invalid status code"})
|
|
return
|
|
}
|
|
|
|
// Map status codes ke HTTP status constants
|
|
switch code {
|
|
// 1xx Informational
|
|
case 100:
|
|
c.JSON(http.StatusContinue, res.MetaData)
|
|
case 101:
|
|
c.JSON(http.StatusSwitchingProtocols, res.MetaData)
|
|
case 102:
|
|
c.JSON(http.StatusProcessing, res.MetaData)
|
|
case 103:
|
|
c.JSON(http.StatusEarlyHints, res.MetaData)
|
|
|
|
// 2xx Success
|
|
//case 200:
|
|
// c.JSON(http.StatusOK, &sk.Response{
|
|
// MetaData: sk.MetadataString{
|
|
// Code: res.MetaData.Code,
|
|
// Message: res.MetaData.Message,
|
|
// },
|
|
// })
|
|
case 200:
|
|
c.JSON(http.StatusOK, res.MetaData)
|
|
case 201:
|
|
c.JSON(http.StatusCreated, res.MetaData)
|
|
case 202:
|
|
c.JSON(http.StatusAccepted, res.MetaData)
|
|
case 203:
|
|
c.JSON(http.StatusNonAuthoritativeInfo, res.MetaData)
|
|
case 204:
|
|
c.JSON(http.StatusNoContent, res.MetaData)
|
|
case 205:
|
|
c.JSON(http.StatusResetContent, res.MetaData)
|
|
case 206:
|
|
c.JSON(http.StatusPartialContent, res.MetaData)
|
|
case 207:
|
|
c.JSON(http.StatusMultiStatus, res.MetaData)
|
|
case 208:
|
|
c.JSON(http.StatusAlreadyReported, res.MetaData)
|
|
case 226:
|
|
c.JSON(http.StatusIMUsed, res.MetaData)
|
|
|
|
// 3xx Redirection
|
|
case 300:
|
|
c.JSON(http.StatusMultipleChoices, res.MetaData)
|
|
case 301:
|
|
c.JSON(http.StatusMovedPermanently, res.MetaData)
|
|
case 302:
|
|
c.JSON(http.StatusFound, res.MetaData)
|
|
case 303:
|
|
c.JSON(http.StatusSeeOther, res.MetaData)
|
|
case 304:
|
|
c.JSON(http.StatusNotModified, res.MetaData)
|
|
case 305:
|
|
c.JSON(http.StatusUseProxy, res.MetaData)
|
|
case 307:
|
|
c.JSON(http.StatusTemporaryRedirect, res.MetaData)
|
|
case 308:
|
|
c.JSON(http.StatusPermanentRedirect, res.MetaData)
|
|
|
|
// 4xx Client Error
|
|
case 400:
|
|
c.JSON(http.StatusBadRequest, res.MetaData)
|
|
case 401:
|
|
c.JSON(http.StatusUnauthorized, res.MetaData)
|
|
case 402:
|
|
c.JSON(http.StatusPaymentRequired, res.MetaData)
|
|
case 403:
|
|
c.JSON(http.StatusForbidden, res.MetaData)
|
|
case 404:
|
|
c.JSON(http.StatusNotFound, res.MetaData)
|
|
case 405:
|
|
c.JSON(http.StatusMethodNotAllowed, res.MetaData)
|
|
case 406:
|
|
c.JSON(http.StatusNotAcceptable, res.MetaData)
|
|
case 407:
|
|
c.JSON(http.StatusProxyAuthRequired, res.MetaData)
|
|
case 408:
|
|
c.JSON(http.StatusRequestTimeout, res.MetaData)
|
|
case 409:
|
|
c.JSON(http.StatusConflict, res.MetaData)
|
|
case 410:
|
|
c.JSON(http.StatusGone, res.MetaData)
|
|
case 411:
|
|
c.JSON(http.StatusLengthRequired, res.MetaData)
|
|
case 412:
|
|
c.JSON(http.StatusPreconditionFailed, res.MetaData)
|
|
case 413:
|
|
c.JSON(http.StatusRequestEntityTooLarge, res.MetaData)
|
|
case 414:
|
|
c.JSON(http.StatusRequestURITooLong, res.MetaData)
|
|
case 415:
|
|
c.JSON(http.StatusUnsupportedMediaType, res.MetaData)
|
|
case 416:
|
|
c.JSON(http.StatusRequestedRangeNotSatisfiable, res.MetaData)
|
|
case 417:
|
|
c.JSON(http.StatusExpectationFailed, res.MetaData)
|
|
case 418:
|
|
c.JSON(http.StatusTeapot, res.MetaData)
|
|
case 421:
|
|
c.JSON(http.StatusMisdirectedRequest, res.MetaData)
|
|
case 422:
|
|
c.JSON(http.StatusUnprocessableEntity, res.MetaData)
|
|
case 423:
|
|
c.JSON(http.StatusLocked, res.MetaData)
|
|
case 424:
|
|
c.JSON(http.StatusFailedDependency, res.MetaData)
|
|
case 425:
|
|
c.JSON(http.StatusTooEarly, res.MetaData)
|
|
case 426:
|
|
c.JSON(http.StatusUpgradeRequired, res.MetaData)
|
|
case 428:
|
|
c.JSON(http.StatusPreconditionRequired, res.MetaData)
|
|
case 429:
|
|
c.JSON(http.StatusTooManyRequests, res.MetaData)
|
|
case 431:
|
|
c.JSON(http.StatusRequestHeaderFieldsTooLarge, res.MetaData)
|
|
case 451:
|
|
c.JSON(http.StatusUnavailableForLegalReasons, res.MetaData)
|
|
|
|
// 5xx Server Error
|
|
case 500:
|
|
c.JSON(http.StatusInternalServerError, res.MetaData)
|
|
case 501:
|
|
c.JSON(http.StatusNotImplemented, res.MetaData)
|
|
case 502:
|
|
c.JSON(http.StatusBadGateway, res.MetaData)
|
|
case 503:
|
|
c.JSON(http.StatusServiceUnavailable, res.MetaData)
|
|
case 504:
|
|
c.JSON(http.StatusGatewayTimeout, res.MetaData)
|
|
case 505:
|
|
c.JSON(http.StatusHTTPVersionNotSupported, res.MetaData)
|
|
case 506:
|
|
c.JSON(http.StatusVariantAlsoNegotiates, res.MetaData)
|
|
case 507:
|
|
c.JSON(http.StatusInsufficientStorage, res.MetaData)
|
|
case 508:
|
|
c.JSON(http.StatusLoopDetected, res.MetaData)
|
|
case 510:
|
|
c.JSON(http.StatusNotExtended, res.MetaData)
|
|
case 511:
|
|
c.JSON(http.StatusNetworkAuthenticationRequired, res.MetaData)
|
|
|
|
// Default case untuk status code yang tidak dikenali
|
|
default:
|
|
c.JSON(http.StatusInternalServerError, gin.H{"error": "Unknown status code"})
|
|
}
|
|
}
|