summaryrefslogtreecommitdiffstats
path: root/model
diff options
context:
space:
mode:
authorJoram Wilander <jwawilander@gmail.com>2017-03-24 16:46:11 -0400
committerCorey Hulen <corey@hulen.com>2017-03-24 13:46:11 -0700
commit69fb47b88bc8d97c4797fa72e60416f8fb658e20 (patch)
tree263641b645eb1c1403d238c91c470de49a5a516d /model
parent28a78d76074749a3b7f1ef2a56617b0a1c7fd623 (diff)
downloadchat-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.go33
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)}