@@ -46,19 +46,47 @@ func Delete(ctx context.Context, req model.Map) (res model.Map, err error) {
4646 return act .Result ()
4747}
4848
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 ]))
5582}
5683
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 ) {
5885 return func (req * ghttp.Request ) {
59- res := gmap.ListMap {}
86+ metaRes := gmap.ListMap {}
6087 code := 200
6188 msg := "success"
89+ nodeRes := gmap.ListMap {}
6290
6391 err := g .Try (req .Context (), func (ctx context.Context ) {
6492
@@ -72,10 +100,10 @@ func CommonResponse(handler func(ctx context.Context, req model.Map) (res model.
72100 }
73101
74102 if config .Debug {
75- sortMap (ctx , req .GetBody (), & res , ret )
103+ sortMap (ctx , req .GetBody (), & metaRes , ret )
76104 } else {
77105 for k , v := range ret {
78- res .Set (k , v )
106+ nodeRes .Set (k , v )
79107 }
80108 }
81109
@@ -91,10 +119,12 @@ func CommonResponse(handler func(ctx context.Context, req model.Map) (res model.
91119 }
92120 }
93121
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 )
98128 req .Response .WriteJson (res .String ())
99129 }
100130}
0 commit comments