remove manual types

This commit is contained in:
Mads Rasmussen
2023-12-08 20:46:12 +01:00
parent 7c22a6bbb4
commit 0ffd3dbb13
2 changed files with 38 additions and 50 deletions

View File

@@ -1,27 +1,18 @@
import { UmbScriptTreeRepository } from '../tree/index.js';
import { UmbScriptServerDataSource } from './sources/script-detail.server.data.js';
import { ScriptGetFolderResponse, UmbScriptFolderServerDataSource } from './sources/script-folder.server.data.js';
import {
DataSourceResponse,
UmbDataSourceErrorResponse,
UmbDetailRepository,
UmbFolderRepository,
} from '@umbraco-cms/backoffice/repository';
import { UmbScriptFolderServerDataSource } from './sources/script-folder.server.data.js';
import { UmbDetailRepository, UmbFolderRepository } from '@umbraco-cms/backoffice/repository';
import {
CreateFolderRequestModel,
CreateScriptRequestModel,
FileItemResponseModelBaseModel,
FolderModelBaseModel,
FolderResponseModel,
ProblemDetails,
ScriptResponseModel,
TextFileResponseModelBaseModel,
UpdateScriptRequestModel,
} from '@umbraco-cms/backoffice/backend-api';
import { UmbBaseController } from '@umbraco-cms/backoffice/class-api';
import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
import { Observable } from '@umbraco-cms/backoffice/external/rxjs';
import { UmbApi } from '@umbraco-cms/backoffice/extension-api';
import { UmbId } from '@umbraco-cms/backoffice/id';
export class UmbScriptRepository
extends UmbBaseController
@@ -44,18 +35,16 @@ export class UmbScriptRepository
}
//#region FOLDER
createFolderScaffold(
parentId: string | null,
): Promise<{ data?: FolderResponseModel | undefined; error?: ProblemDetails | undefined }> {
createFolderScaffold(parentId: string | null) {
const data: FolderResponseModel = {
id: UmbId.new(),
name: '',
parentId,
};
return Promise.resolve({ data, error: undefined });
}
async createFolder(
requestBody: CreateFolderRequestModel,
): Promise<{ data?: string | undefined; error?: ProblemDetails | undefined }> {
async createFolder(requestBody: CreateFolderRequestModel) {
const req = {
parentPath: requestBody.parentId,
name: requestBody.name,
@@ -65,18 +54,16 @@ export class UmbScriptRepository
this.#treeRepository.requestTreeItemsOf(requestBody.parentId ? requestBody.parentId : null);
return promise;
}
async requestFolder(
unique: string,
): Promise<{ data?: ScriptGetFolderResponse | undefined; error?: ProblemDetails | undefined }> {
async requestFolder(unique: string) {
return this.#folderDataSource.read(unique);
}
updateFolder(
unique: string,
folder: FolderModelBaseModel,
): Promise<{ data?: FolderModelBaseModel | undefined; error?: ProblemDetails | undefined }> {
updateFolder(): any {
throw new Error('Method not implemented.');
}
async deleteFolder(path: string): Promise<{ error?: ProblemDetails | undefined }> {
async deleteFolder(path: string) {
const { data } = await this.requestFolder(path);
const promise = this.#folderDataSource.delete(path);
await promise;
@@ -92,33 +79,37 @@ export class UmbScriptRepository
return { data, error };
}
requestById(id: string): Promise<DataSourceResponse<any>> {
throw new Error('Method not implemented.');
}
byId(id: string): Promise<Observable<any>> {
requestById(): any {
throw new Error('Method not implemented.');
}
createScaffold(parentId: string | null, preset: string): Promise<DataSourceResponse<TextFileResponseModelBaseModel>> {
byId(): any {
throw new Error('Method not implemented.');
}
createScaffold(parentId: string | null, preset: string) {
return this.#detailDataSource.createScaffold(parentId, preset);
}
async create(data: CreateScriptRequestModel): Promise<DataSourceResponse<any>> {
async create(data: CreateScriptRequestModel) {
const promise = this.#detailDataSource.create(data);
await promise;
this.#treeRepository.requestTreeItemsOf(data.parentPath ? data.parentPath : null);
return promise;
}
save(id: string, requestBody: UpdateScriptRequestModel): Promise<UmbDataSourceErrorResponse> {
save(id: string, requestBody: UpdateScriptRequestModel) {
return this.#detailDataSource.update(id, requestBody);
}
async delete(id: string): Promise<UmbDataSourceErrorResponse> {
async delete(id: string) {
const promise = this.#detailDataSource.delete(id);
const parentPath = id.substring(0, id.lastIndexOf('/'));
this.#treeRepository.requestTreeItemsOf(parentPath ? parentPath : null);
return promise;
}
requestItems(keys: Array<string>): Promise<DataSourceResponse<FileItemResponseModelBaseModel[]>> {
requestItems(keys: Array<string>) {
return this.#detailDataSource.getItems(keys);
}

View File

@@ -1,35 +1,32 @@
import {
CreateFolderRequestModel,
FolderModelBaseModel,
FolderResponseModel,
ScriptResource,
} from '@umbraco-cms/backoffice/backend-api';
import { CreateFolderRequestModel, ScriptResource } from '@umbraco-cms/backoffice/backend-api';
import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
import { DataSourceResponse, UmbFolderDataSource } from '@umbraco-cms/backoffice/repository';
import { UmbFolderDataSource } from '@umbraco-cms/backoffice/repository';
import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources';
//! this is of any type in the backend-api
export type ScriptGetFolderResponse = { path: string; parentPath: string; name: string };
export class UmbScriptFolderServerDataSource implements UmbFolderDataSource {
#host: UmbControllerHost;
constructor(host: UmbControllerHost) {
this.#host = host;
}
createScaffold(parentId: string | null): Promise<DataSourceResponse<FolderResponseModel>> {
createScaffold(): any {
throw new Error('Method not implemented.');
}
read(unique: string): Promise<DataSourceResponse<ScriptGetFolderResponse>> {
read(unique: string) {
return tryExecuteAndNotify(this.#host, ScriptResource.getScriptFolder({ path: unique }));
}
create(requestBody: CreateFolderRequestModel): Promise<DataSourceResponse<string>> {
create(requestBody: CreateFolderRequestModel) {
return tryExecuteAndNotify(this.#host, ScriptResource.postScriptFolder({ requestBody }));
}
update(unique: string, data: CreateFolderRequestModel): Promise<DataSourceResponse<FolderModelBaseModel>> {
update(): any {
throw new Error('Method not implemented.');
}
delete(path: string): Promise<DataSourceResponse<unknown>> {
delete(path: string) {
return tryExecuteAndNotify(this.#host, ScriptResource.deleteScriptFolder({ path }));
}
}