diff --git a/.codegen.json b/.codegen.json index 0e5089a8..c087e6e1 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "183c130", "specHash": "b2f7568", "version": "0.5.1" } +{ "engineHash": "3d3d072", "specHash": "b2f7568", "version": "0.5.1" } diff --git a/docs/folderMetadata.md b/docs/folderMetadata.md index 22854391..0295b11a 100644 --- a/docs/folderMetadata.md +++ b/docs/folderMetadata.md @@ -200,8 +200,8 @@ See the endpoint docs at ```ts await client.folderMetadata.deleteFolderMetadataById( folder.id, - 'global' as DeleteFolderMetadataByIdScope, - 'properties' + 'enterprise' as DeleteFolderMetadataByIdScope, + templateKey ); ``` diff --git a/src/managers/fileMetadata.generated.ts b/src/managers/fileMetadata.generated.ts index cde46952..868d8ba1 100644 --- a/src/managers/fileMetadata.generated.ts +++ b/src/managers/fileMetadata.generated.ts @@ -52,7 +52,7 @@ export class GetFileMetadataByIdHeaders { } export type CreateFileMetadataByIdScope = 'global' | 'enterprise'; export type CreateFileMetadataByIdRequestBody = { - readonly [key: string]: string; + readonly [key: string]: any; }; export class CreateFileMetadataByIdHeaders { readonly extraHeaders?: { @@ -333,7 +333,16 @@ export function deserializeCreateFileMetadataByIdScope( export function serializeCreateFileMetadataByIdRequestBody( val: any ): SerializedData { - return val; + return Object.fromEntries( + Object.entries(val).map(([k, v]: [string, any]) => [ + k, + (function (v: any): any { + return v; + })(v), + ]) + ) as { + readonly [key: string]: any; + }; } export function deserializeCreateFileMetadataByIdRequestBody( val: any diff --git a/src/managers/folderMetadata.generated.ts b/src/managers/folderMetadata.generated.ts index 7db0b1ed..170df85c 100644 --- a/src/managers/folderMetadata.generated.ts +++ b/src/managers/folderMetadata.generated.ts @@ -52,7 +52,7 @@ export class GetFolderMetadataByIdHeaders { } export type CreateFolderMetadataByIdScope = 'global' | 'enterprise'; export type CreateFolderMetadataByIdRequestBody = { - readonly [key: string]: string; + readonly [key: string]: any; }; export class CreateFolderMetadataByIdHeaders { readonly extraHeaders?: { @@ -337,7 +337,16 @@ export function deserializeCreateFolderMetadataByIdScope( export function serializeCreateFolderMetadataByIdRequestBody( val: any ): SerializedData { - return val; + return Object.fromEntries( + Object.entries(val).map(([k, v]: [string, any]) => [ + k, + (function (v: any): any { + return v; + })(v), + ]) + ) as { + readonly [key: string]: any; + }; } export function deserializeCreateFolderMetadataByIdRequestBody( val: any diff --git a/src/managers/metadataTemplates.generated.ts b/src/managers/metadataTemplates.generated.ts index 0e7a71a8..4be0d281 100644 --- a/src/managers/metadataTemplates.generated.ts +++ b/src/managers/metadataTemplates.generated.ts @@ -71,7 +71,7 @@ export type UpdateMetadataTemplateRequestBodyOpField = export interface UpdateMetadataTemplateRequestBody { readonly op: UpdateMetadataTemplateRequestBodyOpField; readonly data?: { - readonly [key: string]: string; + readonly [key: string]: any; }; readonly fieldKey?: string; readonly fieldKeys?: readonly string[]; @@ -563,7 +563,19 @@ export function serializeUpdateMetadataTemplateRequestBody( ): SerializedData { return { ['op']: serializeUpdateMetadataTemplateRequestBodyOpField(val.op), - ['data']: val.data == void 0 ? void 0 : val.data, + ['data']: + val.data == void 0 + ? void 0 + : (Object.fromEntries( + Object.entries(val.data).map(([k, v]: [string, any]) => [ + k, + (function (v: any): any { + return v; + })(v), + ]) + ) as { + readonly [key: string]: any; + }), ['fieldKey']: val.fieldKey == void 0 ? void 0 : val.fieldKey, ['fieldKeys']: val.fieldKeys == void 0 @@ -596,7 +608,7 @@ export function deserializeUpdateMetadataTemplateRequestBody( const data: | undefined | { - readonly [key: string]: string; + readonly [key: string]: any; } = val.data == void 0 ? void 0 : val.data; const fieldKey: undefined | string = val.fieldKey == void 0 ? void 0 : val.fieldKey; diff --git a/src/schemas.generated.ts b/src/schemas.generated.ts index 93286147..45e43349 100644 --- a/src/schemas.generated.ts +++ b/src/schemas.generated.ts @@ -312,7 +312,7 @@ export interface AccessToken { readonly issuedTokenType?: AccessTokenIssuedTokenTypeField; } export type GenericSource = { - readonly [key: string]: string; + readonly [key: string]: any; }; export type IntegrationMappingBaseIntegrationTypeField = 'slack'; export interface IntegrationMappingBase { @@ -400,7 +400,7 @@ export type MetadataFull = Metadata & { readonly type?: string; readonly typeVersion?: number; readonly extraData?: { - readonly [key: string]: string; + readonly [key: string]: any; }; }; export type MetadataCascadePolicyTypeField = 'metadata_cascade_policy'; @@ -4857,7 +4857,16 @@ export function deserializeAccessToken(val: any): AccessToken { } satisfies AccessToken; } export function serializeGenericSource(val: any): SerializedData { - return val; + return Object.fromEntries( + Object.entries(val).map(([k, v]: [string, any]) => [ + k, + (function (v: any): any { + return v; + })(v), + ]) + ) as { + readonly [key: string]: any; + }; } export function deserializeGenericSource(val: any): GenericSource { return val; @@ -5519,7 +5528,7 @@ export function deserializeMetadataFull(val: any): MetadataFull { const extraData: | undefined | { - readonly [key: string]: string; + readonly [key: string]: any; } = val == void 0 ? void 0 : val; const parent: undefined | string = val.$parent == void 0 ? void 0 : val.$parent; diff --git a/src/test/fileMetadata.generated.test.ts b/src/test/fileMetadata.generated.test.ts index 09faf04c..e13c2d6a 100644 --- a/src/test/fileMetadata.generated.test.ts +++ b/src/test/fileMetadata.generated.test.ts @@ -16,6 +16,18 @@ import { serializeUpdateFileMetadataByIdRequestBodyOpField } from '../managers/f import { deserializeUpdateFileMetadataByIdRequestBodyOpField } from '../managers/fileMetadata.generated.js'; import { serializeDeleteFileMetadataByIdScope } from '../managers/fileMetadata.generated.js'; import { deserializeDeleteFileMetadataByIdScope } from '../managers/fileMetadata.generated.js'; +import { serializeMetadataTemplate } from '../schemas.generated.js'; +import { deserializeMetadataTemplate } from '../schemas.generated.js'; +import { serializeCreateMetadataTemplateRequestBody } from '../managers/metadataTemplates.generated.js'; +import { deserializeCreateMetadataTemplateRequestBody } from '../managers/metadataTemplates.generated.js'; +import { serializeCreateMetadataTemplateRequestBodyFieldsField } from '../managers/metadataTemplates.generated.js'; +import { deserializeCreateMetadataTemplateRequestBodyFieldsField } from '../managers/metadataTemplates.generated.js'; +import { serializeCreateMetadataTemplateRequestBodyFieldsTypeField } from '../managers/metadataTemplates.generated.js'; +import { deserializeCreateMetadataTemplateRequestBodyFieldsTypeField } from '../managers/metadataTemplates.generated.js'; +import { serializeCreateMetadataTemplateRequestBodyFieldsOptionsField } from '../managers/metadataTemplates.generated.js'; +import { deserializeCreateMetadataTemplateRequestBodyFieldsOptionsField } from '../managers/metadataTemplates.generated.js'; +import { serializeDeleteMetadataTemplateScope } from '../managers/metadataTemplates.generated.js'; +import { deserializeDeleteMetadataTemplateScope } from '../managers/metadataTemplates.generated.js'; import { BoxClient } from '../client.generated.js'; import { FileFull } from '../schemas.generated.js'; import { Metadatas } from '../schemas.generated.js'; @@ -26,6 +38,12 @@ import { UpdateFileMetadataByIdScope } from '../managers/fileMetadata.generated. import { UpdateFileMetadataByIdRequestBody } from '../managers/fileMetadata.generated.js'; import { UpdateFileMetadataByIdRequestBodyOpField } from '../managers/fileMetadata.generated.js'; import { DeleteFileMetadataByIdScope } from '../managers/fileMetadata.generated.js'; +import { MetadataTemplate } from '../schemas.generated.js'; +import { CreateMetadataTemplateRequestBody } from '../managers/metadataTemplates.generated.js'; +import { CreateMetadataTemplateRequestBodyFieldsField } from '../managers/metadataTemplates.generated.js'; +import { CreateMetadataTemplateRequestBodyFieldsTypeField } from '../managers/metadataTemplates.generated.js'; +import { CreateMetadataTemplateRequestBodyFieldsOptionsField } from '../managers/metadataTemplates.generated.js'; +import { DeleteMetadataTemplateScope } from '../managers/metadataTemplates.generated.js'; import { generateByteStream } from '../internal/utils.js'; import { getUuid } from '../internal/utils.js'; import { getDefaultClient } from './commons.generated.js'; @@ -40,7 +58,7 @@ import { sdIsString } from '../serialization/json.js'; import { sdIsList } from '../serialization/json.js'; import { sdIsMap } from '../serialization/json.js'; export const client: any = getDefaultClient(); -test('testFileMetadata', async function testFileMetadata(): Promise { +test('testGlobalFileMetadata', async function testGlobalFileMetadata(): Promise { const file: any = await uploadNewFile(); const fileMetadata: any = await client.fileMetadata.getFileMetadata(file.id); if (!(fileMetadata.entries!.length == 0)) { @@ -105,4 +123,103 @@ test('testFileMetadata', async function testFileMetadata(): Promise { }).rejects.toThrow(); await client.files.deleteFileById(file.id); }); +test('testEnterpriseFileMetadata', async function testEnterpriseFileMetadata(): Promise { + const file: any = await uploadNewFile(); + const templateKey: any = ''.concat('key', getUuid()) as string; + const template: any = await client.metadataTemplates.createMetadataTemplate({ + scope: 'enterprise', + displayName: templateKey, + templateKey: templateKey, + fields: [ + { + type: 'string' as CreateMetadataTemplateRequestBodyFieldsTypeField, + key: 'name', + displayName: 'name', + } satisfies CreateMetadataTemplateRequestBodyFieldsField, + { + type: 'float' as CreateMetadataTemplateRequestBodyFieldsTypeField, + key: 'age', + displayName: 'age', + } satisfies CreateMetadataTemplateRequestBodyFieldsField, + { + type: 'date' as CreateMetadataTemplateRequestBodyFieldsTypeField, + key: 'birthDate', + displayName: 'birthDate', + } satisfies CreateMetadataTemplateRequestBodyFieldsField, + { + type: 'enum' as CreateMetadataTemplateRequestBodyFieldsTypeField, + key: 'countryCode', + displayName: 'countryCode', + options: [ + { + key: 'US', + } satisfies CreateMetadataTemplateRequestBodyFieldsOptionsField, + { + key: 'CA', + } satisfies CreateMetadataTemplateRequestBodyFieldsOptionsField, + ], + } satisfies CreateMetadataTemplateRequestBodyFieldsField, + { + type: 'multiSelect' as CreateMetadataTemplateRequestBodyFieldsTypeField, + key: 'sports', + displayName: 'sports', + options: [ + { + key: 'basketball', + } satisfies CreateMetadataTemplateRequestBodyFieldsOptionsField, + { + key: 'football', + } satisfies CreateMetadataTemplateRequestBodyFieldsOptionsField, + { + key: 'tennis', + } satisfies CreateMetadataTemplateRequestBodyFieldsOptionsField, + ], + } satisfies CreateMetadataTemplateRequestBodyFieldsField, + ], + } satisfies CreateMetadataTemplateRequestBody); + const createdMetadata: any = await client.fileMetadata.createFileMetadataById( + file.id, + 'enterprise' as CreateFileMetadataByIdScope, + templateKey, + { + ['name']: 'John', + ['age']: 23, + ['birthDate']: '2001-01-03T02:20:50.520Z', + ['countryCode']: 'US', + ['sports']: ['basketball', 'tennis'], + } + ); + if (!((toString(createdMetadata.template) as string) == templateKey)) { + throw new Error('Assertion failed'); + } + if (!(createdMetadata.extraData!.name == 'John')) { + throw new Error('Assertion failed'); + } + if (!(createdMetadata.extraData!.age == 23)) { + throw new Error('Assertion failed'); + } + if (!(createdMetadata.extraData!.birthDate == '2001-01-03T02:20:50.520Z')) { + throw new Error('Assertion failed'); + } + if (!(createdMetadata.extraData!.countryCode == 'US')) { + throw new Error('Assertion failed'); + } + const sports: any = createdMetadata.extraData!.sports; + if (!(sports[0] == 'basketball')) { + throw new Error('Assertion failed'); + } + if (!(sports[1] == 'tennis')) { + throw new Error('Assertion failed'); + } + await client.fileMetadata.deleteFileMetadataById( + file.id, + 'enterprise' as DeleteFileMetadataByIdScope, + templateKey + ); + await client.metadataTemplates.deleteMetadataTemplate( + 'enterprise' as DeleteMetadataTemplateScope, + templateKey + ); + await client.files.deleteFileById(file.id); +}); export {}; diff --git a/src/test/folderMetadata.generated.test.ts b/src/test/folderMetadata.generated.test.ts index 1309a036..59585818 100644 --- a/src/test/folderMetadata.generated.test.ts +++ b/src/test/folderMetadata.generated.test.ts @@ -16,6 +16,18 @@ import { serializeUpdateFolderMetadataByIdRequestBodyOpField } from '../managers import { deserializeUpdateFolderMetadataByIdRequestBodyOpField } from '../managers/folderMetadata.generated.js'; import { serializeDeleteFolderMetadataByIdScope } from '../managers/folderMetadata.generated.js'; import { deserializeDeleteFolderMetadataByIdScope } from '../managers/folderMetadata.generated.js'; +import { serializeMetadataTemplate } from '../schemas.generated.js'; +import { deserializeMetadataTemplate } from '../schemas.generated.js'; +import { serializeCreateMetadataTemplateRequestBody } from '../managers/metadataTemplates.generated.js'; +import { deserializeCreateMetadataTemplateRequestBody } from '../managers/metadataTemplates.generated.js'; +import { serializeCreateMetadataTemplateRequestBodyFieldsField } from '../managers/metadataTemplates.generated.js'; +import { deserializeCreateMetadataTemplateRequestBodyFieldsField } from '../managers/metadataTemplates.generated.js'; +import { serializeCreateMetadataTemplateRequestBodyFieldsTypeField } from '../managers/metadataTemplates.generated.js'; +import { deserializeCreateMetadataTemplateRequestBodyFieldsTypeField } from '../managers/metadataTemplates.generated.js'; +import { serializeCreateMetadataTemplateRequestBodyFieldsOptionsField } from '../managers/metadataTemplates.generated.js'; +import { deserializeCreateMetadataTemplateRequestBodyFieldsOptionsField } from '../managers/metadataTemplates.generated.js'; +import { serializeDeleteMetadataTemplateScope } from '../managers/metadataTemplates.generated.js'; +import { deserializeDeleteMetadataTemplateScope } from '../managers/metadataTemplates.generated.js'; import { BoxClient } from '../client.generated.js'; import { FolderFull } from '../schemas.generated.js'; import { Metadatas } from '../schemas.generated.js'; @@ -26,6 +38,12 @@ import { UpdateFolderMetadataByIdScope } from '../managers/folderMetadata.genera import { UpdateFolderMetadataByIdRequestBody } from '../managers/folderMetadata.generated.js'; import { UpdateFolderMetadataByIdRequestBodyOpField } from '../managers/folderMetadata.generated.js'; import { DeleteFolderMetadataByIdScope } from '../managers/folderMetadata.generated.js'; +import { MetadataTemplate } from '../schemas.generated.js'; +import { CreateMetadataTemplateRequestBody } from '../managers/metadataTemplates.generated.js'; +import { CreateMetadataTemplateRequestBodyFieldsField } from '../managers/metadataTemplates.generated.js'; +import { CreateMetadataTemplateRequestBodyFieldsTypeField } from '../managers/metadataTemplates.generated.js'; +import { CreateMetadataTemplateRequestBodyFieldsOptionsField } from '../managers/metadataTemplates.generated.js'; +import { DeleteMetadataTemplateScope } from '../managers/metadataTemplates.generated.js'; import { getUuid } from '../internal/utils.js'; import { getDefaultClient } from './commons.generated.js'; import { createNewFolder } from './commons.generated.js'; @@ -39,7 +57,7 @@ import { sdIsString } from '../serialization/json.js'; import { sdIsList } from '../serialization/json.js'; import { sdIsMap } from '../serialization/json.js'; export const client: any = getDefaultClient(); -test('testFolderMetadata', async function testFolderMetadata(): Promise { +test('testGlobalFolderMetadata', async function testGlobalFolderMetadata(): Promise { const folder: any = await createNewFolder(); const folderMetadata: any = await client.folderMetadata.getFolderMetadata( folder.id @@ -109,4 +127,104 @@ test('testFolderMetadata', async function testFolderMetadata(): Promise { }).rejects.toThrow(); await client.folders.deleteFolderById(folder.id); }); +test('testEnterpriseFolderMetadata', async function testEnterpriseFolderMetadata(): Promise { + const folder: any = await createNewFolder(); + const templateKey: any = ''.concat('key', getUuid()) as string; + const template: any = await client.metadataTemplates.createMetadataTemplate({ + scope: 'enterprise', + displayName: templateKey, + templateKey: templateKey, + fields: [ + { + type: 'string' as CreateMetadataTemplateRequestBodyFieldsTypeField, + key: 'name', + displayName: 'name', + } satisfies CreateMetadataTemplateRequestBodyFieldsField, + { + type: 'float' as CreateMetadataTemplateRequestBodyFieldsTypeField, + key: 'age', + displayName: 'age', + } satisfies CreateMetadataTemplateRequestBodyFieldsField, + { + type: 'date' as CreateMetadataTemplateRequestBodyFieldsTypeField, + key: 'birthDate', + displayName: 'birthDate', + } satisfies CreateMetadataTemplateRequestBodyFieldsField, + { + type: 'enum' as CreateMetadataTemplateRequestBodyFieldsTypeField, + key: 'countryCode', + displayName: 'countryCode', + options: [ + { + key: 'US', + } satisfies CreateMetadataTemplateRequestBodyFieldsOptionsField, + { + key: 'CA', + } satisfies CreateMetadataTemplateRequestBodyFieldsOptionsField, + ], + } satisfies CreateMetadataTemplateRequestBodyFieldsField, + { + type: 'multiSelect' as CreateMetadataTemplateRequestBodyFieldsTypeField, + key: 'sports', + displayName: 'sports', + options: [ + { + key: 'basketball', + } satisfies CreateMetadataTemplateRequestBodyFieldsOptionsField, + { + key: 'football', + } satisfies CreateMetadataTemplateRequestBodyFieldsOptionsField, + { + key: 'tennis', + } satisfies CreateMetadataTemplateRequestBodyFieldsOptionsField, + ], + } satisfies CreateMetadataTemplateRequestBodyFieldsField, + ], + } satisfies CreateMetadataTemplateRequestBody); + const createdMetadata: any = + await client.folderMetadata.createFolderMetadataById( + folder.id, + 'enterprise' as CreateFolderMetadataByIdScope, + templateKey, + { + ['name']: 'John', + ['age']: 23, + ['birthDate']: '2001-01-03T02:20:50.520Z', + ['countryCode']: 'US', + ['sports']: ['basketball', 'tennis'], + } + ); + if (!((toString(createdMetadata.template) as string) == templateKey)) { + throw new Error('Assertion failed'); + } + if (!(createdMetadata.extraData!.name == 'John')) { + throw new Error('Assertion failed'); + } + if (!(createdMetadata.extraData!.age == 23)) { + throw new Error('Assertion failed'); + } + if (!(createdMetadata.extraData!.birthDate == '2001-01-03T02:20:50.520Z')) { + throw new Error('Assertion failed'); + } + if (!(createdMetadata.extraData!.countryCode == 'US')) { + throw new Error('Assertion failed'); + } + const sports: any = createdMetadata.extraData!.sports; + if (!(sports[0] == 'basketball')) { + throw new Error('Assertion failed'); + } + if (!(sports[1] == 'tennis')) { + throw new Error('Assertion failed'); + } + await client.folderMetadata.deleteFolderMetadataById( + folder.id, + 'enterprise' as DeleteFolderMetadataByIdScope, + templateKey + ); + await client.metadataTemplates.deleteMetadataTemplate( + 'enterprise' as DeleteMetadataTemplateScope, + templateKey + ); + await client.folders.deleteFolderById(folder.id); +}); export {};