From 0ffc721e64ac2677dc6d0bfaa11f8ea375ffdd23 Mon Sep 17 00:00:00 2001 From: Doug Lauder Date: Tue, 23 Aug 2022 23:38:56 -0400 Subject: [PATCH] Add Preferences service API for product and plugin (#3727) * Add Preferences service API for product and plugin * add missed switch case Co-authored-by: Mattermod --- mattermost-plugin/product/api_adapter.go | 18 ++++++++ mattermost-plugin/product/boards_product.go | 8 ++++ mattermost-plugin/server/api_adapter.go | 18 ++++++++ server/model/mocks/mockservicesapi.go | 43 ++++++++++++++++++++ server/model/services_api.go | 5 +++ server/services/store/mockstore/mockstore.go | 15 ------- 6 files changed, 92 insertions(+), 15 deletions(-) diff --git a/mattermost-plugin/product/api_adapter.go b/mattermost-plugin/product/api_adapter.go index e18d0a7fb..f1a8859c5 100644 --- a/mattermost-plugin/product/api_adapter.go +++ b/mattermost-plugin/product/api_adapter.go @@ -214,5 +214,23 @@ func (a *serviceAPIAdapter) RegisterRouter(sub *mux.Router) { a.api.routerService.RegisterRouter(boardsProductName, sub) } +// +// Preferences service. +// +func (a *serviceAPIAdapter) GetPreferencesForUser(userID string) (mm_model.Preferences, error) { + p, appErr := a.api.preferencesService.GetPreferencesForUser(userID) + return p, normalizeAppErr(appErr) +} + +func (a *serviceAPIAdapter) UpdatePreferencesForUser(userID string, preferences mm_model.Preferences) error { + appErr := a.api.preferencesService.UpdatePreferencesForUser(userID, preferences) + return normalizeAppErr(appErr) +} + +func (a *serviceAPIAdapter) DeletePreferencesForUser(userID string, preferences mm_model.Preferences) error { + appErr := a.api.preferencesService.DeletePreferencesForUser(userID, preferences) + return normalizeAppErr(appErr) +} + // Ensure the adapter implements ServicesAPI. var _ model.ServicesAPI = &serviceAPIAdapter{} diff --git a/mattermost-plugin/product/boards_product.go b/mattermost-plugin/product/boards_product.go index 68b499083..d6b996d0b 100644 --- a/mattermost-plugin/product/boards_product.go +++ b/mattermost-plugin/product/boards_product.go @@ -44,6 +44,7 @@ func init() { app.KVStoreKey: {}, app.StoreKey: {}, app.SystemKey: {}, + app.PreferencesKey: {}, }, }) } @@ -66,6 +67,7 @@ type boardsProduct struct { kvStoreService product.KVStoreService storeService product.StoreService systemService product.SystemService + preferencesService product.PreferencesService boardsApp *boards.BoardsApp } @@ -178,6 +180,12 @@ func newBoardsProduct(_ *app.Server, services map[app.ServiceKey]interface{}) (a return nil, fmt.Errorf("invalid service key '%s': %w", key, errServiceTypeAssert) } boards.systemService = systemService + case app.PreferencesKey: + preferencesService, ok := service.(product.PreferencesService) + if !ok { + return nil, fmt.Errorf("invalid service key '%s': %w", key, errServiceTypeAssert) + } + boards.preferencesService = preferencesService case app.HooksKey: // not needed } } diff --git a/mattermost-plugin/server/api_adapter.go b/mattermost-plugin/server/api_adapter.go index e5ce64ccc..d1543a29a 100644 --- a/mattermost-plugin/server/api_adapter.go +++ b/mattermost-plugin/server/api_adapter.go @@ -216,5 +216,23 @@ func (a *pluginAPIAdapter) RegisterRouter(sub *mux.Router) { // NOOP for plugin } +// +// Preferences service. +// +func (a *pluginAPIAdapter) GetPreferencesForUser(userID string) (mm_model.Preferences, error) { + p, appErr := a.api.GetPreferencesForUser(userID) + return p, normalizeAppErr(appErr) +} + +func (a *pluginAPIAdapter) UpdatePreferencesForUser(userID string, preferences mm_model.Preferences) error { + appErr := a.api.UpdatePreferencesForUser(userID, preferences) + return normalizeAppErr(appErr) +} + +func (a *pluginAPIAdapter) DeletePreferencesForUser(userID string, preferences mm_model.Preferences) error { + appErr := a.api.DeletePreferencesForUser(userID, preferences) + return normalizeAppErr(appErr) +} + // Ensure the adapter implements ServicesAPI. var _ model.ServicesAPI = &pluginAPIAdapter{} diff --git a/server/model/mocks/mockservicesapi.go b/server/model/mocks/mockservicesapi.go index 257b8ff60..d7f856ac7 100644 --- a/server/model/mocks/mockservicesapi.go +++ b/server/model/mocks/mockservicesapi.go @@ -67,6 +67,20 @@ func (mr *MockServicesAPIMockRecorder) CreatePost(arg0 interface{}) *gomock.Call return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreatePost", reflect.TypeOf((*MockServicesAPI)(nil).CreatePost), arg0) } +// DeletePreferencesForUser mocks base method. +func (m *MockServicesAPI) DeletePreferencesForUser(arg0 string, arg1 model.Preferences) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DeletePreferencesForUser", arg0, arg1) + ret0, _ := ret[0].(error) + return ret0 +} + +// DeletePreferencesForUser indicates an expected call of DeletePreferencesForUser. +func (mr *MockServicesAPIMockRecorder) DeletePreferencesForUser(arg0, arg1 interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeletePreferencesForUser", reflect.TypeOf((*MockServicesAPI)(nil).DeletePreferencesForUser), arg0, arg1) +} + // EnsureBot mocks base method. func (m *MockServicesAPI) EnsureBot(arg0 *model.Bot) (string, error) { m.ctrl.T.Helper() @@ -243,6 +257,21 @@ func (mr *MockServicesAPIMockRecorder) GetMasterDB() *gomock.Call { return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetMasterDB", reflect.TypeOf((*MockServicesAPI)(nil).GetMasterDB)) } +// GetPreferencesForUser mocks base method. +func (m *MockServicesAPI) GetPreferencesForUser(arg0 string) (model.Preferences, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetPreferencesForUser", arg0) + ret0, _ := ret[0].(model.Preferences) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetPreferencesForUser indicates an expected call of GetPreferencesForUser. +func (mr *MockServicesAPIMockRecorder) GetPreferencesForUser(arg0 interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetPreferencesForUser", reflect.TypeOf((*MockServicesAPI)(nil).GetPreferencesForUser), arg0) +} + // GetTeamMember mocks base method. func (m *MockServicesAPI) GetTeamMember(arg0, arg1 string) (*model.TeamMember, error) { m.ctrl.T.Helper() @@ -399,6 +428,20 @@ func (mr *MockServicesAPIMockRecorder) RegisterRouter(arg0 interface{}) *gomock. return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RegisterRouter", reflect.TypeOf((*MockServicesAPI)(nil).RegisterRouter), arg0) } +// UpdatePreferencesForUser mocks base method. +func (m *MockServicesAPI) UpdatePreferencesForUser(arg0 string, arg1 model.Preferences) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdatePreferencesForUser", arg0, arg1) + ret0, _ := ret[0].(error) + return ret0 +} + +// UpdatePreferencesForUser indicates an expected call of UpdatePreferencesForUser. +func (mr *MockServicesAPIMockRecorder) UpdatePreferencesForUser(arg0, arg1 interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdatePreferencesForUser", reflect.TypeOf((*MockServicesAPI)(nil).UpdatePreferencesForUser), arg0, arg1) +} + // UpdateUser mocks base method. func (m *MockServicesAPI) UpdateUser(arg0 *model.User) (*model.User, error) { m.ctrl.T.Helper() diff --git a/server/model/services_api.go b/server/model/services_api.go index 6bdd737e1..3c4fe1498 100644 --- a/server/model/services_api.go +++ b/server/model/services_api.go @@ -85,4 +85,9 @@ type ServicesAPI interface { // Router service RegisterRouter(sub *mux.Router) + + // Preferences services + GetPreferencesForUser(userID string) (mm_model.Preferences, error) + UpdatePreferencesForUser(userID string, preferences mm_model.Preferences) error + DeletePreferencesForUser(userID string, preferences mm_model.Preferences) error } diff --git a/server/services/store/mockstore/mockstore.go b/server/services/store/mockstore/mockstore.go index 2b76efa72..54b953b66 100644 --- a/server/services/store/mockstore/mockstore.go +++ b/server/services/store/mockstore/mockstore.go @@ -429,21 +429,6 @@ func (mr *MockStoreMockRecorder) GetBlocksForBoard(arg0 interface{}) *gomock.Cal return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBlocksForBoard", reflect.TypeOf((*MockStore)(nil).GetBlocksForBoard), arg0) } -// GetBlocksWithBoardID mocks base method. -func (m *MockStore) GetBlocksWithBoardID(arg0 string) ([]model.Block, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetBlocksWithBoardID", arg0) - ret0, _ := ret[0].([]model.Block) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetBlocksWithBoardID indicates an expected call of GetBlocksWithBoardID. -func (mr *MockStoreMockRecorder) GetBlocksWithBoardID(arg0 interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBlocksWithBoardID", reflect.TypeOf((*MockStore)(nil).GetBlocksWithBoardID), arg0) -} - // GetBlocksWithParent mocks base method. func (m *MockStore) GetBlocksWithParent(arg0, arg1 string) ([]model.Block, error) { m.ctrl.T.Helper()