{"version":3,"file":"language-detail.repository-a4uWw_br.js","sources":["../../../src/packages/language/repository/detail/language-detail.server.data-source.ts","../../../src/packages/language/repository/detail/language-detail.repository.ts"],"sourcesContent":["import type { UmbLanguageDetailModel } from '../../types.js';\r\nimport { UMB_LANGUAGE_ENTITY_TYPE } from '../../entity.js';\r\nimport type { UmbDetailDataSource } from '@umbraco-cms/backoffice/repository';\r\nimport type {\r\n\tCreateLanguageRequestModel,\r\n\tUpdateLanguageRequestModel,\r\n} from '@umbraco-cms/backoffice/external/backend-api';\r\nimport { LanguageService } 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 data source for the Language that fetches data from the server\r\n * @class UmbLanguageServerDataSource\r\n * @implements {RepositoryDetailDataSource}\r\n */\r\nexport class UmbLanguageServerDataSource implements UmbDetailDataSource {\r\n\t#host: UmbControllerHost;\r\n\r\n\t/**\r\n\t * Creates an instance of UmbLanguageServerDataSource.\r\n\t * @param {UmbControllerHost} host - The controller host for this controller to be appended to\r\n\t * @memberof UmbLanguageServerDataSource\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 Language scaffold\r\n\t * @param {Partial} [preset]\r\n\t * @returns { CreateLanguageRequestModel }\r\n\t * @memberof UmbLanguageServerDataSource\r\n\t */\r\n\tasync createScaffold(preset: Partial = {}) {\r\n\t\tconst data: UmbLanguageDetailModel = {\r\n\t\t\tentityType: UMB_LANGUAGE_ENTITY_TYPE,\r\n\t\t\tfallbackIsoCode: null,\r\n\t\t\tisDefault: false,\r\n\t\t\tisMandatory: false,\r\n\t\t\tname: '',\r\n\t\t\tunique: '',\r\n\t\t\t...preset,\r\n\t\t};\r\n\r\n\t\treturn { data };\r\n\t}\r\n\r\n\t/**\r\n\t * Fetches a Language with the given id from the server\r\n\t * @param {string} unique\r\n\t * @returns {*}\r\n\t * @memberof UmbLanguageServerDataSource\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\tLanguageService.getLanguageByIsoCode({ isoCode: 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\t// TODO: make data mapper to prevent errors\r\n\t\tconst dataType: UmbLanguageDetailModel = {\r\n\t\t\tentityType: UMB_LANGUAGE_ENTITY_TYPE,\r\n\t\t\tfallbackIsoCode: data.fallbackIsoCode || null,\r\n\t\t\tisDefault: data.isDefault,\r\n\t\t\tisMandatory: data.isMandatory,\r\n\t\t\tname: data.name,\r\n\t\t\tunique: data.isoCode,\r\n\t\t};\r\n\r\n\t\treturn { data: dataType };\r\n\t}\r\n\r\n\t/**\r\n\t * Inserts a new Language on the server\r\n\t * @param {UmbLanguageDetailModel} model\r\n\t * @returns {*}\r\n\t * @memberof UmbLanguageServerDataSource\r\n\t */\r\n\tasync create(model: UmbLanguageDetailModel) {\r\n\t\tif (!model) throw new Error('Language is missing');\r\n\r\n\t\t// TODO: make data mapper to prevent errors\r\n\t\tconst requestBody: CreateLanguageRequestModel = {\r\n\t\t\tfallbackIsoCode: model.fallbackIsoCode,\r\n\t\t\tisDefault: model.isDefault,\r\n\t\t\tisMandatory: model.isMandatory,\r\n\t\t\tisoCode: model.unique,\r\n\t\t\tname: model.name,\r\n\t\t};\r\n\r\n\t\tconst { data, error } = await tryExecuteAndNotify(\r\n\t\t\tthis.#host,\r\n\t\t\tLanguageService.postLanguage({\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 Language on the server\r\n\t * @param {UmbLanguageDetailModel} Language\r\n\t * @param model\r\n\t * @returns {*}\r\n\t * @memberof UmbLanguageServerDataSource\r\n\t */\r\n\tasync update(model: UmbLanguageDetailModel) {\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\tconst requestBody: UpdateLanguageRequestModel = {\r\n\t\t\tfallbackIsoCode: model.fallbackIsoCode,\r\n\t\t\tisDefault: model.isDefault,\r\n\t\t\tisMandatory: model.isMandatory,\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\tLanguageService.putLanguageByIsoCode({\r\n\t\t\t\tisoCode: 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 Language on the server\r\n\t * @param {string} unique\r\n\t * @returns {*}\r\n\t * @memberof UmbLanguageServerDataSource\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\tLanguageService.deleteLanguageByIsoCode({\r\n\t\t\t\tisoCode: unique,\r\n\t\t\t}),\r\n\t\t);\r\n\t}\r\n}\r\n","import type { UmbLanguageDetailModel } from '../../types.js';\r\nimport { UmbLanguageServerDataSource } from './language-detail.server.data-source.js';\r\nimport { UMB_LANGUAGE_DETAIL_STORE_CONTEXT } from './language-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\nexport class UmbLanguageDetailRepository extends UmbDetailRepositoryBase {\r\n\tconstructor(host: UmbControllerHost) {\r\n\t\tsuper(host, UmbLanguageServerDataSource, UMB_LANGUAGE_DETAIL_STORE_CONTEXT);\r\n\t}\r\n\r\n\toverride async create(model: UmbLanguageDetailModel) {\r\n\t\treturn super.create(model, null);\r\n\t}\r\n}\r\n\r\nexport default UmbLanguageDetailRepository;\r\n"],"names":["UmbLanguageServerDataSource","#host","host","preset","UMB_LANGUAGE_ENTITY_TYPE","unique","data","error","tryExecuteAndNotify","LanguageService","model","requestBody","UmbLanguageDetailRepository","UmbDetailRepositoryBase","UMB_LANGUAGE_DETAIL_STORE_CONTEXT"],"mappings":"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"}