add handlers and mock data for document recycle bin

This commit is contained in:
Mads Rasmussen
2023-09-12 16:54:27 +02:00
parent a471d371b4
commit 5af087004c
4 changed files with 54 additions and 1 deletions

View File

@@ -13,7 +13,7 @@ import { handlers as examineManagementHandlers } from './handlers/examine-manage
import { handlers as modelsBuilderHandlers } from './handlers/modelsbuilder.handlers.js';
import { handlers as healthCheckHandlers } from './handlers/health-check.handlers.js';
import { handlers as profilingHandlers } from './handlers/performance-profiling.handlers.js';
import { handlers as documentHandlers } from './handlers/document/document.handlers.js';
import { handlers as documentHandlers } from './handlers/document/index.js';
import { handlers as mediaHandlers } from './handlers/media.handlers.js';
import { handlers as dictionaryHandlers } from './handlers/dictionary.handlers.js';
import { handlers as mediaTypeHandlers } from './handlers/media-type.handlers.js';

View File

@@ -7,6 +7,7 @@ import {
DocumentTreeItemResponseModel,
PagedDocumentTreeItemResponseModel,
PagedDocumentTypeResponseModel,
PagedRecycleBinItemResponseModel,
} from '@umbraco-cms/backoffice/backend-api';
export const data: Array<DocumentResponseModel> = [
@@ -547,6 +548,20 @@ export const treeData: Array<DocumentTreeItemResponseModel> = [
isEdited: false,
isTrashed: false,
},
{
name: 'Trashed',
type: 'document',
icon: 'document',
hasChildren: false,
id: 'trashed-document-id',
isContainer: false,
parentId: null,
noAccess: false,
isProtected: false,
isPublished: false,
isEdited: false,
isTrashed: true,
},
];
// Temp mocked database
@@ -617,6 +632,20 @@ class UmbDocumentData extends UmbEntityData<DocumentResponseModel> {
const total = items?.length;
return { items, total };
}
getRecycleBinRoot(): PagedRecycleBinItemResponseModel {
const items = this.treeData.filter((item) => item.parentId === null && item.isTrashed);
const treeItems = items.map((item) => item);
const total = items.length;
return { items: treeItems, total };
}
getRecycleBinChildren(parentId: string): PagedRecycleBinItemResponseModel {
const items = this.treeData.filter((item) => item.parentId === parentId && item.isTrashed);
const treeItems = items.map((item) => item);
const total = items.length;
return { items: treeItems, total };
}
}
export const umbDocumentData = new UmbDocumentData();

View File

@@ -0,0 +1,4 @@
import { handlers as recycleBinHandlers } from './recycle-bin.handlers.js';
import { handlers as documentHandlers } from './document.handlers.js';
export const handlers = [...recycleBinHandlers, ...documentHandlers];

View File

@@ -0,0 +1,20 @@
const { rest } = window.MockServiceWorker;
import { umbDocumentData } from '../../data/document.data.js';
import { umbracoPath } from '@umbraco-cms/backoffice/utils';
export const handlers = [
rest.get(umbracoPath(`/recycle-bin/document/root`), (req, res, ctx) => {
const response = umbDocumentData.getRecycleBinRoot();
return res(ctx.status(200), ctx.json(response));
}),
rest.get(umbracoPath(`/recycle-bin/document/children`), (req, res, ctx) => {
const parentId = req.url.searchParams.get('parentId');
if (!parentId) return;
const response = umbDocumentData.getRecycleBinChildren(parentId);
return res(ctx.status(200), ctx.json(response));
}),
];