diff options
author | Saturnino Abril <saturnino.abril@gmail.com> | 2017-04-06 05:18:23 +0900 |
---|---|---|
committer | Joram Wilander <jwawilander@gmail.com> | 2017-04-05 16:18:23 -0400 |
commit | d8b732a488233d9b763d2c43ded60a420e1746a6 (patch) | |
tree | 31c4b67ab22caa912337e358aa1a68034638d36d /store/sql_post_store.go | |
parent | 51608b583a8a4254574d95618df9046954ebdef5 (diff) | |
download | chat-d8b732a488233d9b763d2c43ded60a420e1746a6.tar.gz chat-d8b732a488233d9b763d2c43ded60a420e1746a6.tar.bz2 chat-d8b732a488233d9b763d2c43ded60a420e1746a6.zip |
APIv4 GET /users/{user_id}/posts/flagged (#5984)
* APIv4 GET /users/{user_id}/posts/flagged
* change permission check
Diffstat (limited to 'store/sql_post_store.go')
-rw-r--r-- | store/sql_post_store.go | 42 |
1 files changed, 39 insertions, 3 deletions
diff --git a/store/sql_post_store.go b/store/sql_post_store.go index 14580dc5f..5779f727c 100644 --- a/store/sql_post_store.go +++ b/store/sql_post_store.go @@ -5,6 +5,7 @@ package store import ( "fmt" + "net/http" "regexp" "strconv" "strings" @@ -13,7 +14,6 @@ import ( "github.com/mattermost/platform/einterfaces" "github.com/mattermost/platform/model" "github.com/mattermost/platform/utils" - "net/http" ) type SqlPostStore struct { @@ -237,7 +237,7 @@ func (s SqlPostStore) GetFlaggedPostsForTeam(userId, teamId string, offset int, Preferences WHERE UserId = :UserId - AND Category = 'flagged_post') + AND Category = :Category) AND DeleteAt = 0 ) as A INNER JOIN Channels as B @@ -247,7 +247,43 @@ func (s SqlPostStore) GetFlaggedPostsForTeam(userId, teamId string, offset int, LIMIT :Limit OFFSET :Offset` if _, err := s.GetReplica().Select(&posts, query, map[string]interface{}{"UserId": userId, "Category": model.PREFERENCE_CATEGORY_FLAGGED_POST, "Offset": offset, "Limit": limit, "TeamId": teamId}); err != nil { - result.Err = model.NewLocAppError("SqlPostStore.GetFlaggedPosts", "store.sql_post.get_flagged_posts.app_error", nil, err.Error()) + result.Err = model.NewLocAppError("SqlPostStore.GetFlaggedPostsForTeam", "store.sql_post.get_flagged_posts.app_error", nil, err.Error()) + } else { + for _, post := range posts { + pl.AddPost(post) + pl.AddOrder(post.Id) + } + } + + result.Data = pl + + storeChannel <- result + close(storeChannel) + }() + + return storeChannel +} + +func (s SqlPostStore) GetFlaggedPostsForChannel(userId, channelId string, offset int, limit int) StoreChannel { + storeChannel := make(StoreChannel, 1) + go func() { + result := StoreResult{} + pl := model.NewPostList() + + var posts []*model.Post + query := ` + SELECT + * + FROM Posts + WHERE + Id IN (SELECT Name FROM Preferences WHERE UserId = :UserId AND Category = :Category) + AND ChannelId = :ChannelId + AND DeleteAt = 0 + ORDER BY CreateAt DESC + LIMIT :Limit OFFSET :Offset` + + if _, err := s.GetReplica().Select(&posts, query, map[string]interface{}{"UserId": userId, "Category": model.PREFERENCE_CATEGORY_FLAGGED_POST, "ChannelId": channelId, "Offset": offset, "Limit": limit}); err != nil { + result.Err = model.NewLocAppError("SqlPostStore.GetFlaggedPostsForChannel", "store.sql_post.get_flagged_posts.app_error", nil, err.Error()) } else { for _, post := range posts { pl.AddPost(post) |