diff --git a/app/session.go b/app/session.go index bc38695e79..9d703a68b3 100644 --- a/app/session.go +++ b/app/session.go @@ -357,17 +357,16 @@ func (a *App) EnableUserAccessToken(token *model.UserAccessToken) *model.AppErro } func (a *App) GetUserAccessTokens(page, perPage int) ([]*model.UserAccessToken, *model.AppError) { - result := <-a.Srv.Store.UserAccessToken().GetAll(page*perPage, perPage) - if result.Err != nil { - return nil, result.Err + tokens, err := a.Srv.Store.UserAccessToken().GetAll(page*perPage, perPage) + if err != nil { + return nil, err } - tokens := result.Data.([]*model.UserAccessToken) + for _, token := range tokens { token.Token = "" } return tokens, nil - } func (a *App) GetUserAccessTokensForUser(userId string, page, perPage int) ([]*model.UserAccessToken, *model.AppError) { diff --git a/store/sqlstore/user_access_token_store.go b/store/sqlstore/user_access_token_store.go index 2e935f2eec..76f4a8fa5b 100644 --- a/store/sqlstore/user_access_token_store.go +++ b/store/sqlstore/user_access_token_store.go @@ -165,16 +165,14 @@ func (s SqlUserAccessTokenStore) Get(tokenId string) store.StoreChannel { }) } -func (s SqlUserAccessTokenStore) GetAll(offset, limit int) store.StoreChannel { - return store.Do(func(result *store.StoreResult) { - tokens := []*model.UserAccessToken{} +func (s SqlUserAccessTokenStore) GetAll(offset, limit int) ([]*model.UserAccessToken, *model.AppError) { + tokens := []*model.UserAccessToken{} - if _, err := s.GetReplica().Select(&tokens, "SELECT * FROM UserAccessTokens LIMIT :Limit OFFSET :Offset", map[string]interface{}{"Offset": offset, "Limit": limit}); err != nil { - result.Err = model.NewAppError("SqlUserAccessTokenStore.GetAll", "store.sql_user_access_token.get_all.app_error", nil, err.Error(), http.StatusInternalServerError) - } + if _, err := s.GetReplica().Select(&tokens, "SELECT * FROM UserAccessTokens LIMIT :Limit OFFSET :Offset", map[string]interface{}{"Offset": offset, "Limit": limit}); err != nil { + return nil, model.NewAppError("SqlUserAccessTokenStore.GetAll", "store.sql_user_access_token.get_all.app_error", nil, err.Error(), http.StatusInternalServerError) + } - result.Data = tokens - }) + return tokens, nil } func (s SqlUserAccessTokenStore) GetByToken(tokenString string) store.StoreChannel { diff --git a/store/store.go b/store/store.go index d6db68ff01..171c6f387d 100644 --- a/store/store.go +++ b/store/store.go @@ -519,7 +519,7 @@ type UserAccessTokenStore interface { Delete(tokenId string) StoreChannel DeleteAllForUser(userId string) StoreChannel Get(tokenId string) StoreChannel - GetAll(offset int, limit int) StoreChannel + GetAll(offset int, limit int) ([]*model.UserAccessToken, *model.AppError) GetByToken(tokenString string) StoreChannel GetByUser(userId string, page, perPage int) StoreChannel Search(term string) StoreChannel diff --git a/store/storetest/mocks/UserAccessTokenStore.go b/store/storetest/mocks/UserAccessTokenStore.go index fd98a8a99d..f30492b41c 100644 --- a/store/storetest/mocks/UserAccessTokenStore.go +++ b/store/storetest/mocks/UserAccessTokenStore.go @@ -62,19 +62,28 @@ func (_m *UserAccessTokenStore) Get(tokenId string) store.StoreChannel { } // GetAll provides a mock function with given fields: offset, limit -func (_m *UserAccessTokenStore) GetAll(offset int, limit int) store.StoreChannel { +func (_m *UserAccessTokenStore) GetAll(offset int, limit int) ([]*model.UserAccessToken, *model.AppError) { ret := _m.Called(offset, limit) - var r0 store.StoreChannel - if rf, ok := ret.Get(0).(func(int, int) store.StoreChannel); ok { + var r0 []*model.UserAccessToken + if rf, ok := ret.Get(0).(func(int, int) []*model.UserAccessToken); ok { r0 = rf(offset, limit) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(store.StoreChannel) + r0 = ret.Get(0).([]*model.UserAccessToken) } } - return r0 + var r1 *model.AppError + if rf, ok := ret.Get(1).(func(int, int) *model.AppError); ok { + r1 = rf(offset, limit) + } else { + if ret.Get(1) != nil { + r1 = ret.Get(1).(*model.AppError) + } + } + + return r0, r1 } // GetByToken provides a mock function with given fields: tokenString diff --git a/store/storetest/user_access_token_store.go b/store/storetest/user_access_token_store.go index 3af4a621fc..a244abe0dd 100644 --- a/store/storetest/user_access_token_store.go +++ b/store/storetest/user_access_token_store.go @@ -57,9 +57,9 @@ func testUserAccessTokenSaveGetDelete(t *testing.T, ss store.Store) { t.Fatal("received incorrect number of tokens after save") } - if result := <-ss.UserAccessToken().GetAll(0, 100); result.Err != nil { - t.Fatal(result.Err) - } else if received := result.Data.([]*model.UserAccessToken); len(received) != 1 { + if result, appError := ss.UserAccessToken().GetAll(0, 100); appError != nil { + t.Fatal(appError) + } else if len(result) != 1 { t.Fatal("received incorrect number of tokens after save") }