Browse Source

Clean code

Unknown 11 years ago
parent
commit
b43cfc5b39
5 changed files with 26 additions and 30 deletions
  1. 17 0
      modules/middleware/context.go
  2. 3 9
      routers/repo/repo.go
  3. 0 1
      routers/repo/single.go
  4. 2 6
      routers/user/setting.go
  5. 4 14
      routers/user/user.go

+ 17 - 0
modules/middleware/context.go

@@ -41,6 +41,23 @@ func (ctx *Context) Query(name string) string {
 // 	return ctx.p[name]
 // 	return ctx.p[name]
 // }
 // }
 
 
+// HasError returns true if error occurs in form validation.
+func (ctx *Context) HasError() bool {
+	hasErr, ok := ctx.Data["HasError"]
+	if !ok {
+		return false
+	}
+	return hasErr.(bool)
+}
+
+// RenderWithErr used for page has form validation but need to prompt error to users.
+func (ctx *Context) RenderWithErr(msg, tpl string, form auth.Form) {
+	ctx.Data["HasError"] = true
+	ctx.Data["ErrorMsg"] = msg
+	auth.AssignForm(form, ctx.Data)
+	ctx.Render.HTML(200, tpl, ctx.Data)
+}
+
 // Handle handles and logs error by given status.
 // Handle handles and logs error by given status.
 func (ctx *Context) Handle(status int, title string, err error) {
 func (ctx *Context) Handle(status int, title string, err error) {
 	ctx.Data["ErrorMsg"] = err
 	ctx.Data["ErrorMsg"] = err

+ 3 - 9
routers/repo/repo.go

@@ -20,7 +20,7 @@ func Create(ctx *middleware.Context, form auth.CreateRepoForm) {
 		return
 		return
 	}
 	}
 
 
-	if hasErr, ok := ctx.Data["HasError"]; ok && hasErr.(bool) {
+	if ctx.HasError() {
 		ctx.Render.HTML(200, "repo/create", ctx.Data)
 		ctx.Render.HTML(200, "repo/create", ctx.Data)
 		return
 		return
 	}
 	}
@@ -30,10 +30,7 @@ func Create(ctx *middleware.Context, form auth.CreateRepoForm) {
 	user, err := models.GetUserById(form.UserId)
 	user, err := models.GetUserById(form.UserId)
 	if err != nil {
 	if err != nil {
 		if err.Error() == models.ErrUserNotExist.Error() {
 		if err.Error() == models.ErrUserNotExist.Error() {
-			ctx.Data["HasError"] = true
-			ctx.Data["ErrorMsg"] = "User does not exist"
-			auth.AssignForm(form, ctx.Data)
-			ctx.Render.HTML(200, "repo/create", ctx.Data)
+			ctx.RenderWithErr("User does not exist", "repo/create", &form)
 			return
 			return
 		}
 		}
 	}
 	}
@@ -48,10 +45,7 @@ func Create(ctx *middleware.Context, form auth.CreateRepoForm) {
 	}
 	}
 
 
 	if err.Error() == models.ErrRepoAlreadyExist.Error() {
 	if err.Error() == models.ErrRepoAlreadyExist.Error() {
-		ctx.Data["HasError"] = true
-		ctx.Data["ErrorMsg"] = "Repository name has already been used"
-		auth.AssignForm(form, ctx.Data)
-		ctx.Render.HTML(200, "repo/create", ctx.Data)
+		ctx.RenderWithErr("Repository name has already been used", "repo/create", &form)
 		return
 		return
 	}
 	}
 
 

+ 0 - 1
routers/repo/single.go

@@ -52,6 +52,5 @@ func Setting(ctx *middleware.Context) {
 
 
 	ctx.Data["Title"] = ctx.Data["Title"].(string) + " - settings"
 	ctx.Data["Title"] = ctx.Data["Title"].(string) + " - settings"
 	ctx.Data["IsRepoToolbarSetting"] = true
 	ctx.Data["IsRepoToolbarSetting"] = true
-
 	ctx.Render.HTML(200, "repo/setting", ctx.Data)
 	ctx.Render.HTML(200, "repo/setting", ctx.Data)
 }
 }

+ 2 - 6
routers/user/setting.go

@@ -128,9 +128,7 @@ func SettingSSHKeys(ctx *middleware.Context, form auth.AddSSHKeyForm) {
 		}
 		}
 
 
 		if err := models.AddPublicKey(k); err != nil {
 		if err := models.AddPublicKey(k); err != nil {
-			ctx.Data["ErrorMsg"] = err
-			log.Error("ssh.AddPublicKey: %v", err)
-			ctx.Render.HTML(200, "base/error", ctx.Data)
+			ctx.Handle(200, "ssh.AddPublicKey", err)
 			return
 			return
 		} else {
 		} else {
 			ctx.Data["AddSSHKeySuccess"] = true
 			ctx.Data["AddSSHKeySuccess"] = true
@@ -140,9 +138,7 @@ func SettingSSHKeys(ctx *middleware.Context, form auth.AddSSHKeyForm) {
 	// List existed SSH keys.
 	// List existed SSH keys.
 	keys, err := models.ListPublicKey(ctx.User.Id)
 	keys, err := models.ListPublicKey(ctx.User.Id)
 	if err != nil {
 	if err != nil {
-		ctx.Data["ErrorMsg"] = err
-		log.Error("ssh.ListPublicKey: %v", err)
-		ctx.Render.HTML(200, "base/error", ctx.Data)
+		ctx.Handle(200, "ssh.ListPublicKey", err)
 		return
 		return
 	}
 	}
 
 

+ 4 - 14
routers/user/user.go

@@ -82,10 +82,7 @@ func SignIn(ctx *middleware.Context, form auth.LogInForm) {
 	user, err := models.LoginUserPlain(form.UserName, form.Password)
 	user, err := models.LoginUserPlain(form.UserName, form.Password)
 	if err != nil {
 	if err != nil {
 		if err.Error() == models.ErrUserNotExist.Error() {
 		if err.Error() == models.ErrUserNotExist.Error() {
-			ctx.Data["HasError"] = true
-			ctx.Data["ErrorMsg"] = "Username or password is not correct"
-			auth.AssignForm(form, ctx.Data)
-			ctx.Render.HTML(200, "user/signin", ctx.Data)
+			ctx.RenderWithErr("Username or password is not correct", "user/signin", &form)
 			return
 			return
 		}
 		}
 
 
@@ -121,7 +118,7 @@ func SignUp(ctx *middleware.Context, form auth.RegisterForm) {
 		auth.AssignForm(form, ctx.Data)
 		auth.AssignForm(form, ctx.Data)
 	}
 	}
 
 
-	if hasErr, ok := ctx.Data["HasError"]; ok && hasErr.(bool) {
+	if ctx.HasError() {
 		ctx.Render.HTML(200, "user/signup", ctx.Data)
 		ctx.Render.HTML(200, "user/signup", ctx.Data)
 		return
 		return
 	}
 	}
@@ -133,18 +130,11 @@ func SignUp(ctx *middleware.Context, form auth.RegisterForm) {
 	}
 	}
 
 
 	if err := models.RegisterUser(u); err != nil {
 	if err := models.RegisterUser(u); err != nil {
-		ctx.Data["HasError"] = true
-		auth.AssignForm(form, ctx.Data)
-
 		switch err.Error() {
 		switch err.Error() {
 		case models.ErrUserAlreadyExist.Error():
 		case models.ErrUserAlreadyExist.Error():
-			ctx.Data["Err_Username"] = true
-			ctx.Data["ErrorMsg"] = "Username has been already taken"
-			ctx.Render.HTML(200, "user/signup", ctx.Data)
+			ctx.RenderWithErr("Username has been already taken", "user/signup", &form)
 		case models.ErrEmailAlreadyUsed.Error():
 		case models.ErrEmailAlreadyUsed.Error():
-			ctx.Data["Err_Email"] = true
-			ctx.Data["ErrorMsg"] = "E-mail address has been already used"
-			ctx.Render.HTML(200, "user/signup", ctx.Data)
+			ctx.RenderWithErr("E-mail address has been already used", "user/signup", &form)
 		default:
 		default:
 			ctx.Handle(200, "user.SignUp", err)
 			ctx.Handle(200, "user.SignUp", err)
 		}
 		}