aboutsummaryrefslogtreecommitdiffstats
path: root/routers/repo
diff options
context:
space:
mode:
Diffstat (limited to 'routers/repo')
-rw-r--r--routers/repo/repo.go42
1 files changed, 24 insertions, 18 deletions
diff --git a/routers/repo/repo.go b/routers/repo/repo.go
index e9ad7d1ab4..834195d83f 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) {