mock get request
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
import { UmbEntityData } from './entity.data.js';
|
||||
import { createFileSystemTreeItem } from './utils.js';
|
||||
import { createFileSystemTreeItem, createTextFileItem } from './utils.js';
|
||||
import {
|
||||
CreateTextFileViewModelBaseModel,
|
||||
FileSystemTreeItemPresentationModel,
|
||||
PagedFileSystemTreeItemPresentationModel,
|
||||
PartialViewResponseModel,
|
||||
@@ -8,10 +9,11 @@ import {
|
||||
SnippetItemResponseModel,
|
||||
} from '@umbraco-cms/backoffice/backend-api';
|
||||
|
||||
type PartialViewsDataItem = PartialViewResponseModel & FileSystemTreeItemPresentationModel;
|
||||
type PartialViewsDataItem = PartialViewResponseModel & FileSystemTreeItemPresentationModel & { id: string };
|
||||
|
||||
export const treeData: Array<PartialViewsDataItem> = [
|
||||
{
|
||||
id: 'blockgrid',
|
||||
path: 'blockgrid',
|
||||
isFolder: true,
|
||||
name: 'blockgrid',
|
||||
@@ -19,6 +21,7 @@ export const treeData: Array<PartialViewsDataItem> = [
|
||||
hasChildren: true,
|
||||
},
|
||||
{
|
||||
id: 'blocklist',
|
||||
path: 'blocklist',
|
||||
isFolder: true,
|
||||
name: 'blocklist',
|
||||
@@ -26,6 +29,7 @@ export const treeData: Array<PartialViewsDataItem> = [
|
||||
hasChildren: true,
|
||||
},
|
||||
{
|
||||
id: 'grid',
|
||||
path: 'grid',
|
||||
isFolder: true,
|
||||
name: 'grid',
|
||||
@@ -33,6 +37,7 @@ export const treeData: Array<PartialViewsDataItem> = [
|
||||
hasChildren: true,
|
||||
},
|
||||
{
|
||||
id: 'blockgrid/area.cshtml',
|
||||
path: 'blockgrid/area.cshtml',
|
||||
isFolder: false,
|
||||
name: 'area.cshtml',
|
||||
@@ -51,6 +56,7 @@ export const treeData: Array<PartialViewsDataItem> = [
|
||||
`,
|
||||
},
|
||||
{
|
||||
id: 'blockgrid/items.cshtml',
|
||||
path: 'blockgrid/items.cshtml',
|
||||
isFolder: false,
|
||||
name: 'items.cshtml',
|
||||
@@ -59,6 +65,7 @@ export const treeData: Array<PartialViewsDataItem> = [
|
||||
content: '@inherits Umbraco.Cms.Web.Common.Views.UmbracoViewPage',
|
||||
},
|
||||
{
|
||||
id: 'blocklist/default.cshtml',
|
||||
path: 'blocklist/default.cshtml',
|
||||
isFolder: false,
|
||||
name: 'default.cshtml',
|
||||
@@ -78,7 +85,8 @@ export const treeData: Array<PartialViewsDataItem> = [
|
||||
`,
|
||||
},
|
||||
{
|
||||
path: 'grid/editors',
|
||||
id: 'grid/embed.cshtm',
|
||||
path: 'grid/embed.cshtm',
|
||||
isFolder: false,
|
||||
name: 'embed.cshtml',
|
||||
type: 'partial-view',
|
||||
@@ -97,6 +105,7 @@ export const treeData: Array<PartialViewsDataItem> = [
|
||||
`,
|
||||
},
|
||||
{
|
||||
id: 'grid/default.cshtml',
|
||||
path: 'grid/default.cshtml',
|
||||
isFolder: false,
|
||||
name: 'items.cshtml',
|
||||
@@ -341,4 +350,30 @@ class UmbPartialViewSnippetsData extends UmbEntityData<SnippetItemResponseModel>
|
||||
}
|
||||
}
|
||||
|
||||
export const umbPartialViewSnippetsData = new UmbPartialViewSnippetsData();
|
||||
class UmbPartialViewsData extends UmbEntityData<PartialViewResponseModel> {
|
||||
constructor() {
|
||||
super(treeData);
|
||||
}
|
||||
|
||||
getPartialView(path: string): PartialViewResponseModel | undefined {
|
||||
debugger;
|
||||
return createTextFileItem(this.data.find((item) => item.path === path));
|
||||
}
|
||||
|
||||
insertPartialView(item: CreateTextFileViewModelBaseModel) {
|
||||
const newItem: PartialViewsDataItem = {
|
||||
...item,
|
||||
path: `${item.parentPath}/${item.name}.cshtml}`,
|
||||
id: `${item.parentPath}/${item.name}.cshtml}`,
|
||||
isFolder: false,
|
||||
hasChildren: false,
|
||||
type: 'partial-view',
|
||||
};
|
||||
|
||||
this.insert(newItem);
|
||||
return newItem;
|
||||
}
|
||||
}
|
||||
|
||||
export const umbPartialViewSnippetsData = new UmbPartialViewSnippetsData();
|
||||
export const umbPartialViewsData = new UmbPartialViewsData();
|
||||
@@ -7,6 +7,7 @@ import type {
|
||||
DocumentTypeResponseModel,
|
||||
FileSystemTreeItemPresentationModel,
|
||||
DocumentResponseModel,
|
||||
TextFileResponseModelBaseModel,
|
||||
} from '@umbraco-cms/backoffice/backend-api';
|
||||
|
||||
export const createEntityTreeItem = (item: any): EntityTreeItemResponseModel => {
|
||||
@@ -73,3 +74,9 @@ export const createFileSystemTreeItem = (item: any): FileSystemTreeItemPresentat
|
||||
isFolder: item.isFolder,
|
||||
};
|
||||
};
|
||||
|
||||
export const createTextFileItem = (item: any): TextFileResponseModelBaseModel => ({
|
||||
path: item.path,
|
||||
name: item.name,
|
||||
content: item.content,
|
||||
});
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
const { rest } = window.MockServiceWorker;
|
||||
import { RestHandler, MockedRequest, DefaultBodyType } from 'msw';
|
||||
import { umbPartialViewsTreeData } from '../data/partial-views.data.js';
|
||||
import { umbPartialViewsData, umbPartialViewsTreeData } from '../data/partial-views.data.js';
|
||||
import { umbracoPath } from '@umbraco-cms/backoffice/utils';
|
||||
import { CreateTextFileViewModelBaseModel } from '@umbraco-cms/backoffice/backend-api';
|
||||
|
||||
const treeHandlers = [
|
||||
rest.get(umbracoPath('/tree/partial-view/root'), (req, res, ctx) => {
|
||||
@@ -26,7 +27,35 @@ const treeHandlers = [
|
||||
}),
|
||||
];
|
||||
|
||||
const detailHandlers: RestHandler<MockedRequest<DefaultBodyType>>[] = [];
|
||||
const detailHandlers: RestHandler<MockedRequest<DefaultBodyType>>[] = [
|
||||
rest.get(umbracoPath('/partial-view'), (req, res, ctx) => {
|
||||
debugger;
|
||||
const path = decodeURIComponent(req.url.searchParams.get('path') ?? '').replace('-cshtml', '.cshtml');
|
||||
if (!path) return res(ctx.status(400));
|
||||
const response = umbPartialViewsData.getPartialView(path);
|
||||
return res(ctx.status(200), ctx.json(response));
|
||||
}),
|
||||
|
||||
rest.post(umbracoPath('/partial-view'), (req, res, ctx) => {
|
||||
const requestBody = req.json() as CreateTextFileViewModelBaseModel;
|
||||
if (!requestBody) return res(ctx.status(400, 'no body found'));
|
||||
const response = umbPartialViewsData.insertPartialView(requestBody);
|
||||
return res(ctx.status(200), ctx.json(response));
|
||||
}),
|
||||
|
||||
rest.delete(umbracoPath('/partial-view'), (req, res, ctx) => {
|
||||
const path = req.url.searchParams.get('path');
|
||||
if (!path) return res(ctx.status(400));
|
||||
const response = umbPartialViewsData.delete([path]);
|
||||
return res(ctx.status(200), ctx.json(response));
|
||||
}),
|
||||
rest.put(umbracoPath('/partial-view'), (req, res, ctx) => {
|
||||
const requestBody = req.json() as CreateTextFileViewModelBaseModel;
|
||||
if (!requestBody) return res(ctx.status(400, 'no body found'));
|
||||
const response = umbPartialViewsData.updateData(requestBody);
|
||||
return res(ctx.status(200));
|
||||
}),
|
||||
];
|
||||
const folderHandlers: RestHandler<MockedRequest<DefaultBodyType>>[] = [];
|
||||
|
||||
export const handlers = [...treeHandlers, ...detailHandlers, ...folderHandlers]
|
||||
Reference in New Issue
Block a user