UNPKG

box-typescript-sdk-gen

Version:
197 lines (196 loc) 6.89 kB
import { serializeFileMini } from './fileMini.generated.js'; import { deserializeFileMini } from './fileMini.generated.js'; import { serializeUserMini } from './userMini.generated.js'; import { deserializeUserMini } from './userMini.generated.js'; import { serializeDateTime } from '../internal/utils.js'; import { deserializeDateTime } from '../internal/utils.js'; import { FileMini } from './fileMini.generated.js'; import { UserMini } from './userMini.generated.js'; import { BoxSdkError } from '../box/errors.js'; import { DateTime } from '../internal/utils.js'; import { SerializedData } from '../serialization/json.js'; import { sdIsEmpty } from '../serialization/json.js'; import { sdIsBoolean } from '../serialization/json.js'; import { sdIsNumber } from '../serialization/json.js'; import { sdIsString } from '../serialization/json.js'; import { sdIsList } from '../serialization/json.js'; import { sdIsMap } from '../serialization/json.js'; export type TaskAssignmentTypeField = 'task_assignment'; export type TaskAssignmentResolutionStateField = | 'completed' | 'incomplete' | 'approved' | 'rejected' | string; export interface TaskAssignment { /** * The unique identifier for this task assignment */ readonly id?: string; /** * `task_assignment` */ readonly type?: TaskAssignmentTypeField; readonly item?: FileMini; readonly assignedTo?: UserMini; /** * A message that will is included with the task * assignment. This is visible to the assigned user in the web and mobile * UI. */ readonly message?: string; /** * The date at which this task assignment was * completed. This will be `null` if the task is not completed yet. */ readonly completedAt?: DateTime; /** * The date at which this task was assigned to the user. */ readonly assignedAt?: DateTime; /** * The date at which the assigned user was reminded of this task * assignment. */ readonly remindedAt?: DateTime; /** * The current state of the assignment. The available states depend on * the `action` value of the task object. */ readonly resolutionState?: TaskAssignmentResolutionStateField; readonly assignedBy?: UserMini; readonly rawData?: SerializedData; } export function serializeTaskAssignmentTypeField( val: TaskAssignmentTypeField, ): SerializedData { return val; } export function deserializeTaskAssignmentTypeField( val: SerializedData, ): TaskAssignmentTypeField { if (val == 'task_assignment') { return val; } throw new BoxSdkError({ message: "Can't deserialize TaskAssignmentTypeField", }); } export function serializeTaskAssignmentResolutionStateField( val: TaskAssignmentResolutionStateField, ): SerializedData { return val; } export function deserializeTaskAssignmentResolutionStateField( val: SerializedData, ): TaskAssignmentResolutionStateField { if (val == 'completed') { return val; } if (val == 'incomplete') { return val; } if (val == 'approved') { return val; } if (val == 'rejected') { return val; } if (sdIsString(val)) { return val; } throw new BoxSdkError({ message: "Can't deserialize TaskAssignmentResolutionStateField", }); } export function serializeTaskAssignment(val: TaskAssignment): SerializedData { return { ['id']: val.id, ['type']: val.type == void 0 ? val.type : serializeTaskAssignmentTypeField(val.type), ['item']: val.item == void 0 ? val.item : serializeFileMini(val.item), ['assigned_to']: val.assignedTo == void 0 ? val.assignedTo : serializeUserMini(val.assignedTo), ['message']: val.message, ['completed_at']: val.completedAt == void 0 ? val.completedAt : serializeDateTime(val.completedAt), ['assigned_at']: val.assignedAt == void 0 ? val.assignedAt : serializeDateTime(val.assignedAt), ['reminded_at']: val.remindedAt == void 0 ? val.remindedAt : serializeDateTime(val.remindedAt), ['resolution_state']: val.resolutionState == void 0 ? val.resolutionState : serializeTaskAssignmentResolutionStateField(val.resolutionState), ['assigned_by']: val.assignedBy == void 0 ? val.assignedBy : serializeUserMini(val.assignedBy), }; } export function deserializeTaskAssignment(val: SerializedData): TaskAssignment { if (!sdIsMap(val)) { throw new BoxSdkError({ message: 'Expecting a map for "TaskAssignment"' }); } if (!(val.id == void 0) && !sdIsString(val.id)) { throw new BoxSdkError({ message: 'Expecting string for "id" of type "TaskAssignment"', }); } const id: undefined | string = val.id == void 0 ? void 0 : val.id; const type: undefined | TaskAssignmentTypeField = val.type == void 0 ? void 0 : deserializeTaskAssignmentTypeField(val.type); const item: undefined | FileMini = val.item == void 0 ? void 0 : deserializeFileMini(val.item); const assignedTo: undefined | UserMini = val.assigned_to == void 0 ? void 0 : deserializeUserMini(val.assigned_to); if (!(val.message == void 0) && !sdIsString(val.message)) { throw new BoxSdkError({ message: 'Expecting string for "message" of type "TaskAssignment"', }); } const message: undefined | string = val.message == void 0 ? void 0 : val.message; if (!(val.completed_at == void 0) && !sdIsString(val.completed_at)) { throw new BoxSdkError({ message: 'Expecting string for "completed_at" of type "TaskAssignment"', }); } const completedAt: undefined | DateTime = val.completed_at == void 0 ? void 0 : deserializeDateTime(val.completed_at); if (!(val.assigned_at == void 0) && !sdIsString(val.assigned_at)) { throw new BoxSdkError({ message: 'Expecting string for "assigned_at" of type "TaskAssignment"', }); } const assignedAt: undefined | DateTime = val.assigned_at == void 0 ? void 0 : deserializeDateTime(val.assigned_at); if (!(val.reminded_at == void 0) && !sdIsString(val.reminded_at)) { throw new BoxSdkError({ message: 'Expecting string for "reminded_at" of type "TaskAssignment"', }); } const remindedAt: undefined | DateTime = val.reminded_at == void 0 ? void 0 : deserializeDateTime(val.reminded_at); const resolutionState: undefined | TaskAssignmentResolutionStateField = val.resolution_state == void 0 ? void 0 : deserializeTaskAssignmentResolutionStateField(val.resolution_state); const assignedBy: undefined | UserMini = val.assigned_by == void 0 ? void 0 : deserializeUserMini(val.assigned_by); return { id: id, type: type, item: item, assignedTo: assignedTo, message: message, completedAt: completedAt, assignedAt: assignedAt, remindedAt: remindedAt, resolutionState: resolutionState, assignedBy: assignedBy, } satisfies TaskAssignment; }