aboutsummaryrefslogtreecommitdiffstats
path: root/routers/api/v1/org/member.go
diff options
context:
space:
mode:
author6543 <6543@obermui.de>2019-12-20 18:07:12 +0100
committerLauris BH <lauris@nix.lv>2019-12-20 19:07:12 +0200
commit2848c5eb8f7333b6791afd296b12d21751d0516b (patch)
tree67ff6244026174116edbff1b4c4cdb5934401968 /routers/api/v1/org/member.go
parent050a8af4243d7f5fff0a2f492b9166f4dfdf0ecf (diff)
downloadgitea-2848c5eb8f7333b6791afd296b12d21751d0516b.tar.gz
gitea-2848c5eb8f7333b6791afd296b12d21751d0516b.zip
Swagger info corrections (#9441)
* use numbers and not http.Status___ enum * fix test * add many missing swagger responses * code format * Deletion Sould return 204 ... * error handling improvements * if special error type ... then add it to swagger too * one smal nit * invalidTopicsError is []string * valid swagger specification 2.0 - if you add responses swagger can tell you if you do it right :+1: * use ctx.InternalServerError * Revert "use numbers and not http.Status___ enum" This reverts commit b1ff386e2418ed6a7f183e756b13277d701278ef. * use http.Status* enum everywhere
Diffstat (limited to 'routers/api/v1/org/member.go')
-rw-r--r--routers/api/v1/org/member.go44
1 files changed, 29 insertions, 15 deletions
diff --git a/routers/api/v1/org/member.go b/routers/api/v1/org/member.go
index 45519e5606..1575600a65 100644
--- a/routers/api/v1/org/member.go
+++ b/routers/api/v1/org/member.go
@@ -6,6 +6,7 @@ package org
import (
"fmt"
+ "net/http"
"code.gitea.io/gitea/models"
"code.gitea.io/gitea/modules/context"
@@ -23,7 +24,7 @@ func listMembers(ctx *context.APIContext, publicOnly bool) {
PublicOnly: publicOnly,
})
if err != nil {
- ctx.Error(500, "GetUsersByIDs", err)
+ ctx.Error(http.StatusInternalServerError, "GetUsersByIDs", err)
return
}
@@ -31,7 +32,7 @@ func listMembers(ctx *context.APIContext, publicOnly bool) {
for i, member := range members {
apiMembers[i] = convert.ToUser(member, ctx.IsSigned, ctx.User != nil && ctx.User.IsAdmin)
}
- ctx.JSON(200, apiMembers)
+ ctx.JSON(http.StatusOK, apiMembers)
}
// ListMembers list an organization's members
@@ -50,11 +51,12 @@ func ListMembers(ctx *context.APIContext) {
// responses:
// "200":
// "$ref": "#/responses/UserList"
+
publicOnly := true
if ctx.User != nil {
isMember, err := ctx.Org.Organization.IsOrgMember(ctx.User.ID)
if err != nil {
- ctx.Error(500, "IsOrgMember", err)
+ ctx.Error(http.StatusInternalServerError, "IsOrgMember", err)
return
}
publicOnly = !isMember
@@ -78,6 +80,7 @@ func ListPublicMembers(ctx *context.APIContext) {
// responses:
// "200":
// "$ref": "#/responses/UserList"
+
listMembers(ctx, true)
}
@@ -100,8 +103,11 @@ func IsMember(ctx *context.APIContext) {
// responses:
// "204":
// description: user is a member
+ // "302":
+ // description: redirection to /orgs/{org}/public_members/{username}
// "404":
// description: user is not a member
+
userToCheck := user.GetUserByParams(ctx)
if ctx.Written() {
return
@@ -109,14 +115,14 @@ func IsMember(ctx *context.APIContext) {
if ctx.User != nil {
userIsMember, err := ctx.Org.Organization.IsOrgMember(ctx.User.ID)
if err != nil {
- ctx.Error(500, "IsOrgMember", err)
+ ctx.Error(http.StatusInternalServerError, "IsOrgMember", err)
return
} else if userIsMember {
userToCheckIsMember, err := ctx.Org.Organization.IsOrgMember(userToCheck.ID)
if err != nil {
- ctx.Error(500, "IsOrgMember", err)
+ ctx.Error(http.StatusInternalServerError, "IsOrgMember", err)
} else if userToCheckIsMember {
- ctx.Status(204)
+ ctx.Status(http.StatusNoContent)
} else {
ctx.NotFound()
}
@@ -153,12 +159,13 @@ func IsPublicMember(ctx *context.APIContext) {
// description: user is a public member
// "404":
// description: user is not a public member
+
userToCheck := user.GetUserByParams(ctx)
if ctx.Written() {
return
}
if userToCheck.IsPublicMember(ctx.Org.Organization.ID) {
- ctx.Status(204)
+ ctx.Status(http.StatusNoContent)
} else {
ctx.NotFound()
}
@@ -185,20 +192,23 @@ func PublicizeMember(ctx *context.APIContext) {
// responses:
// "204":
// description: membership publicized
+ // "403":
+ // "$ref": "#/responses/forbidden"
+
userToPublicize := user.GetUserByParams(ctx)
if ctx.Written() {
return
}
if userToPublicize.ID != ctx.User.ID {
- ctx.Error(403, "", "Cannot publicize another member")
+ ctx.Error(http.StatusForbidden, "", "Cannot publicize another member")
return
}
err := models.ChangeOrgUserStatus(ctx.Org.Organization.ID, userToPublicize.ID, true)
if err != nil {
- ctx.Error(500, "ChangeOrgUserStatus", err)
+ ctx.Error(http.StatusInternalServerError, "ChangeOrgUserStatus", err)
return
}
- ctx.Status(204)
+ ctx.Status(http.StatusNoContent)
}
// ConcealMember make a member's membership not public
@@ -222,20 +232,23 @@ func ConcealMember(ctx *context.APIContext) {
// responses:
// "204":
// "$ref": "#/responses/empty"
+ // "403":
+ // "$ref": "#/responses/forbidden"
+
userToConceal := user.GetUserByParams(ctx)
if ctx.Written() {
return
}
if userToConceal.ID != ctx.User.ID {
- ctx.Error(403, "", "Cannot conceal another member")
+ ctx.Error(http.StatusForbidden, "", "Cannot conceal another member")
return
}
err := models.ChangeOrgUserStatus(ctx.Org.Organization.ID, userToConceal.ID, false)
if err != nil {
- ctx.Error(500, "ChangeOrgUserStatus", err)
+ ctx.Error(http.StatusInternalServerError, "ChangeOrgUserStatus", err)
return
}
- ctx.Status(204)
+ ctx.Status(http.StatusNoContent)
}
// DeleteMember remove a member from an organization
@@ -259,12 +272,13 @@ func DeleteMember(ctx *context.APIContext) {
// responses:
// "204":
// description: member removed
+
member := user.GetUserByParams(ctx)
if ctx.Written() {
return
}
if err := ctx.Org.Organization.RemoveMember(member.ID); err != nil {
- ctx.Error(500, "RemoveMember", err)
+ ctx.Error(http.StatusInternalServerError, "RemoveMember", err)
}
- ctx.Status(204)
+ ctx.Status(http.StatusNoContent)
}