mirror of
				https://codeberg.org/forgejo/forgejo.git
				synced 2025-10-31 06:21:11 +00:00 
			
		
		
		
	Most middleware throw a 404 in case something is not found e.g. a Repo that is not existing. But most API endpoints don't include the 404 response in their documentation. This PR changes this.
		
			
				
	
	
		
			78 lines
		
	
	
	
		
			1.9 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			78 lines
		
	
	
	
		
			1.9 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| // Copyright 2023 The Gitea Authors. All rights reserved.
 | |
| // SPDX-License-Identifier: MIT
 | |
| 
 | |
| package org
 | |
| 
 | |
| import (
 | |
| 	"encoding/base64"
 | |
| 	"net/http"
 | |
| 
 | |
| 	"code.gitea.io/gitea/modules/context"
 | |
| 	api "code.gitea.io/gitea/modules/structs"
 | |
| 	"code.gitea.io/gitea/modules/web"
 | |
| 	user_service "code.gitea.io/gitea/services/user"
 | |
| )
 | |
| 
 | |
| // UpdateAvatarupdates the Avatar of an Organisation
 | |
| func UpdateAvatar(ctx *context.APIContext) {
 | |
| 	// swagger:operation POST /orgs/{org}/avatar organization orgUpdateAvatar
 | |
| 	// ---
 | |
| 	// summary: Update Avatar
 | |
| 	// produces:
 | |
| 	// - application/json
 | |
| 	// parameters:
 | |
| 	// - name: org
 | |
| 	//   in: path
 | |
| 	//   description: name of the organization
 | |
| 	//   type: string
 | |
| 	//   required: true
 | |
| 	// - name: body
 | |
| 	//   in: body
 | |
| 	//   schema:
 | |
| 	//     "$ref": "#/definitions/UpdateUserAvatarOption"
 | |
| 	// responses:
 | |
| 	//   "204":
 | |
| 	//     "$ref": "#/responses/empty"
 | |
| 	//   "404":
 | |
| 	//     "$ref": "#/responses/notFound"
 | |
| 	form := web.GetForm(ctx).(*api.UpdateUserAvatarOption)
 | |
| 
 | |
| 	content, err := base64.StdEncoding.DecodeString(form.Image)
 | |
| 	if err != nil {
 | |
| 		ctx.Error(http.StatusBadRequest, "DecodeImage", err)
 | |
| 		return
 | |
| 	}
 | |
| 
 | |
| 	err = user_service.UploadAvatar(ctx.Org.Organization.AsUser(), content)
 | |
| 	if err != nil {
 | |
| 		ctx.Error(http.StatusInternalServerError, "UploadAvatar", err)
 | |
| 	}
 | |
| 
 | |
| 	ctx.Status(http.StatusNoContent)
 | |
| }
 | |
| 
 | |
| // DeleteAvatar deletes the Avatar of an Organisation
 | |
| func DeleteAvatar(ctx *context.APIContext) {
 | |
| 	// swagger:operation DELETE /orgs/{org}/avatar organization orgDeleteAvatar
 | |
| 	// ---
 | |
| 	// summary: Delete Avatar
 | |
| 	// produces:
 | |
| 	// - application/json
 | |
| 	// parameters:
 | |
| 	// - name: org
 | |
| 	//   in: path
 | |
| 	//   description: name of the organization
 | |
| 	//   type: string
 | |
| 	//   required: true
 | |
| 	// responses:
 | |
| 	//   "204":
 | |
| 	//     "$ref": "#/responses/empty"
 | |
| 	//   "404":
 | |
| 	//     "$ref": "#/responses/notFound"
 | |
| 	err := user_service.DeleteAvatar(ctx.Org.Organization.AsUser())
 | |
| 	if err != nil {
 | |
| 		ctx.Error(http.StatusInternalServerError, "DeleteAvatar", err)
 | |
| 	}
 | |
| 
 | |
| 	ctx.Status(http.StatusNoContent)
 | |
| }
 |