Avoid resetting device id when removed from push proxy (#28269)
* Avoid resetting device id when removed from push proxy * Fix test and minor improvements * Add MySQL support
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
c15c924c49
Коммит
da6b40665a
@@ -530,7 +530,9 @@ func (a *App) sendToPushProxy(msg *model.PushNotification, session *model.Sessio
|
||||
|
||||
switch pushResponse[model.PushStatus] {
|
||||
case model.PushStatusRemove:
|
||||
a.AttachDeviceId(session.Id, "", session.ExpiresAt)
|
||||
a.SetExtraSessionProps(session, map[string]string{
|
||||
model.SessionPropLastRemovedDeviceId: session.DeviceId,
|
||||
})
|
||||
a.ClearSessionCacheForUser(session.UserId)
|
||||
return errors.New(notificationErrorRemoveDevice)
|
||||
case model.PushStatusFail:
|
||||
|
||||
@@ -1240,7 +1240,7 @@ func TestClearPushNotificationSync(t *testing.T) {
|
||||
|
||||
mockSessionStore := mocks.SessionStore{}
|
||||
mockSessionStore.On("GetSessionsWithActiveDeviceIds", mock.AnythingOfType("string")).Return([]*model.Session{sess1, sess2}, nil)
|
||||
mockSessionStore.On("UpdateDeviceId", mock.AnythingOfType("string"), mock.AnythingOfType("string"), mock.AnythingOfType("int64")).Return("testdeviceID", nil)
|
||||
mockSessionStore.On("UpdateProps", mock.Anything).Return(nil)
|
||||
mockStore.On("User").Return(&mockUserStore)
|
||||
mockStore.On("Post").Return(&mockPostStore)
|
||||
mockStore.On("System").Return(&mockSystemStore)
|
||||
@@ -1316,7 +1316,7 @@ func TestUpdateMobileAppBadgeSync(t *testing.T) {
|
||||
|
||||
mockSessionStore := mocks.SessionStore{}
|
||||
mockSessionStore.On("GetSessionsWithActiveDeviceIds", mock.AnythingOfType("string")).Return([]*model.Session{sess1, sess2}, nil)
|
||||
mockSessionStore.On("UpdateDeviceId", mock.AnythingOfType("string"), mock.AnythingOfType("string"), mock.AnythingOfType("int64")).Return("testdeviceID", nil)
|
||||
mockSessionStore.On("UpdateProps", mock.Anything).Return(nil)
|
||||
mockStore.On("User").Return(&mockUserStore)
|
||||
mockStore.On("Post").Return(&mockPostStore)
|
||||
mockStore.On("System").Return(&mockSystemStore)
|
||||
@@ -1670,7 +1670,7 @@ func BenchmarkPushNotificationThroughput(b *testing.B) {
|
||||
ExpiresAt: model.GetMillis() + 100000,
|
||||
}
|
||||
mockSessionStore.On("GetSessionsWithActiveDeviceIds", u.Id).Return([]*model.Session{sess1, sess2}, nil)
|
||||
mockSessionStore.On("UpdateDeviceId", sess1.Id, "deviceID"+u.Id, mock.AnythingOfType("int64")).Return("deviceID"+u.Id, nil)
|
||||
mockSessionStore.On("UpdateProps", mock.Anything).Return(nil)
|
||||
|
||||
testData = append(testData, userSession{
|
||||
user: u,
|
||||
|
||||
Ссылка в новой задаче
Block a user