update perubahan

This commit is contained in:
2025-09-29 17:41:21 +07:00
parent 12963e1fb3
commit f81f536e13
4 changed files with 711 additions and 181 deletions
+22 -23
View File
@@ -7,7 +7,6 @@ import (
"encoding/json"
"fmt"
"net/http"
"reflect"
"strconv"
"strings"
"sync"
@@ -231,26 +230,26 @@ func cleanResponse(resp string) string {
}
// extractCode extracts the code field from metaData using reflection
func extractCode(metaData interface{}) interface{} {
v := reflect.ValueOf(metaData)
switch v.Kind() {
case reflect.Struct:
codeField := v.FieldByName("Code")
if codeField.IsValid() {
return codeField.Interface()
}
case reflect.Map:
if m, ok := metaData.(map[string]interface{}); ok {
return m["code"]
}
case reflect.String:
var metaMap map[string]interface{}
if err := json.Unmarshal([]byte(metaData.(string)), &metaMap); err == nil {
return metaMap["code"]
}
}
return nil
}
// func extractCode(metaData interface{}) interface{} {
// v := reflect.ValueOf(metaData)
// switch v.Kind() {
// case reflect.Struct:
// codeField := v.FieldByName("Code")
// if codeField.IsValid() {
// return codeField.Interface()
// }
// case reflect.Map:
// if m, ok := metaData.(map[string]interface{}); ok {
// return m["code"]
// }
// case reflect.String:
// var metaMap map[string]interface{}
// if err := json.Unmarshal([]byte(metaData.(string)), &metaMap); err == nil {
// return metaMap["code"]
// }
// }
// return nil
// }
// parseHTTPStatusCode extracts HTTP status code from error message
func parseHTTPStatusCode(errMsg string) int {
@@ -433,7 +432,7 @@ func (h *PesertaHandler) GetBynik(c *gin.Context) {
response.RequestID = requestID
// Ambil status code dari metaData.code
var statusCode int
code := extractCode(response.MetaData)
code := models.ExtractCode(response.MetaData)
if code != nil {
statusCode = models.GetStatusCodeFromMeta(code)
} else {
@@ -595,7 +594,7 @@ func (h *PesertaHandler) GetBynokartu(c *gin.Context) {
response.RequestID = requestID
// Ambil status code dari metaData.code
var statusCode int
code := extractCode(response.MetaData)
code := models.ExtractCode(response.MetaData)
if code != nil {
statusCode = models.GetStatusCodeFromMeta(code)
} else {
+24
View File
@@ -3,7 +3,9 @@ package models
import (
"database/sql"
"database/sql/driver"
"encoding/json"
"net/http"
"reflect"
"strconv"
"time"
)
@@ -199,6 +201,28 @@ func GetStatusCodeFromMeta(metaCode interface{}) int {
return statusCode
}
// extractCode extracts the code field from metaData using reflection
func ExtractCode(metaData interface{}) interface{} {
v := reflect.ValueOf(metaData)
switch v.Kind() {
case reflect.Struct:
codeField := v.FieldByName("Code")
if codeField.IsValid() {
return codeField.Interface()
}
case reflect.Map:
if m, ok := metaData.(map[string]interface{}); ok {
return m["code"]
}
case reflect.String:
var metaMap map[string]interface{}
if err := json.Unmarshal([]byte(metaData.(string)), &metaMap); err == nil {
return metaMap["code"]
}
}
return nil
}
// Validation constants
const (
StatusDraft = "draft"
File diff suppressed because it is too large Load Diff
+6
View File
@@ -40,6 +40,7 @@ services:
tags: ["Peserta"]
require_auth: true
cache_enabled: true
enable_database: true # jika menggunakan database
cache_ttl: 300
bynik:
@@ -61,6 +62,7 @@ services:
tags: ["Peserta"]
require_auth: true
cache_enabled: true
enable_database: true # jika menggunakan database
cache_ttl: 300
rujukan:
@@ -88,6 +90,7 @@ services:
tags: ["Rujukan"]
require_auth: true
cache_enabled: true
enable_database: true # jika menggunakan database
cache_ttl: 180
rujukanbalik:
methods: ["POST", "PUT", "DELETE"]
@@ -108,6 +111,7 @@ services:
tags: ["Rujukan"]
require_auth: true
cache_enabled: true
enable_database: true # jika menggunakan database
cache_ttl: 180
search:
@@ -135,6 +139,7 @@ services:
tags: ["Rujukan"]
require_auth: true
cache_enabled: true
enable_database: true # jika menggunakan database
cache_ttl: 300
bynokartu:
@@ -156,5 +161,6 @@ services:
tags: ["Rujukan"]
require_auth: true
cache_enabled: true
enable_database: true # jika menggunakan database
cache_ttl: 300