From c2bc9454ce5550a180d8ee9fec75db7f3841b1ad Mon Sep 17 00:00:00 2001 From: =Corey Hulen Date: Tue, 26 Jan 2016 20:32:24 -0500 Subject: PLT-1586 adding attach device id method --- store/sql_session_store.go | 18 ++++++++++++++++++ store/sql_session_store_test.go | 22 ++++++++++++++++++++++ store/store.go | 1 + 3 files changed, 41 insertions(+) (limited to 'store') diff --git a/store/sql_session_store.go b/store/sql_session_store.go index 4762a1dfd..6532947f4 100644 --- a/store/sql_session_store.go +++ b/store/sql_session_store.go @@ -232,3 +232,21 @@ func (me SqlSessionStore) UpdateRoles(userId, roles string) StoreChannel { return storeChannel } + +func (me SqlSessionStore) UpdateDeviceId(id, deviceId string) StoreChannel { + storeChannel := make(StoreChannel) + + go func() { + result := StoreResult{} + if _, err := me.GetMaster().Exec("UPDATE Sessions SET DeviceId = :DeviceId WHERE Id = :Id", map[string]interface{}{"DeviceId": deviceId, "Id": id}); err != nil { + result.Err = model.NewLocAppError("SqlSessionStore.UpdateDeviceId", "store.sql_session.update_device_id.app_error", nil, "") + } else { + result.Data = deviceId + } + + storeChannel <- result + close(storeChannel) + }() + + return storeChannel +} diff --git a/store/sql_session_store_test.go b/store/sql_session_store_test.go index cec8e93b0..34d3128a6 100644 --- a/store/sql_session_store_test.go +++ b/store/sql_session_store_test.go @@ -157,6 +157,28 @@ func TestSessionRemoveToken(t *testing.T) { } } +func TestSessionUpdateDeviceId(t *testing.T) { + Setup() + + s1 := model.Session{} + s1.UserId = model.NewId() + s1.TeamId = model.NewId() + Must(store.Session().Save(&s1)) + + if rs1 := (<-store.Session().UpdateDeviceId(s1.Id, model.PUSH_NOTIFY_APPLE+":1234567890")); rs1.Err != nil { + t.Fatal(rs1.Err) + } + + s2 := model.Session{} + s2.UserId = model.NewId() + s2.TeamId = model.NewId() + Must(store.Session().Save(&s2)) + + if rs2 := (<-store.Session().UpdateDeviceId(s2.Id, model.PUSH_NOTIFY_APPLE+":1234567890")); rs2.Err != nil { + t.Fatal(rs2.Err) + } +} + func TestSessionStoreUpdateLastActivityAt(t *testing.T) { Setup() diff --git a/store/store.go b/store/store.go index b91b08f27..e8c5537ac 100644 --- a/store/store.go +++ b/store/store.go @@ -137,6 +137,7 @@ type SessionStore interface { PermanentDeleteSessionsByUser(teamId string) StoreChannel UpdateLastActivityAt(sessionId string, time int64) StoreChannel UpdateRoles(userId string, roles string) StoreChannel + UpdateDeviceId(sessionIdOrToken string, deviceId string) StoreChannel } type AuditStore interface { -- cgit v1.2.3-1-g7c22 From 6fd0f651b94e594dddb00800bf295af7ff42934e Mon Sep 17 00:00:00 2001 From: =Corey Hulen Date: Tue, 26 Jan 2016 21:13:44 -0500 Subject: Fixing naming --- store/store.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'store') diff --git a/store/store.go b/store/store.go index e8c5537ac..3988f0c6a 100644 --- a/store/store.go +++ b/store/store.go @@ -137,7 +137,7 @@ type SessionStore interface { PermanentDeleteSessionsByUser(teamId string) StoreChannel UpdateLastActivityAt(sessionId string, time int64) StoreChannel UpdateRoles(userId string, roles string) StoreChannel - UpdateDeviceId(sessionIdOrToken string, deviceId string) StoreChannel + UpdateDeviceId(id string, deviceId string) StoreChannel } type AuditStore interface { -- cgit v1.2.3-1-g7c22