aboutsummaryrefslogtreecommitdiff
path: root/routes/api/v1/user
diff options
context:
space:
mode:
Diffstat (limited to 'routes/api/v1/user')
-rw-r--r--routes/api/v1/user/app.go12
-rw-r--r--routes/api/v1/user/email.go23
-rw-r--r--routes/api/v1/user/follower.go24
-rw-r--r--routes/api/v1/user/key.go32
-rw-r--r--routes/api/v1/user/user.go14
5 files changed, 44 insertions, 61 deletions
diff --git a/routes/api/v1/user/app.go b/routes/api/v1/user/app.go
index 09ac1909..864ede54 100644
--- a/routes/api/v1/user/app.go
+++ b/routes/api/v1/user/app.go
@@ -5,17 +5,18 @@
package user
import (
+ "net/http"
+
api "github.com/gogs/go-gogs-client"
"github.com/gogs/gogs/models"
"github.com/gogs/gogs/pkg/context"
)
-// https://github.com/gogs/go-gogs-client/wiki/Users#list-access-tokens-for-a-user
func ListAccessTokens(c *context.APIContext) {
tokens, err := models.ListAccessTokens(c.User.ID)
if err != nil {
- c.Error(500, "ListAccessTokens", err)
+ c.ServerError("ListAccessTokens", err)
return
}
@@ -23,18 +24,17 @@ func ListAccessTokens(c *context.APIContext) {
for i := range tokens {
apiTokens[i] = &api.AccessToken{tokens[i].Name, tokens[i].Sha1}
}
- c.JSON(200, &apiTokens)
+ c.JSONSuccess(&apiTokens)
}
-// https://github.com/gogs/go-gogs-client/wiki/Users#create-a-access-token
func CreateAccessToken(c *context.APIContext, form api.CreateAccessTokenOption) {
t := &models.AccessToken{
UID: c.User.ID,
Name: form.Name,
}
if err := models.NewAccessToken(t); err != nil {
- c.Error(500, "NewAccessToken", err)
+ c.ServerError("NewAccessToken", err)
return
}
- c.JSON(201, &api.AccessToken{t.Name, t.Sha1})
+ c.JSON(http.StatusCreated, &api.AccessToken{t.Name, t.Sha1})
}
diff --git a/routes/api/v1/user/email.go b/routes/api/v1/user/email.go
index 2e16212c..e84353a6 100644
--- a/routes/api/v1/user/email.go
+++ b/routes/api/v1/user/email.go
@@ -5,6 +5,8 @@
package user
import (
+ "net/http"
+
api "github.com/gogs/go-gogs-client"
"github.com/gogs/gogs/models"
@@ -13,24 +15,22 @@ import (
"github.com/gogs/gogs/routes/api/v1/convert"
)
-// https://github.com/gogs/go-gogs-client/wiki/Users-Emails#list-email-addresses-for-a-user
func ListEmails(c *context.APIContext) {
emails, err := models.GetEmailAddresses(c.User.ID)
if err != nil {
- c.Error(500, "GetEmailAddresses", err)
+ c.ServerError("GetEmailAddresses", err)
return
}
apiEmails := make([]*api.Email, len(emails))
for i := range emails {
apiEmails[i] = convert.ToEmail(emails[i])
}
- c.JSON(200, &apiEmails)
+ c.JSONSuccess(&apiEmails)
}
-// https://github.com/gogs/go-gogs-client/wiki/Users-Emails#add-email-addresses
func AddEmail(c *context.APIContext, form api.CreateEmailOption) {
if len(form.Emails) == 0 {
- c.Status(422)
+ c.Status(http.StatusUnprocessableEntity)
return
}
@@ -45,9 +45,9 @@ func AddEmail(c *context.APIContext, form api.CreateEmailOption) {
if err := models.AddEmailAddresses(emails); err != nil {
if models.IsErrEmailAlreadyUsed(err) {
- c.Error(422, "", "Email address has been used: "+err.(models.ErrEmailAlreadyUsed).Email)
+ c.Error(http.StatusUnprocessableEntity, "", "email address has been used: "+err.(models.ErrEmailAlreadyUsed).Email)
} else {
- c.Error(500, "AddEmailAddresses", err)
+ c.Error(http.StatusInternalServerError, "AddEmailAddresses", err)
}
return
}
@@ -56,13 +56,12 @@ func AddEmail(c *context.APIContext, form api.CreateEmailOption) {
for i := range emails {
apiEmails[i] = convert.ToEmail(emails[i])
}
- c.JSON(201, &apiEmails)
+ c.JSON(http.StatusCreated, &apiEmails)
}
-// https://github.com/gogs/go-gogs-client/wiki/Users-Emails#delete-email-addresses
func DeleteEmail(c *context.APIContext, form api.CreateEmailOption) {
if len(form.Emails) == 0 {
- c.Status(204)
+ c.NoContent()
return
}
@@ -75,8 +74,8 @@ func DeleteEmail(c *context.APIContext, form api.CreateEmailOption) {
}
if err := models.DeleteEmailAddresses(emails); err != nil {
- c.Error(500, "DeleteEmailAddresses", err)
+ c.Error(http.StatusInternalServerError, "DeleteEmailAddresses", err)
return
}
- c.Status(204)
+ c.NoContent()
}
diff --git a/routes/api/v1/user/follower.go b/routes/api/v1/user/follower.go
index 7c743025..d5464f05 100644
--- a/routes/api/v1/user/follower.go
+++ b/routes/api/v1/user/follower.go
@@ -16,13 +16,13 @@ func responseApiUsers(c *context.APIContext, users []*models.User) {
for i := range users {
apiUsers[i] = users[i].APIFormat()
}
- c.JSON(200, &apiUsers)
+ c.JSONSuccess(&apiUsers)
}
func listUserFollowers(c *context.APIContext, u *models.User) {
users, err := u.GetFollowers(c.QueryInt("page"))
if err != nil {
- c.Error(500, "GetUserFollowers", err)
+ c.ServerError("GetUserFollowers", err)
return
}
responseApiUsers(c, users)
@@ -32,7 +32,6 @@ func ListMyFollowers(c *context.APIContext) {
listUserFollowers(c, c.User)
}
-// https://github.com/gogs/go-gogs-client/wiki/Users-Followers#list-followers-of-a-user
func ListFollowers(c *context.APIContext) {
u := GetUserByParams(c)
if c.Written() {
@@ -44,7 +43,7 @@ func ListFollowers(c *context.APIContext) {
func listUserFollowing(c *context.APIContext, u *models.User) {
users, err := u.GetFollowing(c.QueryInt("page"))
if err != nil {
- c.Error(500, "GetFollowing", err)
+ c.ServerError("GetFollowing", err)
return
}
responseApiUsers(c, users)
@@ -54,7 +53,6 @@ func ListMyFollowing(c *context.APIContext) {
listUserFollowing(c, c.User)
}
-// https://github.com/gogs/go-gogs-client/wiki/Users-Followers#list-users-followed-by-another-user
func ListFollowing(c *context.APIContext) {
u := GetUserByParams(c)
if c.Written() {
@@ -65,13 +63,12 @@ func ListFollowing(c *context.APIContext) {
func checkUserFollowing(c *context.APIContext, u *models.User, followID int64) {
if u.IsFollowing(followID) {
- c.Status(204)
+ c.NotFound()
} else {
- c.Status(404)
+ c.NotFound()
}
}
-// https://github.com/gogs/go-gogs-client/wiki/Users-Followers#check-if-you-are-following-a-user
func CheckMyFollowing(c *context.APIContext) {
target := GetUserByParams(c)
if c.Written() {
@@ -80,7 +77,6 @@ func CheckMyFollowing(c *context.APIContext) {
checkUserFollowing(c, c.User, target.ID)
}
-// https://github.com/gogs/go-gogs-client/wiki/Users-Followers#check-if-one-user-follows-another
func CheckFollowing(c *context.APIContext) {
u := GetUserByParams(c)
if c.Written() {
@@ -93,28 +89,26 @@ func CheckFollowing(c *context.APIContext) {
checkUserFollowing(c, u, target.ID)
}
-// https://github.com/gogs/go-gogs-client/wiki/Users-Followers#follow-a-user
func Follow(c *context.APIContext) {
target := GetUserByParams(c)
if c.Written() {
return
}
if err := models.FollowUser(c.User.ID, target.ID); err != nil {
- c.Error(500, "FollowUser", err)
+ c.ServerError("FollowUser", err)
return
}
- c.Status(204)
+ c.NoContent()
}
-// https://github.com/gogs/go-gogs-client/wiki/Users-Followers#unfollow-a-user
func Unfollow(c *context.APIContext) {
target := GetUserByParams(c)
if c.Written() {
return
}
if err := models.UnfollowUser(c.User.ID, target.ID); err != nil {
- c.Error(500, "UnfollowUser", err)
+ c.ServerError("UnfollowUser", err)
return
}
- c.Status(204)
+ c.NoContent()
}
diff --git a/routes/api/v1/user/key.go b/routes/api/v1/user/key.go
index 97188861..46e4df66 100644
--- a/routes/api/v1/user/key.go
+++ b/routes/api/v1/user/key.go
@@ -6,6 +6,7 @@ package user
import (
api "github.com/gogs/go-gogs-client"
+ "net/http"
"github.com/gogs/gogs/models"
"github.com/gogs/gogs/models/errors"
@@ -18,11 +19,7 @@ import (
func GetUserByParamsName(c *context.APIContext, name string) *models.User {
user, err := models.GetUserByName(c.Params(name))
if err != nil {
- if errors.IsUserNotExist(err) {
- c.Status(404)
- } else {
- c.Error(500, "GetUserByName", err)
- }
+ c.NotFoundOrServerError("GetUserByName", errors.IsUserNotExist, err)
return nil
}
return user
@@ -40,7 +37,7 @@ func composePublicKeysAPILink() string {
func listPublicKeys(c *context.APIContext, uid int64) {
keys, err := models.ListPublicKeys(uid)
if err != nil {
- c.Error(500, "ListPublicKeys", err)
+ c.ServerError("ListPublicKeys", err)
return
}
@@ -50,15 +47,13 @@ func listPublicKeys(c *context.APIContext, uid int64) {
apiKeys[i] = convert.ToPublicKey(apiLink, keys[i])
}
- c.JSON(200, &apiKeys)
+ c.JSONSuccess(&apiKeys)
}
-// https://github.com/gogs/go-gogs-client/wiki/Users-Public-Keys#list-your-public-keys
func ListMyPublicKeys(c *context.APIContext) {
listPublicKeys(c, c.User.ID)
}
-// https://github.com/gogs/go-gogs-client/wiki/Users-Public-Keys#list-public-keys-for-a-user
func ListPublicKeys(c *context.APIContext) {
user := GetUserByParams(c)
if c.Written() {
@@ -67,20 +62,15 @@ func ListPublicKeys(c *context.APIContext) {
listPublicKeys(c, user.ID)
}
-// https://github.com/gogs/go-gogs-client/wiki/Users-Public-Keys#get-a-single-public-key
func GetPublicKey(c *context.APIContext) {
key, err := models.GetPublicKeyByID(c.ParamsInt64(":id"))
if err != nil {
- if models.IsErrKeyNotExist(err) {
- c.Status(404)
- } else {
- c.Error(500, "GetPublicKeyByID", err)
- }
+ c.NotFoundOrServerError("GetPublicKeyByID", models.IsErrKeyNotExist, err)
return
}
apiLink := composePublicKeysAPILink()
- c.JSON(200, convert.ToPublicKey(apiLink, key))
+ c.JSONSuccess(convert.ToPublicKey(apiLink, key))
}
// CreateUserPublicKey creates new public key to given user by ID.
@@ -97,24 +87,22 @@ func CreateUserPublicKey(c *context.APIContext, form api.CreateKeyOption, uid in
return
}
apiLink := composePublicKeysAPILink()
- c.JSON(201, convert.ToPublicKey(apiLink, key))
+ c.JSON(http.StatusCreated, convert.ToPublicKey(apiLink, key))
}
-// https://github.com/gogs/go-gogs-client/wiki/Users-Public-Keys#create-a-public-key
func CreatePublicKey(c *context.APIContext, form api.CreateKeyOption) {
CreateUserPublicKey(c, form, c.User.ID)
}
-// https://github.com/gogs/go-gogs-client/wiki/Users-Public-Keys#delete-a-public-key
func DeletePublicKey(c *context.APIContext) {
if err := models.DeletePublicKey(c.User, c.ParamsInt64(":id")); err != nil {
if models.IsErrKeyAccessDenied(err) {
- c.Error(403, "", "You do not have access to this key")
+ c.Error(http.StatusForbidden, "", "you do not have access to this key")
} else {
- c.Error(500, "DeletePublicKey", err)
+ c.Error(http.StatusInternalServerError, "DeletePublicKey", err)
}
return
}
- c.Status(204)
+ c.NoContent()
}
diff --git a/routes/api/v1/user/user.go b/routes/api/v1/user/user.go
index b2af271b..9a5cbb5c 100644
--- a/routes/api/v1/user/user.go
+++ b/routes/api/v1/user/user.go
@@ -5,6 +5,8 @@
package user
import (
+ "net/http"
+
"github.com/Unknwon/com"
api "github.com/gogs/go-gogs-client"
@@ -27,7 +29,7 @@ func Search(c *context.APIContext) {
users, _, err := models.SearchUserByName(opts)
if err != nil {
- c.JSON(500, map[string]interface{}{
+ c.JSON(http.StatusInternalServerError, map[string]interface{}{
"ok": false,
"error": err.Error(),
})
@@ -47,7 +49,7 @@ func Search(c *context.APIContext) {
}
}
- c.JSON(200, map[string]interface{}{
+ c.JSONSuccess(map[string]interface{}{
"ok": true,
"data": results,
})
@@ -57,9 +59,9 @@ func GetInfo(c *context.APIContext) {
u, err := models.GetUserByName(c.Params(":username"))
if err != nil {
if errors.IsUserNotExist(err) {
- c.Status(404)
+ c.NotFound()
} else {
- c.Error(500, "GetUserByName", err)
+ c.ServerError("GetUserByName", err)
}
return
}
@@ -68,9 +70,9 @@ func GetInfo(c *context.APIContext) {
if !c.IsLogged {
u.Email = ""
}
- c.JSON(200, u.APIFormat())
+ c.JSONSuccess(u.APIFormat())
}
func GetAuthenticatedUser(c *context.APIContext) {
- c.JSON(200, c.User.APIFormat())
+ c.JSONSuccess(c.User.APIFormat())
}