{"version":3,"file":"media-type-folder.repository-DdvZm0EU.js","sources":["../../../src/packages/media/media-types/tree/folder/repository/media-type-folder.server.data-source.ts","../../../src/packages/media/media-types/tree/folder/repository/media-type-folder.repository.ts"],"sourcesContent":["import { UMB_MEDIA_TYPE_FOLDER_ENTITY_TYPE } from '../../../entity.js';\r\nimport type { UmbFolderModel } from '@umbraco-cms/backoffice/tree';\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 { UmbId } from '@umbraco-cms/backoffice/id';\r\nimport type { UmbDetailDataSource } from '@umbraco-cms/backoffice/repository';\r\n\r\n/**\r\n * A data source for a Media Type folder that fetches data from the server\r\n * @class UmbMediaTypeFolderServerDataSource\r\n * @implements {RepositoryDetailDataSource}\r\n */\r\nexport class UmbMediaTypeFolderServerDataSource implements UmbDetailDataSource {\r\n\t#host: UmbControllerHost;\r\n\r\n\t/**\r\n\t * Creates an instance of UmbMediaTypeFolderServerDataSource.\r\n\t * @param {UmbControllerHost} host - The controller host for this controller to be appended to\r\n\t * @memberof UmbMediaTypeFolderServerDataSource\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 scaffold for a Media Type folder\r\n\t * @param {Partial} [preset]\r\n\t * @returns {*}\r\n\t * @memberof UmbMediaTypeFolderServerDataSource\r\n\t */\r\n\tasync createScaffold(preset?: Partial) {\r\n\t\tconst scaffold: UmbFolderModel = {\r\n\t\t\tentityType: UMB_MEDIA_TYPE_FOLDER_ENTITY_TYPE,\r\n\t\t\tunique: UmbId.new(),\r\n\t\t\tname: '',\r\n\t\t\t...preset,\r\n\t\t};\r\n\r\n\t\treturn { data: scaffold };\r\n\t}\r\n\r\n\t/**\r\n\t * Fetches a Media Type folder from the server\r\n\t * @param {string} unique\r\n\t * @returns {*}\r\n\t * @memberof UmbMediaTypeFolderServerDataSource\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\tMediaTypeService.getMediaTypeFolderById({\r\n\t\t\t\tid: unique,\r\n\t\t\t}),\r\n\t\t);\r\n\r\n\t\tif (data) {\r\n\t\t\tconst mappedData = {\r\n\t\t\t\tentityType: UMB_MEDIA_TYPE_FOLDER_ENTITY_TYPE,\r\n\t\t\t\tunique: data.id,\r\n\t\t\t\tname: data.name,\r\n\t\t\t};\r\n\r\n\t\t\treturn { data: mappedData };\r\n\t\t}\r\n\r\n\t\treturn { error };\r\n\t}\r\n\r\n\t/**\r\n\t * Creates a Media Type folder on the server\r\n\t * @param {UmbFolderModel} model\r\n\t * @returns {*}\r\n\t * @memberof UmbMediaTypeFolderServerDataSource\r\n\t */\r\n\tasync create(model: UmbFolderModel, parentUnique: string | null) {\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\t\tif (!model.name) throw new Error('Name is missing');\r\n\r\n\t\tconst requestBody = {\r\n\t\t\tid: model.unique,\r\n\t\t\tparent: parentUnique ? { id: parentUnique } : null,\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\tMediaTypeService.postMediaTypeFolder({\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 * Updates a Media Type folder on the server\r\n\t * @param {UmbUpdateFolderModel} model\r\n\t * @returns {*}\r\n\t * @memberof UmbMediaTypeFolderServerDataSource\r\n\t */\r\n\tasync update(model: UmbFolderModel) {\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\t\tif (!model.name) throw new Error('Folder name is missing');\r\n\r\n\t\tconst { error } = await tryExecuteAndNotify(\r\n\t\t\tthis.#host,\r\n\t\t\tMediaTypeService.putMediaTypeFolderById({\r\n\t\t\t\tid: model.unique,\r\n\t\t\t\trequestBody: { name: model.name },\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 folder 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\t\treturn tryExecuteAndNotify(\r\n\t\t\tthis.#host,\r\n\t\t\tMediaTypeService.deleteMediaTypeFolderById({\r\n\t\t\t\tid: unique,\r\n\t\t\t}),\r\n\t\t);\r\n\t}\r\n}\r\n","import { UmbMediaTypeFolderServerDataSource } from './media-type-folder.server.data-source.js';\r\nimport { UMB_MEDIA_TYPE_FOLDER_STORE_CONTEXT } from './media-type-folder.store.context-token.js';\r\nimport type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';\r\nimport { UmbDetailRepositoryBase } from '@umbraco-cms/backoffice/repository';\r\nimport type { UmbFolderModel } from '@umbraco-cms/backoffice/tree';\r\n\r\nexport class UmbMediaTypeFolderRepository extends UmbDetailRepositoryBase {\r\n\tconstructor(host: UmbControllerHost) {\r\n\t\tsuper(host, UmbMediaTypeFolderServerDataSource, UMB_MEDIA_TYPE_FOLDER_STORE_CONTEXT);\r\n\t}\r\n}\r\n\r\nexport default UmbMediaTypeFolderRepository;\r\n"],"names":["UmbMediaTypeFolderServerDataSource","#host","host","preset","UMB_MEDIA_TYPE_FOLDER_ENTITY_TYPE","UmbId","unique","data","error","tryExecuteAndNotify","MediaTypeService","model","parentUnique","requestBody","UmbMediaTypeFolderRepository","UmbDetailRepositoryBase","UMB_MEDIA_TYPE_FOLDER_STORE_CONTEXT"],"mappings":";;;;;AAaO,MAAMA,EAAkF;AAAA,EAC9FC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,YAAYC,GAAyB;AACpC,SAAKD,KAAQC;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASd,MAAM,eAAeC,GAAkC;AAQ/C,WAAA,EAAE,MAPwB;AAAA,MAChC,YAAYC;AAAA,MACZ,QAAQC,EAAM,IAAI;AAAA,MAClB,MAAM;AAAA,MACN,GAAGF;AAAA,IACJ,EAEwB;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASzB,MAAM,KAAKG,GAAgB;AAC1B,QAAI,CAACA,EAAc,OAAA,IAAI,MAAM,mBAAmB;AAEhD,UAAM,EAAE,MAAAC,GAAM,OAAAC,EAAM,IAAI,MAAMC;AAAA,MAC7B,KAAKR;AAAA,MACLS,EAAiB,uBAAuB;AAAA,QACvC,IAAIJ;AAAA,MACJ,CAAA;AAAA,IACF;AAEA,WAAIC,IAOI,EAAE,MANU;AAAA,MAClB,YAAYH;AAAA,MACZ,QAAQG,EAAK;AAAA,MACb,MAAMA,EAAK;AAAA,IACZ,EAE0B,IAGpB,EAAE,OAAAC,EAAM;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAShB,MAAM,OAAOG,GAAuBC,GAA6B;AAChE,QAAI,CAACD,EAAa,OAAA,IAAI,MAAM,iBAAiB;AAC7C,QAAI,CAACA,EAAM,OAAc,OAAA,IAAI,MAAM,mBAAmB;AACtD,QAAI,CAACA,EAAM,KAAY,OAAA,IAAI,MAAM,iBAAiB;AAElD,UAAME,IAAc;AAAA,MACnB,IAAIF,EAAM;AAAA,MACV,QAAQC,IAAe,EAAE,IAAIA,EAAiB,IAAA;AAAA,MAC9C,MAAMD,EAAM;AAAA,IACb,GAEM,EAAE,OAAAH,EAAM,IAAI,MAAMC;AAAA,MACvB,KAAKR;AAAA,MACLS,EAAiB,oBAAoB;AAAA,QACpC,aAAAG;AAAA,MACA,CAAA;AAAA,IACF;AAEA,WAAKL,IAIE,EAAE,OAAAA,EAAM,IAHP,KAAK,KAAKG,EAAM,MAAM;AAAA,EAGf;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAShB,MAAM,OAAOA,GAAuB;AACnC,QAAI,CAACA,EAAa,OAAA,IAAI,MAAM,iBAAiB;AAC7C,QAAI,CAACA,EAAM,OAAc,OAAA,IAAI,MAAM,mBAAmB;AACtD,QAAI,CAACA,EAAM,KAAY,OAAA,IAAI,MAAM,wBAAwB;AAEnD,UAAA,EAAE,OAAAH,EAAM,IAAI,MAAMC;AAAA,MACvB,KAAKR;AAAA,MACLS,EAAiB,uBAAuB;AAAA,QACvC,IAAIC,EAAM;AAAA,QACV,aAAa,EAAE,MAAMA,EAAM,KAAK;AAAA,MAChC,CAAA;AAAA,IACF;AAEA,WAAKH,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;AACzC,WAAAG;AAAA,MACN,KAAKR;AAAA,MACLS,EAAiB,0BAA0B;AAAA,QAC1C,IAAIJ;AAAA,MACJ,CAAA;AAAA,IACF;AAAA,EAAA;AAEF;ACzIO,MAAMQ,UAAqCC,EAAwC;AAAA,EACzF,YAAYb,GAAyB;AAC9B,UAAAA,GAAMF,GAAoCgB,CAAmC;AAAA,EAAA;AAErF;"}