{"version":3,"file":"member-group-detail.repository-Du7a43co.js","sources":["../../../src/packages/members/member-group/repository/detail/member-group-detail.server.data-source.ts","../../../src/packages/members/member-group/repository/detail/member-group-detail.repository.ts"],"sourcesContent":["import type { UmbMemberGroupDetailModel } from '../../types.js';\r\nimport { UMB_MEMBER_GROUP_ENTITY_TYPE } from '../../entity.js';\r\nimport { UmbId } from '@umbraco-cms/backoffice/id';\r\nimport type { UmbDetailDataSource } from '@umbraco-cms/backoffice/repository';\r\nimport type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';\r\nimport { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources';\r\nimport type { CreateMemberGroupRequestModel } from '@umbraco-cms/backoffice/external/backend-api';\r\nimport { MemberGroupService } from '@umbraco-cms/backoffice/external/backend-api';\r\n\r\n/**\r\n * A data source for the Member Group that fetches data from the server\r\n * @class UmbMemberGroupServerDataSource\r\n * @implements {RepositoryDetailDataSource}\r\n */\r\nexport class UmbMemberGroupServerDataSource implements UmbDetailDataSource {\r\n\t#host: UmbControllerHost;\r\n\r\n\t/**\r\n\t * Creates an instance of UmbMemberGroupServerDataSource.\r\n\t * @param {UmbControllerHost} host - The controller host for this controller to be appended to\r\n\t * @memberof UmbMemberGroupServerDataSource\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 * Creates a new Member Group scaffold\r\n\t * @param {(string | null)} parentUnique\r\n\t * @returns { CreateMemberGroupRequestModel }\r\n\t * @memberof UmbMemberGroupServerDataSource\r\n\t */\r\n\tasync createScaffold() {\r\n\t\tconst data: UmbMemberGroupDetailModel = {\r\n\t\t\tentityType: UMB_MEMBER_GROUP_ENTITY_TYPE,\r\n\t\t\tunique: UmbId.new(),\r\n\t\t\tname: '',\r\n\t\t};\r\n\r\n\t\treturn { data };\r\n\t}\r\n\r\n\t/**\r\n\t * Fetches a Member Group with the given id from the server\r\n\t * @param {string} unique\r\n\t * @returns {*}\r\n\t * @memberof UmbMemberGroupServerDataSource\r\n\t */\r\n\tasync read(unique: string) {\r\n\t\tif (!unique) throw new Error('Unique is missing');\r\n\r\n\t\tconst { data, error } = await tryExecuteAndNotify(\r\n\t\t\tthis.#host,\r\n\t\t\tMemberGroupService.getMemberGroupById({ id: unique }),\r\n\t\t);\r\n\r\n\t\tif (error || !data) {\r\n\t\t\treturn { error };\r\n\t\t}\r\n\r\n\t\tconst MemberGroup: UmbMemberGroupDetailModel = {\r\n\t\t\tentityType: UMB_MEMBER_GROUP_ENTITY_TYPE,\r\n\t\t\tunique: data.id,\r\n\t\t\tname: data.name,\r\n\t\t};\r\n\r\n\t\treturn { data: MemberGroup };\r\n\t}\r\n\r\n\t/**\r\n\t * Inserts a new Member Group on the server\r\n\t * @param {UmbMemberGroupDetailModel} model\r\n\t * @returns {*}\r\n\t * @memberof UmbMemberGroupServerDataSource\r\n\t */\r\n\tasync create(model: UmbMemberGroupDetailModel) {\r\n\t\tif (!model) throw new Error('Member Group is missing');\r\n\r\n\t\tconst requestBody: CreateMemberGroupRequestModel = {\r\n\t\t\tname: model.name,\r\n\t\t\tid: model.unique,\r\n\t\t};\r\n\r\n\t\tconst { data, error } = await tryExecuteAndNotify(\r\n\t\t\tthis.#host,\r\n\t\t\tMemberGroupService.postMemberGroup({\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.read(data);\r\n\t\t}\r\n\r\n\t\treturn { error };\r\n\t}\r\n\r\n\t/**\r\n\t * Updates a MemberGroup on the server\r\n\t * @param {UmbMemberGroupDetailModel} MemberGroup\r\n\t * @param model\r\n\t * @returns {*}\r\n\t * @memberof UmbMemberGroupServerDataSource\r\n\t */\r\n\tasync update(model: UmbMemberGroupDetailModel) {\r\n\t\tif (!model.unique) throw new Error('Unique is missing');\r\n\r\n\t\t// TODO: make data mapper to prevent errors\r\n\t\t// TODO: add type UpdateMemberGroupRequestModel\r\n\t\tconst requestBody: any = {\r\n\t\t\tname: model.name,\r\n\t\t};\r\n\r\n\t\tconst { error } = await tryExecuteAndNotify(\r\n\t\t\tthis.#host,\r\n\t\t\tMemberGroupService.putMemberGroupById({\r\n\t\t\t\tid: model.unique,\r\n\t\t\t\trequestBody,\r\n\t\t\t}),\r\n\t\t);\r\n\r\n\t\tif (!error) {\r\n\t\t\treturn this.read(model.unique);\r\n\t\t}\r\n\r\n\t\treturn { error };\r\n\t}\r\n\r\n\t/**\r\n\t * Deletes a Member Group on the server\r\n\t * @param {string} unique\r\n\t * @returns {*}\r\n\t * @memberof UmbMemberGroupServerDataSource\r\n\t */\r\n\tasync delete(unique: string) {\r\n\t\tif (!unique) throw new Error('Unique is missing');\r\n\r\n\t\treturn tryExecuteAndNotify(\r\n\t\t\tthis.#host,\r\n\t\t\tMemberGroupService.deleteMemberGroupById({\r\n\t\t\t\tid: unique,\r\n\t\t\t}),\r\n\t\t);\r\n\t}\r\n}\r\n","import type { UmbMemberGroupDetailModel } from '../../types.js';\r\nimport { UmbMemberGroupServerDataSource } from './member-group-detail.server.data-source.js';\r\nimport { UMB_MEMBER_GROUP_DETAIL_STORE_CONTEXT } from './member-group-detail.store.context-token.js';\r\nimport type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';\r\nimport { UmbDetailRepositoryBase } from '@umbraco-cms/backoffice/repository';\r\n\r\n/**\r\n * A repository for fetching member group details.\r\n * @class UmbMemberGroupDetailRepository\r\n * @augments {UmbDetailRepositoryBase}\r\n */\r\nexport class UmbMemberGroupDetailRepository extends UmbDetailRepositoryBase {\r\n\tconstructor(host: UmbControllerHost) {\r\n\t\tsuper(host, UmbMemberGroupServerDataSource, UMB_MEMBER_GROUP_DETAIL_STORE_CONTEXT);\r\n\t}\r\n\r\n\toverride async create(model: UmbMemberGroupDetailModel) {\r\n\t\treturn super.create(model, null);\r\n\t}\r\n}\r\n\r\nexport default UmbMemberGroupDetailRepository;\r\n"],"names":["UmbMemberGroupServerDataSource","#host","host","UMB_MEMBER_GROUP_ENTITY_TYPE","UmbId","unique","data","error","tryExecuteAndNotify","MemberGroupService","model","requestBody","UmbMemberGroupDetailRepository","UmbDetailRepositoryBase","UMB_MEMBER_GROUP_DETAIL_STORE_CONTEXT"],"mappings":";;;;;AAcO,MAAMA,EAAyF;AAAA,EACrGC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,YAAYC,GAAyB;AACpC,SAAKD,KAAQC;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASd,MAAM,iBAAiB;AAOtB,WAAO,EAAE,MAN+B;AAAA,MACvC,YAAYC;AAAA,MACZ,QAAQC,EAAM,IAAI;AAAA,MAClB,MAAM;AAAA,IACP,EAEc;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASf,MAAM,KAAKC,GAAgB;AAC1B,QAAI,CAACA,EAAc,OAAA,IAAI,MAAM,mBAAmB;AAEhD,UAAM,EAAE,MAAAC,GAAM,OAAAC,EAAM,IAAI,MAAMC;AAAA,MAC7B,KAAKP;AAAA,MACLQ,EAAmB,mBAAmB,EAAE,IAAIJ,EAAQ,CAAA;AAAA,IACrD;AAEI,WAAAE,KAAS,CAACD,IACN,EAAE,OAAAC,EAAM,IAST,EAAE,MANsC;AAAA,MAC9C,YAAYJ;AAAA,MACZ,QAAQG,EAAK;AAAA,MACb,MAAMA,EAAK;AAAA,IACZ,EAE2B;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAS5B,MAAM,OAAOI,GAAkC;AAC9C,QAAI,CAACA,EAAa,OAAA,IAAI,MAAM,yBAAyB;AAErD,UAAMC,IAA6C;AAAA,MAClD,MAAMD,EAAM;AAAA,MACZ,IAAIA,EAAM;AAAA,IACX,GAEM,EAAE,MAAAJ,GAAM,OAAAC,EAAM,IAAI,MAAMC;AAAA,MAC7B,KAAKP;AAAA,MACLQ,EAAmB,gBAAgB;AAAA,QAClC,aAAAE;AAAA,MACA,CAAA;AAAA,IACF;AAEA,WAAIL,IACI,KAAK,KAAKA,CAAI,IAGf,EAAE,OAAAC,EAAM;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUhB,MAAM,OAAOG,GAAkC;AAC9C,QAAI,CAACA,EAAM,OAAc,OAAA,IAAI,MAAM,mBAAmB;AAItD,UAAMC,IAAmB;AAAA,MACxB,MAAMD,EAAM;AAAA,IACb,GAEM,EAAE,OAAAH,EAAM,IAAI,MAAMC;AAAA,MACvB,KAAKP;AAAA,MACLQ,EAAmB,mBAAmB;AAAA,QACrC,IAAIC,EAAM;AAAA,QACV,aAAAC;AAAA,MACA,CAAA;AAAA,IACF;AAEA,WAAKJ,IAIE,EAAE,OAAAA,EAAM,IAHP,KAAK,KAAKG,EAAM,MAAM;AAAA,EAGf;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAShB,MAAM,OAAOL,GAAgB;AAC5B,QAAI,CAACA,EAAc,OAAA,IAAI,MAAM,mBAAmB;AAEzC,WAAAG;AAAA,MACN,KAAKP;AAAA,MACLQ,EAAmB,sBAAsB;AAAA,QACxC,IAAIJ;AAAA,MACJ,CAAA;AAAA,IACF;AAAA,EAAA;AAEF;ACrIO,MAAMO,UAAuCC,EAAmD;AAAA,EACtG,YAAYX,GAAyB;AAC9B,UAAAA,GAAMF,GAAgCc,CAAqC;AAAA,EAAA;AAAA,EAGlF,MAAe,OAAOJ,GAAkC;AAChD,WAAA,MAAM,OAAOA,GAAO,IAAI;AAAA,EAAA;AAEjC;"}