func (s SqlChannelStore) get(id string, master bool) StoreChannel { storeChannel := make(StoreChannel) go func() { result := StoreResult{} var db *gorp.DbMap if master { db = s.GetMaster() } else { db = s.GetReplica() } if obj, err := db.Get(model.Channel{}, id); err != nil { result.Err = model.NewAppError("SqlChannelStore.Get", "We encountered an error finding the channel", "id="+id+", "+err.Error()) } else if obj == nil { result.Err = model.NewAppError("SqlChannelStore.Get", "We couldn't find the existing channel", "id="+id) } else { result.Data = obj.(*model.Channel) } storeChannel <- result close(storeChannel) }() return storeChannel }
func (s SqlChannelStore) get(id string, master bool) StoreChannel { storeChannel := make(StoreChannel) go func() { result := StoreResult{} var db *gorp.DbMap if master { db = s.GetMaster() } else { db = s.GetReplica() } if obj, err := db.Get(model.Channel{}, id); err != nil { result.Err = model.NewLocAppError("SqlChannelStore.Get", "store.sql_channel.get.find.app_error", nil, "id="+id+", "+err.Error()) } else if obj == nil { result.Err = model.NewLocAppError("SqlChannelStore.Get", "store.sql_channel.get.existing.app_error", nil, "id="+id) } else { result.Data = obj.(*model.Channel) } storeChannel <- result close(storeChannel) }() return storeChannel }
func (s SqlChannelStore) get(id string, master bool, allowFromCache bool) StoreChannel { storeChannel := make(StoreChannel, 1) go func() { result := StoreResult{} metrics := einterfaces.GetMetricsInterface() var db *gorp.DbMap if master { db = s.GetMaster() } else { db = s.GetReplica() } if allowFromCache { if cacheItem, ok := channelCache.Get(id); ok { if metrics != nil { metrics.IncrementMemCacheHitCounter("Channel") } result.Data = cacheItem.(*model.Channel) storeChannel <- result close(storeChannel) return } else { if metrics != nil { metrics.IncrementMemCacheMissCounter("Channel") } } } else { if metrics != nil { metrics.IncrementMemCacheMissCounter("Channel") } } if obj, err := db.Get(model.Channel{}, id); err != nil { result.Err = model.NewLocAppError("SqlChannelStore.Get", "store.sql_channel.get.find.app_error", nil, "id="+id+", "+err.Error()) } else if obj == nil { result.Err = model.NewLocAppError("SqlChannelStore.Get", "store.sql_channel.get.existing.app_error", nil, "id="+id) } else { result.Data = obj.(*model.Channel) channelCache.AddWithExpiresInSecs(id, obj.(*model.Channel), CHANNEL_MEMBERS_COUNTS_CACHE_SEC) } storeChannel <- result close(storeChannel) }() return storeChannel }