diff --git a/app/session.go b/app/session.go index 0900fb7068..11f722b4ca 100644 --- a/app/session.go +++ b/app/session.go @@ -392,14 +392,12 @@ func (a *App) GetUserAccessToken(tokenId string, sanitize bool) (*model.UserAcce } func (a *App) SearchUserAccessTokens(term string) ([]*model.UserAccessToken, *model.AppError) { - result := <-a.Srv.Store.UserAccessToken().Search(term) - if result.Err != nil { - return nil, result.Err + tokens, err := a.Srv.Store.UserAccessToken().Search(term) + if err != nil { + return nil, err } - tokens := result.Data.([]*model.UserAccessToken) for _, token := range tokens { token.Token = "" } return tokens, nil - } diff --git a/store/sqlstore/user_access_token_store.go b/store/sqlstore/user_access_token_store.go index 679be8f2e0..e4e16bc481 100644 --- a/store/sqlstore/user_access_token_store.go +++ b/store/sqlstore/user_access_token_store.go @@ -192,24 +192,22 @@ func (s SqlUserAccessTokenStore) GetByUser(userId string, offset, limit int) ([] return tokens, nil } -func (s SqlUserAccessTokenStore) Search(term string) store.StoreChannel { - return store.Do(func(result *store.StoreResult) { - tokens := []*model.UserAccessToken{} - params := map[string]interface{}{"Term": term + "%"} - query := ` - SELECT - uat.* - FROM UserAccessTokens uat - INNER JOIN Users u - ON uat.UserId = u.Id - WHERE uat.Id LIKE :Term OR uat.UserId LIKE :Term OR u.Username LIKE :Term` +func (s SqlUserAccessTokenStore) Search(term string) ([]*model.UserAccessToken, *model.AppError) { + tokens := []*model.UserAccessToken{} + params := map[string]interface{}{"Term": term + "%"} + query := ` + SELECT + uat.* + FROM UserAccessTokens uat + INNER JOIN Users u + ON uat.UserId = u.Id + WHERE uat.Id LIKE :Term OR uat.UserId LIKE :Term OR u.Username LIKE :Term` - if _, err := s.GetReplica().Select(&tokens, query, params); err != nil { - result.Err = model.NewAppError("SqlUserAccessTokenStore.Search", "store.sql_user_access_token.search.app_error", nil, "term="+term+", "+err.Error(), http.StatusInternalServerError) - } + if _, err := s.GetReplica().Select(&tokens, query, params); err != nil { + return nil, model.NewAppError("SqlUserAccessTokenStore.Search", "store.sql_user_access_token.search.app_error", nil, "term="+term+", "+err.Error(), http.StatusInternalServerError) + } - result.Data = tokens - }) + return tokens, nil } func (s SqlUserAccessTokenStore) UpdateTokenEnable(tokenId string) store.StoreChannel { diff --git a/store/store.go b/store/store.go index 9ae18ebe1d..77c1985749 100644 --- a/store/store.go +++ b/store/store.go @@ -524,7 +524,7 @@ type UserAccessTokenStore interface { GetAll(offset int, limit int) ([]*model.UserAccessToken, *model.AppError) GetByToken(tokenString string) (*model.UserAccessToken, *model.AppError) GetByUser(userId string, page, perPage int) ([]*model.UserAccessToken, *model.AppError) - Search(term string) StoreChannel + Search(term string) ([]*model.UserAccessToken, *model.AppError) UpdateTokenEnable(tokenId string) StoreChannel UpdateTokenDisable(tokenId string) *model.AppError } diff --git a/store/storetest/mocks/UserAccessTokenStore.go b/store/storetest/mocks/UserAccessTokenStore.go index c3d5362b1d..fbfbba2aee 100644 --- a/store/storetest/mocks/UserAccessTokenStore.go +++ b/store/storetest/mocks/UserAccessTokenStore.go @@ -171,19 +171,28 @@ func (_m *UserAccessTokenStore) Save(token *model.UserAccessToken) (*model.UserA } // Search provides a mock function with given fields: term -func (_m *UserAccessTokenStore) Search(term string) store.StoreChannel { +func (_m *UserAccessTokenStore) Search(term string) ([]*model.UserAccessToken, *model.AppError) { ret := _m.Called(term) - var r0 store.StoreChannel - if rf, ok := ret.Get(0).(func(string) store.StoreChannel); ok { + var r0 []*model.UserAccessToken + if rf, ok := ret.Get(0).(func(string) []*model.UserAccessToken); ok { r0 = rf(term) } 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(string) *model.AppError); ok { + r1 = rf(term) + } else { + if ret.Get(1) != nil { + r1 = ret.Get(1).(*model.AppError) + } + } + + return r0, r1 } // UpdateTokenDisable provides a mock function with given fields: tokenId diff --git a/store/storetest/user_access_token_store.go b/store/storetest/user_access_token_store.go index 4429edee55..0636aee51a 100644 --- a/store/storetest/user_access_token_store.go +++ b/store/storetest/user_access_token_store.go @@ -161,21 +161,21 @@ func testUserAccessTokenSearch(t *testing.T, ss store.Store) { t.Fatal(err) } - if result := <-ss.UserAccessToken().Search(uat.Id); result.Err != nil { - t.Fatal(result.Err) - } else if received := result.Data.([]*model.UserAccessToken); len(received) != 1 { + if received, err := ss.UserAccessToken().Search(uat.Id); err != nil { + t.Fatal(err) + } else if len(received) != 1 { t.Fatal("received incorrect number of tokens after search") } - if result := <-ss.UserAccessToken().Search(uat.UserId); result.Err != nil { - t.Fatal(result.Err) - } else if received := result.Data.([]*model.UserAccessToken); len(received) != 1 { + if received, err := ss.UserAccessToken().Search(uat.UserId); err != nil { + t.Fatal(err) + } else if len(received) != 1 { t.Fatal("received incorrect number of tokens after search") } - if result := <-ss.UserAccessToken().Search(u1.Username); result.Err != nil { - t.Fatal(result.Err) - } else if received := result.Data.([]*model.UserAccessToken); len(received) != 1 { + if received, err := ss.UserAccessToken().Search(u1.Username); err != nil { + t.Fatal(err) + } else if len(received) != 1 { t.Fatal("received incorrect number of tokens after search") } }