Skip to content

Commit 94caa15

Browse files
[#1145] fixing response header of template preview api when we throw error (#1353)
error Signed-off-by: prasanna.mahajan <[email protected]> Co-authored-by: David Deal <[email protected]>
1 parent d575716 commit 94caa15

File tree

1 file changed

+13
-2
lines changed

1 file changed

+13
-2
lines changed

cla-backend-go/v2/template/handlers.go

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,12 +69,12 @@ func Configure(api *operations.EasyclaAPI, service v1Template.Service, eventsSer
6969
var param v1Models.CreateClaGroupTemplate
7070
err := copier.Copy(&param, &params.TemplatePreviewInput)
7171
if err != nil {
72-
return template.NewTemplatePreviewInternalServerError().WithPayload(errorResponse(err))
72+
return writeResponse(http.StatusInternalServerError, runtime.JSONMime, runtime.JSONProducer(), errorResponse(err))
7373
}
7474
pdf, err := service.CreateTemplatePreview(&param, params.TemplateFor)
7575
if err != nil {
7676
log.Warnf("Error generating PDFs from provided templates, error: %v", err)
77-
return template.NewTemplatePreviewBadRequest().WithPayload(errorResponse(err))
77+
return writeResponse(http.StatusBadRequest, runtime.JSONMime, runtime.JSONProducer(), errorResponse(err))
7878
}
7979
return middleware.ResponderFunc(func(rw http.ResponseWriter, pr runtime.Producer) {
8080
rw.WriteHeader(http.StatusOK)
@@ -103,3 +103,14 @@ func errorResponse(err error) *models.ErrorResponse {
103103

104104
return &e
105105
}
106+
107+
func writeResponse(httpStatus int, contentType string, contentProducer runtime.Producer, data interface{}) middleware.Responder {
108+
return middleware.ResponderFunc(func(rw http.ResponseWriter, pr runtime.Producer) {
109+
rw.Header().Set(runtime.HeaderContentType, contentType)
110+
rw.WriteHeader(httpStatus)
111+
err := contentProducer.Produce(rw, data)
112+
if err != nil {
113+
log.Warnf("failed to write data. error = %v", err)
114+
}
115+
})
116+
}

0 commit comments

Comments
 (0)