diff options
Diffstat (limited to 'store/sql_session_store.go')
-rw-r--r-- | store/sql_session_store.go | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/store/sql_session_store.go b/store/sql_session_store.go index 8dccc0770..337ad16e6 100644 --- a/store/sql_session_store.go +++ b/store/sql_session_store.go @@ -255,3 +255,33 @@ func (me SqlSessionStore) UpdateDeviceId(id, deviceId string) StoreChannel { return storeChannel } + +func (me SqlSessionStore) AnalyticsSessionCount(teamId string) StoreChannel { + storeChannel := make(StoreChannel) + + go func() { + result := StoreResult{} + + query := + `SELECT + COUNT(*) + FROM + Sessions + WHERE ExpiresAt > :Time` + + if len(teamId) > 0 { + query += " AND TeamId = :TeamId" + } + + if c, err := me.GetReplica().SelectInt(query, map[string]interface{}{"Time": model.GetMillis(), "TeamId": teamId}); err != nil { + result.Err = model.NewLocAppError("SqlSessionStore.AnalyticsSessionCount", "store.sql_session.analytics_session_count.app_error", nil, err.Error()) + } else { + result.Data = c + } + + storeChannel <- result + close(storeChannel) + }() + + return storeChannel +} |