/
jwtwrapper.go
42 lines (37 loc) · 1.23 KB
/
jwtwrapper.go
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
package keycloakmiddleware
import (
"github.com/gin-gonic/gin"
)
func (middleware *middleware) wrapper(status int, context *gin.Context, message interface{}, data interface{}) map[string]interface{} {
if middleware.wrapperCode == 2 {
return middleware.traceableWrapper(context, message, data)
} else if middleware.wrapperCode == 1 {
return middleware.standardWrapper(message, data)
} else {
return middleware.defaultWrapper(status, message, data)
}
}
func (middleware *middleware) defaultWrapper(status int, message interface{}, data interface{}) map[string]interface{} {
return gin.H{
"status": status,
"error_message": message,
"data": data,
}
}
func (middleware *middleware) standardWrapper(message interface{}, data interface{}) map[string]interface{} {
return gin.H{
"message": message,
"data": data,
}
}
func (middleware *middleware) traceableWrapper(context *gin.Context, message interface{}, data interface{}) map[string]interface{} {
var traceID = context.GetString("X-Trace-Id")
return gin.H{
"id": traceID,
"appName": getEnvOrDefault("APP_NAME", nil),
"version": getEnvOrDefault("APP_VERSION", nil),
"build": getEnvOrDefault("BUILD", nil),
"message": message,
"data": data,
}
}