From fd3fa8f8dcfa5de42a16db9b62e1d6628f43b0fd Mon Sep 17 00:00:00 2001 From: Adrian Carolli Date: Fri, 5 Jan 2018 14:46:48 -0500 Subject: [PLT-7793] Added /users/tokens endpoint (#8038) * Added /users/tokens/all endpoint - UserAccessStore now has getAll method - Added tests - Added route - Added handler * Remove space fix check-style * Remove blank space check-style * Fixes for make check-style * Remove extra code that is un-needed in user_test.go * Rename endpoint + grammar - Renamed /users/tokens/all to /users/tokens - Renamed getUserAccessTokens to getUserAccessTokensForUser - Renamed getAllUserAccessTokens to getUserAccessTokens - Minor Grammar changes * Add localization for sql_user_access_token.get_all * Fix minor plural spelling --- store/sqlstore/user_access_token_store.go | 12 ++++++++++++ store/store.go | 1 + store/storetest/mocks/UserAccessTokenStore.go | 16 ++++++++++++++++ store/storetest/user_access_token_store.go | 6 ++++++ 4 files changed, 35 insertions(+) (limited to 'store') diff --git a/store/sqlstore/user_access_token_store.go b/store/sqlstore/user_access_token_store.go index 530ba8d16..deba9f7ea 100644 --- a/store/sqlstore/user_access_token_store.go +++ b/store/sqlstore/user_access_token_store.go @@ -171,6 +171,18 @@ 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{} + + 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) + } + + result.Data = tokens + }) +} + func (s SqlUserAccessTokenStore) GetByToken(tokenString string) store.StoreChannel { return store.Do(func(result *store.StoreResult) { token := model.UserAccessToken{} diff --git a/store/store.go b/store/store.go index 6ca07c294..de8bd4635 100644 --- a/store/store.go +++ b/store/store.go @@ -446,6 +446,7 @@ type UserAccessTokenStore interface { Delete(tokenId string) StoreChannel DeleteAllForUser(userId string) StoreChannel Get(tokenId string) StoreChannel + GetAll(offset int, limit int) StoreChannel GetByToken(tokenString string) StoreChannel GetByUser(userId string, page, perPage int) StoreChannel UpdateTokenEnable(tokenId string) StoreChannel diff --git a/store/storetest/mocks/UserAccessTokenStore.go b/store/storetest/mocks/UserAccessTokenStore.go index 87541fd76..60e08076c 100644 --- a/store/storetest/mocks/UserAccessTokenStore.go +++ b/store/storetest/mocks/UserAccessTokenStore.go @@ -61,6 +61,22 @@ func (_m *UserAccessTokenStore) Get(tokenId string) store.StoreChannel { return r0 } +// GetAll provides a mock function with given fields: +func (_m *UserAccessTokenStore) GetAll(page int, perPage int) store.StoreChannel { + ret := _m.Called(page, perPage) + + var r0 store.StoreChannel + if rf, ok := ret.Get(0).(func(int, int) store.StoreChannel); ok { + r0 = rf(page, perPage) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(store.StoreChannel) + } + } + + return r0 +} + // GetByToken provides a mock function with given fields: tokenString func (_m *UserAccessTokenStore) GetByToken(tokenString string) store.StoreChannel { ret := _m.Called(tokenString) diff --git a/store/storetest/user_access_token_store.go b/store/storetest/user_access_token_store.go index 661c969da..c32023d30 100644 --- a/store/storetest/user_access_token_store.go +++ b/store/storetest/user_access_token_store.go @@ -54,6 +54,12 @@ 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 { + t.Fatal("received incorrect number of tokens after save") + } + if result := <-ss.UserAccessToken().Delete(uat.Id); result.Err != nil { t.Fatal(result.Err) } -- cgit v1.2.3-1-g7c22