summaryrefslogtreecommitdiffstats
path: root/store/sqlstore/emoji_store.go
diff options
context:
space:
mode:
authorChris <ccbrown112@gmail.com>2017-10-06 08:12:10 -0700
committerJoram Wilander <jwawilander@gmail.com>2017-10-06 11:12:10 -0400
commit363568b4eb3209adb1b88ceb0d8e455e6d4a1073 (patch)
tree419fb74d8e1a2e91f9f77aa5b873c005bcfbff48 /store/sqlstore/emoji_store.go
parent12501673d0c70120eebeac633e5072b2e7a2174d (diff)
downloadchat-363568b4eb3209adb1b88ceb0d8e455e6d4a1073.tar.gz
chat-363568b4eb3209adb1b88ceb0d8e455e6d4a1073.tar.bz2
chat-363568b4eb3209adb1b88ceb0d8e455e6d4a1073.zip
reduce store boiler plate (#7585)
Diffstat (limited to 'store/sqlstore/emoji_store.go')
-rw-r--r--store/sqlstore/emoji_store.go69
1 files changed, 10 insertions, 59 deletions
diff --git a/store/sqlstore/emoji_store.go b/store/sqlstore/emoji_store.go
index 5842af2f3..9ef071f02 100644
--- a/store/sqlstore/emoji_store.go
+++ b/store/sqlstore/emoji_store.go
@@ -49,15 +49,9 @@ func (es SqlEmojiStore) CreateIndexesIfNotExists() {
}
func (es SqlEmojiStore) Save(emoji *model.Emoji) store.StoreChannel {
- storeChannel := make(store.StoreChannel, 1)
-
- go func() {
- result := store.StoreResult{}
-
+ return store.Do(func(result *store.StoreResult) {
emoji.PreSave()
if result.Err = emoji.IsValid(); result.Err != nil {
- storeChannel <- result
- close(storeChannel)
return
}
@@ -66,28 +60,17 @@ func (es SqlEmojiStore) Save(emoji *model.Emoji) store.StoreChannel {
} else {
result.Data = emoji
}
-
- storeChannel <- result
- close(storeChannel)
- }()
-
- return storeChannel
+ })
}
func (es SqlEmojiStore) Get(id string, allowFromCache bool) store.StoreChannel {
- storeChannel := make(store.StoreChannel, 1)
-
- go func() {
- result := store.StoreResult{}
-
+ return store.Do(func(result *store.StoreResult) {
if allowFromCache {
if cacheItem, ok := emojiCache.Get(id); ok {
if es.metrics != nil {
es.metrics.IncrementMemCacheHitCounter("Emoji")
}
result.Data = cacheItem.(*model.Emoji)
- storeChannel <- result
- close(storeChannel)
return
} else {
if es.metrics != nil {
@@ -118,20 +101,11 @@ func (es SqlEmojiStore) Get(id string, allowFromCache bool) store.StoreChannel {
emojiCache.AddWithExpiresInSecs(id, emoji, EMOJI_CACHE_SEC)
}
}
-
- storeChannel <- result
- close(storeChannel)
- }()
-
- return storeChannel
+ })
}
func (es SqlEmojiStore) GetByName(name string) store.StoreChannel {
- storeChannel := make(store.StoreChannel, 1)
-
- go func() {
- result := store.StoreResult{}
-
+ return store.Do(func(result *store.StoreResult) {
var emoji *model.Emoji
if err := es.GetReplica().SelectOne(&emoji,
@@ -146,20 +120,11 @@ func (es SqlEmojiStore) GetByName(name string) store.StoreChannel {
} else {
result.Data = emoji
}
-
- storeChannel <- result
- close(storeChannel)
- }()
-
- return storeChannel
+ })
}
func (es SqlEmojiStore) GetList(offset, limit int) store.StoreChannel {
- storeChannel := make(store.StoreChannel, 1)
-
- go func() {
- result := store.StoreResult{}
-
+ return store.Do(func(result *store.StoreResult) {
var emoji []*model.Emoji
if _, err := es.GetReplica().Select(&emoji,
@@ -174,20 +139,11 @@ func (es SqlEmojiStore) GetList(offset, limit int) store.StoreChannel {
} else {
result.Data = emoji
}
-
- storeChannel <- result
- close(storeChannel)
- }()
-
- return storeChannel
+ })
}
func (es SqlEmojiStore) Delete(id string, time int64) store.StoreChannel {
- storeChannel := make(store.StoreChannel, 1)
-
- go func() {
- result := store.StoreResult{}
-
+ return store.Do(func(result *store.StoreResult) {
if sqlResult, err := es.GetMaster().Exec(
`Update
Emoji
@@ -203,10 +159,5 @@ func (es SqlEmojiStore) Delete(id string, time int64) store.StoreChannel {
}
emojiCache.Remove(id)
-
- storeChannel <- result
- close(storeChannel)
- }()
-
- return storeChannel
+ })
}