user.go 648 B

123456789101112131415161718192021222324252627
  1. package context
  2. import (
  3. "gopkg.in/macaron.v1"
  4. "gitote/gitote/models"
  5. "gitote/gitote/models/errors"
  6. )
  7. // ParamsUser is the wrapper type of the target user defined by URL parameter, namely ':username'.
  8. type ParamsUser struct {
  9. *models.User
  10. }
  11. // InjectParamsUser returns a handler that retrieves target user based on URL parameter ':username',
  12. // and injects it as *ParamsUser.
  13. func InjectParamsUser() macaron.Handler {
  14. return func(c *Context) {
  15. user, err := models.GetUserByName(c.Params(":username"))
  16. if err != nil {
  17. c.NotFoundOrServerError("GetUserByName", errors.IsUserNotExist, err)
  18. return
  19. }
  20. c.Map(&ParamsUser{user})
  21. }
  22. }