@@ -311,6 +311,26 @@ func (h *advanceHandler) handle(w http.ResponseWriter, req *http.Request) {
311311 memLogger .Info ("receiving mock request" , "name" , h .item .Name , "method" , req .Method , "path" , req .URL .Path ,
312312 "encoder" , h .item .Response .Encoder )
313313
314+ h .item .Param = mux .Vars (req )
315+ if h .item .Param == nil {
316+ h .item .Param = make (map [string ]string )
317+ }
318+ h .item .Param ["Host" ] = req .Host
319+ if h .item .Response .Header == nil {
320+ h .item .Response .Header = make (map [string ]string )
321+ }
322+ h .item .Response .Header [headerMockServer ] = fmt .Sprintf ("api-testing: %s" , version .GetVersion ())
323+ for k , v := range h .item .Response .Header {
324+ hv , hErr := render .Render ("mock-server-header" , v , & h .item )
325+ if hErr != nil {
326+ hv = v
327+ memLogger .Error (hErr , "failed render mock-server-header" , "value" , v )
328+ }
329+
330+ w .Header ().Set (k , hv )
331+ }
332+ w .WriteHeader (util .ZeroThenDefault (h .item .Response .StatusCode , http .StatusOK ))
333+
314334 var err error
315335 if h .item .Response .Encoder == "base64" {
316336 h .item .Response .BodyData , err = base64 .StdEncoding .DecodeString (h .item .Response .Body )
@@ -320,30 +340,13 @@ func (h *advanceHandler) handle(w http.ResponseWriter, req *http.Request) {
320340 h .item .Response .BodyData , err = io .ReadAll (resp .Body )
321341 }
322342 } else {
323- h .item .Response .BodyData , err = render .RenderAsBytes ("start-item" , h .item .Response .Body , h .item )
343+ if h .item .Response .BodyData , err = render .RenderAsBytes ("start-item" , h .item .Response .Body , h .item ); err != nil {
344+ fmt .Printf ("failed to render body: %v" , err )
345+ }
324346 }
325347
326348 if err == nil {
327- h .item .Param = mux .Vars (req )
328- if h .item .Param == nil {
329- h .item .Param = make (map [string ]string )
330- }
331- h .item .Param ["Host" ] = req .Host
332- if h .item .Response .Header == nil {
333- h .item .Response .Header = make (map [string ]string )
334- }
335- h .item .Response .Header [headerMockServer ] = fmt .Sprintf ("api-testing: %s" , version .GetVersion ())
336349 h .item .Response .Header [util .ContentLength ] = fmt .Sprintf ("%d" , len (h .item .Response .BodyData ))
337- for k , v := range h .item .Response .Header {
338- hv , hErr := render .Render ("mock-server-header" , v , & h .item )
339- if hErr != nil {
340- hv = v
341- memLogger .Error (hErr , "failed render mock-server-header" , "value" , v )
342- }
343-
344- w .Header ().Set (k , hv )
345- }
346- w .WriteHeader (util .ZeroThenDefault (h .item .Response .StatusCode , http .StatusOK ))
347350 }
348351
349352 writeResponse (w , h .item .Response .BodyData , err )
0 commit comments