UNPKG

box-node-sdk

Version:

Official SDK for Box Platform APIs

212 lines (211 loc) 6.29 kB
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 RoleVariableTypeField = 'variable'; export type RoleVariableVariableTypeField = 'collaborator_role' | string; export type RoleVariableVariableValueField = | 'editor' | 'viewer' | 'previewer' | 'uploader' | 'previewer uploader' | 'viewer uploader' | 'co-owner' | string; export class RoleVariable { /** * Role object type. */ readonly type: RoleVariableTypeField = 'variable' as RoleVariableTypeField; /** * The variable type used * by the object. */ readonly variableType: RoleVariableVariableTypeField = 'collaborator_role' as RoleVariableVariableTypeField; readonly variableValue!: RoleVariableVariableValueField; readonly rawData?: SerializedData; constructor( fields: Omit<RoleVariable, 'type' | 'variableType'> & Partial<Pick<RoleVariable, 'type' | 'variableType'>>, ) { if (fields.type !== undefined) { this.type = fields.type; } if (fields.variableType !== undefined) { this.variableType = fields.variableType; } if (fields.variableValue !== undefined) { this.variableValue = fields.variableValue; } if (fields.rawData !== undefined) { this.rawData = fields.rawData; } } } export interface RoleVariableInput { /** * Role object type. */ readonly type?: RoleVariableTypeField; /** * The variable type used * by the object. */ readonly variableType?: RoleVariableVariableTypeField; readonly variableValue: RoleVariableVariableValueField; readonly rawData?: SerializedData; } export function serializeRoleVariableTypeField( val: RoleVariableTypeField, ): SerializedData { return val; } export function deserializeRoleVariableTypeField( val: SerializedData, ): RoleVariableTypeField { if (val == 'variable') { return val; } throw new BoxSdkError({ message: "Can't deserialize RoleVariableTypeField" }); } export function serializeRoleVariableVariableTypeField( val: RoleVariableVariableTypeField, ): SerializedData { return val; } export function deserializeRoleVariableVariableTypeField( val: SerializedData, ): RoleVariableVariableTypeField { if (val == 'collaborator_role') { return val; } if (sdIsString(val)) { return val; } throw new BoxSdkError({ message: "Can't deserialize RoleVariableVariableTypeField", }); } export function serializeRoleVariableVariableValueField( val: RoleVariableVariableValueField, ): SerializedData { return val; } export function deserializeRoleVariableVariableValueField( val: SerializedData, ): RoleVariableVariableValueField { if (val == 'editor') { return val; } if (val == 'viewer') { return val; } if (val == 'previewer') { return val; } if (val == 'uploader') { return val; } if (val == 'previewer uploader') { return val; } if (val == 'viewer uploader') { return val; } if (val == 'co-owner') { return val; } if (sdIsString(val)) { return val; } throw new BoxSdkError({ message: "Can't deserialize RoleVariableVariableValueField", }); } export function serializeRoleVariable(val: RoleVariable): SerializedData { return { ['type']: serializeRoleVariableTypeField(val.type), ['variable_type']: serializeRoleVariableVariableTypeField(val.variableType), ['variable_value']: serializeRoleVariableVariableValueField( val.variableValue, ), }; } export function deserializeRoleVariable(val: SerializedData): RoleVariable { if (!sdIsMap(val)) { throw new BoxSdkError({ message: 'Expecting a map for "RoleVariable"' }); } if (val.type == void 0) { throw new BoxSdkError({ message: 'Expecting "type" of type "RoleVariable" to be defined', }); } const type: RoleVariableTypeField = deserializeRoleVariableTypeField( val.type, ); if (val.variable_type == void 0) { throw new BoxSdkError({ message: 'Expecting "variable_type" of type "RoleVariable" to be defined', }); } const variableType: RoleVariableVariableTypeField = deserializeRoleVariableVariableTypeField(val.variable_type); if (val.variable_value == void 0) { throw new BoxSdkError({ message: 'Expecting "variable_value" of type "RoleVariable" to be defined', }); } const variableValue: RoleVariableVariableValueField = deserializeRoleVariableVariableValueField(val.variable_value); return { type: type, variableType: variableType, variableValue: variableValue, } satisfies RoleVariable; } export function serializeRoleVariableInput( val: RoleVariableInput, ): SerializedData { return { ['type']: val.type == void 0 ? val.type : serializeRoleVariableTypeField(val.type), ['variableType']: val.variableType == void 0 ? val.variableType : serializeRoleVariableVariableTypeField(val.variableType), ['variable_value']: serializeRoleVariableVariableValueField( val.variableValue, ), }; } export function deserializeRoleVariableInput( val: SerializedData, ): RoleVariableInput { if (!sdIsMap(val)) { throw new BoxSdkError({ message: 'Expecting a map for "RoleVariableInput"', }); } const type: undefined | RoleVariableTypeField = val.type == void 0 ? void 0 : deserializeRoleVariableTypeField(val.type); const variableType: undefined | RoleVariableVariableTypeField = val.variableType == void 0 ? void 0 : deserializeRoleVariableVariableTypeField(val.variableType); if (val.variable_value == void 0) { throw new BoxSdkError({ message: 'Expecting "variable_value" of type "RoleVariableInput" to be defined', }); } const variableValue: RoleVariableVariableValueField = deserializeRoleVariableVariableValueField(val.variable_value); return { type: type, variableType: variableType, variableValue: variableValue, } satisfies RoleVariableInput; }