API error cleanup (#7186)
This commit is contained in:
		
							parent
							
								
									744fd6a1c8
								
							
						
					
					
						commit
						8f0182c322
					
				
					 7 changed files with 16 additions and 25 deletions
				
			
		|  | @ -11,7 +11,6 @@ import ( | |||
| 	"testing" | ||||
| 
 | ||||
| 	"code.gitea.io/gitea/models" | ||||
| 	"code.gitea.io/gitea/modules/base" | ||||
| 	"code.gitea.io/gitea/modules/context" | ||||
| 	"code.gitea.io/gitea/modules/setting" | ||||
| 	api "code.gitea.io/gitea/modules/structs" | ||||
|  | @ -98,7 +97,7 @@ func testAPIGetFileContents(t *testing.T, u *url.URL) { | |||
| 	resp = session.MakeRequest(t, req, http.StatusInternalServerError) | ||||
| 	expectedAPIError := context.APIError{ | ||||
| 		Message: "object does not exist [id: " + branch + ", rel_path: ]", | ||||
| 		URL:     base.DocURL, | ||||
| 		URL:     setting.API.SwaggerURL, | ||||
| 	} | ||||
| 	var apiError context.APIError | ||||
| 	DecodeJSON(t, resp, &apiError) | ||||
|  |  | |||
|  | @ -13,7 +13,6 @@ import ( | |||
| 	"testing" | ||||
| 
 | ||||
| 	"code.gitea.io/gitea/models" | ||||
| 	"code.gitea.io/gitea/modules/base" | ||||
| 	"code.gitea.io/gitea/modules/context" | ||||
| 	"code.gitea.io/gitea/modules/git" | ||||
| 	"code.gitea.io/gitea/modules/setting" | ||||
|  | @ -160,7 +159,7 @@ func TestAPICreateFile(t *testing.T) { | |||
| 		resp = session.MakeRequest(t, req, http.StatusInternalServerError) | ||||
| 		expectedAPIError := context.APIError{ | ||||
| 			Message: "repository file already exists [path: " + treePath + "]", | ||||
| 			URL:     base.DocURL, | ||||
| 			URL:     setting.API.SwaggerURL, | ||||
| 		} | ||||
| 		var apiError context.APIError | ||||
| 		DecodeJSON(t, resp, &apiError) | ||||
|  |  | |||
|  | @ -11,8 +11,8 @@ import ( | |||
| 	"testing" | ||||
| 
 | ||||
| 	"code.gitea.io/gitea/models" | ||||
| 	"code.gitea.io/gitea/modules/base" | ||||
| 	"code.gitea.io/gitea/modules/context" | ||||
| 	"code.gitea.io/gitea/modules/setting" | ||||
| 	api "code.gitea.io/gitea/modules/structs" | ||||
| 
 | ||||
| 	"github.com/stretchr/testify/assert" | ||||
|  | @ -102,7 +102,7 @@ func TestAPIDeleteFile(t *testing.T) { | |||
| 		resp = session.MakeRequest(t, req, http.StatusInternalServerError) | ||||
| 		expectedAPIError := context.APIError{ | ||||
| 			Message: "sha does not match [given: " + deleteFileOptions.SHA + ", expected: " + correctSHA + "]", | ||||
| 			URL:     base.DocURL, | ||||
| 			URL:     setting.API.SwaggerURL, | ||||
| 		} | ||||
| 		var apiError context.APIError | ||||
| 		DecodeJSON(t, resp, &apiError) | ||||
|  |  | |||
|  | @ -13,7 +13,6 @@ import ( | |||
| 	"testing" | ||||
| 
 | ||||
| 	"code.gitea.io/gitea/models" | ||||
| 	"code.gitea.io/gitea/modules/base" | ||||
| 	"code.gitea.io/gitea/modules/context" | ||||
| 	"code.gitea.io/gitea/modules/git" | ||||
| 	"code.gitea.io/gitea/modules/setting" | ||||
|  | @ -173,7 +172,7 @@ func TestAPIUpdateFile(t *testing.T) { | |||
| 		resp = session.MakeRequest(t, req, http.StatusInternalServerError) | ||||
| 		expectedAPIError := context.APIError{ | ||||
| 			Message: "sha does not match [given: " + updateFileOptions.SHA + ", expected: " + correctSHA + "]", | ||||
| 			URL:     base.DocURL, | ||||
| 			URL:     setting.API.SwaggerURL, | ||||
| 		} | ||||
| 		var apiError context.APIError | ||||
| 		DecodeJSON(t, resp, &apiError) | ||||
|  |  | |||
|  | @ -4,9 +4,6 @@ | |||
| 
 | ||||
| package base | ||||
| 
 | ||||
| // DocURL api doc url
 | ||||
| const DocURL = "https://godoc.org/github.com/go-gitea/go-sdk/gitea" | ||||
| 
 | ||||
| type ( | ||||
| 	// TplName template relative path type
 | ||||
| 	TplName string | ||||
|  |  | |||
|  | @ -7,14 +7,11 @@ package context | |||
| 
 | ||||
| import ( | ||||
| 	"fmt" | ||||
| 	"net/url" | ||||
| 	"path" | ||||
| 	"strings" | ||||
| 
 | ||||
| 	"github.com/go-macaron/csrf" | ||||
| 
 | ||||
| 	"code.gitea.io/gitea/models" | ||||
| 	"code.gitea.io/gitea/modules/base" | ||||
| 	"code.gitea.io/gitea/modules/git" | ||||
| 	"code.gitea.io/gitea/modules/log" | ||||
| 	"code.gitea.io/gitea/modules/setting" | ||||
|  | @ -76,7 +73,7 @@ func (ctx *APIContext) Error(status int, title string, obj interface{}) { | |||
| 
 | ||||
| 	ctx.JSON(status, APIError{ | ||||
| 		Message: message, | ||||
| 		URL:     base.DocURL, | ||||
| 		URL:     setting.API.SwaggerURL, | ||||
| 	}) | ||||
| } | ||||
| 
 | ||||
|  | @ -180,15 +177,9 @@ func (ctx *APIContext) NotFound(objs ...interface{}) { | |||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	u, err := url.Parse(setting.AppURL) | ||||
| 	if err != nil { | ||||
| 		ctx.Error(500, "Invalid AppURL", err) | ||||
| 		return | ||||
| 	} | ||||
| 	u.Path = path.Join(u.Path, "api", "swagger") | ||||
| 	ctx.JSON(404, map[string]interface{}{ | ||||
| 		"message":           message, | ||||
| 		"documentation_url": u.String(), | ||||
| 		"documentation_url": setting.API.SwaggerURL, | ||||
| 		"errors":            errors, | ||||
| 	}) | ||||
| } | ||||
|  |  | |||
|  | @ -297,12 +297,14 @@ var ( | |||
| 	// API settings
 | ||||
| 	API = struct { | ||||
| 		EnableSwagger          bool | ||||
| 		SwaggerURL             string | ||||
| 		MaxResponseItems       int | ||||
| 		DefaultPagingNum       int | ||||
| 		DefaultGitTreesPerPage int | ||||
| 		DefaultMaxBlobSize     int64 | ||||
| 	}{ | ||||
| 		EnableSwagger:          true, | ||||
| 		SwaggerURL:             "", | ||||
| 		MaxResponseItems:       50, | ||||
| 		DefaultPagingNum:       30, | ||||
| 		DefaultGitTreesPerPage: 1000, | ||||
|  | @ -581,17 +583,17 @@ func NewContext() { | |||
| 	AppURL = strings.TrimRight(AppURL, "/") + "/" | ||||
| 
 | ||||
| 	// Check if has app suburl.
 | ||||
| 	url, err := url.Parse(AppURL) | ||||
| 	appURL, err := url.Parse(AppURL) | ||||
| 	if err != nil { | ||||
| 		log.Fatal("Invalid ROOT_URL '%s': %s", AppURL, err) | ||||
| 	} | ||||
| 	// Suburl should start with '/' and end without '/', such as '/{subpath}'.
 | ||||
| 	// This value is empty if site does not have sub-url.
 | ||||
| 	AppSubURL = strings.TrimSuffix(url.Path, "/") | ||||
| 	AppSubURL = strings.TrimSuffix(appURL.Path, "/") | ||||
| 	AppSubURLDepth = strings.Count(AppSubURL, "/") | ||||
| 	// Check if Domain differs from AppURL domain than update it to AppURL's domain
 | ||||
| 	// TODO: Can be replaced with url.Hostname() when minimal GoLang version is 1.8
 | ||||
| 	urlHostname := strings.SplitN(url.Host, ":", 2)[0] | ||||
| 	urlHostname := strings.SplitN(appURL.Host, ":", 2)[0] | ||||
| 	if urlHostname != Domain && net.ParseIP(urlHostname) == nil { | ||||
| 		Domain = urlHostname | ||||
| 	} | ||||
|  | @ -900,6 +902,10 @@ func NewContext() { | |||
| 		log.Fatal("Failed to map Metrics settings: %v", err) | ||||
| 	} | ||||
| 
 | ||||
| 	u := *appURL | ||||
| 	u.Path = path.Join(u.Path, "api", "swagger") | ||||
| 	API.SwaggerURL = u.String() | ||||
| 
 | ||||
| 	newCron() | ||||
| 	newGit() | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue