From 0915f33cdd66693410d80c85da912834d9cfbf65 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Wed, 21 Feb 2024 12:45:07 +0100 Subject: [PATCH] update server models --- .../src/models/DataTypeItemResponseModel.ts | 1 + .../src/models/DataTypeResponseModel.ts | 1 + .../models/DataTypeTreeItemResponseModel.ts | 1 + .../src/services/MemberResource.ts | 75 +++++++++-------- .../src/services/TemporaryFileResource.ts | 16 ++-- .../backend-api/src/services/UserResource.ts | 82 +++++++++---------- .../mocks/data/data-type/data-type.data.ts | 39 +++++++++ .../src/mocks/data/data-type/data-type.db.ts | 4 + .../temporary-file.server.data-source.ts | 6 +- .../user-collection.server.data-source.ts | 2 +- 10 files changed, 136 insertions(+), 91 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypeItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypeItemResponseModel.ts index 6c4fd4dbb3..bdf9f4f741 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypeItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypeItemResponseModel.ts @@ -7,5 +7,6 @@ import type { NamedItemResponseModelBaseModel } from './NamedItemResponseModelBa export type DataTypeItemResponseModel = (NamedItemResponseModelBaseModel & { editorUiAlias?: string | null; + isDeletable: boolean; }); 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 3a941bf66f..afd9143aef 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 @@ -9,5 +9,6 @@ import type { ReferenceByIdModel } from './ReferenceByIdModel'; export type DataTypeResponseModel = (DataTypeModelBaseModel & { id: string; parent?: ReferenceByIdModel | null; + isDeletable: boolean; }); diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypeTreeItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypeTreeItemResponseModel.ts index a24567b4f4..b52e27e07f 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypeTreeItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypeTreeItemResponseModel.ts @@ -7,5 +7,6 @@ import type { FolderTreeItemResponseModel } from './FolderTreeItemResponseModel' export type DataTypeTreeItemResponseModel = (FolderTreeItemResponseModel & { editorUiAlias?: string | null; + isDeletable: boolean; }); diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MemberResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MemberResource.ts index b739bae4c0..20d29ae575 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MemberResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MemberResource.ts @@ -15,6 +15,43 @@ import { request as __request } from '../core/request'; export class MemberResource { + /** + * @returns PagedMemberResponseModel Success + * @throws ApiError + */ + public static getFilterMember({ + memberTypeId, + orderBy = 'username', + orderDirection, + filter, + skip, + take = 100, + }: { + memberTypeId?: string, + orderBy?: string, + orderDirection?: DirectionModel, + filter?: string, + skip?: number, + take?: number, + }): CancelablePromise { + return __request(OpenAPI, { + method: 'GET', + url: '/umbraco/management/api/v1/filter/member', + query: { + 'memberTypeId': memberTypeId, + 'orderBy': orderBy, + 'orderDirection': orderDirection, + 'filter': filter, + 'skip': skip, + 'take': take, + }, + errors: { + 401: `The resource is protected and requires an authentication token`, + 404: `Not Found`, + }, + }); + } + /** * @returns any Success * @throws ApiError @@ -158,44 +195,6 @@ export class MemberResource { }); } - /** - * @returns PagedMemberResponseModel Success - * @throws ApiError - */ - public static getMemberFilter({ - memberTypeId, - orderBy = 'username', - orderDirection, - filter, - skip, - take = 100, - }: { - memberTypeId?: string, - orderBy?: string, - orderDirection?: DirectionModel, - filter?: string, - skip?: number, - take?: number, - }): CancelablePromise { - return __request(OpenAPI, { - method: 'GET', - url: '/umbraco/management/api/v1/member/filter', - query: { - 'memberTypeId': memberTypeId, - 'orderBy': orderBy, - 'orderDirection': orderDirection, - 'filter': filter, - 'skip': skip, - 'take': take, - }, - errors: { - 400: `Bad Request`, - 401: `The resource is protected and requires an authentication token`, - 404: `Not Found`, - }, - }); - } - /** * @returns any 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 28ccb40cf5..848076b99a 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 @@ -14,7 +14,7 @@ export class TemporaryFileResource { * @returns string Created * @throws ApiError */ - public static postTemporaryfile({ + public static postTemporaryFile({ formData, }: { formData?: { @@ -24,7 +24,7 @@ export class TemporaryFileResource { }): CancelablePromise { return __request(OpenAPI, { method: 'POST', - url: '/umbraco/management/api/v1/temporaryfile', + url: '/umbraco/management/api/v1/temporary-file', formData: formData, mediaType: 'multipart/form-data', responseHeader: 'Umb-Generated-Resource', @@ -39,14 +39,14 @@ export class TemporaryFileResource { * @returns any Success * @throws ApiError */ - public static getTemporaryfileById({ + public static getTemporaryFileById({ id, }: { id: string, }): CancelablePromise { return __request(OpenAPI, { method: 'GET', - url: '/umbraco/management/api/v1/temporaryfile/{id}', + url: '/umbraco/management/api/v1/temporary-file/{id}', path: { 'id': id, }, @@ -62,14 +62,14 @@ export class TemporaryFileResource { * @returns any Success * @throws ApiError */ - public static deleteTemporaryfileById({ + public static deleteTemporaryFileById({ id, }: { id: string, }): CancelablePromise { return __request(OpenAPI, { method: 'DELETE', - url: '/umbraco/management/api/v1/temporaryfile/{id}', + url: '/umbraco/management/api/v1/temporary-file/{id}', path: { 'id': id, }, @@ -85,10 +85,10 @@ 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/temporaryfile/configuration', + url: '/umbraco/management/api/v1/temporary-file/configuration', errors: { 401: `The resource is protected and requires an authentication token`, }, diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/UserResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/UserResource.ts index 9a714f6675..9a8e7e6bad 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/UserResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/UserResource.ts @@ -37,6 +37,47 @@ import { request as __request } from '../core/request'; export class UserResource { + /** + * @returns PagedUserResponseModel Success + * @throws ApiError + */ + public static getFilterUser({ + skip, + take = 100, + orderBy, + orderDirection, + userGroupIds, + userStates, + filter = '', + }: { + skip?: number, + take?: number, + orderBy?: UserOrderModel, + orderDirection?: DirectionModel, + userGroupIds?: Array, + userStates?: Array, + filter?: string, + }): CancelablePromise { + return __request(OpenAPI, { + method: 'GET', + url: '/umbraco/management/api/v1/filter/user', + query: { + 'skip': skip, + 'take': take, + 'orderBy': orderBy, + 'orderDirection': orderDirection, + 'userGroupIds': userGroupIds, + 'userStates': userStates, + 'filter': filter, + }, + errors: { + 400: `Bad Request`, + 401: `The resource is protected and requires an authentication token`, + 404: `Not Found`, + }, + }); + } + /** * @returns any Success * @throws ApiError @@ -616,47 +657,6 @@ export class UserResource { }); } - /** - * @returns PagedUserResponseModel Success - * @throws ApiError - */ - public static getUserFilter({ - skip, - take = 100, - orderBy, - orderDirection, - userGroupIds, - userStates, - filter = '', - }: { - skip?: number, - take?: number, - orderBy?: UserOrderModel, - orderDirection?: DirectionModel, - userGroupIds?: Array, - userStates?: Array, - filter?: string, - }): CancelablePromise { - return __request(OpenAPI, { - method: 'GET', - url: '/umbraco/management/api/v1/user/filter', - query: { - 'skip': skip, - 'take': take, - 'orderBy': orderBy, - 'orderDirection': orderDirection, - 'userGroupIds': userGroupIds, - 'userStates': userStates, - 'filter': filter, - }, - errors: { - 400: `Bad Request`, - 401: `The resource is protected and requires an authentication token`, - 404: `Not Found`, - }, - }); - } - /** * @returns string Created * @throws ApiError 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 65340cdd1e..2421543b17 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 @@ -17,6 +17,7 @@ export const data: Array = [ hasChildren: false, editorAlias: '', values: [], + isDeletable: true, }, { name: 'Folder 2', @@ -26,6 +27,7 @@ export const data: Array = [ hasChildren: true, editorAlias: '', values: [], + isDeletable: true, }, { id: '0cc0eba1-9960-42c9-bf9b-60e150b429ae', @@ -36,6 +38,7 @@ export const data: Array = [ values: [], hasChildren: false, isFolder: false, + isDeletable: true, }, { name: 'Text', @@ -45,6 +48,7 @@ export const data: Array = [ editorUiAlias: 'Umb.PropertyEditorUi.TextBox', hasChildren: false, isFolder: false, + isDeletable: true, values: [ { alias: 'maxChars', @@ -60,6 +64,7 @@ export const data: Array = [ editorUiAlias: 'Umb.PropertyEditorUi.TextArea', hasChildren: false, isFolder: false, + isDeletable: true, values: [], }, { @@ -70,6 +75,7 @@ export const data: Array = [ editorUiAlias: 'My.PropertyEditorUI.Custom', hasChildren: false, isFolder: false, + isDeletable: true, values: [], }, { @@ -80,6 +86,7 @@ export const data: Array = [ editorUiAlias: 'Umb.PropertyEditorUi.ColorPicker', hasChildren: false, isFolder: false, + isDeletable: true, values: [ { alias: 'useLabel', @@ -136,6 +143,7 @@ export const data: Array = [ editorUiAlias: 'Umb.PropertyEditorUi.DocumentPicker', hasChildren: false, isFolder: false, + isDeletable: true, values: [ { alias: 'validationLimit', @@ -151,6 +159,7 @@ export const data: Array = [ editorUiAlias: 'Umb.PropertyEditorUi.EyeDropper', hasChildren: false, isFolder: false, + isDeletable: true, values: [ { //showPalette @@ -188,6 +197,7 @@ export const data: Array = [ editorUiAlias: 'Umb.PropertyEditorUi.MultiUrlPicker', hasChildren: false, isFolder: false, + isDeletable: true, values: [ { alias: 'overlaySize', @@ -219,6 +229,7 @@ export const data: Array = [ editorUiAlias: 'Umb.PropertyEditorUi.TreePicker', hasChildren: false, isFolder: false, + isDeletable: true, values: [ { alias: 'startNode', @@ -266,6 +277,7 @@ export const data: Array = [ editorUiAlias: 'Umb.PropertyEditorUi.DatePicker', hasChildren: false, isFolder: false, + isDeletable: true, values: [ { alias: 'format', @@ -288,6 +300,7 @@ export const data: Array = [ editorAlias: 'Umbraco.DateTime', hasChildren: false, isFolder: false, + isDeletable: true, values: [ { alias: 'format', @@ -307,6 +320,7 @@ export const data: Array = [ editorUiAlias: 'Umb.PropertyEditorUi.DatePicker', hasChildren: false, isFolder: false, + isDeletable: true, values: [ { alias: 'format', @@ -326,6 +340,7 @@ export const data: Array = [ editorUiAlias: 'Umb.PropertyEditorUi.Email', hasChildren: false, isFolder: false, + isDeletable: true, values: [ { alias: 'inputMode', @@ -341,6 +356,7 @@ export const data: Array = [ editorUiAlias: 'Umb.PropertyEditorUi.MultipleTextString', hasChildren: false, isFolder: false, + isDeletable: true, values: [ { alias: 'minNumber', @@ -360,6 +376,7 @@ export const data: Array = [ editorUiAlias: 'Umb.PropertyEditorUi.Dropdown', hasChildren: false, isFolder: false, + isDeletable: true, values: [ { alias: 'multiple', @@ -383,6 +400,7 @@ export const data: Array = [ editorUiAlias: 'Umb.PropertyEditorUi.Slider', hasChildren: false, isFolder: false, + isDeletable: true, values: [ { alias: 'enableRange', @@ -418,6 +436,7 @@ export const data: Array = [ editorUiAlias: 'Umb.PropertyEditorUi.Toggle', hasChildren: false, isFolder: false, + isDeletable: true, values: [ { alias: 'default', @@ -445,6 +464,7 @@ export const data: Array = [ editorUiAlias: 'Umb.PropertyEditorUi.Tags', hasChildren: false, isFolder: false, + isDeletable: true, values: [ { alias: 'group', @@ -464,6 +484,7 @@ export const data: Array = [ editorUiAlias: 'Umb.PropertyEditorUi.MarkdownEditor', hasChildren: false, isFolder: false, + isDeletable: true, values: [], }, { @@ -474,6 +495,7 @@ export const data: Array = [ editorUiAlias: 'Umb.PropertyEditorUi.RadioButtonList', hasChildren: false, isFolder: false, + isDeletable: true, values: [ { alias: 'items', @@ -493,6 +515,7 @@ export const data: Array = [ editorUiAlias: 'Umb.PropertyEditorUi.CheckboxList', hasChildren: false, isFolder: false, + isDeletable: true, values: [ { alias: 'items', @@ -512,6 +535,7 @@ export const data: Array = [ editorUiAlias: 'Umb.PropertyEditorUi.BlockList', hasChildren: false, isFolder: false, + isDeletable: true, values: [ { alias: 'blocks', @@ -575,6 +599,7 @@ export const data: Array = [ editorUiAlias: 'Umb.PropertyEditorUi.MediaPicker', hasChildren: false, isFolder: false, + isDeletable: true, values: [], }, { @@ -585,6 +610,7 @@ export const data: Array = [ editorUiAlias: 'Umb.PropertyEditorUi.ImageCropper', hasChildren: false, isFolder: false, + isDeletable: true, values: [ { alias: 'crops', @@ -616,6 +642,7 @@ export const data: Array = [ editorUiAlias: 'Umb.PropertyEditorUi.UploadField', hasChildren: false, isFolder: false, + isDeletable: true, values: [ { alias: 'fileExtensions', @@ -635,6 +662,7 @@ export const data: Array = [ editorUiAlias: 'Umb.PropertyEditorUi.BlockGrid', hasChildren: false, isFolder: false, + isDeletable: true, values: [ { alias: 'blockGroups', @@ -744,6 +772,7 @@ export const data: Array = [ editorUiAlias: 'Umb.PropertyEditorUi.CollectionView', hasChildren: false, isFolder: false, + isDeletable: false, values: [ { alias: 'pageSize', value: 2 }, { alias: 'orderDirection', value: 'desc' }, @@ -787,6 +816,7 @@ export const data: Array = [ editorUiAlias: 'Umb.PropertyEditorUi.IconPicker', hasChildren: false, isFolder: false, + isDeletable: true, values: [], }, { @@ -797,6 +827,7 @@ export const data: Array = [ editorUiAlias: 'Umb.PropertyEditorUi.TinyMCE', hasChildren: false, isFolder: false, + isDeletable: true, values: [ { alias: 'hideLabel', @@ -875,6 +906,7 @@ export const data: Array = [ editorUiAlias: 'Umb.PropertyEditorUi.Label', hasChildren: false, isFolder: false, + isDeletable: true, values: [], }, { @@ -885,6 +917,7 @@ export const data: Array = [ editorUiAlias: 'Umb.PropertyEditorUi.Integer', hasChildren: false, isFolder: false, + isDeletable: true, values: [], }, { @@ -895,6 +928,7 @@ export const data: Array = [ editorUiAlias: 'Umb.PropertyEditorUi.Decimal', hasChildren: false, isFolder: false, + isDeletable: true, values: [ { alias: 'step', @@ -910,6 +944,7 @@ export const data: Array = [ editorUiAlias: 'Umb.PropertyEditorUi.UserPicker', hasChildren: false, isFolder: false, + isDeletable: true, values: [], }, { @@ -920,6 +955,7 @@ export const data: Array = [ editorUiAlias: 'Umb.PropertyEditorUi.MemberPicker', hasChildren: false, isFolder: false, + isDeletable: true, values: [], }, { @@ -930,6 +966,7 @@ export const data: Array = [ editorUiAlias: 'Umb.PropertyEditorUi.MemberGroupPicker', hasChildren: false, isFolder: false, + isDeletable: true, values: [], }, { @@ -940,6 +977,7 @@ export const data: Array = [ editorUiAlias: 'Umb.PropertyEditorUi.MemberGroupPicker', hasChildren: false, isFolder: false, + isDeletable: true, values: [], }, { @@ -950,6 +988,7 @@ export const data: Array = [ editorUiAlias: 'Umb.PropertyEditorUi.StaticFilePicker', hasChildren: false, isFolder: false, + isDeletable: true, 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 5c52ca41f9..ea4a7251d7 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 @@ -33,6 +33,7 @@ const createFolderMockMapper = (request: CreateFolderRequestModel): UmbMockDataT isFolder: true, hasChildren: false, editorAlias: '', + isDeletable: true, values: [], }; }; @@ -47,6 +48,7 @@ const createDetailMockMapper = (request: CreateDataTypeRequestModel): UmbMockDat values: request.values, isFolder: false, hasChildren: false, + isDeletable: true, }; }; @@ -58,6 +60,7 @@ const detailResponseMapper = (item: UmbMockDataTypeModel): DataTypeResponseModel editorAlias: item.editorAlias, editorUiAlias: item.editorUiAlias, values: item.values, + isDeletable: item.isDeletable, }; }; @@ -65,6 +68,7 @@ const itemResponseMapper = (item: UmbMockDataTypeModel): DataTypeItemResponseMod return { id: item.id, name: item.name, + isDeletable: item.isDeletable, }; }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/temporary-file/temporary-file.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/core/temporary-file/temporary-file.server.data-source.ts index 97d9091c8e..02d0335653 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/temporary-file/temporary-file.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/temporary-file/temporary-file.server.data-source.ts @@ -30,7 +30,7 @@ export class UmbTemporaryFileServerDataSource { async create(id: string, file: File) { return tryExecuteAndNotify( this.#host, - TemporaryFileResource.postTemporaryfile({ + TemporaryFileResource.postTemporaryFile({ formData: { Id: id, File: file, @@ -47,7 +47,7 @@ export class UmbTemporaryFileServerDataSource { */ read(id: string) { if (!id) throw new Error('Id is missing'); - return tryExecuteAndNotify(this.#host, TemporaryFileResource.getTemporaryfileById({ id })); + return tryExecuteAndNotify(this.#host, TemporaryFileResource.getTemporaryFileById({ id })); } /** @@ -58,6 +58,6 @@ export class UmbTemporaryFileServerDataSource { */ delete(id: string) { if (!id) throw new Error('Id is missing'); - return tryExecuteAndNotify(this.#host, TemporaryFileResource.deleteTemporaryfileById({ id })); + return tryExecuteAndNotify(this.#host, TemporaryFileResource.deleteTemporaryFileById({ id })); } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/collection/repository/user-collection.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/collection/repository/user-collection.server.data-source.ts index c4c7b9f421..170ebce01c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/collection/repository/user-collection.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/collection/repository/user-collection.server.data-source.ts @@ -32,7 +32,7 @@ export class UmbUserCollectionServerDataSource implements UmbCollectionDataSourc * @memberof UmbUserCollectionServerDataSource */ async getCollection(filter: UmbUserCollectionFilterModel) { - const { data, error } = await tryExecuteAndNotify(this.#host, UserResource.getUserFilter(filter)); + const { data, error } = await tryExecuteAndNotify(this.#host, UserResource.getFilterUser(filter)); if (error) { return { error };