From 1154646081a8920873eeeb8fcd8cf71697eb5ac7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Wed, 12 Apr 2023 12:50:04 +0200 Subject: [PATCH] save mock data --- .../sources/document-type.server.data.ts | 6 +-- .../sources/document.server.data.ts | 50 ++----------------- .../mocks/domains/document-type.handlers.ts | 14 +++++- .../core/mocks/domains/document.handlers.ts | 12 ++++- 4 files changed, 27 insertions(+), 55 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/documents/document-types/repository/sources/document-type.server.data.ts b/src/Umbraco.Web.UI.Client/src/backoffice/documents/document-types/repository/sources/document-type.server.data.ts index f6bff744b2..5915dc9907 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/documents/document-types/repository/sources/document-type.server.data.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/documents/document-types/repository/sources/document-type.server.data.ts @@ -66,11 +66,7 @@ export class UmbDocumentTypeServerDataSource implements UmbDataSource( - this.#host, - fetch('/umbraco/management/api/v1/document/save', { - method: 'POST', - body: body, - headers: { - 'Content-Type': 'application/json', - }, - }) as any - ); + return tryExecuteAndNotify(this.#host, DocumentResource.postDocument({ requestBody: document })); } /** @@ -118,33 +99,10 @@ export class UmbDocumentServerDataSource * @return {*} * @memberof UmbDocumentServerDataSource */ - async update(id: string, document: DocumentResponseModel) { - if (!document.id) { - const error: ProblemDetailsModel = { title: 'Document id is missing' }; - return { error }; - } - //const payload = { id: document.id, requestBody: document }; + async update(id: string, document: UpdateDocumentRequestModel) { + if (!id) throw new Error('Id is missing'); - let body: string; - - try { - body = JSON.stringify(document); - } catch (error) { - const myError: ProblemDetailsModel = { title: 'JSON could not parse' }; - return { error: myError }; - } - - // TODO: use resources when end point is ready: - return tryExecuteAndNotify( - this.#host, - fetch('/umbraco/management/api/v1/document/save', { - method: 'POST', - body: body, - headers: { - 'Content-Type': 'application/json', - }, - }) as any - ); + return tryExecuteAndNotify(this.#host, DocumentResource.putDocumentById({ id, requestBody: document })); } /** diff --git a/src/Umbraco.Web.UI.Client/src/core/mocks/domains/document-type.handlers.ts b/src/Umbraco.Web.UI.Client/src/core/mocks/domains/document-type.handlers.ts index 1daea0ba0f..75f44b4a9a 100644 --- a/src/Umbraco.Web.UI.Client/src/core/mocks/domains/document-type.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/core/mocks/domains/document-type.handlers.ts @@ -1,11 +1,21 @@ import { rest } from 'msw'; import { umbDocumentTypeData } from '../data/document-type.data'; import type { DocumentTypeResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import { umbracoPath } from '@umbraco-cms/backoffice/utils'; // TODO: add schema export const handlers = [ - rest.post('/umbraco/management/api/v1/document-type/:id', (req, res, ctx) => { - const data = req.body; + rest.post(umbracoPath(`/document-type`), async (req, res, ctx) => { + const data = await req.json(); + if (!data) return; + + umbDocumentTypeData.insert(data); + + return res(ctx.status(200)); + }), + + rest.put(umbracoPath(`/document-type/:id`), async (req, res, ctx) => { + const data = await req.json(); if (!data) return; const saved = umbDocumentTypeData.save(data); diff --git a/src/Umbraco.Web.UI.Client/src/core/mocks/domains/document.handlers.ts b/src/Umbraco.Web.UI.Client/src/core/mocks/domains/document.handlers.ts index 44c3eb41da..487ccbcb0f 100644 --- a/src/Umbraco.Web.UI.Client/src/core/mocks/domains/document.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/core/mocks/domains/document.handlers.ts @@ -1,6 +1,5 @@ import { rest } from 'msw'; import { umbDocumentData } from '../data/document.data'; -import type { DocumentResponseModel } from '@umbraco-cms/backoffice/backend-api'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; // TODO: add schema @@ -35,7 +34,16 @@ export const handlers = [ return res(ctx.status(200), ctx.json(items)); }), - rest.post('/umbraco/management/api/v1/document/:id', async (req, res, ctx) => { + rest.post(umbracoPath(`/document`), async (req, res, ctx) => { + const data = await req.json(); + if (!data) return; + + umbDocumentData.insert(data); + + return res(ctx.status(200)); + }), + + rest.put(umbracoPath(`/document/:id`), async (req, res, ctx) => { const data = await req.json(); if (!data) return;