api: return content-type

pull/94/head
Aloïs Micard 4 years ago
parent 5a865dd6d4
commit c114e091f9
No known key found for this signature in database
GPG Key ID: 1A0EB82F071F5EFE

@ -140,10 +140,7 @@ func (state *State) searchResources(w http.ResponseWriter, r *http.Request) {
writePagination(w, searchParams, totalCount)
// Write body
if err := json.NewEncoder(w).Encode(resources); err != nil {
log.Err(err).Msg("error while encoding response")
w.WriteHeader(http.StatusInternalServerError)
}
writeJson(w, resources)
}
func (state *State) addResource(w http.ResponseWriter, r *http.Request) {
@ -205,10 +202,7 @@ func (state *State) addResource(w http.ResponseWriter, r *http.Request) {
log.Info().Str("url", res.URL).Msg("Successfully saved resource")
if err := json.NewEncoder(w).Encode(res); err != nil {
log.Err(err).Msg("error while encoding response")
w.WriteHeader(http.StatusInternalServerError)
}
writeJson(w, res)
}
func (state *State) scheduleURL(w http.ResponseWriter, r *http.Request) {
@ -324,3 +318,15 @@ func getRawQueryParam(url string) map[string]string {
return val
}
func writeJson(w http.ResponseWriter, body interface{}) {
b, err := json.Marshal(body)
if err != nil {
log.Err(err).Msg("error while serializing body")
w.WriteHeader(http.StatusInternalServerError)
return
}
w.Header().Set("Content-Type", "application/json")
_, _ = w.Write(b)
}

@ -185,6 +185,9 @@ func TestAddResource(t *testing.T) {
if rec.Code != http.StatusOK {
t.FailNow()
}
if rec.Header().Get("Content-Type") != "application/json" {
t.Fail()
}
var res api.ResourceDto
if err := json.NewDecoder(rec.Body).Decode(&res); err != nil {
@ -332,6 +335,9 @@ func TestSearchResources(t *testing.T) {
if rec.Code != http.StatusOK {
t.Fail()
}
if rec.Header().Get("Content-Type") != "application/json" {
t.Fail()
}
if rec.Header().Get(api.PaginationCountHeader) != "150" {
t.Fail()
}

Loading…
Cancel
Save