implement various methods in repository

This commit is contained in:
Julia Gru
2023-07-18 15:46:53 +02:00
parent 14f07c7be0
commit b7dc01f0f9
2 changed files with 37 additions and 20 deletions

View File

@@ -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<FileSystemTreeItemPresentationModel>,
UmbDetailRepository<PartialViewDetails>,
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<DataSourceResponse<TextFileResponseModelBaseModel>> {
return this.#detailDataSource.createScaffold(parentId, preset);
}
create(data: CreatePartialViewRequestModel): Promise<DataSourceResponse<any>> {
return this.#detailDataSource.insert(data);
}
save(id: string, requestBody: UpdatePartialViewRequestModel): Promise<UmbDataSourceErrorResponse> {
return this.#detailDataSource.update(id, requestBody);
}
delete(id: string): Promise<UmbDataSourceErrorResponse> {
return this.#detailDataSource.delete(id);
}
async create(patrial: any) {
return Promise.reject(new Error('Not implemented'));
getSnippets({ skip = 0, take = 100 }): Promise<DataSourceResponse<PagedSnippetItemResponseModel>> {
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
}

View File

@@ -66,7 +66,7 @@ export class UmbPartialViewDetailServerDataSource
* @memberof UmbPartialViewDetailServerDataSource
*/
insert(requestBody: CreatePartialViewRequestModel): Promise<DataSourceResponse<string>> {
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