PLT-1527 Add a slash command to set yourself away (#3752)

* added handlers for slash commands

* added manual status persistance

* added tests

* removed extra debug output and comments

* rebase - fixing the PR

* making echo messages after slash commands ephemeral
Этот коммит содержится в:
Dmitri Aizenberg
2016-08-31 06:24:14 -07:00
коммит произвёл Joram Wilander
родитель db660bdf9c
Коммит dc09b7781a
15 изменённых файлов: 260 добавлений и 26 удалений

Просмотреть файл

@@ -5,6 +5,7 @@ package store
import (
"database/sql"
"github.com/mattermost/platform/model"
)
@@ -22,12 +23,17 @@ func NewSqlStatusStore(sqlStore *SqlStore) StatusStore {
for _, db := range sqlStore.GetAllConns() {
table := db.AddTableWithName(model.Status{}, "Status").SetKeys(false, "UserId")
table.ColMap("UserId").SetMaxSize(26)
table.ColMap("Manual")
table.ColMap("Status").SetMaxSize(32)
}
return s
}
func (s SqlStatusStore) UpgradeSchemaIfNeeded() {
s.CreateColumnIfNotExists("Status", "Manual", "BOOLEAN", "BOOLEAN", "0")
}
func (s SqlStatusStore) CreateIndexesIfNotExists() {
s.CreateIndexIfNotExists("idx_status_user_id", "Status", "UserId")
s.CreateIndexIfNotExists("idx_status_status", "Status", "Status")

Просмотреть файл

@@ -4,14 +4,15 @@
package store
import (
"github.com/mattermost/platform/model"
"testing"
"github.com/mattermost/platform/model"
)
func TestSqlStatusStore(t *testing.T) {
Setup()
status := &model.Status{model.NewId(), model.STATUS_ONLINE, 0}
status := &model.Status{model.NewId(), model.STATUS_ONLINE, false, 0}
if err := (<-store.Status().SaveOrUpdate(status)).Err; err != nil {
t.Fatal(err)
@@ -27,12 +28,12 @@ func TestSqlStatusStore(t *testing.T) {
t.Fatal(err)
}
status2 := &model.Status{model.NewId(), model.STATUS_AWAY, 0}
status2 := &model.Status{model.NewId(), model.STATUS_AWAY, false, 0}
if err := (<-store.Status().SaveOrUpdate(status2)).Err; err != nil {
t.Fatal(err)
}
status3 := &model.Status{model.NewId(), model.STATUS_OFFLINE, 0}
status3 := &model.Status{model.NewId(), model.STATUS_OFFLINE, false, 0}
if err := (<-store.Status().SaveOrUpdate(status3)).Err; err != nil {
t.Fatal(err)
}
@@ -80,7 +81,7 @@ func TestSqlStatusStore(t *testing.T) {
func TestActiveUserCount(t *testing.T) {
Setup()
status := &model.Status{model.NewId(), model.STATUS_ONLINE, model.GetMillis()}
status := &model.Status{model.NewId(), model.STATUS_ONLINE, false, model.GetMillis()}
Must(store.Status().SaveOrUpdate(status))
if result := <-store.Status().GetTotalActiveUsersCount(); result.Err != nil {