summaryrefslogtreecommitdiffstats
path: root/store/sql_channel_store.go
diff options
context:
space:
mode:
Diffstat (limited to 'store/sql_channel_store.go')
-rw-r--r--store/sql_channel_store.go70
1 files changed, 20 insertions, 50 deletions
diff --git a/store/sql_channel_store.go b/store/sql_channel_store.go
index 2d62b8614..a9f99bd67 100644
--- a/store/sql_channel_store.go
+++ b/store/sql_channel_store.go
@@ -4,7 +4,6 @@
package store
import (
- l4g "code.google.com/p/log4go"
"github.com/go-gorp/gorp"
"github.com/mattermost/platform/model"
"github.com/mattermost/platform/utils"
@@ -40,55 +39,6 @@ func NewSqlChannelStore(sqlStore *SqlStore) ChannelStore {
}
func (s SqlChannelStore) UpgradeSchemaIfNeeded() {
-
- // REMOVE AFTER 1.2 SHIP see PLT-828
- if s.CreateColumnIfNotExists("ChannelMembers", "NotifyProps", "varchar(2000)", "varchar(2000)", "{}") {
- // populate NotifyProps from existing NotifyLevel field
-
- // set default values
- _, err := s.GetMaster().Exec(
- `UPDATE
- ChannelMembers
- SET
- NotifyProps = CONCAT('{"desktop":"', CONCAT(NotifyLevel, '","mark_unread":"` + model.CHANNEL_MARK_UNREAD_ALL + `"}'))`)
- if err != nil {
- l4g.Error("Unable to set default values for ChannelMembers.NotifyProps")
- l4g.Error(err.Error())
- }
-
- // assume channels with all notifications enabled are just using the default settings
- _, err = s.GetMaster().Exec(
- `UPDATE
- ChannelMembers
- SET
- NotifyProps = '{"desktop":"` + model.CHANNEL_NOTIFY_DEFAULT + `","mark_unread":"` + model.CHANNEL_MARK_UNREAD_ALL + `"}'
- WHERE
- NotifyLevel = '` + model.CHANNEL_NOTIFY_ALL + `'`)
- if err != nil {
- l4g.Error("Unable to set values for ChannelMembers.NotifyProps when members previously had notifyLevel=all")
- l4g.Error(err.Error())
- }
-
- // set quiet mode channels to have no notifications and only mark the channel unread on mentions
- _, err = s.GetMaster().Exec(
- `UPDATE
- ChannelMembers
- SET
- NotifyProps = '{"desktop":"` + model.CHANNEL_NOTIFY_NONE + `","mark_unread":"` + model.CHANNEL_MARK_UNREAD_MENTION + `"}'
- WHERE
- NotifyLevel = 'quiet'`)
- if err != nil {
- l4g.Error("Unable to set values for ChannelMembers.NotifyProps when members previously had notifyLevel=quiet")
- l4g.Error(err.Error())
- }
-
- s.RemoveColumnIfExists("ChannelMembers", "NotifyLevel")
- }
-
- // BEGIN REMOVE AFTER 1.2.0
- s.RenameColumnIfExists("Channels", "Description", "Header", "varchar(1024)")
- s.CreateColumnIfNotExists("Channels", "Purpose", "varchar(1024)", "varchar(1024)", "")
- // END REMOVE AFTER 1.2.0
}
func (s SqlChannelStore) CreateIndexesIfNotExists() {
@@ -592,6 +542,26 @@ func (s SqlChannelStore) GetMember(channelId string, userId string) StoreChannel
return storeChannel
}
+func (s SqlChannelStore) GetMemberCount(channelId string) StoreChannel {
+ storeChannel := make(StoreChannel)
+
+ go func() {
+ result := StoreResult{}
+
+ count, err := s.GetReplica().SelectInt("SELECT count(*) FROM ChannelMembers WHERE ChannelId = :ChannelId", map[string]interface{}{"ChannelId": channelId})
+ if err != nil {
+ result.Err = model.NewAppError("SqlChannelStore.GetMemberCount", "We couldn't get the channel member count", "channel_id="+channelId+", "+err.Error())
+ } else {
+ result.Data = count
+ }
+
+ storeChannel <- result
+ close(storeChannel)
+ }()
+
+ return storeChannel
+}
+
func (s SqlChannelStore) GetExtraMembers(channelId string, limit int) StoreChannel {
storeChannel := make(StoreChannel)