{"version":3,"file":"disable-user.repository-BGIwrE_t.js","sources":["../../../src/packages/user/user/repository/disable/disable-user.server.data-source.ts","../../../src/packages/user/user/repository/disable/disable-user.repository.ts"],"sourcesContent":["import type { UmbDisableUserDataSource } from './types.js';\r\nimport { UserService } from '@umbraco-cms/backoffice/external/backend-api';\r\nimport type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';\r\nimport { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources';\r\n\r\n/**\r\n * A server data source for disabling users\r\n * @class UmbDisableUserServerDataSource\r\n */\r\nexport class UmbDisableUserServerDataSource implements UmbDisableUserDataSource {\r\n\t#host: UmbControllerHost;\r\n\r\n\t/**\r\n\t * Creates an instance of UmbDisableUserServerDataSource.\r\n\t * @param {UmbControllerHost} host - The controller host for this controller to be appended to\r\n\t * @memberof UmbDisableUserServerDataSource\r\n\t */\r\n\tconstructor(host: UmbControllerHost) {\r\n\t\tthis.#host = host;\r\n\t}\r\n\r\n\t/**\r\n\t * Disables the specified user ids\r\n\t * @param {string[]} userIds\r\n\t * @returns {Promise}\r\n\t * @memberof UmbDisableUserServerDataSource\r\n\t */\r\n\tasync disable(userIds: string[]) {\r\n\t\tif (!userIds) throw new Error('User ids are missing');\r\n\r\n\t\treturn tryExecuteAndNotify(\r\n\t\t\tthis.#host,\r\n\t\t\tUserService.postUserDisable({\r\n\t\t\t\trequestBody: {\r\n\t\t\t\t\tuserIds: userIds.map((id) => ({ id })),\r\n\t\t\t\t},\r\n\t\t\t}),\r\n\t\t);\r\n\t}\r\n}\r\n","import { UmbUserRepositoryBase } from '../user-repository-base.js';\r\nimport { UmbUserItemRepository } from '../item/index.js';\r\nimport { UmbDisableUserServerDataSource } from './disable-user.server.data-source.js';\r\nimport { UmbLocalizationController } from '@umbraco-cms/backoffice/localization-api';\r\nimport type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';\r\nimport { UserStateModel } from '@umbraco-cms/backoffice/external/backend-api';\r\n\r\nexport class UmbDisableUserRepository extends UmbUserRepositoryBase {\r\n\t#disableSource: UmbDisableUserServerDataSource;\r\n\t#localize = new UmbLocalizationController(this);\r\n\t#userItemRepository = new UmbUserItemRepository(this);\r\n\r\n\tconstructor(host: UmbControllerHost) {\r\n\t\tsuper(host);\r\n\t\tthis.#disableSource = new UmbDisableUserServerDataSource(host);\r\n\t}\r\n\r\n\tasync disable(ids: Array) {\r\n\t\tif (ids.length === 0) throw new Error('User ids are missing');\r\n\t\tawait this.init;\r\n\r\n\t\tconst { data, error } = await this.#disableSource.disable(ids);\r\n\r\n\t\tif (!error) {\r\n\t\t\tconst { data: items } = await this.#userItemRepository.requestItems(ids);\r\n\t\t\tif (!items) throw new Error('Could not load user item');\r\n\r\n\t\t\t// TODO: get state from item when available\r\n\t\t\tids.forEach((id) => {\r\n\t\t\t\tthis.detailStore?.updateItem(id, { state: UserStateModel.DISABLED });\r\n\t\t\t});\r\n\r\n\t\t\tlet message = this.#localize.term('speechBubbles_disableUsersSuccess', items.length);\r\n\r\n\t\t\tif (items.length === 1) {\r\n\t\t\t\tconst names = items?.map((item) => item.name).join(', ');\r\n\t\t\t\tmessage = this.#localize.term('speechBubbles_disableUserSuccess', names);\r\n\t\t\t}\r\n\r\n\t\t\tconst notification = { data: { message } };\r\n\t\t\tthis.notificationContext?.peek('positive', notification);\r\n\t\t}\r\n\r\n\t\treturn { data, error };\r\n\t}\r\n}\r\n\r\nexport default UmbDisableUserRepository;\r\n"],"names":["UmbDisableUserServerDataSource","#host","host","userIds","tryExecuteAndNotify","UserService","id","UmbDisableUserRepository","UmbUserRepositoryBase","#disableSource","#localize","UmbLocalizationController","#userItemRepository","UmbUserItemRepository","ids","data","error","items","UserStateModel","message","names","item","notification"],"mappings":";;;;;;AASO,MAAMA,EAAmE;AAAA,EAC/EC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,YAAYC,GAAyB;AACpC,SAAKD,KAAQC;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASd,MAAM,QAAQC,GAAmB;AAChC,QAAI,CAACA,EAAe,OAAA,IAAI,MAAM,sBAAsB;AAE7C,WAAAC;AAAA,MACN,KAAKH;AAAA,MACLI,EAAY,gBAAgB;AAAA,QAC3B,aAAa;AAAA,UACZ,SAASF,EAAQ,IAAI,CAACG,OAAQ,EAAE,IAAAA,IAAK;AAAA,QAAA;AAAA,MAEtC,CAAA;AAAA,IACF;AAAA,EAAA;AAEF;AChCO,MAAMC,UAAiCC,EAAsB;AAAA,EACnEC;AAAA,EACAC,KAAY,IAAIC,EAA0B,IAAI;AAAA,EAC9CC,KAAsB,IAAIC,EAAsB,IAAI;AAAA,EAEpD,YAAYX,GAAyB;AACpC,UAAMA,CAAI,GACL,KAAAO,KAAiB,IAAIT,EAA+BE,CAAI;AAAA,EAAA;AAAA,EAG9D,MAAM,QAAQY,GAAoB;AACjC,QAAIA,EAAI,WAAW,EAAS,OAAA,IAAI,MAAM,sBAAsB;AAC5D,UAAM,KAAK;AAEL,UAAA,EAAE,MAAAC,GAAM,OAAAC,EAAM,IAAI,MAAM,KAAKP,GAAe,QAAQK,CAAG;AAE7D,QAAI,CAACE,GAAO;AACL,YAAA,EAAE,MAAMC,EAAM,IAAI,MAAM,KAAKL,GAAoB,aAAaE,CAAG;AACvE,UAAI,CAACG,EAAa,OAAA,IAAI,MAAM,0BAA0B;AAGlD,MAAAH,EAAA,QAAQ,CAACR,MAAO;AACnB,aAAK,aAAa,WAAWA,GAAI,EAAE,OAAOY,EAAe,UAAU;AAAA,MAAA,CACnE;AAED,UAAIC,IAAU,KAAKT,GAAU,KAAK,qCAAqCO,EAAM,MAAM;AAE/E,UAAAA,EAAM,WAAW,GAAG;AACjB,cAAAG,IAAQH,GAAO,IAAI,CAACI,MAASA,EAAK,IAAI,EAAE,KAAK,IAAI;AACvD,QAAAF,IAAU,KAAKT,GAAU,KAAK,oCAAoCU,CAAK;AAAA,MAAA;AAGxE,YAAME,IAAe,EAAE,MAAM,EAAE,SAAAH,IAAU;AACpC,WAAA,qBAAqB,KAAK,YAAYG,CAAY;AAAA,IAAA;AAGjD,WAAA,EAAE,MAAAP,GAAM,OAAAC,EAAM;AAAA,EAAA;AAEvB;"}