UNPKG

box-node-sdk

Version:

Official SDK for Box Platform APIs

214 lines (213 loc) 9.38 kB
import { serializeFiles } from '@/schemas/files'; import { deserializeFiles } from '@/schemas/files'; import { serializeUploadFileRequestBodyAttributesField } from '@/managers/uploads'; import { deserializeUploadFileRequestBodyAttributesField } from '@/managers/uploads'; import { serializeUploadFileRequestBodyAttributesParentField } from '@/managers/uploads'; import { deserializeUploadFileRequestBodyAttributesParentField } from '@/managers/uploads'; import { serializeFileFull } from '@/schemas/fileFull'; import { deserializeFileFull } from '@/schemas/fileFull'; import { serializeUploadFileVersionRequestBodyAttributesField } from '@/managers/uploads'; import { deserializeUploadFileVersionRequestBodyAttributesField } from '@/managers/uploads'; import { serializeFileVersions } from '@/schemas/fileVersions'; import { deserializeFileVersions } from '@/schemas/fileVersions'; import { serializeFileVersionFull } from '@/schemas/fileVersionFull'; import { deserializeFileVersionFull } from '@/schemas/fileVersionFull'; import { serializePromoteFileVersionRequestBody } from '@/managers/fileVersions'; import { deserializePromoteFileVersionRequestBody } from '@/managers/fileVersions'; import { serializePromoteFileVersionRequestBodyTypeField } from '@/managers/fileVersions'; import { deserializePromoteFileVersionRequestBodyTypeField } from '@/managers/fileVersions'; import { serializeUpdateFileVersionByIdRequestBody } from '@/managers/fileVersions'; import { deserializeUpdateFileVersionByIdRequestBody } from '@/managers/fileVersions'; import { PromoteFileVersionOptionalsInput } from '@/managers/fileVersions'; import { GetFileVersionByIdOptionalsInput } from '@/managers/fileVersions'; import { UpdateFileVersionByIdOptionalsInput } from '@/managers/fileVersions'; import { PromoteFileVersionOptionals } from '@/managers/fileVersions'; import { GetFileVersionByIdOptionals } from '@/managers/fileVersions'; import { UpdateFileVersionByIdOptionals } from '@/managers/fileVersions'; import { BoxClient } from '@/client'; import { Files } from '@/schemas/files'; import { UploadFileRequestBody } from '@/managers/uploads'; import { UploadFileRequestBodyAttributesField } from '@/managers/uploads'; import { UploadFileRequestBodyAttributesParentField } from '@/managers/uploads'; import { FileFull } from '@/schemas/fileFull'; import { UploadFileVersionRequestBody } from '@/managers/uploads'; import { UploadFileVersionRequestBodyAttributesField } from '@/managers/uploads'; import { FileVersions } from '@/schemas/fileVersions'; import { FileVersionFull } from '@/schemas/fileVersionFull'; import { PromoteFileVersionRequestBody } from '@/managers/fileVersions'; import { PromoteFileVersionRequestBodyTypeField } from '@/managers/fileVersions'; import { GetFileVersionByIdQueryParams } from '@/managers/fileVersions'; import { UpdateFileVersionByIdRequestBody } from '@/managers/fileVersions'; import { getUuid } from '@/internal/utils'; import { generateByteStream } from '@/internal/utils'; import { createNull } from '@/internal/utils'; import { getDefaultClient } from './commons'; import { SerializedData } from '@/serialization/json'; import { sdIsEmpty } from '@/serialization/json'; import { sdIsBoolean } from '@/serialization/json'; import { sdIsNumber } from '@/serialization/json'; import { sdIsString } from '@/serialization/json'; import { sdIsList } from '@/serialization/json'; import { sdIsMap } from '@/serialization/json'; export const client: BoxClient = getDefaultClient(); test('testCreateListGetPromoteFileVersion', async function testCreateListGetPromoteFileVersion(): Promise<any> { const oldName: string = getUuid(); const newName: string = getUuid(); const files: Files = await client.uploads.uploadFile({ attributes: { name: oldName, parent: { id: '0' } satisfies UploadFileRequestBodyAttributesParentField, } satisfies UploadFileRequestBodyAttributesField, file: generateByteStream(10), } satisfies UploadFileRequestBody); const file: FileFull = files.entries![0]; if (!(file.name == oldName)) { throw new Error('Assertion failed'); } if (!(file.size == 10)) { throw new Error('Assertion failed'); } const newFiles: Files = await client.uploads.uploadFileVersion(file.id, { attributes: { name: newName, } satisfies UploadFileVersionRequestBodyAttributesField, file: generateByteStream(20), } satisfies UploadFileVersionRequestBody); const newFile: FileFull = newFiles.entries![0]; if (!(newFile.name == newName)) { throw new Error('Assertion failed'); } if (!(newFile.size == 20)) { throw new Error('Assertion failed'); } const fileVersions: FileVersions = await client.fileVersions.getFileVersions( file.id, ); if (!(fileVersions.totalCount == 1)) { throw new Error('Assertion failed'); } const fileVersion: FileVersionFull = await client.fileVersions.getFileVersionById( file.id, fileVersions.entries![0].id, ); if (!(fileVersion.id == fileVersions.entries![0].id)) { throw new Error('Assertion failed'); } await client.fileVersions.promoteFileVersion(file.id, { requestBody: { id: fileVersions.entries![0].id, type: 'file_version' as PromoteFileVersionRequestBodyTypeField, } satisfies PromoteFileVersionRequestBody, } satisfies PromoteFileVersionOptionalsInput); const fileWithPromotedVersion: FileFull = await client.files.getFileById( file.id, ); if (!(fileWithPromotedVersion.name == oldName)) { throw new Error('Assertion failed'); } if (!(fileWithPromotedVersion.size == 10)) { throw new Error('Assertion failed'); } await client.fileVersions.deleteFileVersionById(file.id, fileVersion.id); await client.files.deleteFileById(file.id); }); test('testRemoveAndRestoreFileVersion', async function testRemoveAndRestoreFileVersion(): Promise<any> { const oldName: string = getUuid(); const newName: string = getUuid(); const files: Files = await client.uploads.uploadFile({ attributes: { name: oldName, parent: { id: '0' } satisfies UploadFileRequestBodyAttributesParentField, } satisfies UploadFileRequestBodyAttributesField, file: generateByteStream(10), } satisfies UploadFileRequestBody); const file: FileFull = files.entries![0]; await client.uploads.uploadFileVersion(file.id, { attributes: { name: newName, } satisfies UploadFileVersionRequestBodyAttributesField, file: generateByteStream(20), } satisfies UploadFileVersionRequestBody); const fileVersions: FileVersions = await client.fileVersions.getFileVersions( file.id, ); if (!(fileVersions.totalCount == 1)) { throw new Error('Assertion failed'); } const fileVersion: FileVersionFull = await client.fileVersions.getFileVersionById( file.id, fileVersions.entries![0].id, { queryParams: { fields: ['trashed_at', 'trashed_by', 'restored_at', 'restored_by'], } satisfies GetFileVersionByIdQueryParams, } satisfies GetFileVersionByIdOptionalsInput, ); if (!(fileVersion.trashedAt == void 0)) { throw new Error('Assertion failed'); } if (!(fileVersion.trashedBy == void 0)) { throw new Error('Assertion failed'); } if (!(fileVersion.restoredAt == void 0)) { throw new Error('Assertion failed'); } if (!(fileVersion.restoredBy == void 0)) { throw new Error('Assertion failed'); } await client.fileVersions.deleteFileVersionById(file.id, fileVersion.id); const deletedFileVersion: FileVersionFull = await client.fileVersions.getFileVersionById( file.id, fileVersions.entries![0].id, { queryParams: { fields: ['trashed_at', 'trashed_by', 'restored_at', 'restored_by'], } satisfies GetFileVersionByIdQueryParams, } satisfies GetFileVersionByIdOptionalsInput, ); if (!!(deletedFileVersion.trashedAt == void 0)) { throw new Error('Assertion failed'); } if (!!(deletedFileVersion.trashedBy == void 0)) { throw new Error('Assertion failed'); } if (!(deletedFileVersion.restoredAt == void 0)) { throw new Error('Assertion failed'); } if (!(deletedFileVersion.restoredBy == void 0)) { throw new Error('Assertion failed'); } await client.fileVersions.updateFileVersionById(file.id, fileVersion.id, { requestBody: { trashedAt: createNull(), } satisfies UpdateFileVersionByIdRequestBody, } satisfies UpdateFileVersionByIdOptionalsInput); const restoredFileVersion: FileVersionFull = await client.fileVersions.getFileVersionById( file.id, fileVersions.entries![0].id, { queryParams: { fields: ['trashed_at', 'trashed_by', 'restored_at', 'restored_by'], } satisfies GetFileVersionByIdQueryParams, } satisfies GetFileVersionByIdOptionalsInput, ); if (!(restoredFileVersion.trashedAt == void 0)) { throw new Error('Assertion failed'); } if (!(restoredFileVersion.trashedBy == void 0)) { throw new Error('Assertion failed'); } if (!!(restoredFileVersion.restoredAt == void 0)) { throw new Error('Assertion failed'); } if (!!(restoredFileVersion.restoredBy == void 0)) { throw new Error('Assertion failed'); } await client.fileVersions.deleteFileVersionById(file.id, fileVersion.id); await client.files.deleteFileById(file.id); }); export {};