diff options
author | Joram Wilander <jwawilander@gmail.com> | 2017-03-24 16:46:11 -0400 |
---|---|---|
committer | Corey Hulen <corey@hulen.com> | 2017-03-24 13:46:11 -0700 |
commit | 69fb47b88bc8d97c4797fa72e60416f8fb658e20 (patch) | |
tree | 263641b645eb1c1403d238c91c470de49a5a516d /model | |
parent | 28a78d76074749a3b7f1ef2a56617b0a1c7fd623 (diff) | |
download | chat-69fb47b88bc8d97c4797fa72e60416f8fb658e20.tar.gz chat-69fb47b88bc8d97c4797fa72e60416f8fb658e20.tar.bz2 chat-69fb47b88bc8d97c4797fa72e60416f8fb658e20.zip |
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
Diffstat (limited to 'model')
-rw-r--r-- | model/client4.go | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/model/client4.go b/model/client4.go index c567ab755..9ad9c9ae4 100644 --- a/model/client4.go +++ b/model/client4.go @@ -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)} |