diff options
author | Unknown <joe2010xtmf@163.com> | 2014-03-08 21:25:38 -0500 |
---|---|---|
committer | Unknown <joe2010xtmf@163.com> | 2014-03-08 21:25:38 -0500 |
commit | 76ce6f98487b3754992da18969df37560e49ee82 (patch) | |
tree | 834ab9c155d06a3fba6b23831bcde24d3b8f951b /routers | |
parent | 5a05d6633d413b1c5182a0a542e173f99601a103 (diff) |
Update repo.Create
Diffstat (limited to 'routers')
-rw-r--r-- | routers/repo/repo.go | 42 | ||||
-rw-r--r-- | routers/user/user.go | 4 |
2 files changed, 26 insertions, 20 deletions
diff --git a/routers/repo/repo.go b/routers/repo/repo.go index e9ad7d1a..834195d8 100644 --- a/routers/repo/repo.go +++ b/routers/repo/repo.go @@ -7,7 +7,6 @@ package repo import ( "fmt" "net/http" - "strconv" "github.com/martini-contrib/render" "github.com/martini-contrib/sessions" @@ -18,7 +17,7 @@ import ( "github.com/gogits/gogs/modules/log" ) -func Create(req *http.Request, r render.Render, data base.TmplData, session sessions.Session) { +func Create(form auth.CreateRepoForm, req *http.Request, r render.Render, data base.TmplData, session sessions.Session) { data["Title"] = "Create repository" if req.Method == "GET" { @@ -26,30 +25,37 @@ func Create(req *http.Request, r render.Render, data base.TmplData, session sess return } + if hasErr, ok := data["HasError"]; ok && hasErr.(bool) { + r.HTML(200, "repo/create", data) + return + } + // TODO: access check - id, err := strconv.ParseInt(req.FormValue("userId"), 10, 64) - if err == nil { - var u *models.User - u, err = models.GetUserById(id) - if u == nil { - err = models.ErrUserNotExist - } - if err == nil { - _, err = models.CreateRepository(u, req.FormValue("name")) + user, err := models.GetUserById(form.UserId) + if err != nil { + if err.Error() == models.ErrUserNotExist.Error() { + data["HasError"] = true + data["ErrorMsg"] = "User does not exist" + auth.AssignForm(form, data) + r.HTML(200, "repo/create", data) + return } - if err == nil { - data["RepoName"] = u.Name + "/" + req.FormValue("name") + } + + if err == nil { + // TODO: init description and readme + if _, err = models.CreateRepository(user, form.RepoName); err == nil { + data["RepoName"] = user.Name + "/" + form.RepoName r.HTML(200, "repo/created", data) + fmt.Println("good!!!!") return } } - if err != nil { - data["ErrorMsg"] = err - log.Error("repo.Create: %v", err) - r.HTML(200, "base/error", data) - } + data["ErrorMsg"] = err + log.Error("repo.Create: %v", err) + r.HTML(200, "base/error", data) } func Delete(req *http.Request, r render.Render, data base.TmplData, session sessions.Session) { diff --git a/routers/user/user.go b/routers/user/user.go index a07d79e4..51a84400 100644 --- a/routers/user/user.go +++ b/routers/user/user.go @@ -64,8 +64,8 @@ func SignIn(form auth.LogInForm, data base.TmplData, req *http.Request, r render } data["ErrorMsg"] = err - log.Error("user.SignIn: %v", data) - r.HTML(200, "base/error", nil) + log.Error("user.SignIn: %v", err) + r.HTML(200, "base/error", data) return } |