@@ -73,9 +73,10 @@ const (
7373)
7474
7575const (
76- fieldMsg = "message"
77- fieldData = "data"
78- fieldStatus = "status"
76+ fieldMsg = "message"
77+ fieldData = "data"
78+ fieldStatus = "status"
79+ fieldExperiments = "experiments"
7980)
8081
8182// Wrap wraps given http.ResponseWriter and returns a response object which
@@ -102,6 +103,8 @@ type JResponseWriter interface {
102103
103104 Data (interface {}) JResponseWriter
104105
106+ Experiments (interface {}) JResponseWriter
107+
105108 Message (string ) JResponseWriter
106109
107110 Status (int ) JResponseWriter
@@ -134,6 +137,11 @@ func (r *Response) Data(data interface{}) JResponseWriter {
134137 return r .Field (fieldData , data )
135138}
136139
140+ // Data sets response's "data" field with given value.
141+ func (r * Response ) Experiments (experiments interface {}) JResponseWriter {
142+ return r .Field (fieldExperiments , experiments )
143+ }
144+
137145// Message sets response's "message" field with given value.
138146func (r * Response ) Message (msg string ) JResponseWriter {
139147 return r .Field (fieldMsg , msg )
@@ -190,6 +198,10 @@ func (r *Response) Send() (int, error) {
190198 r .Data ([]byte (nil ))
191199 }
192200
201+ if _ , hasExperiments := r .fields [fieldExperiments ]; ! hasExperiments {
202+ r .Experiments ([]byte (nil ))
203+ }
204+
193205 j , err := json .Marshal (r .fields )
194206 r .Header ().Set ("Content-Length" , strconv .Itoa (len (j )))
195207
0 commit comments