UNPKG

box-node-sdk

Version:

Official SDK for Box Platform APIs

200 lines (199 loc) 6.22 kB
import { serializeFileBase } from './fileBase'; import { deserializeFileBase } from './fileBase'; import { serializeFolderBase } from './folderBase'; import { deserializeFolderBase } from './folderBase'; import { serializeWebLinkBase } from './webLinkBase'; import { deserializeWebLinkBase } from './webLinkBase'; import { serializeAppItem } from './appItem'; import { deserializeAppItem } from './appItem'; import { serializeAppItemAssociatedItem } from './appItemAssociatedItem'; import { deserializeAppItemAssociatedItem } from './appItemAssociatedItem'; import { FileBase } from './fileBase'; import { FolderBase } from './folderBase'; import { WebLinkBase } from './webLinkBase'; import { AppItem } from './appItem'; import { AppItemAssociatedItem } from './appItemAssociatedItem'; import { BoxSdkError } from '../box/errors'; 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 type AppItemAssociationTypeField = 'app_item_association'; export class AppItemAssociation { /** * The unique identifier for this app item association. */ readonly id!: string; /** * The value will always be `app_item_association`. */ readonly type: AppItemAssociationTypeField = 'app_item_association' as AppItemAssociationTypeField; readonly appItem!: AppItem; readonly item!: AppItemAssociatedItem; readonly rawData?: SerializedData; constructor( fields: Omit<AppItemAssociation, 'type'> & Partial<Pick<AppItemAssociation, 'type'>>, ) { if (fields.id !== undefined) { this.id = fields.id; } if (fields.type !== undefined) { this.type = fields.type; } if (fields.appItem !== undefined) { this.appItem = fields.appItem; } if (fields.item !== undefined) { this.item = fields.item; } if (fields.rawData !== undefined) { this.rawData = fields.rawData; } } } export interface AppItemAssociationInput { /** * The unique identifier for this app item association. */ readonly id: string; /** * The value will always be `app_item_association`. */ readonly type?: AppItemAssociationTypeField; readonly appItem: AppItem; readonly item: AppItemAssociatedItem; readonly rawData?: SerializedData; } export function serializeAppItemAssociationTypeField( val: AppItemAssociationTypeField, ): SerializedData { return val; } export function deserializeAppItemAssociationTypeField( val: SerializedData, ): AppItemAssociationTypeField { if (val == 'app_item_association') { return val; } throw new BoxSdkError({ message: "Can't deserialize AppItemAssociationTypeField", }); } export function serializeAppItemAssociation( val: AppItemAssociation, ): SerializedData { return { ['id']: val.id, ['type']: serializeAppItemAssociationTypeField(val.type), ['app_item']: serializeAppItem(val.appItem), ['item']: serializeAppItemAssociatedItem(val.item), }; } export function deserializeAppItemAssociation( val: SerializedData, ): AppItemAssociation { if (!sdIsMap(val)) { throw new BoxSdkError({ message: 'Expecting a map for "AppItemAssociation"', }); } if (val.id == void 0) { throw new BoxSdkError({ message: 'Expecting "id" of type "AppItemAssociation" to be defined', }); } if (!sdIsString(val.id)) { throw new BoxSdkError({ message: 'Expecting string for "id" of type "AppItemAssociation"', }); } const id: string = val.id; if (val.type == void 0) { throw new BoxSdkError({ message: 'Expecting "type" of type "AppItemAssociation" to be defined', }); } const type: AppItemAssociationTypeField = deserializeAppItemAssociationTypeField(val.type); if (val.app_item == void 0) { throw new BoxSdkError({ message: 'Expecting "app_item" of type "AppItemAssociation" to be defined', }); } const appItem: AppItem = deserializeAppItem(val.app_item); if (val.item == void 0) { throw new BoxSdkError({ message: 'Expecting "item" of type "AppItemAssociation" to be defined', }); } const item: AppItemAssociatedItem = deserializeAppItemAssociatedItem( val.item, ); return { id: id, type: type, appItem: appItem, item: item, } satisfies AppItemAssociation; } export function serializeAppItemAssociationInput( val: AppItemAssociationInput, ): SerializedData { return { ['id']: val.id, ['type']: val.type == void 0 ? val.type : serializeAppItemAssociationTypeField(val.type), ['app_item']: serializeAppItem(val.appItem), ['item']: serializeAppItemAssociatedItem(val.item), }; } export function deserializeAppItemAssociationInput( val: SerializedData, ): AppItemAssociationInput { if (!sdIsMap(val)) { throw new BoxSdkError({ message: 'Expecting a map for "AppItemAssociationInput"', }); } if (val.id == void 0) { throw new BoxSdkError({ message: 'Expecting "id" of type "AppItemAssociationInput" to be defined', }); } if (!sdIsString(val.id)) { throw new BoxSdkError({ message: 'Expecting string for "id" of type "AppItemAssociationInput"', }); } const id: string = val.id; const type: undefined | AppItemAssociationTypeField = val.type == void 0 ? void 0 : deserializeAppItemAssociationTypeField(val.type); if (val.app_item == void 0) { throw new BoxSdkError({ message: 'Expecting "app_item" of type "AppItemAssociationInput" to be defined', }); } const appItem: AppItem = deserializeAppItem(val.app_item); if (val.item == void 0) { throw new BoxSdkError({ message: 'Expecting "item" of type "AppItemAssociationInput" to be defined', }); } const item: AppItemAssociatedItem = deserializeAppItemAssociatedItem( val.item, ); return { id: id, type: type, appItem: appItem, item: item, } satisfies AppItemAssociationInput; }