1
1
mirror of https://github.com/go-gitea/gitea synced 2025-07-22 18:28:37 +00:00

Convert all API handers to use *context.APIContext

This commit is contained in:
Unknwon
2016-03-13 18:49:16 -04:00
parent db4da7beec
commit dd6faf7f9b
20 changed files with 204 additions and 196 deletions

View File

@@ -12,10 +12,10 @@ import (
)
// https://github.com/gogits/go-gogs-client/wiki/Users#list-access-tokens-for-a-user
func ListAccessTokens(ctx *context.Context) {
func ListAccessTokens(ctx *context.APIContext) {
tokens, err := models.ListAccessTokens(ctx.User.Id)
if err != nil {
ctx.APIError(500, "ListAccessTokens", err)
ctx.Error(500, "ListAccessTokens", err)
return
}
@@ -27,13 +27,13 @@ func ListAccessTokens(ctx *context.Context) {
}
// https://github.com/gogits/go-gogs-client/wiki/Users#create-a-access-token
func CreateAccessToken(ctx *context.Context, form api.CreateAccessTokenOption) {
func CreateAccessToken(ctx *context.APIContext, form api.CreateAccessTokenOption) {
t := &models.AccessToken{
UID: ctx.User.Id,
Name: form.Name,
}
if err := models.NewAccessToken(t); err != nil {
ctx.APIError(500, "NewAccessToken", err)
ctx.Error(500, "NewAccessToken", err)
return
}
ctx.JSON(201, &api.AccessToken{t.Name, t.Sha1})

View File

@@ -14,10 +14,10 @@ import (
)
// https://github.com/gogits/go-gogs-client/wiki/Users-Emails#list-email-addresses-for-a-user
func ListEmails(ctx *context.Context) {
func ListEmails(ctx *context.APIContext) {
emails, err := models.GetEmailAddresses(ctx.User.Id)
if err != nil {
ctx.Handle(500, "GetEmailAddresses", err)
ctx.Error(500, "GetEmailAddresses", err)
return
}
apiEmails := make([]*api.Email, len(emails))
@@ -28,7 +28,7 @@ func ListEmails(ctx *context.Context) {
}
// https://github.com/gogits/go-gogs-client/wiki/Users-Emails#add-email-addresses
func AddEmail(ctx *context.Context, form api.CreateEmailOption) {
func AddEmail(ctx *context.APIContext, form api.CreateEmailOption) {
if len(form.Emails) == 0 {
ctx.Status(422)
return
@@ -45,9 +45,9 @@ func AddEmail(ctx *context.Context, form api.CreateEmailOption) {
if err := models.AddEmailAddresses(emails); err != nil {
if models.IsErrEmailAlreadyUsed(err) {
ctx.APIError(422, "", "Email address has been used: "+err.(models.ErrEmailAlreadyUsed).Email)
ctx.Error(422, "", "Email address has been used: "+err.(models.ErrEmailAlreadyUsed).Email)
} else {
ctx.APIError(500, "AddEmailAddresses", err)
ctx.Error(500, "AddEmailAddresses", err)
}
return
}
@@ -60,7 +60,7 @@ func AddEmail(ctx *context.Context, form api.CreateEmailOption) {
}
// https://github.com/gogits/go-gogs-client/wiki/Users-Emails#delete-email-addresses
func DeleteEmail(ctx *context.Context, form api.CreateEmailOption) {
func DeleteEmail(ctx *context.APIContext, form api.CreateEmailOption) {
if len(form.Emails) == 0 {
ctx.Status(204)
return
@@ -74,7 +74,7 @@ func DeleteEmail(ctx *context.Context, form api.CreateEmailOption) {
}
if err := models.DeleteEmailAddresses(emails); err != nil {
ctx.APIError(500, "DeleteEmailAddresses", err)
ctx.Error(500, "DeleteEmailAddresses", err)
return
}
ctx.Status(204)

View File

@@ -12,7 +12,7 @@ import (
"github.com/gogits/gogs/routers/api/v1/convert"
)
func responseApiUsers(ctx *context.Context, users []*models.User) {
func responseApiUsers(ctx *context.APIContext, users []*models.User) {
apiUsers := make([]*api.User, len(users))
for i := range users {
apiUsers[i] = convert.ToApiUser(users[i])
@@ -20,21 +20,21 @@ func responseApiUsers(ctx *context.Context, users []*models.User) {
ctx.JSON(200, &apiUsers)
}
func listUserFollowers(ctx *context.Context, u *models.User) {
func listUserFollowers(ctx *context.APIContext, u *models.User) {
users, err := u.GetFollowers(ctx.QueryInt("page"))
if err != nil {
ctx.APIError(500, "GetUserFollowers", err)
ctx.Error(500, "GetUserFollowers", err)
return
}
responseApiUsers(ctx, users)
}
func ListMyFollowers(ctx *context.Context) {
func ListMyFollowers(ctx *context.APIContext) {
listUserFollowers(ctx, ctx.User)
}
// https://github.com/gogits/go-gogs-client/wiki/Users-Followers#list-followers-of-a-user
func ListFollowers(ctx *context.Context) {
func ListFollowers(ctx *context.APIContext) {
u := GetUserByParams(ctx)
if ctx.Written() {
return
@@ -42,21 +42,21 @@ func ListFollowers(ctx *context.Context) {
listUserFollowers(ctx, u)
}
func listUserFollowing(ctx *context.Context, u *models.User) {
func listUserFollowing(ctx *context.APIContext, u *models.User) {
users, err := u.GetFollowing(ctx.QueryInt("page"))
if err != nil {
ctx.APIError(500, "GetFollowing", err)
ctx.Error(500, "GetFollowing", err)
return
}
responseApiUsers(ctx, users)
}
func ListMyFollowing(ctx *context.Context) {
func ListMyFollowing(ctx *context.APIContext) {
listUserFollowing(ctx, ctx.User)
}
// https://github.com/gogits/go-gogs-client/wiki/Users-Followers#list-users-followed-by-another-user
func ListFollowing(ctx *context.Context) {
func ListFollowing(ctx *context.APIContext) {
u := GetUserByParams(ctx)
if ctx.Written() {
return
@@ -64,16 +64,16 @@ func ListFollowing(ctx *context.Context) {
listUserFollowing(ctx, u)
}
func checkUserFollowing(ctx *context.Context, u *models.User, followID int64) {
func checkUserFollowing(ctx *context.APIContext, u *models.User, followID int64) {
if u.IsFollowing(followID) {
ctx.Status(204)
} else {
ctx.Error(404)
ctx.Status(404)
}
}
// https://github.com/gogits/go-gogs-client/wiki/Users-Followers#check-if-you-are-following-a-user
func CheckMyFollowing(ctx *context.Context) {
func CheckMyFollowing(ctx *context.APIContext) {
target := GetUserByParams(ctx)
if ctx.Written() {
return
@@ -82,7 +82,7 @@ func CheckMyFollowing(ctx *context.Context) {
}
// https://github.com/gogits/go-gogs-client/wiki/Users-Followers#check-if-one-user-follows-another
func CheckFollowing(ctx *context.Context) {
func CheckFollowing(ctx *context.APIContext) {
u := GetUserByParams(ctx)
if ctx.Written() {
return
@@ -95,26 +95,26 @@ func CheckFollowing(ctx *context.Context) {
}
// https://github.com/gogits/go-gogs-client/wiki/Users-Followers#follow-a-user
func Follow(ctx *context.Context) {
func Follow(ctx *context.APIContext) {
target := GetUserByParams(ctx)
if ctx.Written() {
return
}
if err := models.FollowUser(ctx.User.Id, target.Id); err != nil {
ctx.APIError(500, "FollowUser", err)
ctx.Error(500, "FollowUser", err)
return
}
ctx.Status(204)
}
// https://github.com/gogits/go-gogs-client/wiki/Users-Followers#unfollow-a-user
func Unfollow(ctx *context.Context) {
func Unfollow(ctx *context.APIContext) {
target := GetUserByParams(ctx)
if ctx.Written() {
return
}
if err := models.UnfollowUser(ctx.User.Id, target.Id); err != nil {
ctx.APIError(500, "UnfollowUser", err)
ctx.Error(500, "UnfollowUser", err)
return
}
ctx.Status(204)

View File

@@ -14,13 +14,13 @@ import (
"github.com/gogits/gogs/routers/api/v1/repo"
)
func GetUserByParamsName(ctx *context.Context, name string) *models.User {
func GetUserByParamsName(ctx *context.APIContext, name string) *models.User {
user, err := models.GetUserByName(ctx.Params(name))
if err != nil {
if models.IsErrUserNotExist(err) {
ctx.Error(404)
ctx.Status(404)
} else {
ctx.APIError(500, "GetUserByName", err)
ctx.Error(500, "GetUserByName", err)
}
return nil
}
@@ -28,7 +28,7 @@ func GetUserByParamsName(ctx *context.Context, name string) *models.User {
}
// GetUserByParams returns user whose name is presented in URL paramenter.
func GetUserByParams(ctx *context.Context) *models.User {
func GetUserByParams(ctx *context.APIContext) *models.User {
return GetUserByParamsName(ctx, ":username")
}
@@ -36,10 +36,10 @@ func composePublicKeysAPILink() string {
return setting.AppUrl + "api/v1/user/keys/"
}
func listPublicKeys(ctx *context.Context, uid int64) {
func listPublicKeys(ctx *context.APIContext, uid int64) {
keys, err := models.ListPublicKeys(uid)
if err != nil {
ctx.APIError(500, "ListPublicKeys", err)
ctx.Error(500, "ListPublicKeys", err)
return
}
@@ -53,12 +53,12 @@ func listPublicKeys(ctx *context.Context, uid int64) {
}
// https://github.com/gogits/go-gogs-client/wiki/Users-Public-Keys#list-your-public-keys
func ListMyPublicKeys(ctx *context.Context) {
func ListMyPublicKeys(ctx *context.APIContext) {
listPublicKeys(ctx, ctx.User.Id)
}
// https://github.com/gogits/go-gogs-client/wiki/Users-Public-Keys#list-public-keys-for-a-user
func ListPublicKeys(ctx *context.Context) {
func ListPublicKeys(ctx *context.APIContext) {
user := GetUserByParams(ctx)
if ctx.Written() {
return
@@ -67,13 +67,13 @@ func ListPublicKeys(ctx *context.Context) {
}
// https://github.com/gogits/go-gogs-client/wiki/Users-Public-Keys#get-a-single-public-key
func GetPublicKey(ctx *context.Context) {
func GetPublicKey(ctx *context.APIContext) {
key, err := models.GetPublicKeyByID(ctx.ParamsInt64(":id"))
if err != nil {
if models.IsErrKeyNotExist(err) {
ctx.Error(404)
ctx.Status(404)
} else {
ctx.Handle(500, "GetPublicKeyByID", err)
ctx.Error(500, "GetPublicKeyByID", err)
}
return
}
@@ -83,7 +83,7 @@ func GetPublicKey(ctx *context.Context) {
}
// CreateUserPublicKey creates new public key to given user by ID.
func CreateUserPublicKey(ctx *context.Context, form api.CreateKeyOption, uid int64) {
func CreateUserPublicKey(ctx *context.APIContext, form api.CreateKeyOption, uid int64) {
content, err := models.CheckPublicKeyString(form.Key)
if err != nil {
repo.HandleCheckKeyStringError(ctx, err)
@@ -100,17 +100,17 @@ func CreateUserPublicKey(ctx *context.Context, form api.CreateKeyOption, uid int
}
// https://github.com/gogits/go-gogs-client/wiki/Users-Public-Keys#create-a-public-key
func CreatePublicKey(ctx *context.Context, form api.CreateKeyOption) {
func CreatePublicKey(ctx *context.APIContext, form api.CreateKeyOption) {
CreateUserPublicKey(ctx, form, ctx.User.Id)
}
// https://github.com/gogits/go-gogs-client/wiki/Users-Public-Keys#delete-a-public-key
func DeletePublicKey(ctx *context.Context) {
func DeletePublicKey(ctx *context.APIContext) {
if err := models.DeletePublicKey(ctx.User, ctx.ParamsInt64(":id")); err != nil {
if models.IsErrKeyAccessDenied(err) {
ctx.APIError(403, "", "You do not have access to this key")
ctx.Error(403, "", "You do not have access to this key")
} else {
ctx.APIError(500, "DeletePublicKey", err)
ctx.Error(500, "DeletePublicKey", err)
}
return
}

View File

@@ -14,7 +14,7 @@ import (
)
// https://github.com/gogits/go-gogs-client/wiki/Users#search-users
func Search(ctx *context.Context) {
func Search(ctx *context.APIContext) {
opts := &models.SearchUserOptions{
Keyword: ctx.Query("q"),
Type: models.USER_TYPE_INDIVIDUAL,
@@ -53,13 +53,13 @@ func Search(ctx *context.Context) {
}
// https://github.com/gogits/go-gogs-client/wiki/Users#get-a-single-user
func GetInfo(ctx *context.Context) {
func GetInfo(ctx *context.APIContext) {
u, err := models.GetUserByName(ctx.Params(":username"))
if err != nil {
if models.IsErrUserNotExist(err) {
ctx.Error(404)
ctx.Status(404)
} else {
ctx.APIError(500, "GetUserByName", err)
ctx.Error(500, "GetUserByName", err)
}
return
}