Browse Source

Merge branch 'master' of https://gitote.in/gitote/gitote

Yoginth 7 years ago
parent
commit
df30e03d59
1 changed files with 26 additions and 0 deletions
  1. 26 0
      pkg/context/user.go

+ 26 - 0
pkg/context/user.go

@@ -0,0 +1,26 @@
+package context
+
+import (
+	"gopkg.in/macaron.v1"
+
+	"gitote/gitote/models"
+	"gitote/gitote/models/errors"
+)
+
+// ParamsUser is the wrapper type of the target user defined by URL parameter, namely ':username'.
+type ParamsUser struct {
+	*models.User
+}
+
+// InjectParamsUser returns a handler that retrieves target user based on URL parameter ':username',
+// and injects it as *ParamsUser.
+func InjectParamsUser() macaron.Handler {
+	return func(c *Context) {
+		user, err := models.GetUserByName(c.Params(":username"))
+		if err != nil {
+			c.NotFoundOrServerError("GetUserByName", errors.IsUserNotExist, err)
+			return
+		}
+		c.Map(&ParamsUser{user})
+	}
+}