{"version":3,"file":"invite-user.repository-CC4pBU4E.js","sources":["../../../src/packages/user/user/invite/repository/invite-user-server.data-source.ts","../../../src/packages/user/user/invite/repository/invite-user.repository.ts"],"sourcesContent":["import { UmbUserServerDataSource } from '../../repository/detail/user-detail.server.data-source.js';\r\nimport type { UmbInviteUserDataSource, UmbInviteUserRequestModel, UmbResendUserInviteRequestModel } 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 inviting users\r\n * @class UmbInviteUserServerDataSource\r\n */\r\nexport class UmbInviteUserServerDataSource implements UmbInviteUserDataSource {\r\n\t#host: UmbControllerHost;\r\n\t#detailSource: UmbUserServerDataSource;\r\n\r\n\t/**\r\n\t * Creates an instance of UmbInviteUserServerDataSource.\r\n\t * @param host\r\n\t * @memberof UmbInviteUserServerDataSource\r\n\t */\r\n\tconstructor(host: UmbControllerHost) {\r\n\t\tthis.#host = host;\r\n\t\tthis.#detailSource = new UmbUserServerDataSource(host);\r\n\t}\r\n\r\n\t/**\r\n\t * Invites a user\r\n\t * @param {UmbInviteUserRequestModel} request\r\n\t * @returns\r\n\t * @memberof UmbInviteUserServerDataSource\r\n\t */\r\n\tasync invite(request: UmbInviteUserRequestModel) {\r\n\t\tif (!request) throw new Error('Request Data is missing');\r\n\r\n\t\tconst requestBody = {\r\n\t\t\temail: request.email,\r\n\t\t\tuserName: request.userName,\r\n\t\t\tname: request.name,\r\n\t\t\tuserGroupIds: request.userGroupUniques.map((reference) => {\r\n\t\t\t\treturn { id: reference.unique };\r\n\t\t\t}),\r\n\t\t\tmessage: request.message,\r\n\t\t};\r\n\r\n\t\tconst { data, error } = await tryExecuteAndNotify(\r\n\t\t\tthis.#host,\r\n\t\t\tUserService.postUserInvite({\r\n\t\t\t\trequestBody,\r\n\t\t\t}),\r\n\t\t);\r\n\r\n\t\tif (data) {\r\n\t\t\treturn this.#detailSource.read(data);\r\n\t\t}\r\n\r\n\t\treturn { error };\r\n\t}\r\n\r\n\t/**\r\n\t * Resend an invite to a user\r\n\t * @param {UmbResendUserInviteRequestModel} request\r\n\t * @returns\r\n\t * @memberof UmbInviteUserServerDataSource\r\n\t */\r\n\tasync resendInvite(request: UmbResendUserInviteRequestModel) {\r\n\t\tif (!request.user.unique) throw new Error('User unique is missing');\r\n\t\tif (!request) throw new Error('Request data is missing');\r\n\r\n\t\tconst requestBody = {\r\n\t\t\tuser: {\r\n\t\t\t\tid: request.user.unique,\r\n\t\t\t},\r\n\t\t\tmessage: request.message,\r\n\t\t};\r\n\r\n\t\treturn tryExecuteAndNotify(\r\n\t\t\tthis.#host,\r\n\t\t\tUserService.postUserInviteResend({\r\n\t\t\t\trequestBody,\r\n\t\t\t}),\r\n\t\t);\r\n\t}\r\n}\r\n","import { UmbUserRepositoryBase } from '../../repository/user-repository-base.js';\r\nimport { UmbInviteUserServerDataSource } from './invite-user-server.data-source.js';\r\nimport type { UmbInviteUserRequestModel, UmbResendUserInviteRequestModel } from './types.js';\r\nimport type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';\r\n\r\nexport class UmbInviteUserRepository extends UmbUserRepositoryBase {\r\n\t#inviteSource: UmbInviteUserServerDataSource;\r\n\r\n\tconstructor(host: UmbControllerHost) {\r\n\t\tsuper(host);\r\n\t\tthis.#inviteSource = new UmbInviteUserServerDataSource(host);\r\n\t}\r\n\r\n\t/**\r\n\t * Invites a user\r\n\t * @param {UmbInviteUserRequestModel} request\r\n\t * @returns {*}\r\n\t * @memberof UmbInviteUserRepository\r\n\t */\r\n\tasync invite(request: UmbInviteUserRequestModel) {\r\n\t\tif (!request) throw new Error('Request data is missing');\r\n\t\tawait this.init;\r\n\r\n\t\tconst { data, error } = await this.#inviteSource.invite(request);\r\n\r\n\t\tif (data) {\r\n\t\t\tthis.detailStore!.append(data);\r\n\r\n\t\t\tconst notification = { data: { message: `Invite sent to user` } };\r\n\t\t\tthis.notificationContext?.peek('positive', notification);\r\n\t\t}\r\n\r\n\t\treturn { error };\r\n\t}\r\n\r\n\t/**\r\n\t * Resend an invite to a user\r\n\t * @param {string} userUnique\r\n\t * @param {InviteUserRequestModel} request\r\n\t * @returns {*}\r\n\t * @memberof UmbInviteUserRepository\r\n\t */\r\n\tasync resendInvite(request: UmbResendUserInviteRequestModel) {\r\n\t\tif (!request.user.unique) throw new Error('User unique is missing');\r\n\t\tif (!request) throw new Error('data is missing');\r\n\t\tawait this.init;\r\n\r\n\t\tconst { error } = await this.#inviteSource.resendInvite(request);\r\n\r\n\t\tif (!error) {\r\n\t\t\tconst notification = { data: { message: `Invite resent to user` } };\r\n\t\t\tthis.notificationContext?.peek('positive', notification);\r\n\t\t}\r\n\r\n\t\treturn { error };\r\n\t}\r\n}\r\n\r\nexport default UmbInviteUserRepository;\r\n"],"names":["UmbInviteUserServerDataSource","#host","#detailSource","host","UmbUserServerDataSource","request","requestBody","reference","data","error","tryExecuteAndNotify","UserService","UmbInviteUserRepository","UmbUserRepositoryBase","#inviteSource","notification"],"mappings":";;;;AAUO,MAAMA,EAAiE;AAAA,EAC7EC;AAAA,EACAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,YAAYC,GAAyB;AACpC,SAAKF,KAAQE,GACR,KAAAD,KAAgB,IAAIE,EAAwBD,CAAI;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAStD,MAAM,OAAOE,GAAoC;AAChD,QAAI,CAACA,EAAe,OAAA,IAAI,MAAM,yBAAyB;AAEvD,UAAMC,IAAc;AAAA,MACnB,OAAOD,EAAQ;AAAA,MACf,UAAUA,EAAQ;AAAA,MAClB,MAAMA,EAAQ;AAAA,MACd,cAAcA,EAAQ,iBAAiB,IAAI,CAACE,OACpC,EAAE,IAAIA,EAAU,OAAO,EAC9B;AAAA,MACD,SAASF,EAAQ;AAAA,IAClB,GAEM,EAAE,MAAAG,GAAM,OAAAC,EAAM,IAAI,MAAMC;AAAA,MAC7B,KAAKT;AAAA,MACLU,EAAY,eAAe;AAAA,QAC1B,aAAAL;AAAA,MACA,CAAA;AAAA,IACF;AAEA,WAAIE,IACI,KAAKN,GAAc,KAAKM,CAAI,IAG7B,EAAE,OAAAC,EAAM;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAShB,MAAM,aAAaJ,GAA0C;AAC5D,QAAI,CAACA,EAAQ,KAAK,OAAc,OAAA,IAAI,MAAM,wBAAwB;AAClE,QAAI,CAACA,EAAe,OAAA,IAAI,MAAM,yBAAyB;AAEvD,UAAMC,IAAc;AAAA,MACnB,MAAM;AAAA,QACL,IAAID,EAAQ,KAAK;AAAA,MAClB;AAAA,MACA,SAASA,EAAQ;AAAA,IAClB;AAEO,WAAAK;AAAA,MACN,KAAKT;AAAA,MACLU,EAAY,qBAAqB;AAAA,QAChC,aAAAL;AAAA,MACA,CAAA;AAAA,IACF;AAAA,EAAA;AAEF;AC5EO,MAAMM,UAAgCC,EAAsB;AAAA,EAClEC;AAAA,EAEA,YAAYX,GAAyB;AACpC,UAAMA,CAAI,GACL,KAAAW,KAAgB,IAAId,EAA8BG,CAAI;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAS5D,MAAM,OAAOE,GAAoC;AAChD,QAAI,CAACA,EAAe,OAAA,IAAI,MAAM,yBAAyB;AACvD,UAAM,KAAK;AAEL,UAAA,EAAE,MAAAG,GAAM,OAAAC,EAAM,IAAI,MAAM,KAAKK,GAAc,OAAOT,CAAO;AAE/D,QAAIG,GAAM;AACJ,WAAA,YAAa,OAAOA,CAAI;AAE7B,YAAMO,IAAe,EAAE,MAAM,EAAE,SAAS,wBAAwB;AAC3D,WAAA,qBAAqB,KAAK,YAAYA,CAAY;AAAA,IAAA;AAGxD,WAAO,EAAE,OAAAN,EAAM;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUhB,MAAM,aAAaJ,GAA0C;AAC5D,QAAI,CAACA,EAAQ,KAAK,OAAc,OAAA,IAAI,MAAM,wBAAwB;AAClE,QAAI,CAACA,EAAe,OAAA,IAAI,MAAM,iBAAiB;AAC/C,UAAM,KAAK;AAEX,UAAM,EAAE,OAAAI,EAAM,IAAI,MAAM,KAAKK,GAAc,aAAaT,CAAO;AAE/D,QAAI,CAACI,GAAO;AACX,YAAMM,IAAe,EAAE,MAAM,EAAE,SAAS,0BAA0B;AAC7D,WAAA,qBAAqB,KAAK,YAAYA,CAAY;AAAA,IAAA;AAGxD,WAAO,EAAE,OAAAN,EAAM;AAAA,EAAA;AAEjB;"}