initial merge

This commit is contained in:
Niels Lyngsø
2023-02-02 13:04:47 +01:00
parent acd4e2b54f
commit 56f79d1dae
9 changed files with 285 additions and 30 deletions

View File

@@ -1,5 +1,5 @@
import type { ManifestBase } from './models';
import type { UmbTreeRepositoryFactory } from '@umbraco-cms/models';
import type { UmbRepositoryFactory } from '@umbraco-cms/models';
export interface ManifestTree extends ManifestBase {
type: 'tree';
@@ -8,5 +8,5 @@ export interface ManifestTree extends ManifestBase {
export interface MetaTree {
storeAlias?: string;
repository?: UmbTreeRepositoryFactory;
repository?: UmbRepositoryFactory;
}

View File

@@ -7,6 +7,7 @@ import {
PagedEntityTreeItem,
ProblemDetails,
} from '@umbraco-cms/backend-api';
import { UmbTreeRepository } from 'libs/repositories/tree-repository.interface';
import { Observable } from 'rxjs';
// Extension Manifests
@@ -159,24 +160,6 @@ export interface DataSourceResponse<T = undefined> {
}
// TODO; figure out why we can't add UmbControllerHostInterface as host type
export interface UmbTreeRepositoryFactory {
export interface UmbRepositoryFactory {
new (host: any): UmbTreeRepository;
}
export interface UmbTreeRepository {
requestRootItems: () => Promise<{
data: PagedEntityTreeItem | undefined;
error: ProblemDetails | undefined;
}>;
requestChildrenOf: (parentKey: string | null) => Promise<{
data: PagedEntityTreeItem | undefined;
error: ProblemDetails | undefined;
}>;
requestItems: (keys: string[]) => Promise<{
data: Array<EntityTreeItem> | undefined;
error: ProblemDetails | undefined;
}>;
rootItems: () => Promise<Observable<EntityTreeItem[]>>;
childrenOf: (parentKey: string | null) => Promise<Observable<EntityTreeItem[]>>;
items: (keys: string[]) => Promise<Observable<EntityTreeItem[]>>;
}

View File

@@ -0,0 +1,27 @@
import type { ProblemDetails } from "@umbraco-cms/backend-api";
export interface UmbDetailRepository<DetailType> {
createDetailsScaffold(parentKey: string | null): Promise<{
data?: DetailType;
error?: ProblemDetails;
}>
requestDetails(key: string): Promise<{
data?: DetailType;
error?: ProblemDetails;
}>
create(data: DetailType): Promise<{
error?: ProblemDetails;
}>
save(data: DetailType): Promise<{
error?: ProblemDetails;
}>
delete(key: string): Promise<{
error?: ProblemDetails;
}>
}

View File

@@ -0,0 +1,20 @@
import type { Observable } from "rxjs";
import { EntityTreeItem, PagedEntityTreeItem, ProblemDetails } from "@umbraco-cms/backend-api";
export interface UmbTreeRepository {
requestRootItems: () => Promise<{
data: PagedEntityTreeItem | undefined;
error: ProblemDetails | undefined;
}>;
requestChildrenOf: (parentKey: string | null) => Promise<{
data: PagedEntityTreeItem | undefined;
error: ProblemDetails | undefined;
}>;
requestItems: (keys: string[]) => Promise<{
data: Array<EntityTreeItem> | undefined;
error: ProblemDetails | undefined;
}>;
rootItems: () => Promise<Observable<EntityTreeItem[]>>;
childrenOf: (parentKey: string | null) => Promise<Observable<EntityTreeItem[]>>;
items: (keys: string[]) => Promise<Observable<EntityTreeItem[]>>;
}