aboutsummaryrefslogtreecommitdiff
path: root/http/response/json/json.go
diff options
context:
space:
mode:
authorGravatar Frédéric Guillot <f@miniflux.net> 2023-08-10 19:46:45 -0700
committerGravatar Frédéric Guillot <f@miniflux.net> 2023-08-10 20:29:34 -0700
commit168a870c025bfef6efdeb46e166e79a16093c157 (patch)
tree4d8ab69c7e3ef03a7ade06e7b5e5053429a64c3b /http/response/json/json.go
parentc2349032552891745cbbc3d2a9e772845a0239f4 (diff)
downloadv2-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.go120
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
-}