@@ -46,19 +46,47 @@ func Delete(ctx context.Context, req model.Map) (res model.Map, err error) {
46
46
return act .Result ()
47
47
}
48
48
49
- func Bind (group * ghttp.RouterGroup ) {
50
- group .POST ("/get" , CommonResponse (Get ))
51
- group .POST ("/post" , CommonResponse (Post ))
52
- group .POST ("/head" , CommonResponse (Head ))
53
- group .POST ("/put" , CommonResponse (Put ))
54
- group .POST ("/delete" , CommonResponse (Delete ))
49
+ type Mode = func (data gmap.ListMap , meta gmap.ListMap ) gmap.ListMap
50
+
51
+ func SpreadMode (data gmap.ListMap , meta gmap.ListMap ) gmap.ListMap {
52
+
53
+ res := gmap.ListMap {}
54
+ for _ , k := range data .Keys () {
55
+ res .Set (k , data .Get (k ))
56
+ }
57
+ for _ , k := range meta .Keys () {
58
+ res .Set (k , meta .Get (k ))
59
+ }
60
+
61
+ return res
62
+ }
63
+
64
+ func InDataMode (data gmap.ListMap , meta gmap.ListMap ) gmap.ListMap {
65
+ res := gmap.ListMap {}
66
+ res .Set ("data" , data )
67
+ for _ , k := range meta .Keys () {
68
+ res .Set (k , meta .Get (k ))
69
+ }
70
+ return res
71
+ }
72
+
73
+ func Bind (group * ghttp.RouterGroup , mode ... Mode ) {
74
+ if len (mode ) == 0 {
75
+ mode = []Mode {InDataMode }
76
+ }
77
+ group .POST ("/get" , CommonResponse (Get , mode [0 ]))
78
+ group .POST ("/post" , CommonResponse (Post , mode [0 ]))
79
+ group .POST ("/head" , CommonResponse (Head , mode [0 ]))
80
+ group .POST ("/put" , CommonResponse (Put , mode [0 ]))
81
+ group .POST ("/delete" , CommonResponse (Delete , mode [0 ]))
55
82
}
56
83
57
- func CommonResponse (handler func (ctx context.Context , req model.Map ) (res model.Map , err error )) func (req * ghttp.Request ) {
84
+ func CommonResponse (handler func (ctx context.Context , req model.Map ) (res model.Map , err error ), mode Mode ) func (req * ghttp.Request ) {
58
85
return func (req * ghttp.Request ) {
59
- res := gmap.ListMap {}
86
+ metaRes := gmap.ListMap {}
60
87
code := 200
61
88
msg := "success"
89
+ nodeRes := gmap.ListMap {}
62
90
63
91
err := g .Try (req .Context (), func (ctx context.Context ) {
64
92
@@ -72,10 +100,10 @@ func CommonResponse(handler func(ctx context.Context, req model.Map) (res model.
72
100
}
73
101
74
102
if config .Debug {
75
- sortMap (ctx , req .GetBody (), & res , ret )
103
+ sortMap (ctx , req .GetBody (), & metaRes , ret )
76
104
} else {
77
105
for k , v := range ret {
78
- res .Set (k , v )
106
+ nodeRes .Set (k , v )
79
107
}
80
108
}
81
109
@@ -91,10 +119,12 @@ func CommonResponse(handler func(ctx context.Context, req model.Map) (res model.
91
119
}
92
120
}
93
121
94
- res .Set ("ok" , code == 200 )
95
- res .Set ("code" , code )
96
- res .Set ("msg" , msg )
97
- res .Set ("span" , fmt .Sprintf ("%s" , time .Since (time .UnixMilli (req .EnterTime ))))
122
+ metaRes .Set ("ok" , code == 200 )
123
+ metaRes .Set ("code" , code )
124
+ metaRes .Set ("msg" , msg )
125
+ metaRes .Set ("span" , fmt .Sprintf ("%s" , time .Since (time .UnixMilli (req .EnterTime ))))
126
+
127
+ res := mode (nodeRes , metaRes )
98
128
req .Response .WriteJson (res .String ())
99
129
}
100
130
}
0 commit comments