{"version":3,"file":"member-validation.repository-h-25muvn.js","sources":["../../../src/packages/members/member/repository/validation/member-validation.server.data-source.ts","../../../src/packages/members/member/repository/validation/member-validation.repository.ts"],"sourcesContent":["import type { UmbMemberDetailModel } from '../../types.js';\r\nimport {\r\n\ttype CreateMemberRequestModel,\r\n\tMemberService,\r\n\ttype UpdateMemberRequestModel,\r\n} from '@umbraco-cms/backoffice/external/backend-api';\r\nimport type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';\r\nimport { tryExecute } from '@umbraco-cms/backoffice/resources';\r\nimport type { UmbVariantId } from '@umbraco-cms/backoffice/variant';\r\nimport type { UmbEntityUnique } from '@umbraco-cms/backoffice/entity';\r\n\r\n/**\r\n * A server data source for Member Validation\r\n */\r\nexport class UmbMemberValidationServerDataSource {\r\n\t//#host: UmbControllerHost;\r\n\r\n\t// TODO: [v15]: ignoring unused var here here to prevent a breaking change\r\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n\tconstructor(host: UmbControllerHost) {\r\n\t\t//this.#host = host;\r\n\t}\r\n\r\n\t/**\r\n\t * Validate a new Member on the server\r\n\t * @param {UmbMemberDetailModel} model - Member Model\r\n\t * @param {UmbEntityUnique} parentUnique - Parent Unique\r\n\t * @returns {*} - The response from the server\r\n\t */\r\n\tasync validateCreate(model: UmbMemberDetailModel, parentUnique: UmbEntityUnique = null) {\r\n\t\tif (!model) throw new Error('Member is missing');\r\n\t\tif (!model.unique) throw new Error('Member unique is missing');\r\n\t\tif (!model.newPassword) throw new Error('Member newPassword is missing');\r\n\t\tif (parentUnique === undefined) throw new Error('Parent unique is missing');\r\n\r\n\t\t// TODO: make data mapper to prevent errors\r\n\t\tconst requestBody: CreateMemberRequestModel = {\r\n\t\t\temail: model.email,\r\n\t\t\tusername: model.username,\r\n\t\t\tpassword: model.newPassword,\r\n\t\t\tisApproved: model.isApproved,\r\n\t\t\tid: model.unique,\r\n\t\t\tmemberType: { id: model.memberType.unique },\r\n\t\t\tvalues: model.values,\r\n\t\t\tvariants: model.variants,\r\n\t\t};\r\n\r\n\t\t// Maybe use: tryExecuteAndNotify\r\n\t\treturn tryExecute(\r\n\t\t\t//this.#host,\r\n\t\t\tMemberService.postMemberValidate({\r\n\t\t\t\trequestBody,\r\n\t\t\t}),\r\n\t\t);\r\n\t}\r\n\r\n\t/**\r\n\t * Validate a existing Member\r\n\t * @param {UmbMemberDetailModel} model - Member Model\r\n\t * @param {Array} variantIds - Variant Ids\r\n\t * @returns {Promise<*>} - The response from the server\r\n\t */\r\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n\tasync validateUpdate(model: UmbMemberDetailModel, variantIds: Array) {\r\n\t\tif (!model.unique) throw new Error('Unique is missing');\r\n\r\n\t\t//const cultures = variantIds.map((id) => id.culture).filter((culture) => culture !== null) as Array;\r\n\r\n\t\t// TODO: make data mapper to prevent errors\r\n\t\tconst requestBody: UpdateMemberRequestModel = {\r\n\t\t\temail: model.email,\r\n\t\t\tusername: model.username,\r\n\t\t\tisApproved: model.isApproved,\r\n\t\t\tisLockedOut: model.isLockedOut,\r\n\t\t\tisTwoFactorEnabled: model.isTwoFactorEnabled,\r\n\t\t\tvalues: model.values,\r\n\t\t\tvariants: model.variants,\r\n\t\t};\r\n\r\n\t\t// Maybe use: tryExecuteAndNotify\r\n\t\treturn tryExecute(\r\n\t\t\t//this.#host,\r\n\t\t\tMemberService.putMemberByIdValidate({\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\t}\r\n}\r\n","import type { UmbMemberDetailModel } from '../../types.js';\r\nimport { UmbMemberValidationServerDataSource } from './member-validation.server.data-source.js';\r\nimport type { UmbVariantId } from '@umbraco-cms/backoffice/variant';\r\nimport type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';\r\nimport { UmbRepositoryBase } from '@umbraco-cms/backoffice/repository';\r\nimport type { UmbContentValidationRepository } from '@umbraco-cms/backoffice/content';\r\n\r\ntype DetailModelType = UmbMemberDetailModel;\r\n\r\nexport class UmbMemberValidationRepository\r\n\textends UmbRepositoryBase\r\n\timplements UmbContentValidationRepository\r\n{\r\n\t#validationDataSource: UmbMemberValidationServerDataSource;\r\n\r\n\tconstructor(host: UmbControllerHost) {\r\n\t\tsuper(host);\r\n\r\n\t\tthis.#validationDataSource = new UmbMemberValidationServerDataSource(this);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a promise with an observable of the detail for the given unique\r\n\t * @param {DetailModelType} model - The model to validate\r\n\t * @param {string | null} [parentUnique] - The parent unique\r\n\t * @returns {*}\r\n\t */\r\n\tasync validateCreate(model: DetailModelType, parentUnique: string | null) {\r\n\t\tif (!model) throw new Error('Data is missing');\r\n\r\n\t\treturn this.#validationDataSource.validateCreate(model, parentUnique);\r\n\t}\r\n\r\n\t/**\r\n\t * Saves the given data\r\n\t * @param {DetailModelType} model - The model to save\r\n\t * @param {Array} variantIds - The variant ids to save\r\n\t * @returns {*}\r\n\t */\r\n\tasync validateSave(model: DetailModelType, variantIds: Array) {\r\n\t\tif (!model) throw new Error('Data is missing');\r\n\t\tif (!model.unique) throw new Error('Unique is missing');\r\n\r\n\t\treturn this.#validationDataSource.validateUpdate(model, variantIds);\r\n\t}\r\n}\r\n\r\nexport { UmbMemberValidationRepository as api };\r\n"],"names":["UmbMemberValidationServerDataSource","host","model","parentUnique","requestBody","tryExecute","MemberService","variantIds","UmbMemberValidationRepository","UmbRepositoryBase","#validationDataSource"],"mappings":";;;AAcO,MAAMA,EAAoC;AAAA;AAAA;AAAA;AAAA,EAKhD,YAAYC,GAAyB;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUrC,MAAM,eAAeC,GAA6BC,IAAgC,MAAM;AACvF,QAAI,CAACD,EAAa,OAAA,IAAI,MAAM,mBAAmB;AAC/C,QAAI,CAACA,EAAM,OAAc,OAAA,IAAI,MAAM,0BAA0B;AAC7D,QAAI,CAACA,EAAM,YAAmB,OAAA,IAAI,MAAM,+BAA+B;AACvE,QAAIC,MAAiB,OAAiB,OAAA,IAAI,MAAM,0BAA0B;AAG1E,UAAMC,IAAwC;AAAA,MAC7C,OAAOF,EAAM;AAAA,MACb,UAAUA,EAAM;AAAA,MAChB,UAAUA,EAAM;AAAA,MAChB,YAAYA,EAAM;AAAA,MAClB,IAAIA,EAAM;AAAA,MACV,YAAY,EAAE,IAAIA,EAAM,WAAW,OAAO;AAAA,MAC1C,QAAQA,EAAM;AAAA,MACd,UAAUA,EAAM;AAAA,IACjB;AAGO,WAAAG;AAAA;AAAA,MAENC,EAAc,mBAAmB;AAAA,QAChC,aAAAF;AAAA,MACA,CAAA;AAAA,IACF;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUD,MAAM,eAAeF,GAA6BK,GAAiC;AAClF,QAAI,CAACL,EAAM,OAAc,OAAA,IAAI,MAAM,mBAAmB;AAKtD,UAAME,IAAwC;AAAA,MAC7C,OAAOF,EAAM;AAAA,MACb,UAAUA,EAAM;AAAA,MAChB,YAAYA,EAAM;AAAA,MAClB,aAAaA,EAAM;AAAA,MACnB,oBAAoBA,EAAM;AAAA,MAC1B,QAAQA,EAAM;AAAA,MACd,UAAUA,EAAM;AAAA,IACjB;AAGO,WAAAG;AAAA;AAAA,MAENC,EAAc,sBAAsB;AAAA,QACnC,IAAIJ,EAAM;AAAA,QACV,aAAAE;AAAA,MACA,CAAA;AAAA,IACF;AAAA,EAAA;AAEF;AC/EO,MAAMI,UACJC,EAET;AAAA,EACCC;AAAA,EAEA,YAAYT,GAAyB;AACpC,UAAMA,CAAI,GAEL,KAAAS,KAAwB,IAAIV,EAAoC,IAAI;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAS1E,MAAM,eAAeE,GAAwBC,GAA6B;AACzE,QAAI,CAACD,EAAa,OAAA,IAAI,MAAM,iBAAiB;AAE7C,WAAO,KAAKQ,GAAsB,eAAeR,GAAOC,CAAY;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASrE,MAAM,aAAaD,GAAwBK,GAAiC;AAC3E,QAAI,CAACL,EAAa,OAAA,IAAI,MAAM,iBAAiB;AAC7C,QAAI,CAACA,EAAM,OAAc,OAAA,IAAI,MAAM,mBAAmB;AAEtD,WAAO,KAAKQ,GAAsB,eAAeR,GAAOK,CAAU;AAAA,EAAA;AAEpE;"}