From b89b1f00be7be1d8cea7fb224aa65c04ca435813 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 11 Sep 2023 20:13:39 +0200 Subject: [PATCH] add item server data source --- .../sources/document-type-item.server.data.ts | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/sources/document-type-item.server.data.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/sources/document-type-item.server.data.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/sources/document-type-item.server.data.ts new file mode 100644 index 0000000000..f2f9e937e1 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/sources/document-type-item.server.data.ts @@ -0,0 +1,39 @@ +import type { UmbItemDataSource } from '@umbraco-cms/backoffice/repository'; +import { DocumentTypeItemResponseModel, DocumentTypeResource } from '@umbraco-cms/backoffice/backend-api'; +import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; + +/** + * A data source for Document Type items that fetches data from the server + * @export + * @class UmbDocumentTypeItemServerDataSource + * @implements {UmbItemDataSource} + */ +export class UmbDocumentTypeItemServerDataSource implements UmbItemDataSource { + #host: UmbControllerHostElement; + + /** + * Creates an instance of UmbDocumentTypeItemServerDataSource. + * @param {UmbControllerHostElement} host + * @memberof UmbDocumentTypeItemServerDataSource + */ + constructor(host: UmbControllerHostElement) { + this.#host = host; + } + + /** + * Fetches the items for the given ids from the server + * @param {Array} ids + * @return {*} + * @memberof UmbDocumentTypeItemServerDataSource + */ + async getItems(ids: Array) { + if (!ids) throw new Error('Ids are missing'); + return tryExecuteAndNotify( + this.#host, + DocumentTypeResource.getDocumentTypeItem({ + id: ids, + }), + ); + } +}