From 3d65361e39d35dc9fa0c0e941c0f5abccd5e171a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jesper=20M=C3=B8ller=20Jensen?= <26099018+JesmoDev@users.noreply.github.com> Date: Wed, 17 May 2023 17:42:32 +1200 Subject: [PATCH] add enable and disable data sources --- .../sources/user-disable.server.data.ts | 41 +++++++++++++++++++ .../sources/user-enable.server.data.ts | 41 +++++++++++++++++++ .../users/users/repository/user.repository.ts | 2 +- .../src/packages/users/users/types.ts | 7 ++++ 4 files changed, 90 insertions(+), 1 deletion(-) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/users/users/repository/sources/user-disable.server.data.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/users/users/repository/sources/user-enable.server.data.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/users/users/repository/sources/user-disable.server.data.ts b/src/Umbraco.Web.UI.Client/src/packages/users/users/repository/sources/user-disable.server.data.ts new file mode 100644 index 0000000000..ec5a749646 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/users/users/repository/sources/user-disable.server.data.ts @@ -0,0 +1,41 @@ +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import { UmbUserDisableDataSource } from '../../types'; +import { UserResource } from '@umbraco-cms/backoffice/backend-api'; +import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; + +/** + * A data source for Data Type items that fetches data from the server + * @export + * @class UmbUserDisableServerDataSource + */ +export class UmbUserDisableServerDataSource implements UmbUserDisableDataSource { + #host: UmbControllerHostElement; + + /** + * Creates an instance of UmbUserDisableServerDataSource. + * @param {UmbControllerHostElement} host + * @memberof UmbUserDisableServerDataSource + */ + constructor(host: UmbControllerHostElement) { + this.#host = host; + } + + /** + * Set groups for users + * @param {Array} id + * @return {*} + * @memberof UmbUserDisableServerDataSource + */ + async disable(userIds: string[]) { + if (!userIds) throw new Error('User ids are missing'); + + return tryExecuteAndNotify( + this.#host, + UserResource.postUserDisable({ + requestBody: { + userIds, + }, + }) + ); + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/users/users/repository/sources/user-enable.server.data.ts b/src/Umbraco.Web.UI.Client/src/packages/users/users/repository/sources/user-enable.server.data.ts new file mode 100644 index 0000000000..2ef3def21e --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/users/users/repository/sources/user-enable.server.data.ts @@ -0,0 +1,41 @@ +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import { UmbUserEnableDataSource } from '../../types'; +import { UserResource } from '@umbraco-cms/backoffice/backend-api'; +import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; + +/** + * A data source for Data Type items that fetches data from the server + * @export + * @class UmbUserEnableServerDataSource + */ +export class UmbUserEnableServerDataSource implements UmbUserEnableDataSource { + #host: UmbControllerHostElement; + + /** + * Creates an instance of UmbUserEnableServerDataSource. + * @param {UmbControllerHostElement} host + * @memberof UmbUserEnableServerDataSource + */ + constructor(host: UmbControllerHostElement) { + this.#host = host; + } + + /** + * Set groups for users + * @param {Array} id + * @return {*} + * @memberof UmbUserEnableServerDataSource + */ + async enable(userIds: string[]) { + if (!userIds) throw new Error('User ids are missing'); + + return tryExecuteAndNotify( + this.#host, + UserResource.postUserEnable({ + requestBody: { + userIds, + }, + }) + ); + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/users/users/repository/user.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/users/users/repository/user.repository.ts index 94e6063f7d..4a25d4455b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/users/users/repository/user.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/users/users/repository/user.repository.ts @@ -1,3 +1,4 @@ +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbUserCollectionFilterModel, UmbUserDetailDataSource, @@ -16,7 +17,6 @@ import { UmbItemDataSource, UmbItemRepository, } from '@umbraco-cms/backoffice/repository'; -import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { CreateUserRequestModel, InviteUserRequestModel, diff --git a/src/Umbraco.Web.UI.Client/src/packages/users/users/types.ts b/src/Umbraco.Web.UI.Client/src/packages/users/users/types.ts index 5faf7a45bd..a368dc4039 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/users/users/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/users/users/types.ts @@ -44,6 +44,13 @@ export interface UmbUserSetGroupDataSource { setGroups(userIds: string[], userGroupIds: string[]): Promise; } +export interface UmbUserDisableDataSource { + disable(userIds: string[]): Promise; +} +export interface UmbUserEnableDataSource { + enable(userIds: string[]): Promise; +} + export interface UmbUserDetailRepository extends UmbDetailRepository< CreateUserRequestModel,