mirror of
				https://github.com/go-gitea/gitea
				synced 2025-11-04 13:28:25 +00:00 
			
		
		
		
	Backport #11574 add API specific InternalServerError() InternalServerError
This commit is contained in:
		@@ -7,6 +7,7 @@ package context
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"net/http"
 | 
			
		||||
	"net/url"
 | 
			
		||||
	"strings"
 | 
			
		||||
 | 
			
		||||
@@ -64,18 +65,18 @@ type APINotFound struct{}
 | 
			
		||||
// swagger:response redirect
 | 
			
		||||
type APIRedirect struct{}
 | 
			
		||||
 | 
			
		||||
// Error responses error message to client with given message.
 | 
			
		||||
// Error responds with an error message to client with given obj as the message.
 | 
			
		||||
// If status is 500, also it prints error to log.
 | 
			
		||||
func (ctx *APIContext) Error(status int, title string, obj interface{}) {
 | 
			
		||||
	var message string
 | 
			
		||||
	if err, ok := obj.(error); ok {
 | 
			
		||||
		message = err.Error()
 | 
			
		||||
	} else {
 | 
			
		||||
		message = obj.(string)
 | 
			
		||||
		message = fmt.Sprintf("%s", obj)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if status == 500 {
 | 
			
		||||
		log.Error("%s: %s", title, message)
 | 
			
		||||
	if status == http.StatusInternalServerError {
 | 
			
		||||
		log.ErrorWithSkip(1, "%s: %s", title, message)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	ctx.JSON(status, APIError{
 | 
			
		||||
@@ -84,6 +85,22 @@ func (ctx *APIContext) Error(status int, title string, obj interface{}) {
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// InternalServerError responds with an error message to the client with the error as a message
 | 
			
		||||
// and the file and line of the caller.
 | 
			
		||||
func (ctx *APIContext) InternalServerError(err error) {
 | 
			
		||||
	log.ErrorWithSkip(1, "InternalServerError: %v", err)
 | 
			
		||||
 | 
			
		||||
	var message string
 | 
			
		||||
	if macaron.Env != macaron.PROD {
 | 
			
		||||
		message = err.Error()
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	ctx.JSON(http.StatusInternalServerError, APIError{
 | 
			
		||||
		Message: message,
 | 
			
		||||
		URL:     setting.API.SwaggerURL,
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func genAPILinks(curURL *url.URL, total, pageSize, curPage int) []string {
 | 
			
		||||
	page := NewPagination(total, pageSize, curPage, 0)
 | 
			
		||||
	paginater := page.Paginater
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user