Add ability to use 'me' in place of user id for APIv4 (#5826)

Этот коммит содержится в:
Joram Wilander
2017-03-21 18:43:16 -04:00
коммит произвёл GitHub
родитель fd6e2f3f73
Коммит bea49cbcf3
4 изменённых файлов: 32 добавлений и 0 удалений

Просмотреть файл

@@ -333,6 +333,10 @@ func (c *Context) RequireUserId() *Context {
return c return c
} }
if c.Params.UserId == model.ME {
c.Params.UserId = c.Session.UserId
}
if len(c.Params.UserId) != 26 { if len(c.Params.UserId) != 26 {
c.SetInvalidUrlParam("user_id") c.SetInvalidUrlParam("user_id")
} }

Просмотреть файл

@@ -75,6 +75,23 @@ func TestCreateUser(t *testing.T) {
} }
} }
func TestGetMe(t *testing.T) {
th := Setup().InitBasic()
defer TearDown()
Client := th.Client
ruser, resp := Client.GetMe("")
CheckNoError(t, resp)
if ruser.Id != th.BasicUser.Id {
t.Fatal("wrong user")
}
Client.Logout()
_, resp = Client.GetMe("")
CheckUnauthorizedStatus(t, resp)
}
func TestGetUser(t *testing.T) { func TestGetUser(t *testing.T) {
th := Setup().InitBasic().InitSystemAdmin() th := Setup().InitBasic().InitSystemAdmin()
defer TearDown() defer TearDown()

Просмотреть файл

@@ -349,6 +349,16 @@ func (c *Client4) CreateUser(user *User) (*User, *Response) {
} }
} }
// GetMe returns the logged in user.
func (c *Client4) GetMe(etag string) (*User, *Response) {
if r, err := c.DoApiGet(c.GetUserRoute(ME), etag); err != nil {
return nil, &Response{StatusCode: r.StatusCode, Error: err}
} else {
defer closeBody(r)
return UserFromJson(r.Body), BuildResponse(r)
}
}
// GetUser returns a user based on the provided user id string. // GetUser returns a user based on the provided user id string.
func (c *Client4) GetUser(userId, etag string) (*User, *Response) { func (c *Client4) GetUser(userId, etag string) (*User, *Response) {
if r, err := c.DoApiGet(c.GetUserRoute(userId), etag); err != nil { if r, err := c.DoApiGet(c.GetUserRoute(userId), etag); err != nil {

Просмотреть файл

@@ -17,6 +17,7 @@ import (
) )
const ( const (
ME = "me"
USER_NOTIFY_ALL = "all" USER_NOTIFY_ALL = "all"
USER_NOTIFY_MENTION = "mention" USER_NOTIFY_MENTION = "mention"
USER_NOTIFY_NONE = "none" USER_NOTIFY_NONE = "none"