move tree repository interface

This commit is contained in:
Mads Rasmussen
2023-11-14 14:42:37 +01:00
parent 0aee159927
commit 80fc3eb2c9
19 changed files with 61 additions and 37 deletions

View File

@@ -1,6 +1,5 @@
export * from './data-source/index.js';
export * from './detail-repository.interface.js';
export * from './tree-repository.interface.js';
export * from './folder-repository.interface.js';
export * from './collection-repository.interface.js';
export * from './item-repository.interface.js';

View File

@@ -1,7 +1,7 @@
import { UmbTreeStore } from '../store/tree-store.interface.js';
import { type UmbEntityTreeItemModel } from './types.js';
import { UmbTreeRepository } from './tree-repository.interface.js';
import {
type UmbTreeRepository,
type UmbTreeDataSource,
UmbRepositoryBase,
UmbTreeDataSourceConstructor,

View File

@@ -7,5 +7,6 @@ export * from './tree-menu-item/index.js';
export * from './tree.context.js';
export * from './tree.element.js';
export * from './types.js';
export * from './tree-repository.interface.js';
export { UmbEntityTreeRepositoryBase } from './entity-tree.repository.js';

View File

@@ -1,4 +1,4 @@
import { type UmbPagedData } from './data-source/types.js';
import { type UmbPagedData } from '../repository/data-source/types.js';
import { UmbTreeItemModelBase, type UmbTreeItemModel, UmbEntityTreeRootModel } from '@umbraco-cms/backoffice/tree';
import { type Observable } from '@umbraco-cms/backoffice/external/rxjs';
import { ProblemDetails } from '@umbraco-cms/backoffice/backend-api';

View File

@@ -1,6 +1,7 @@
import { UmbTreeItemModelBase, type UmbTreeItemModel } from './types.js';
import { type UmbTreeItemModelBase } from './types.js';
import { Observable } from '@umbraco-cms/backoffice/external/rxjs';
import { UmbPagedData, UmbTreeRepository } from '@umbraco-cms/backoffice/repository';
import { UmbPagedData } from '@umbraco-cms/backoffice/repository';
import { UmbTreeRepository } from '@umbraco-cms/backoffice/tree';
import {
type ManifestRepository,
type ManifestTree,

View File

@@ -3,7 +3,8 @@ import { UmbDictionaryDetailServerDataSource } from './sources/dictionary.detail
import { UmbDictionaryTreeStore, UMB_DICTIONARY_TREE_STORE_CONTEXT_TOKEN } from './dictionary.tree.store.js';
import { UmbDictionaryTreeServerDataSource } from './sources/dictionary.tree.server.data.js';
import { UmbBaseController, UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api';
import { UmbTreeDataSource, UmbDetailRepository, UmbTreeRepository } from '@umbraco-cms/backoffice/repository';
import { UmbTreeDataSource, UmbDetailRepository } from '@umbraco-cms/backoffice/repository';
import { UmbTreeRepository } from '@umbraco-cms/backoffice/tree';
import {
CreateDictionaryItemRequestModel,
DictionaryOverviewResponseModel,
@@ -14,7 +15,8 @@ import {
import { UmbNotificationContext, UMB_NOTIFICATION_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/notification';
import type { UmbApi } from '@umbraco-cms/backoffice/extension-api';
export class UmbDictionaryRepository extends UmbBaseController
export class UmbDictionaryRepository
extends UmbBaseController
implements
UmbTreeRepository<EntityTreeItemResponseModel>,
UmbDetailRepository<

View File

@@ -4,9 +4,9 @@ import { UmbDocumentTypeTreeStore, UMB_DOCUMENT_TYPE_TREE_STORE_CONTEXT_TOKEN }
import { UmbDocumentTypeStore, UMB_DOCUMENT_TYPE_STORE_CONTEXT_TOKEN } from './document-type.store.js';
import { UMB_DOCUMENT_TYPE_ITEM_STORE_CONTEXT_TOKEN, UmbDocumentTypeItemStore } from './document-type-item.store.js';
import { UmbDocumentTypeItemServerDataSource } from './sources/document-type-item.server.data.js';
import type { UmbTreeDataSource, UmbTreeRepository, UmbDetailRepository } from '@umbraco-cms/backoffice/repository';
import type { UmbTreeDataSource, UmbDetailRepository } from '@umbraco-cms/backoffice/repository';
import { UmbTreeRepository } from '@umbraco-cms/backoffice/tree';
import { UmbBaseController, type UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api';
import { UmbContextConsumerController } from '@umbraco-cms/backoffice/context-api';
import {
CreateDocumentTypeRequestModel,
DocumentTypeResponseModel,
@@ -19,7 +19,8 @@ import { UmbApi } from '@umbraco-cms/backoffice/extension-api';
type ItemType = DocumentTypeResponseModel;
export class UmbDocumentTypeRepository extends UmbBaseController
export class UmbDocumentTypeRepository
extends UmbBaseController
implements
UmbTreeRepository<EntityTreeItemResponseModel>,
UmbDetailRepository<CreateDocumentTypeRequestModel, any, UpdateDocumentTypeRequestModel, DocumentTypeResponseModel>,

View File

@@ -3,12 +3,16 @@ import {
UMB_DOCUMENT_RECYCLE_BIN_TREE_STORE_CONTEXT,
UmbDocumentRecycleBinTreeStore,
} from './document-recycle.bin.tree.store.js';
import type { UmbTreeDataSource, UmbTreeRepository } from '@umbraco-cms/backoffice/repository';
import { type UmbTreeDataSource } from '@umbraco-cms/backoffice/repository';
import { type UmbTreeRepository } from '@umbraco-cms/backoffice/tree';
import { UmbBaseController, type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
import { UmbContextConsumerController } from '@umbraco-cms/backoffice/context-api';
import { DocumentTreeItemResponseModel } from '@umbraco-cms/backoffice/backend-api';
export class UmbDocumentRecycleBinRepository extends UmbBaseController implements UmbTreeRepository<DocumentTreeItemResponseModel> {
export class UmbDocumentRecycleBinRepository
extends UmbBaseController
implements UmbTreeRepository<DocumentTreeItemResponseModel>
{
#init!: Promise<unknown>;
#treeSource: UmbTreeDataSource;

View File

@@ -4,7 +4,8 @@ import { UmbDocumentTreeStore, UMB_DOCUMENT_TREE_STORE_CONTEXT_TOKEN } from './d
import { UmbDocumentTreeServerDataSource } from './sources/document.tree.server.data.js';
import { UMB_DOCUMENT_ITEM_STORE_CONTEXT_TOKEN, type UmbDocumentItemStore } from './document-item.store.js';
import { UmbDocumentItemServerDataSource } from './sources/document-item.server.data.js';
import type { UmbTreeDataSource, UmbTreeRepository, UmbDetailRepository } from '@umbraco-cms/backoffice/repository';
import type { UmbTreeDataSource, UmbDetailRepository } from '@umbraco-cms/backoffice/repository';
import { type UmbTreeRepository } from '@umbraco-cms/backoffice/tree';
import { UmbBaseController, UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api';
import {
DocumentResponseModel,
@@ -15,7 +16,8 @@ import {
import { UmbNotificationContext, UMB_NOTIFICATION_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/notification';
import { UmbApi } from '@umbraco-cms/backoffice/extension-api';
export class UmbDocumentRepository extends UmbBaseController
export class UmbDocumentRepository
extends UmbBaseController
implements
UmbTreeRepository<DocumentTreeItemResponseModel>,
UmbDetailRepository<CreateDocumentRequestModel, any, UpdateDocumentRequestModel, DocumentResponseModel>,

View File

@@ -7,13 +7,13 @@ import { UmbMediaTypeItemServerDataSource } from './sources/media-type-item.serv
import { UmbBaseController, UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api';
import { UmbNotificationContext, UMB_NOTIFICATION_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/notification';
import {
UmbTreeRepository,
UmbTreeDataSource,
UmbDataSource,
UmbItemRepository,
UmbDetailRepository,
UmbItemDataSource,
} from '@umbraco-cms/backoffice/repository';
import { UmbTreeRepository } from '@umbraco-cms/backoffice/tree';
import {
CreateMediaTypeRequestModel,
FolderTreeItemResponseModel,
@@ -23,7 +23,8 @@ import {
} from '@umbraco-cms/backoffice/backend-api';
import { UmbApi } from '@umbraco-cms/backoffice/extension-api';
export class UmbMediaTypeRepository extends UmbBaseController
export class UmbMediaTypeRepository
extends UmbBaseController
implements
UmbItemRepository<MediaTypeItemResponseModel>,
UmbTreeRepository<FolderTreeItemResponseModel>,

View File

@@ -5,7 +5,8 @@ import { UmbMediaStore, UMB_MEDIA_STORE_CONTEXT_TOKEN } from './media.store.js';
import { UmbMediaDetailServerDataSource } from './sources/media.detail.server.data.js';
import { UmbMediaItemServerDataSource } from './sources/media-item.server.data.js';
import { UmbMediaItemStore } from './media-item.store.js';
import type { UmbTreeRepository, UmbTreeDataSource } from '@umbraco-cms/backoffice/repository';
import { type UmbTreeDataSource } from '@umbraco-cms/backoffice/repository';
import { type UmbTreeRepository } from '@umbraco-cms/backoffice/tree';
import { UmbBaseController, UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api';
import {
CreateMediaRequestModel,
@@ -16,7 +17,8 @@ import { UmbDetailRepository } from '@umbraco-cms/backoffice/repository';
import { UmbNotificationContext, UMB_NOTIFICATION_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/notification';
import { UmbApi } from '@umbraco-cms/backoffice/extension-api';
export class UmbMediaRepository extends UmbBaseController
export class UmbMediaRepository
extends UmbBaseController
implements
UmbTreeRepository<EntityTreeItemResponseModel>,
UmbDetailRepository<CreateMediaRequestModel, any, UpdateMediaRequestModel, MediaDetails>,

View File

@@ -5,12 +5,14 @@ import { UmbMemberGroupStore, UMB_MEMBER_GROUP_STORE_CONTEXT_TOKEN } from './mem
import { UmbMemberGroupTreeServerDataSource } from './sources/member-group.tree.server.data.js';
import { UmbBaseController, type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
import { UmbNotificationContext, UMB_NOTIFICATION_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/notification';
import type { UmbTreeDataSource, UmbDetailRepository, UmbTreeRepository } from '@umbraco-cms/backoffice/repository';
import type { UmbTreeDataSource, UmbDetailRepository } from '@umbraco-cms/backoffice/repository';
import { UmbTreeRepository } from '@umbraco-cms/backoffice/tree';
import { EntityTreeItemResponseModel } from '@umbraco-cms/backoffice/backend-api';
import { UmbApi } from '@umbraco-cms/backoffice/extension-api';
// TODO => Update type when backend updated
export class UmbMemberGroupRepository extends UmbBaseController
export class UmbMemberGroupRepository
extends UmbBaseController
implements UmbTreeRepository<EntityTreeItemResponseModel>, UmbDetailRepository<any, any, any, any>, UmbApi
{
#init!: Promise<unknown>;
@@ -24,7 +26,7 @@ export class UmbMemberGroupRepository extends UmbBaseController
#notificationContext?: UmbNotificationContext;
constructor(host: UmbControllerHost) {
super(host)
super(host);
// TODO: figure out how spin up get the correct data source
this.#treeSource = new UmbMemberGroupTreeServerDataSource(this);
this.#detailSource = new UmbMemberGroupDetailServerDataSource(this);

View File

@@ -4,7 +4,8 @@ import { UmbMemberTypeTreeStore, UMB_MEMBER_TYPE_TREE_STORE_CONTEXT_TOKEN } from
import { UmbMemberTypeStore, UMB_MEMBER_TYPE_STORE_CONTEXT_TOKEN } from './member-type.store.js';
import { UmbMemberTypeDetailServerDataSource } from './sources/member-type.detail.server.data.js';
import { UmbBaseController, type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
import { UmbTreeDataSource, UmbDetailRepository, UmbTreeRepository } from '@umbraco-cms/backoffice/repository';
import { UmbTreeDataSource, UmbDetailRepository } from '@umbraco-cms/backoffice/repository';
import { UmbTreeRepository } from '@umbraco-cms/backoffice/tree';
import { UmbNotificationContext, UMB_NOTIFICATION_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/notification';
import { EntityTreeItemResponseModel } from '@umbraco-cms/backoffice/backend-api';
@@ -12,7 +13,10 @@ import { EntityTreeItemResponseModel } from '@umbraco-cms/backoffice/backend-api
type ItemType = any;
type TreeItemType = EntityTreeItemResponseModel;
export class UmbMemberTypeRepository extends UmbBaseController implements UmbTreeRepository<TreeItemType>, UmbDetailRepository<ItemType> {
export class UmbMemberTypeRepository
extends UmbBaseController
implements UmbTreeRepository<TreeItemType>, UmbDetailRepository<ItemType>
{
#init!: Promise<unknown>;
#treeSource: UmbTreeDataSource;

View File

@@ -1,7 +1,7 @@
import { UmbMemberTreeStore, UMB_MEMBER_TREE_STORE_CONTEXT_TOKEN } from './member.tree.store.js';
import { UmbMemberTreeServerDataSource } from './sources/member.tree.server.data.js';
import { UmbBaseController, type UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api';
import type { UmbTreeRepository } from '@umbraco-cms/backoffice/repository';
import { type UmbTreeRepository } from '@umbraco-cms/backoffice/tree';
import { UmbApi } from '@umbraco-cms/backoffice/extension-api';
export class UmbMemberRepository extends UmbBaseController implements UmbTreeRepository<any>, UmbApi {

View File

@@ -9,11 +9,13 @@ import {
RelationTypeResponseModel,
UpdateRelationTypeRequestModel,
} from '@umbraco-cms/backoffice/backend-api';
import { UmbDetailRepository, UmbTreeRepository } from '@umbraco-cms/backoffice/repository';
import { UmbDetailRepository } from '@umbraco-cms/backoffice/repository';
import { UmbTreeRepository } from '@umbraco-cms/backoffice/tree';
import { UmbNotificationContext, UMB_NOTIFICATION_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/notification';
import { UmbApi } from '@umbraco-cms/backoffice/extension-api';
export class UmbRelationTypeRepository extends UmbBaseController
export class UmbRelationTypeRepository
extends UmbBaseController
implements
UmbTreeRepository<any>,
UmbDetailRepository<CreateRelationTypeRequestModel, any, UpdateRelationTypeRequestModel, RelationTypeResponseModel>,

View File

@@ -26,11 +26,12 @@ import {
UmbDataSourceErrorResponse,
UmbDetailRepository,
UmbFolderRepository,
UmbTreeRepository,
} from '@umbraco-cms/backoffice/repository';
import { UmbTreeRepository } from '@umbraco-cms/backoffice/tree';
import { UmbApi } from '@umbraco-cms/backoffice/extension-api';
export class UmbPartialViewsRepository extends UmbBaseController
export class UmbPartialViewsRepository
extends UmbBaseController
implements
UmbTreeRepository<FileSystemTreeItemPresentationModel>,
UmbDetailRepository<
@@ -65,7 +66,7 @@ export class UmbPartialViewsRepository extends UmbBaseController
//#region FOLDER
createFolderScaffold(
parentId: string | null
parentId: string | null,
): Promise<{ data?: FolderResponseModel | undefined; error?: ProblemDetails | undefined }> {
const data: FolderResponseModel = {
name: '',
@@ -74,7 +75,7 @@ export class UmbPartialViewsRepository extends UmbBaseController
return Promise.resolve({ data, error: undefined });
}
async createFolder(
requestBody: CreateFolderRequestModel
requestBody: CreateFolderRequestModel,
): Promise<{ data?: string | undefined; error?: ProblemDetails | undefined }> {
await this.#init;
const req = {
@@ -87,14 +88,14 @@ export class UmbPartialViewsRepository extends UmbBaseController
return promise;
}
async requestFolder(
unique: string
unique: string,
): Promise<{ data?: PartialViewGetFolderResponse | undefined; error?: ProblemDetails | undefined }> {
await this.#init;
return this.#folderDataSource.get(unique);
}
updateFolder(
unique: string,
folder: FolderModelBaseModel
folder: FolderModelBaseModel,
): Promise<{ data?: FolderModelBaseModel | undefined; error?: ProblemDetails | undefined }> {
throw new Error('Method not implemented.');
}

View File

@@ -8,8 +8,8 @@ import {
UmbDataSourceErrorResponse,
UmbDetailRepository,
UmbFolderRepository,
UmbTreeRepository,
} from '@umbraco-cms/backoffice/repository';
import { UmbTreeRepository } from '@umbraco-cms/backoffice/tree';
import {
CreateFolderRequestModel,
CreateScriptRequestModel,
@@ -26,7 +26,8 @@ import { UmbBaseController, UmbControllerHost } from '@umbraco-cms/backoffice/co
import { Observable } from '@umbraco-cms/backoffice/external/rxjs';
import { UmbApi } from '@umbraco-cms/backoffice/extension-api';
export class UmbScriptsRepository extends UmbBaseController
export class UmbScriptsRepository
extends UmbBaseController
implements
UmbTreeRepository<FileSystemTreeItemPresentationModel>,
UmbDetailRepository<CreateScriptRequestModel, string, UpdateScriptRequestModel, ScriptResponseModel, string>,

View File

@@ -13,8 +13,8 @@ import {
UmbDataSourceErrorResponse,
UmbDetailRepository,
UmbFolderRepository,
UmbTreeRepository,
} from '@umbraco-cms/backoffice/repository';
import { UmbTreeRepository } from '@umbraco-cms/backoffice/tree';
import {
CreateFolderRequestModel,
CreateStylesheetRequestModel,

View File

@@ -11,8 +11,8 @@ import type {
UmbItemDataSource,
UmbItemRepository,
UmbTreeDataSource,
UmbTreeRepository,
} from '@umbraco-cms/backoffice/repository';
import { UmbTreeRepository } from '@umbraco-cms/backoffice/tree';
import { UmbBaseController, type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
import { UmbNotificationContext, UMB_NOTIFICATION_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/notification';
import type {
@@ -26,7 +26,8 @@ import type {
} from '@umbraco-cms/backoffice/backend-api';
import { UmbApi } from '@umbraco-cms/backoffice/extension-api';
export class UmbTemplateRepository extends UmbBaseController
export class UmbTemplateRepository
extends UmbBaseController
implements
UmbTreeRepository<EntityTreeItemResponseModel>,
UmbDetailRepository<CreateTemplateRequestModel, string, UpdateTemplateRequestModel, TemplateResponseModel>,