diff options
author | 2023-08-10 19:46:45 -0700 | |
---|---|---|
committer | 2023-08-10 20:29:34 -0700 | |
commit | 168a870c025bfef6efdeb46e166e79a16093c157 (patch) | |
tree | 4d8ab69c7e3ef03a7ade06e7b5e5053429a64c3b /http/response/json/json.go | |
parent | c2349032552891745cbbc3d2a9e772845a0239f4 (diff) | |
download | v2-168a870c025bfef6efdeb46e166e79a16093c157.tar.gz v2-168a870c025bfef6efdeb46e166e79a16093c157.tar.zst v2-168a870c025bfef6efdeb46e166e79a16093c157.zip |
Move internal packages to an internal folder
For reference: https://go.dev/doc/go1.4#internalpackages
Diffstat (limited to 'http/response/json/json.go')
-rw-r--r-- | http/response/json/json.go | 120 |
1 files changed, 0 insertions, 120 deletions
diff --git a/http/response/json/json.go b/http/response/json/json.go deleted file mode 100644 index f0f88033..00000000 --- a/http/response/json/json.go +++ /dev/null @@ -1,120 +0,0 @@ -// SPDX-FileCopyrightText: Copyright The Miniflux Authors. All rights reserved. -// SPDX-License-Identifier: Apache-2.0 - -package json // import "miniflux.app/v2/http/response/json" - -import ( - "encoding/json" - "errors" - "net/http" - - "miniflux.app/v2/http/response" - "miniflux.app/v2/logger" -) - -const contentTypeHeader = `application/json` - -// OK creates a new JSON response with a 200 status code. -func OK(w http.ResponseWriter, r *http.Request, body interface{}) { - builder := response.New(w, r) - builder.WithHeader("Content-Type", contentTypeHeader) - builder.WithBody(toJSON(body)) - builder.Write() -} - -// Created sends a created response to the client. -func Created(w http.ResponseWriter, r *http.Request, body interface{}) { - builder := response.New(w, r) - builder.WithStatus(http.StatusCreated) - builder.WithHeader("Content-Type", contentTypeHeader) - builder.WithBody(toJSON(body)) - builder.Write() -} - -// NoContent sends a no content response to the client. -func NoContent(w http.ResponseWriter, r *http.Request) { - builder := response.New(w, r) - builder.WithStatus(http.StatusNoContent) - builder.WithHeader("Content-Type", contentTypeHeader) - builder.Write() -} - -func Accepted(w http.ResponseWriter, r *http.Request) { - builder := response.New(w, r) - builder.WithStatus(http.StatusAccepted) - builder.WithHeader("Content-Type", contentTypeHeader) - builder.Write() -} - -// ServerError sends an internal error to the client. -func ServerError(w http.ResponseWriter, r *http.Request, err error) { - logger.Error("[HTTP:Internal Server Error] %s => %v", r.URL, err) - - builder := response.New(w, r) - builder.WithStatus(http.StatusInternalServerError) - builder.WithHeader("Content-Type", contentTypeHeader) - builder.WithBody(toJSONError(err)) - builder.Write() -} - -// BadRequest sends a bad request error to the client. -func BadRequest(w http.ResponseWriter, r *http.Request, err error) { - logger.Error("[HTTP:Bad Request] %s => %v", r.URL, err) - - builder := response.New(w, r) - builder.WithStatus(http.StatusBadRequest) - builder.WithHeader("Content-Type", contentTypeHeader) - builder.WithBody(toJSONError(err)) - builder.Write() -} - -// Unauthorized sends a not authorized error to the client. -func Unauthorized(w http.ResponseWriter, r *http.Request) { - logger.Error("[HTTP:Unauthorized] %s", r.URL) - - builder := response.New(w, r) - builder.WithStatus(http.StatusUnauthorized) - builder.WithHeader("Content-Type", contentTypeHeader) - builder.WithBody(toJSONError(errors.New("access unauthorized"))) - builder.Write() -} - -// Forbidden sends a forbidden error to the client. -func Forbidden(w http.ResponseWriter, r *http.Request) { - logger.Error("[HTTP:Forbidden] %s", r.URL) - - builder := response.New(w, r) - builder.WithStatus(http.StatusForbidden) - builder.WithHeader("Content-Type", contentTypeHeader) - builder.WithBody(toJSONError(errors.New("access forbidden"))) - builder.Write() -} - -// NotFound sends a page not found error to the client. -func NotFound(w http.ResponseWriter, r *http.Request) { - logger.Error("[HTTP:Not Found] %s", r.URL) - - builder := response.New(w, r) - builder.WithStatus(http.StatusNotFound) - builder.WithHeader("Content-Type", contentTypeHeader) - builder.WithBody(toJSONError(errors.New("resource not found"))) - builder.Write() -} - -func toJSONError(err error) []byte { - type errorMsg struct { - ErrorMessage string `json:"error_message"` - } - - return toJSON(errorMsg{ErrorMessage: err.Error()}) -} - -func toJSON(v interface{}) []byte { - b, err := json.Marshal(v) - if err != nil { - logger.Error("[HTTP:JSON] %v", err) - return []byte("") - } - - return b -} |