add overview handlers
This commit is contained in:
@@ -7,7 +7,12 @@ import { textFileItemMapper } from '../utils.js';
|
||||
import { UmbMockStylesheetModel, data } from './stylesheet.data.js';
|
||||
import { PagedStylesheetOverviewResponseModel } from '@umbraco-cms/backoffice/backend-api';
|
||||
|
||||
class UmbStylesheetData extends UmbFileSystemMockDbBase<UmbMockStylesheetModel> {
|
||||
interface UmbMockPaginationModel {
|
||||
skip?: number;
|
||||
take?: number;
|
||||
}
|
||||
|
||||
class UmbStylesheetMockDb extends UmbFileSystemMockDbBase<UmbMockStylesheetModel> {
|
||||
tree = new UmbMockFileSystemTreeManager<UmbMockStylesheetModel>(this);
|
||||
item = new UmbMockFileSystemItemManager<UmbMockStylesheetModel>(this);
|
||||
folder = new UmbMockFileSystemFolderManager<UmbMockStylesheetModel>(this);
|
||||
@@ -17,12 +22,19 @@ class UmbStylesheetData extends UmbFileSystemMockDbBase<UmbMockStylesheetModel>
|
||||
super(data);
|
||||
}
|
||||
|
||||
getAllStylesheets(): PagedStylesheetOverviewResponseModel {
|
||||
return {
|
||||
items: this.data.map((item) => textFileItemMapper(item)),
|
||||
total: this.data.map((item) => !item.isFolder).length,
|
||||
};
|
||||
getOverview(filterOptions: UmbMockPaginationModel = { skip: 0, take: 100 }): PagedStylesheetOverviewResponseModel {
|
||||
const mockItems = this.getData();
|
||||
const files = mockItems.filter((item) => item.isFolder === false);
|
||||
const paginatedFiles = files.slice(filterOptions.skip, filterOptions.skip! + filterOptions.take!);
|
||||
const responseItems = paginatedFiles.map((item) => {
|
||||
return {
|
||||
name: item.name,
|
||||
path: item.path,
|
||||
};
|
||||
});
|
||||
|
||||
return { items: responseItems, total: mockItems.length };
|
||||
}
|
||||
}
|
||||
|
||||
export const umbStylesheetData = new UmbStylesheetData(data);
|
||||
export const umbStylesheetMockDb = new UmbStylesheetMockDb(data);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
const { rest } = window.MockServiceWorker;
|
||||
import { umbStylesheetData } from '../../data/stylesheet/stylesheet.db.js';
|
||||
import { umbStylesheetMockDb } from '../../data/stylesheet/stylesheet.db.js';
|
||||
import { UMB_SLUG } from './slug.js';
|
||||
import { CreateStylesheetRequestModel, UpdateStylesheetRequestModel } from '@umbraco-cms/backoffice/backend-api';
|
||||
import { umbracoPath } from '@umbraco-cms/backoffice/utils';
|
||||
@@ -8,7 +8,7 @@ export const detailHandlers = [
|
||||
rest.post(umbracoPath(UMB_SLUG), async (req, res, ctx) => {
|
||||
const requestBody = (await req.json()) as CreateStylesheetRequestModel;
|
||||
if (!requestBody) return res(ctx.status(400, 'no body found'));
|
||||
const path = umbStylesheetData.file.create(requestBody);
|
||||
const path = umbStylesheetMockDb.file.create(requestBody);
|
||||
return res(
|
||||
ctx.status(201),
|
||||
ctx.set({
|
||||
@@ -20,14 +20,14 @@ export const detailHandlers = [
|
||||
rest.get(umbracoPath(`${UMB_SLUG}/:path`), (req, res, ctx) => {
|
||||
const path = req.params.path as string;
|
||||
if (!path) return res(ctx.status(400));
|
||||
const response = umbStylesheetData.file.read(decodeURIComponent(path));
|
||||
const response = umbStylesheetMockDb.file.read(decodeURIComponent(path));
|
||||
return res(ctx.status(200), ctx.json(response));
|
||||
}),
|
||||
|
||||
rest.delete(umbracoPath(`${UMB_SLUG}/:path`), (req, res, ctx) => {
|
||||
const path = req.params.path as string;
|
||||
if (!path) return res(ctx.status(400));
|
||||
umbStylesheetData.file.delete(decodeURIComponent(path));
|
||||
umbStylesheetMockDb.file.delete(decodeURIComponent(path));
|
||||
return res(ctx.status(200));
|
||||
}),
|
||||
|
||||
@@ -36,7 +36,7 @@ export const detailHandlers = [
|
||||
if (!path) return res(ctx.status(400));
|
||||
const requestBody = (await req.json()) as UpdateStylesheetRequestModel;
|
||||
if (!requestBody) return res(ctx.status(400, 'no body found'));
|
||||
umbStylesheetData.file.update(decodeURIComponent(path), requestBody);
|
||||
umbStylesheetMockDb.file.update(decodeURIComponent(path), requestBody);
|
||||
return res(ctx.status(200));
|
||||
}),
|
||||
];
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
const { rest } = window.MockServiceWorker;
|
||||
import { umbStylesheetData } from '../../data/stylesheet/stylesheet.db.js';
|
||||
import { umbStylesheetMockDb } from '../../data/stylesheet/stylesheet.db.js';
|
||||
import { UMB_SLUG } from './slug.js';
|
||||
import { CreateStylesheetFolderRequestModel } from '@umbraco-cms/backoffice/backend-api';
|
||||
import { umbracoPath } from '@umbraco-cms/backoffice/utils';
|
||||
@@ -9,7 +9,7 @@ export const folderHandlers = [
|
||||
const requestBody = (await req.json()) as CreateStylesheetFolderRequestModel;
|
||||
if (!requestBody) return res(ctx.status(400, 'no body found'));
|
||||
|
||||
const path = umbStylesheetData.folder.create(requestBody);
|
||||
const path = umbStylesheetMockDb.folder.create(requestBody);
|
||||
|
||||
return res(
|
||||
ctx.status(201),
|
||||
@@ -22,14 +22,14 @@ export const folderHandlers = [
|
||||
rest.get(umbracoPath(`${UMB_SLUG}/folder/:path`), (req, res, ctx) => {
|
||||
const path = req.params.path as string;
|
||||
if (!path) return res(ctx.status(400));
|
||||
const response = umbStylesheetData.folder.read(decodeURIComponent(path));
|
||||
const response = umbStylesheetMockDb.folder.read(decodeURIComponent(path));
|
||||
return res(ctx.status(200), ctx.json(response));
|
||||
}),
|
||||
|
||||
rest.delete(umbracoPath(`${UMB_SLUG}/folder/:path`), (req, res, ctx) => {
|
||||
const path = req.params.path as string;
|
||||
if (!path) return res(ctx.status(400));
|
||||
umbStylesheetData.folder.delete(decodeURIComponent(path));
|
||||
umbStylesheetMockDb.folder.delete(decodeURIComponent(path));
|
||||
return res(ctx.status(200));
|
||||
}),
|
||||
];
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
const { rest } = window.MockServiceWorker;
|
||||
import { umbStylesheetData } from '../../data/stylesheet/stylesheet.db.js';
|
||||
import { umbStylesheetMockDb } from '../../data/stylesheet/stylesheet.db.js';
|
||||
import { UMB_SLUG } from './slug.js';
|
||||
import { umbracoPath } from '@umbraco-cms/backoffice/utils';
|
||||
|
||||
@@ -7,7 +7,7 @@ export const itemHandlers = [
|
||||
rest.get(umbracoPath(`${UMB_SLUG}/item`), (req, res, ctx) => {
|
||||
const paths = req.url.searchParams.getAll('paths');
|
||||
if (!paths) return res(ctx.status(400, 'no body found'));
|
||||
const items = umbStylesheetData.item.getItems(paths);
|
||||
const items = umbStylesheetMockDb.item.getItems(paths);
|
||||
return res(ctx.status(200), ctx.json(items));
|
||||
}),
|
||||
];
|
||||
|
||||
@@ -1,13 +1,16 @@
|
||||
const { rest } = window.MockServiceWorker;
|
||||
import { umbStylesheetData } from '../../data/stylesheet/stylesheet.db.js';
|
||||
import { umbStylesheetMockDb } from '../../data/stylesheet/stylesheet.db.js';
|
||||
import { UMB_SLUG } from './slug.js';
|
||||
import { umbracoPath } from '@umbraco-cms/backoffice/utils';
|
||||
|
||||
export const overviewHandlers = [
|
||||
rest.get(umbracoPath(`${UMB_SLUG}/overview`), (req, res, ctx) => {
|
||||
const path = req.url.searchParams.get('path');
|
||||
if (!path) return;
|
||||
const response = umbStylesheetData.getAllStylesheets();
|
||||
rest.get(umbracoPath(`${UMB_SLUG}/overview`), async (req, res, ctx) => {
|
||||
const skipParam = req.url.searchParams.get('skip');
|
||||
const takeParam = req.url.searchParams.get('take');
|
||||
const response = umbStylesheetMockDb.getOverview({
|
||||
skip: skipParam ? parseInt(skipParam) : undefined,
|
||||
take: takeParam ? parseInt(takeParam) : undefined,
|
||||
});
|
||||
return res(ctx.status(200), ctx.json(response));
|
||||
}),
|
||||
];
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
const { rest } = window.MockServiceWorker;
|
||||
import { umbStylesheetData } from '../../data/stylesheet/stylesheet.db.js';
|
||||
import { umbStylesheetMockDb } from '../../data/stylesheet/stylesheet.db.js';
|
||||
import { UMB_SLUG } from './slug.js';
|
||||
import { RenameStylesheetRequestModel } from '@umbraco-cms/backoffice/backend-api';
|
||||
import { umbracoPath } from '@umbraco-cms/backoffice/utils';
|
||||
@@ -12,7 +12,7 @@ export const renameHandlers = [
|
||||
const requestBody = (await req.json()) as RenameStylesheetRequestModel;
|
||||
if (!requestBody) return res(ctx.status(400, 'no body found'));
|
||||
|
||||
const newPath = umbStylesheetData.file.rename(decodeURIComponent(path), requestBody.name);
|
||||
const newPath = umbStylesheetMockDb.file.rename(decodeURIComponent(path), requestBody.name);
|
||||
|
||||
return res(
|
||||
ctx.status(201),
|
||||
|
||||
@@ -1,18 +1,18 @@
|
||||
const { rest } = window.MockServiceWorker;
|
||||
import { umbStylesheetData } from '../../data/stylesheet/stylesheet.db.js';
|
||||
import { umbStylesheetMockDb } from '../../data/stylesheet/stylesheet.db.js';
|
||||
import { UMB_SLUG } from './slug.js';
|
||||
import { umbracoPath } from '@umbraco-cms/backoffice/utils';
|
||||
|
||||
export const treeHandlers = [
|
||||
rest.get(umbracoPath(`/tree${UMB_SLUG}/root`), (req, res, ctx) => {
|
||||
const response = umbStylesheetData.tree.getRoot();
|
||||
const response = umbStylesheetMockDb.tree.getRoot();
|
||||
return res(ctx.status(200), ctx.json(response));
|
||||
}),
|
||||
|
||||
rest.get(umbracoPath(`/tree${UMB_SLUG}/children`), (req, res, ctx) => {
|
||||
const parentPath = req.url.searchParams.get('parentPath');
|
||||
if (!parentPath) return res(ctx.status(400));
|
||||
const response = umbStylesheetData.tree.getChildrenOf(parentPath);
|
||||
const response = umbStylesheetMockDb.tree.getChildrenOf(parentPath);
|
||||
return res(ctx.status(200), ctx.json(response));
|
||||
}),
|
||||
];
|
||||
|
||||
Reference in New Issue
Block a user