Add query parameters to get posts v4 endpoint (#5858)

* Add since query paremeter to get posts v4 endpoint

* Add query paremeters for before/after to get posts v4 endpoint
Этот коммит содержится в:
Joram Wilander
2017-03-24 16:46:11 -04:00
коммит произвёл Corey Hulen
родитель 28a78d7607
Коммит 69fb47b88b
4 изменённых файлов: 214 добавлений и 11 удалений

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

@@ -1159,6 +1159,39 @@ func (c *Client4) GetPostsForChannel(channelId string, page, perPage int, etag s
}
}
// GetPostsSince gets posts created after a specified time as Unix time in milliseconds.
func (c *Client4) GetPostsSince(channelId string, time int64) (*PostList, *Response) {
query := fmt.Sprintf("?since=%v", time)
if r, err := c.DoApiGet(c.GetChannelRoute(channelId)+"/posts"+query, ""); err != nil {
return nil, &Response{StatusCode: r.StatusCode, Error: err}
} else {
defer closeBody(r)
return PostListFromJson(r.Body), BuildResponse(r)
}
}
// GetPostsAfter gets a page of posts that were posted after the post provided.
func (c *Client4) GetPostsAfter(channelId, postId string, page, perPage int, etag string) (*PostList, *Response) {
query := fmt.Sprintf("?page=%v&per_page=%v&after=%v", page, perPage, postId)
if r, err := c.DoApiGet(c.GetChannelRoute(channelId)+"/posts"+query, etag); err != nil {
return nil, &Response{StatusCode: r.StatusCode, Error: err}
} else {
defer closeBody(r)
return PostListFromJson(r.Body), BuildResponse(r)
}
}
// GetPostsBefore gets a page of posts that were posted before the post provided.
func (c *Client4) GetPostsBefore(channelId, postId string, page, perPage int, etag string) (*PostList, *Response) {
query := fmt.Sprintf("?page=%v&per_page=%v&before=%v", page, perPage, postId)
if r, err := c.DoApiGet(c.GetChannelRoute(channelId)+"/posts"+query, etag); err != nil {
return nil, &Response{StatusCode: r.StatusCode, Error: err}
} else {
defer closeBody(r)
return PostListFromJson(r.Body), BuildResponse(r)
}
}
// SearchPosts returns any posts with matching terms string.
func (c *Client4) SearchPosts(teamId string, terms string, isOrSearch bool) (*PostList, *Response) {
requestBody := map[string]string{"terms": terms, "is_or_search": strconv.FormatBool(isOrSearch)}