From 7d1141d95d403dc5368af284da95fa385b0825e3 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Mon, 26 Feb 2024 11:20:12 +0100 Subject: [PATCH] update server models --- src/Umbraco.Web.UI.Client/package.json | 1 + .../src/external/backend-api/src/index.ts | 1 + .../src/models/CreateMediaTypeRequestModel.ts | 2 + .../src/models/DataTypeResponseModel.ts | 1 + .../src/services/DocumentResource.ts | 54 +++++++++++++++++++ .../backend-api/src/services/MediaResource.ts | 53 ++++++++++++++++++ .../src/services/TemporaryFileResource.ts | 3 +- .../mocks/data/data-type/data-type.data.ts | 39 ++++++++++++++ .../src/mocks/data/data-type/data-type.db.ts | 3 ++ 9 files changed, 156 insertions(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/package.json b/src/Umbraco.Web.UI.Client/package.json index e8e232ac2d..9a9654021c 100644 --- a/src/Umbraco.Web.UI.Client/package.json +++ b/src/Umbraco.Web.UI.Client/package.json @@ -127,6 +127,7 @@ "example": "node ./devops/example-runner/index.js", "format:fix": "npm run format -- --write", "format": "prettier 'src/**/*.ts' -- check", + "generate:api-local": "openapi --input ../Umbraco.Cms.Api.Management/OpenApi.json --output src/external/backend-api/src --postfixServices Resource --useOptions", "generate:api-dev": "openapi --input http://localhost:11000/umbraco/swagger/management/swagger.json --output src/external/backend-api/src --postfixServices Resource --useOptions", "generate:api": "openapi --input https://raw.githubusercontent.com/umbraco/Umbraco-CMS/v14/dev/src/Umbraco.Cms.Api.Management/OpenApi.json --output src/external/backend-api/src --postfixServices Resource --useOptions", "generate:icons": "node ./devops/icons/index.js", diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/index.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/index.ts index 16a1bd5bf9..5571e4b3eb 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/index.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/index.ts @@ -361,6 +361,7 @@ export type { TemplateQueryResultItemPresentationModel } from './models/Template export type { TemplateQueryResultResponseModel } from './models/TemplateQueryResultResponseModel'; export type { TemplateQuerySettingsResponseModel } from './models/TemplateQuerySettingsResponseModel'; export type { TemplateResponseModel } from './models/TemplateResponseModel'; +export type { TemporaryFileConfigurationResponseModel } from './models/TemporaryFileConfigurationResponseModel'; export type { TemporaryFileResponseModel } from './models/TemporaryFileResponseModel'; export type { TourStatusModel } from './models/TourStatusModel'; export type { TreeItemPresentationModel } from './models/TreeItemPresentationModel'; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateMediaTypeRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateMediaTypeRequestModel.ts index e143edb901..9db4ac7433 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateMediaTypeRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateMediaTypeRequestModel.ts @@ -6,9 +6,11 @@ import type { CreateContentTypeForMediaTypeRequestModel } from './CreateContentTypeForMediaTypeRequestModel'; import type { MediaTypeCompositionModel } from './MediaTypeCompositionModel'; import type { MediaTypeSortModel } from './MediaTypeSortModel'; +import type { ReferenceByIdModel } from './ReferenceByIdModel'; export type CreateMediaTypeRequestModel = (CreateContentTypeForMediaTypeRequestModel & { allowedMediaTypes: Array; compositions: Array; + collection?: ReferenceByIdModel | null; }); diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypeResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypeResponseModel.ts index afd9143aef..4be982e714 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypeResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypeResponseModel.ts @@ -10,5 +10,6 @@ export type DataTypeResponseModel = (DataTypeModelBaseModel & { id: string; parent?: ReferenceByIdModel | null; isDeletable: boolean; + canIgnoreStartNodes: boolean; }); diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DocumentResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DocumentResource.ts index 1453062de2..70fc1eff70 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DocumentResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DocumentResource.ts @@ -11,12 +11,14 @@ import type { DocumentNotificationResponseModel } from '../models/DocumentNotifi import type { DocumentResponseModel } from '../models/DocumentResponseModel'; import type { DomainsResponseModel } from '../models/DomainsResponseModel'; import type { MoveDocumentRequestModel } from '../models/MoveDocumentRequestModel'; +import type { MoveMediaRequestModel } from '../models/MoveMediaRequestModel'; import type { PagedDocumentCollectionResponseModel } from '../models/PagedDocumentCollectionResponseModel'; import type { PagedDocumentRecycleBinItemResponseModel } from '../models/PagedDocumentRecycleBinItemResponseModel'; import type { PagedDocumentTreeItemResponseModel } from '../models/PagedDocumentTreeItemResponseModel'; import type { PublicAccessRequestModel } from '../models/PublicAccessRequestModel'; import type { PublishDocumentRequestModel } from '../models/PublishDocumentRequestModel'; import type { PublishDocumentWithDescendantsRequestModel } from '../models/PublishDocumentWithDescendantsRequestModel'; +import type { ReferenceByIdModel } from '../models/ReferenceByIdModel'; import type { SortingRequestModel } from '../models/SortingRequestModel'; import type { UnpublishDocumentRequestModel } from '../models/UnpublishDocumentRequestModel'; import type { UpdateDocumentNotificationsRequestModel } from '../models/UpdateDocumentNotificationsRequestModel'; @@ -683,6 +685,58 @@ export class DocumentResource { }); } + /** + * @returns any Success + * @throws ApiError + */ + public static getRecycleBinDocumentByIdOriginalParent({ + id, + }: { + id: string, + }): CancelablePromise { + return __request(OpenAPI, { + method: 'GET', + url: '/umbraco/management/api/v1/recycle-bin/document/{id}/original-parent', + path: { + 'id': id, + }, + errors: { + 400: `Bad Request`, + 401: `The resource is protected and requires an authentication token`, + 403: `The authenticated user do not have access to this resource`, + 404: `Not Found`, + }, + }); + } + + /** + * @returns any Success + * @throws ApiError + */ + public static putRecycleBinDocumentByIdRestore({ + id, + requestBody, + }: { + id: string, + requestBody?: MoveMediaRequestModel, + }): CancelablePromise { + return __request(OpenAPI, { + method: 'PUT', + url: '/umbraco/management/api/v1/recycle-bin/document/{id}/restore', + path: { + 'id': id, + }, + body: requestBody, + mediaType: 'application/json', + errors: { + 400: `Bad Request`, + 401: `The resource is protected and requires an authentication token`, + 403: `The authenticated user do not have access to this resource`, + 404: `Not Found`, + }, + }); + } + /** * @returns PagedDocumentRecycleBinItemResponseModel Success * @throws ApiError diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MediaResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MediaResource.ts index bbfb4abc63..d85c17a566 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MediaResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MediaResource.ts @@ -11,6 +11,7 @@ import type { MoveMediaRequestModel } from '../models/MoveMediaRequestModel'; import type { PagedMediaCollectionResponseModel } from '../models/PagedMediaCollectionResponseModel'; import type { PagedMediaRecycleBinItemResponseModel } from '../models/PagedMediaRecycleBinItemResponseModel'; import type { PagedMediaTreeItemResponseModel } from '../models/PagedMediaTreeItemResponseModel'; +import type { ReferenceByIdModel } from '../models/ReferenceByIdModel'; import type { SortingRequestModel } from '../models/SortingRequestModel'; import type { UpdateMediaRequestModel } from '../models/UpdateMediaRequestModel'; @@ -360,6 +361,58 @@ export class MediaResource { }); } + /** + * @returns any Success + * @throws ApiError + */ + public static getRecycleBinMediaByIdOriginalParent({ + id, + }: { + id: string, + }): CancelablePromise { + return __request(OpenAPI, { + method: 'GET', + url: '/umbraco/management/api/v1/recycle-bin/media/{id}/original-parent', + path: { + 'id': id, + }, + errors: { + 400: `Bad Request`, + 401: `The resource is protected and requires an authentication token`, + 403: `The authenticated user do not have access to this resource`, + 404: `Not Found`, + }, + }); + } + + /** + * @returns any Success + * @throws ApiError + */ + public static putRecycleBinMediaByIdRestore({ + id, + requestBody, + }: { + id: string, + requestBody?: MoveMediaRequestModel, + }): CancelablePromise { + return __request(OpenAPI, { + method: 'PUT', + url: '/umbraco/management/api/v1/recycle-bin/media/{id}/restore', + path: { + 'id': id, + }, + body: requestBody, + mediaType: 'application/json', + errors: { + 400: `Bad Request`, + 401: `The resource is protected and requires an authentication token`, + 403: `The authenticated user do not have access to this resource`, + 404: `Not Found`, + }, + }); + } + /** * @returns PagedMediaRecycleBinItemResponseModel Success * @throws ApiError diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TemporaryFileResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TemporaryFileResource.ts index 848076b99a..c78ba660da 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TemporaryFileResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TemporaryFileResource.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ +import type { TemporaryFileConfigurationResponseModel } from '../models/TemporaryFileConfigurationResponseModel'; import type { TemporaryFileResponseModel } from '../models/TemporaryFileResponseModel'; import type { CancelablePromise } from '../core/CancelablePromise'; @@ -85,7 +86,7 @@ export class TemporaryFileResource { * @returns any Success * @throws ApiError */ - public static getTemporaryFileConfiguration(): CancelablePromise { + public static getTemporaryFileConfiguration(): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/temporary-file/configuration', diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/data-type/data-type.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/data-type/data-type.data.ts index 2b4f4af2b3..74f5acfcd3 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/data-type/data-type.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/data-type/data-type.data.ts @@ -18,6 +18,7 @@ export const data: Array = [ editorAlias: '', values: [], isDeletable: true, + canIgnoreStartNodes: false, }, { name: 'Folder 2', @@ -28,6 +29,7 @@ export const data: Array = [ editorAlias: '', values: [], isDeletable: true, + canIgnoreStartNodes: false, }, { id: '0cc0eba1-9960-42c9-bf9b-60e150b429ae', @@ -39,6 +41,7 @@ export const data: Array = [ hasChildren: false, isFolder: false, isDeletable: true, + canIgnoreStartNodes: false, }, { name: 'Text', @@ -49,6 +52,7 @@ export const data: Array = [ hasChildren: false, isFolder: false, isDeletable: true, + canIgnoreStartNodes: false, values: [ { alias: 'maxChars', @@ -65,6 +69,7 @@ export const data: Array = [ hasChildren: false, isFolder: false, isDeletable: true, + canIgnoreStartNodes: false, values: [], }, { @@ -76,6 +81,7 @@ export const data: Array = [ hasChildren: false, isFolder: false, isDeletable: true, + canIgnoreStartNodes: false, values: [], }, { @@ -87,6 +93,7 @@ export const data: Array = [ hasChildren: false, isFolder: false, isDeletable: true, + canIgnoreStartNodes: false, values: [ { alias: 'useLabel', @@ -144,6 +151,7 @@ export const data: Array = [ hasChildren: false, isFolder: false, isDeletable: true, + canIgnoreStartNodes: false, values: [ { alias: 'validationLimit', @@ -160,6 +168,7 @@ export const data: Array = [ hasChildren: false, isFolder: false, isDeletable: true, + canIgnoreStartNodes: false, values: [ { //showPalette @@ -198,6 +207,7 @@ export const data: Array = [ hasChildren: false, isFolder: false, isDeletable: true, + canIgnoreStartNodes: false, values: [ { alias: 'overlaySize', @@ -230,6 +240,7 @@ export const data: Array = [ hasChildren: false, isFolder: false, isDeletable: true, + canIgnoreStartNodes: false, values: [ { alias: 'startNode', @@ -278,6 +289,7 @@ export const data: Array = [ hasChildren: false, isFolder: false, isDeletable: true, + canIgnoreStartNodes: false, values: [ { alias: 'format', @@ -301,6 +313,7 @@ export const data: Array = [ hasChildren: false, isFolder: false, isDeletable: true, + canIgnoreStartNodes: false, values: [ { alias: 'format', @@ -321,6 +334,7 @@ export const data: Array = [ hasChildren: false, isFolder: false, isDeletable: true, + canIgnoreStartNodes: false, values: [ { alias: 'format', @@ -341,6 +355,7 @@ export const data: Array = [ hasChildren: false, isFolder: false, isDeletable: true, + canIgnoreStartNodes: false, values: [ { alias: 'inputMode', @@ -357,6 +372,7 @@ export const data: Array = [ hasChildren: false, isFolder: false, isDeletable: true, + canIgnoreStartNodes: false, values: [ { alias: 'minNumber', @@ -377,6 +393,7 @@ export const data: Array = [ hasChildren: false, isFolder: false, isDeletable: true, + canIgnoreStartNodes: false, values: [ { alias: 'multiple', @@ -401,6 +418,7 @@ export const data: Array = [ hasChildren: false, isFolder: false, isDeletable: true, + canIgnoreStartNodes: false, values: [ { alias: 'enableRange', @@ -437,6 +455,7 @@ export const data: Array = [ hasChildren: false, isFolder: false, isDeletable: true, + canIgnoreStartNodes: false, values: [ { alias: 'default', @@ -465,6 +484,7 @@ export const data: Array = [ hasChildren: false, isFolder: false, isDeletable: true, + canIgnoreStartNodes: false, values: [ { alias: 'group', @@ -485,6 +505,7 @@ export const data: Array = [ hasChildren: false, isFolder: false, isDeletable: true, + canIgnoreStartNodes: false, values: [], }, { @@ -496,6 +517,7 @@ export const data: Array = [ hasChildren: false, isFolder: false, isDeletable: true, + canIgnoreStartNodes: false, values: [ { alias: 'items', @@ -516,6 +538,7 @@ export const data: Array = [ hasChildren: false, isFolder: false, isDeletable: true, + canIgnoreStartNodes: false, values: [ { alias: 'items', @@ -536,6 +559,7 @@ export const data: Array = [ hasChildren: false, isFolder: false, isDeletable: true, + canIgnoreStartNodes: false, values: [ { alias: 'blocks', @@ -600,6 +624,7 @@ export const data: Array = [ hasChildren: false, isFolder: false, isDeletable: true, + canIgnoreStartNodes: false, values: [], }, { @@ -611,6 +636,7 @@ export const data: Array = [ hasChildren: false, isFolder: false, isDeletable: true, + canIgnoreStartNodes: false, values: [ { alias: 'crops', @@ -643,6 +669,7 @@ export const data: Array = [ hasChildren: false, isFolder: false, isDeletable: true, + canIgnoreStartNodes: false, values: [ { alias: 'fileExtensions', @@ -663,6 +690,7 @@ export const data: Array = [ hasChildren: false, isFolder: false, isDeletable: true, + canIgnoreStartNodes: false, values: [ { alias: 'blockGroups', @@ -780,6 +808,7 @@ export const data: Array = [ hasChildren: false, isFolder: false, isDeletable: false, + canIgnoreStartNodes: false, values: [ { alias: 'pageSize', value: 2 }, { alias: 'orderDirection', value: 'desc' }, @@ -824,6 +853,7 @@ export const data: Array = [ hasChildren: false, isFolder: false, isDeletable: true, + canIgnoreStartNodes: false, values: [], }, { @@ -835,6 +865,7 @@ export const data: Array = [ hasChildren: false, isFolder: false, isDeletable: true, + canIgnoreStartNodes: false, values: [ { alias: 'hideLabel', @@ -914,6 +945,7 @@ export const data: Array = [ hasChildren: false, isFolder: false, isDeletable: true, + canIgnoreStartNodes: false, values: [], }, { @@ -925,6 +957,7 @@ export const data: Array = [ hasChildren: false, isFolder: false, isDeletable: true, + canIgnoreStartNodes: false, values: [], }, { @@ -936,6 +969,7 @@ export const data: Array = [ hasChildren: false, isFolder: false, isDeletable: true, + canIgnoreStartNodes: false, values: [ { alias: 'step', @@ -952,6 +986,7 @@ export const data: Array = [ hasChildren: false, isFolder: false, isDeletable: true, + canIgnoreStartNodes: false, values: [], }, { @@ -963,6 +998,7 @@ export const data: Array = [ hasChildren: false, isFolder: false, isDeletable: true, + canIgnoreStartNodes: false, values: [], }, { @@ -974,6 +1010,7 @@ export const data: Array = [ hasChildren: false, isFolder: false, isDeletable: true, + canIgnoreStartNodes: false, values: [], }, { @@ -985,6 +1022,7 @@ export const data: Array = [ hasChildren: false, isFolder: false, isDeletable: true, + canIgnoreStartNodes: false, values: [], }, { @@ -996,6 +1034,7 @@ export const data: Array = [ hasChildren: false, isFolder: false, isDeletable: true, + canIgnoreStartNodes: false, values: [], }, ]; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/data-type/data-type.db.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/data-type/data-type.db.ts index ea4a7251d7..b1b0423c9c 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/data-type/data-type.db.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/data-type/data-type.db.ts @@ -34,6 +34,7 @@ const createFolderMockMapper = (request: CreateFolderRequestModel): UmbMockDataT hasChildren: false, editorAlias: '', isDeletable: true, + canIgnoreStartNodes: false, values: [], }; }; @@ -49,6 +50,7 @@ const createDetailMockMapper = (request: CreateDataTypeRequestModel): UmbMockDat isFolder: false, hasChildren: false, isDeletable: true, + canIgnoreStartNodes: false, }; }; @@ -61,6 +63,7 @@ const detailResponseMapper = (item: UmbMockDataTypeModel): DataTypeResponseModel editorUiAlias: item.editorUiAlias, values: item.values, isDeletable: item.isDeletable, + canIgnoreStartNodes: item.canIgnoreStartNodes, }; };