diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/partial-views.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/partial-views.repository.ts index 6e82f8e2f9..7940e9e66e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/partial-views.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/partial-views.repository.ts @@ -8,13 +8,19 @@ import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api import { UmbContextConsumerController } from '@umbraco-cms/backoffice/context-api'; import { CreateFolderRequestModel, + CreatePartialViewRequestModel, FileSystemTreeItemPresentationModel, FolderModelBaseModel, FolderReponseModel, + PagedSnippetItemResponseModel, + PartialViewResponseModel, ProblemDetails, + TextFileResponseModelBaseModel, + UpdatePartialViewRequestModel, } from '@umbraco-cms/backoffice/backend-api'; import { DataSourceResponse, + UmbDataSourceErrorResponse, UmbDetailRepository, UmbFolderRepository, UmbTreeRepository, @@ -23,7 +29,13 @@ import { export class UmbPartialViewsRepository implements UmbTreeRepository, - UmbDetailRepository, + UmbDetailRepository< + CreatePartialViewRequestModel, + string, + UpdatePartialViewRequestModel, + PartialViewResponseModel, + string + >, UmbFolderRepository { #init; @@ -55,15 +67,17 @@ export class UmbPartialViewsRepository ): Promise<{ data?: FolderReponseModel | undefined; error?: ProblemDetails | undefined }> { throw new Error('Method not implemented.'); } - createFolder( - folderRequest: CreateFolderRequestModel + async createFolder( + requestBody: CreateFolderRequestModel ): Promise<{ data?: string | undefined; error?: ProblemDetails | undefined }> { - throw new Error('Method not implemented.'); + await this.#init; + return this.#folderDataSource.insert(requestBody); } - requestFolder( + async requestFolder( unique: string ): Promise<{ data?: FolderReponseModel | undefined; error?: ProblemDetails | undefined }> { - throw new Error('Method not implemented.'); + await this.#init; + return this.#folderDataSource.get(unique); } updateFolder( unique: string, @@ -71,8 +85,9 @@ export class UmbPartialViewsRepository ): Promise<{ data?: FolderModelBaseModel | undefined; error?: ProblemDetails | undefined }> { throw new Error('Method not implemented.'); } - deleteFolder(id: string): Promise<{ error?: ProblemDetails | undefined }> { - throw new Error('Method not implemented.'); + async deleteFolder(path: string): Promise<{ error?: ProblemDetails | undefined }> { + await this.#init; + return this.#folderDataSource.get(path); } //#endregion @@ -166,20 +181,22 @@ export class UmbPartialViewsRepository throw new Error('Method not implemented.'); } - async createScaffold(parentKey: string | null) { - return Promise.reject(new Error('Not implemented')); + createScaffold(parentId: string | null, preset: string): Promise> { + return this.#detailDataSource.createScaffold(parentId, preset); + } + create(data: CreatePartialViewRequestModel): Promise> { + return this.#detailDataSource.insert(data); + } + save(id: string, requestBody: UpdatePartialViewRequestModel): Promise { + return this.#detailDataSource.update(id, requestBody); + } + delete(id: string): Promise { + return this.#detailDataSource.delete(id); } - async create(patrial: any) { - return Promise.reject(new Error('Not implemented')); + getSnippets({ skip = 0, take = 100 }): Promise> { + return this.#detailDataSource.getSnippets({ skip, take }); } - async save(patrial: any) { - return Promise.reject(new Error('Not implemented')); - } - - async delete(key: string) { - return Promise.reject(new Error('Not implemented')); - } //#endregion } diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/sources/partial-views.detail.server.data.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/sources/partial-views.detail.server.data.ts index 5661ab262a..c4f9c2fd87 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/sources/partial-views.detail.server.data.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/sources/partial-views.detail.server.data.ts @@ -66,7 +66,7 @@ export class UmbPartialViewDetailServerDataSource * @memberof UmbPartialViewDetailServerDataSource */ insert(requestBody: CreatePartialViewRequestModel): Promise> { - return tryExecuteAndNotify(this.#host, PartialViewResource.postPartialViewFolder({ requestBody })); + return tryExecuteAndNotify(this.#host, PartialViewResource.postPartialView({ requestBody })); } //TODO the parameters here are bit ugly, since unique is already in the request body parameter, but it has to be done to marry the UmbDataSource interface an backend API together... maybe come up with some nicer solution