diff options
author | Unknwon <joe2010xtmf@163.com> | 2014-11-13 02:32:18 -0500 |
---|---|---|
committer | Unknwon <joe2010xtmf@163.com> | 2014-11-13 02:32:18 -0500 |
commit | 8eb5120fbd19dac1221f82d84c339b4be9b0975b (patch) | |
tree | 3238704d9968d41f3f871adda4c280e3bd73685d /routers/api/v1/repos.go | |
parent | 8c9338a5377c60c84cdee1f5781b3de5933bb3b0 (diff) |
#12, API: list user repos, list repo hooks
Diffstat (limited to 'routers/api/v1/repos.go')
-rw-r--r-- | routers/api/v1/repos.go | 157 |
1 files changed, 0 insertions, 157 deletions
diff --git a/routers/api/v1/repos.go b/routers/api/v1/repos.go deleted file mode 100644 index 2dee512f..00000000 --- a/routers/api/v1/repos.go +++ /dev/null @@ -1,157 +0,0 @@ -// Copyright 2014 The Gogs Authors. All rights reserved. -// Use of this source code is governed by a MIT-style -// license that can be found in the LICENSE file. - -package v1 - -import ( - "fmt" - "path" - "strings" - - "github.com/Unknwon/com" - - "github.com/gogits/gogs/models" - "github.com/gogits/gogs/modules/auth" - "github.com/gogits/gogs/modules/log" - "github.com/gogits/gogs/modules/middleware" -) - -type repo struct { - RepoLink string `json:"repolink"` -} - -func SearchRepos(ctx *middleware.Context) { - opt := models.SearchOption{ - Keyword: path.Base(ctx.Query("q")), - Uid: com.StrTo(ctx.Query("uid")).MustInt64(), - Limit: com.StrTo(ctx.Query("limit")).MustInt(), - } - if opt.Limit == 0 { - opt.Limit = 10 - } - - // Check visibility. - if ctx.IsSigned && opt.Uid > 0 { - if ctx.User.Id == opt.Uid { - opt.Private = true - } else { - u, err := models.GetUserById(opt.Uid) - if err != nil { - ctx.JSON(500, map[string]interface{}{ - "ok": false, - "error": err.Error(), - }) - return - } - if u.IsOrganization() && u.IsOrgOwner(ctx.User.Id) { - opt.Private = true - } - // FIXME: how about collaborators? - } - } - - repos, err := models.SearchRepositoryByName(opt) - if err != nil { - ctx.JSON(500, map[string]interface{}{ - "ok": false, - "error": err.Error(), - }) - return - } - - results := make([]*repo, len(repos)) - for i := range repos { - if err = repos[i].GetOwner(); err != nil { - ctx.JSON(500, map[string]interface{}{ - "ok": false, - "error": err.Error(), - }) - return - } - results[i] = &repo{ - RepoLink: path.Join(repos[i].Owner.Name, repos[i].Name), - } - } - - ctx.Render.JSON(200, map[string]interface{}{ - "ok": true, - "data": results, - }) -} - -func Migrate(ctx *middleware.Context, form auth.MigrateRepoForm) { - u, err := models.GetUserByName(ctx.Query("username")) - if err != nil { - ctx.JSON(500, map[string]interface{}{ - "ok": false, - "error": err.Error(), - }) - return - } - if !u.ValidtePassword(ctx.Query("password")) { - ctx.JSON(500, map[string]interface{}{ - "ok": false, - "error": "username or password is not correct", - }) - return - } - - ctxUser := u - // Not equal means current user is an organization. - if form.Uid != u.Id { - org, err := models.GetUserById(form.Uid) - if err != nil { - ctx.JSON(500, map[string]interface{}{ - "ok": false, - "error": err.Error(), - }) - return - } - ctxUser = org - } - - if ctx.HasError() { - ctx.JSON(500, map[string]interface{}{ - "ok": false, - "error": ctx.GetErrMsg(), - }) - return - } - - if ctxUser.IsOrganization() { - // Check ownership of organization. - if !ctxUser.IsOrgOwner(u.Id) { - ctx.JSON(403, map[string]interface{}{ - "ok": false, - "error": "given user is not owner of organization", - }) - return - } - } - - authStr := strings.Replace(fmt.Sprintf("://%s:%s", - form.AuthUserName, form.AuthPasswd), "@", "%40", -1) - url := strings.Replace(form.HttpsUrl, "://", authStr+"@", 1) - repo, err := models.MigrateRepository(ctxUser, form.RepoName, form.Description, form.Private, - form.Mirror, url) - if err == nil { - log.Trace("Repository migrated: %s/%s", ctxUser.Name, form.RepoName) - ctx.JSON(200, map[string]interface{}{ - "ok": true, - "data": "/" + ctxUser.Name + "/" + form.RepoName, - }) - return - } - - if repo != nil { - if errDelete := models.DeleteRepository(ctxUser.Id, repo.Id, ctxUser.Name); errDelete != nil { - log.Error(4, "DeleteRepository: %v", errDelete) - } - } - - ctx.JSON(500, map[string]interface{}{ - "ok": false, - "error": err.Error(), - }) -} |