{"version":3,"file":"media-type-detail.repository-S97VnIIN.js","sources":["../../../src/packages/media/media-types/repository/detail/media-type-detail.server.data-source.ts","../../../src/packages/media/media-types/repository/detail/media-type-detail.repository.ts"],"sourcesContent":["import type { UmbMediaTypeDetailModel } from '../../types.js';\r\nimport { UMB_MEDIA_TYPE_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 {\r\n\tCreateMediaTypeRequestModel,\r\n\tUpdateMediaTypeRequestModel,\r\n} from '@umbraco-cms/backoffice/external/backend-api';\r\nimport { MediaTypeService } 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\nimport type { UmbPropertyContainerTypes } from '@umbraco-cms/backoffice/content-type';\r\n\r\n/**\r\n * A data source for the Media Type that fetches data from the server\r\n * @class UmbMediaTypeServerDataSource\r\n * @implements {RepositoryDetailDataSource}\r\n */\r\nexport class UmbMediaTypeServerDataSource implements UmbDetailDataSource {\r\n\t#host: UmbControllerHost;\r\n\r\n\t/**\r\n\t * Creates an instance of UmbMediaTypeServerDataSource.\r\n\t * @param {UmbControllerHost} host - The controller host for this controller to be appended to\r\n\t * @memberof UmbMediaTypeServerDataSource\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 Media Type scaffold\r\n\t * @param {Partial} [preset]\r\n\t * @returns { CreateMediaTypeRequestModel }\r\n\t * @memberof UmbMediaTypeServerDataSource\r\n\t */\r\n\tasync createScaffold(preset: Partial = {}) {\r\n\t\tconst data: UmbMediaTypeDetailModel = {\r\n\t\t\tentityType: UMB_MEDIA_TYPE_ENTITY_TYPE,\r\n\t\t\tunique: UmbId.new(),\r\n\t\t\tname: '',\r\n\t\t\talias: '',\r\n\t\t\tdescription: '',\r\n\t\t\ticon: 'icon-picture',\r\n\t\t\tallowedAtRoot: false,\r\n\t\t\tvariesByCulture: false,\r\n\t\t\tvariesBySegment: false,\r\n\t\t\tisElement: false,\r\n\t\t\tproperties: [],\r\n\t\t\tcontainers: [],\r\n\t\t\tallowedContentTypes: [],\r\n\t\t\tcompositions: [],\r\n\t\t\tcollection: null,\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 Media Type with the given id from the server\r\n\t * @param {string} unique\r\n\t * @returns {*}\r\n\t * @memberof UmbMediaTypeServerDataSource\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(this.#host, MediaTypeService.getMediaTypeById({ id: unique }));\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 mediaType: UmbMediaTypeDetailModel = {\r\n\t\t\tentityType: UMB_MEDIA_TYPE_ENTITY_TYPE,\r\n\t\t\tunique: data.id,\r\n\t\t\tname: data.name,\r\n\t\t\talias: data.alias,\r\n\t\t\tdescription: data.description ?? '',\r\n\t\t\ticon: data.icon,\r\n\t\t\tallowedAtRoot: data.allowedAsRoot,\r\n\t\t\tvariesByCulture: data.variesByCulture,\r\n\t\t\tvariesBySegment: data.variesBySegment,\r\n\t\t\tisElement: data.isElement,\r\n\t\t\tproperties: data.properties.map((property) => {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tid: property.id,\r\n\t\t\t\t\tcontainer: property.container,\r\n\t\t\t\t\tsortOrder: property.sortOrder,\r\n\t\t\t\t\talias: property.alias,\r\n\t\t\t\t\tname: property.name,\r\n\t\t\t\t\tdescription: property.description,\r\n\t\t\t\t\tdataType: { unique: property.dataType.id },\r\n\t\t\t\t\tvariesByCulture: property.variesByCulture,\r\n\t\t\t\t\tvariesBySegment: property.variesBySegment,\r\n\t\t\t\t\tvalidation: property.validation,\r\n\t\t\t\t\tappearance: property.appearance,\r\n\t\t\t\t};\r\n\t\t\t}),\r\n\t\t\tcontainers: data.containers.map((container) => {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tid: container.id,\r\n\t\t\t\t\tparent: container.parent ? { id: container.parent.id } : null,\r\n\t\t\t\t\tname: container.name ?? '',\r\n\t\t\t\t\ttype: container.type as UmbPropertyContainerTypes, // TODO: check if the value is valid\r\n\t\t\t\t\tsortOrder: container.sortOrder,\r\n\t\t\t\t};\r\n\t\t\t}),\r\n\t\t\tallowedContentTypes: data.allowedMediaTypes.map((allowedMediaType) => {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tcontentType: { unique: allowedMediaType.mediaType.id },\r\n\t\t\t\t\tsortOrder: allowedMediaType.sortOrder,\r\n\t\t\t\t};\r\n\t\t\t}),\r\n\t\t\tcompositions: data.compositions.map((composition) => {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tcontentType: { unique: composition.mediaType.id },\r\n\t\t\t\t\tcompositionType: composition.compositionType,\r\n\t\t\t\t};\r\n\t\t\t}),\r\n\t\t\tcollection: data.collection ? { unique: data.collection.id } : null,\r\n\t\t};\r\n\r\n\t\treturn { data: mediaType };\r\n\t}\r\n\r\n\t/**\r\n\t * Inserts a new Media Type on the server\r\n\t * @param {UmbMediaTypeDetailModel} model\r\n\t * @param parentUnique\r\n\t * @returns {*}\r\n\t * @memberof UmbMediaTypeServerDataSource\r\n\t */\r\n\tasync create(model: UmbMediaTypeDetailModel, parentUnique: string | null = null) {\r\n\t\tif (!model) throw new Error('Media Type is missing');\r\n\t\tif (!model.unique) throw new Error('Media Type unique is missing');\r\n\r\n\t\t// TODO: make data mapper to prevent errors\r\n\t\tconst requestBody: CreateMediaTypeRequestModel = {\r\n\t\t\talias: model.alias,\r\n\t\t\tname: model.name,\r\n\t\t\tdescription: model.description,\r\n\t\t\ticon: model.icon,\r\n\t\t\tallowedAsRoot: model.allowedAtRoot,\r\n\t\t\tvariesByCulture: model.variesByCulture,\r\n\t\t\tvariesBySegment: model.variesBySegment,\r\n\t\t\tisElement: model.isElement,\r\n\t\t\tproperties: model.properties.map((property) => {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tid: property.id,\r\n\t\t\t\t\tcontainer: property.container,\r\n\t\t\t\t\tsortOrder: property.sortOrder,\r\n\t\t\t\t\talias: property.alias,\r\n\t\t\t\t\tname: property.name,\r\n\t\t\t\t\tdescription: property.description,\r\n\t\t\t\t\tdataType: { id: property.dataType.unique },\r\n\t\t\t\t\tvariesByCulture: property.variesByCulture,\r\n\t\t\t\t\tvariesBySegment: property.variesBySegment,\r\n\t\t\t\t\tvalidation: property.validation,\r\n\t\t\t\t\tappearance: property.appearance,\r\n\t\t\t\t};\r\n\t\t\t}),\r\n\t\t\tcontainers: model.containers,\r\n\t\t\tallowedMediaTypes: model.allowedContentTypes.map((allowedContentType) => {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tmediaType: { id: allowedContentType.contentType.unique },\r\n\t\t\t\t\tsortOrder: allowedContentType.sortOrder,\r\n\t\t\t\t};\r\n\t\t\t}),\r\n\t\t\tcompositions: model.compositions.map((composition) => {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tmediaType: { id: composition.contentType.unique },\r\n\t\t\t\t\tcompositionType: composition.compositionType,\r\n\t\t\t\t};\r\n\t\t\t}),\r\n\t\t\tid: model.unique,\r\n\t\t\tparent: parentUnique ? { id: parentUnique } : null,\r\n\t\t\tcollection: model.collection?.unique ? { id: model.collection?.unique } : null,\r\n\t\t};\r\n\r\n\t\tconst { data, error } = await tryExecuteAndNotify(\r\n\t\t\tthis.#host,\r\n\t\t\tMediaTypeService.postMediaType({\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 MediaType on the server\r\n\t * @param {UmbMediaTypeDetailModel} MediaType\r\n\t * @param model\r\n\t * @returns {*}\r\n\t * @memberof UmbMediaTypeServerDataSource\r\n\t */\r\n\tasync update(model: UmbMediaTypeDetailModel) {\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: UpdateMediaTypeRequestModel = {\r\n\t\t\talias: model.alias,\r\n\t\t\tname: model.name,\r\n\t\t\tdescription: model.description,\r\n\t\t\ticon: model.icon,\r\n\t\t\tallowedAsRoot: model.allowedAtRoot,\r\n\t\t\tvariesByCulture: model.variesByCulture,\r\n\t\t\tvariesBySegment: model.variesBySegment,\r\n\t\t\tisElement: model.isElement,\r\n\t\t\tproperties: model.properties.map((property) => {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tid: property.id,\r\n\t\t\t\t\tcontainer: property.container,\r\n\t\t\t\t\tsortOrder: property.sortOrder,\r\n\t\t\t\t\talias: property.alias,\r\n\t\t\t\t\tname: property.name,\r\n\t\t\t\t\tdescription: property.description,\r\n\t\t\t\t\tdataType: { id: property.dataType.unique },\r\n\t\t\t\t\tvariesByCulture: property.variesByCulture,\r\n\t\t\t\t\tvariesBySegment: property.variesBySegment,\r\n\t\t\t\t\tvalidation: property.validation,\r\n\t\t\t\t\tappearance: property.appearance,\r\n\t\t\t\t};\r\n\t\t\t}),\r\n\t\t\tcontainers: model.containers,\r\n\t\t\tallowedMediaTypes: model.allowedContentTypes.map((allowedContentType) => {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tmediaType: { id: allowedContentType.contentType.unique },\r\n\t\t\t\t\tsortOrder: allowedContentType.sortOrder,\r\n\t\t\t\t};\r\n\t\t\t}),\r\n\t\t\tcompositions: model.compositions.map((composition) => {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tmediaType: { id: composition.contentType.unique },\r\n\t\t\t\t\tcompositionType: composition.compositionType,\r\n\t\t\t\t};\r\n\t\t\t}),\r\n\t\t\tcollection: model.collection?.unique ? { id: model.collection?.unique } : null,\r\n\t\t};\r\n\r\n\t\tconst { error } = await tryExecuteAndNotify(\r\n\t\t\tthis.#host,\r\n\t\t\tMediaTypeService.putMediaTypeById({\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 Media Type on the server\r\n\t * @param {string} unique\r\n\t * @returns {*}\r\n\t * @memberof UmbMediaTypeServerDataSource\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\tMediaTypeService.deleteMediaTypeById({\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 { UmbMediaTypeDetailModel } from '../../types.js';\r\nimport { UmbMediaTypeServerDataSource } from './media-type-detail.server.data-source.js';\r\nimport { UMB_MEDIA_TYPE_DETAIL_STORE_CONTEXT } from './media-type-detail.store.context-token.js';\r\nimport type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';\r\nimport { UmbDetailRepositoryBase } from '@umbraco-cms/backoffice/repository';\r\nexport class UmbMediaTypeDetailRepository extends UmbDetailRepositoryBase {\r\n\tconstructor(host: UmbControllerHost) {\r\n\t\tsuper(host, UmbMediaTypeServerDataSource, UMB_MEDIA_TYPE_DETAIL_STORE_CONTEXT);\r\n\t}\r\n}\r\n\r\nexport default UmbMediaTypeDetailRepository;\r\n"],"names":["UmbMediaTypeServerDataSource","#host","host","preset","UMB_MEDIA_TYPE_ENTITY_TYPE","UmbId","unique","data","error","tryExecuteAndNotify","MediaTypeService","property","container","allowedMediaType","composition","model","parentUnique","requestBody","allowedContentType","UmbMediaTypeDetailRepository","UmbDetailRepositoryBase","UMB_MEDIA_TYPE_DETAIL_STORE_CONTEXT"],"mappings":"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"}