diff options
Diffstat (limited to 'store/sql_post_store.go')
-rw-r--r-- | store/sql_post_store.go | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/store/sql_post_store.go b/store/sql_post_store.go index ae7a3c2c0..b74d53c29 100644 --- a/store/sql_post_store.go +++ b/store/sql_post_store.go @@ -189,10 +189,20 @@ func (s SqlPostStore) Get(id string) StoreChannel { result := StoreResult{} pl := &model.PostList{} + if len(id) == 0 { + result.Err = model.NewLocAppError("SqlPostStore.GetPost", "store.sql_post.get.app_error", nil, "id="+id) + storeChannel <- result + close(storeChannel) + return + } + var post model.Post err := s.GetReplica().SelectOne(&post, "SELECT * FROM Posts WHERE Id = :Id AND DeleteAt = 0", map[string]interface{}{"Id": id}) if err != nil { result.Err = model.NewLocAppError("SqlPostStore.GetPost", "store.sql_post.get.app_error", nil, "id="+id+err.Error()) + storeChannel <- result + close(storeChannel) + return } pl.AddPost(&post) @@ -204,10 +214,20 @@ func (s SqlPostStore) Get(id string) StoreChannel { rootId = post.Id } + if len(rootId) == 0 { + result.Err = model.NewLocAppError("SqlPostStore.GetPost", "store.sql_post.get.app_error", nil, "root_id="+rootId) + storeChannel <- result + close(storeChannel) + return + } + var posts []*model.Post _, err = s.GetReplica().Select(&posts, "SELECT * FROM Posts WHERE (Id = :Id OR RootId = :RootId) AND DeleteAt = 0", map[string]interface{}{"Id": rootId, "RootId": rootId}) if err != nil { result.Err = model.NewLocAppError("SqlPostStore.GetPost", "store.sql_post.get.app_error", nil, "root_id="+rootId+err.Error()) + storeChannel <- result + close(storeChannel) + return } else { for _, p := range posts { pl.AddPost(p) |