box-node-sdk
Version:
Official SDK for Box Platform APIs
341 lines (340 loc) • 11 kB
text/typescript
import { serializeUserMini } from './userMini';
import { deserializeUserMini } from './userMini';
import { serializeDateTime } from '../internal/utils';
import { deserializeDateTime } from '../internal/utils';
import { UserMini } from './userMini';
import { BoxSdkError } from '../box/errors';
import { DateTime } from '../internal/utils';
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 InviteTypeField = 'invite';
export type InviteInvitedToTypeField = 'enterprise';
export interface InviteInvitedToField {
/**
* The unique identifier for this enterprise. */
readonly id?: string;
/**
* The value will always be `enterprise`. */
readonly type?: InviteInvitedToTypeField;
/**
* The name of the enterprise. */
readonly name?: string;
readonly rawData?: SerializedData;
}
export class Invite {
/**
* The unique identifier for this invite. */
readonly id!: string;
/**
* The value will always be `invite`. */
readonly type: InviteTypeField = 'invite' as InviteTypeField;
/**
* A representation of a Box enterprise. */
readonly invitedTo?: InviteInvitedToField;
readonly actionableBy?: UserMini;
readonly invitedBy?: UserMini;
/**
* The status of the invite. */
readonly status?: string;
/**
* When the invite was created. */
readonly createdAt?: DateTime;
/**
* When the invite was modified. */
readonly modifiedAt?: DateTime;
readonly rawData?: SerializedData;
constructor(fields: Omit<Invite, 'type'> & Partial<Pick<Invite, 'type'>>) {
if (fields.id !== undefined) {
this.id = fields.id;
}
if (fields.type !== undefined) {
this.type = fields.type;
}
if (fields.invitedTo !== undefined) {
this.invitedTo = fields.invitedTo;
}
if (fields.actionableBy !== undefined) {
this.actionableBy = fields.actionableBy;
}
if (fields.invitedBy !== undefined) {
this.invitedBy = fields.invitedBy;
}
if (fields.status !== undefined) {
this.status = fields.status;
}
if (fields.createdAt !== undefined) {
this.createdAt = fields.createdAt;
}
if (fields.modifiedAt !== undefined) {
this.modifiedAt = fields.modifiedAt;
}
if (fields.rawData !== undefined) {
this.rawData = fields.rawData;
}
}
}
export interface InviteInput {
/**
* The unique identifier for this invite. */
readonly id: string;
/**
* The value will always be `invite`. */
readonly type?: InviteTypeField;
/**
* A representation of a Box enterprise. */
readonly invitedTo?: InviteInvitedToField;
readonly actionableBy?: UserMini;
readonly invitedBy?: UserMini;
/**
* The status of the invite. */
readonly status?: string;
/**
* When the invite was created. */
readonly createdAt?: DateTime;
/**
* When the invite was modified. */
readonly modifiedAt?: DateTime;
readonly rawData?: SerializedData;
}
export function serializeInviteTypeField(val: InviteTypeField): SerializedData {
return val;
}
export function deserializeInviteTypeField(
val: SerializedData,
): InviteTypeField {
if (val == 'invite') {
return val;
}
throw new BoxSdkError({ message: "Can't deserialize InviteTypeField" });
}
export function serializeInviteInvitedToTypeField(
val: InviteInvitedToTypeField,
): SerializedData {
return val;
}
export function deserializeInviteInvitedToTypeField(
val: SerializedData,
): InviteInvitedToTypeField {
if (val == 'enterprise') {
return val;
}
throw new BoxSdkError({
message: "Can't deserialize InviteInvitedToTypeField",
});
}
export function serializeInviteInvitedToField(
val: InviteInvitedToField,
): SerializedData {
return {
['id']: val.id,
['type']:
val.type == void 0
? val.type
: serializeInviteInvitedToTypeField(val.type),
['name']: val.name,
};
}
export function deserializeInviteInvitedToField(
val: SerializedData,
): InviteInvitedToField {
if (!sdIsMap(val)) {
throw new BoxSdkError({
message: 'Expecting a map for "InviteInvitedToField"',
});
}
if (!(val.id == void 0) && !sdIsString(val.id)) {
throw new BoxSdkError({
message: 'Expecting string for "id" of type "InviteInvitedToField"',
});
}
const id: undefined | string = val.id == void 0 ? void 0 : val.id;
const type: undefined | InviteInvitedToTypeField =
val.type == void 0 ? void 0 : deserializeInviteInvitedToTypeField(val.type);
if (!(val.name == void 0) && !sdIsString(val.name)) {
throw new BoxSdkError({
message: 'Expecting string for "name" of type "InviteInvitedToField"',
});
}
const name: undefined | string = val.name == void 0 ? void 0 : val.name;
return { id: id, type: type, name: name } satisfies InviteInvitedToField;
}
export function serializeInvite(val: Invite): SerializedData {
return {
['id']: val.id,
['type']: serializeInviteTypeField(val.type),
['invited_to']:
val.invitedTo == void 0
? val.invitedTo
: serializeInviteInvitedToField(val.invitedTo),
['actionable_by']:
val.actionableBy == void 0
? val.actionableBy
: serializeUserMini(val.actionableBy),
['invited_by']:
val.invitedBy == void 0
? val.invitedBy
: serializeUserMini(val.invitedBy),
['status']: val.status,
['created_at']:
val.createdAt == void 0
? val.createdAt
: serializeDateTime(val.createdAt),
['modified_at']:
val.modifiedAt == void 0
? val.modifiedAt
: serializeDateTime(val.modifiedAt),
};
}
export function deserializeInvite(val: SerializedData): Invite {
if (!sdIsMap(val)) {
throw new BoxSdkError({ message: 'Expecting a map for "Invite"' });
}
if (val.id == void 0) {
throw new BoxSdkError({
message: 'Expecting "id" of type "Invite" to be defined',
});
}
if (!sdIsString(val.id)) {
throw new BoxSdkError({
message: 'Expecting string for "id" of type "Invite"',
});
}
const id: string = val.id;
if (val.type == void 0) {
throw new BoxSdkError({
message: 'Expecting "type" of type "Invite" to be defined',
});
}
const type: InviteTypeField = deserializeInviteTypeField(val.type);
const invitedTo: undefined | InviteInvitedToField =
val.invited_to == void 0
? void 0
: deserializeInviteInvitedToField(val.invited_to);
const actionableBy: undefined | UserMini =
val.actionable_by == void 0
? void 0
: deserializeUserMini(val.actionable_by);
const invitedBy: undefined | UserMini =
val.invited_by == void 0 ? void 0 : deserializeUserMini(val.invited_by);
if (!(val.status == void 0) && !sdIsString(val.status)) {
throw new BoxSdkError({
message: 'Expecting string for "status" of type "Invite"',
});
}
const status: undefined | string = val.status == void 0 ? void 0 : val.status;
if (!(val.created_at == void 0) && !sdIsString(val.created_at)) {
throw new BoxSdkError({
message: 'Expecting string for "created_at" of type "Invite"',
});
}
const createdAt: undefined | DateTime =
val.created_at == void 0 ? void 0 : deserializeDateTime(val.created_at);
if (!(val.modified_at == void 0) && !sdIsString(val.modified_at)) {
throw new BoxSdkError({
message: 'Expecting string for "modified_at" of type "Invite"',
});
}
const modifiedAt: undefined | DateTime =
val.modified_at == void 0 ? void 0 : deserializeDateTime(val.modified_at);
return {
id: id,
type: type,
invitedTo: invitedTo,
actionableBy: actionableBy,
invitedBy: invitedBy,
status: status,
createdAt: createdAt,
modifiedAt: modifiedAt,
} satisfies Invite;
}
export function serializeInviteInput(val: InviteInput): SerializedData {
return {
['id']: val.id,
['type']:
val.type == void 0 ? val.type : serializeInviteTypeField(val.type),
['invited_to']:
val.invitedTo == void 0
? val.invitedTo
: serializeInviteInvitedToField(val.invitedTo),
['actionable_by']:
val.actionableBy == void 0
? val.actionableBy
: serializeUserMini(val.actionableBy),
['invited_by']:
val.invitedBy == void 0
? val.invitedBy
: serializeUserMini(val.invitedBy),
['status']: val.status,
['created_at']:
val.createdAt == void 0
? val.createdAt
: serializeDateTime(val.createdAt),
['modified_at']:
val.modifiedAt == void 0
? val.modifiedAt
: serializeDateTime(val.modifiedAt),
};
}
export function deserializeInviteInput(val: SerializedData): InviteInput {
if (!sdIsMap(val)) {
throw new BoxSdkError({ message: 'Expecting a map for "InviteInput"' });
}
if (val.id == void 0) {
throw new BoxSdkError({
message: 'Expecting "id" of type "InviteInput" to be defined',
});
}
if (!sdIsString(val.id)) {
throw new BoxSdkError({
message: 'Expecting string for "id" of type "InviteInput"',
});
}
const id: string = val.id;
const type: undefined | InviteTypeField =
val.type == void 0 ? void 0 : deserializeInviteTypeField(val.type);
const invitedTo: undefined | InviteInvitedToField =
val.invited_to == void 0
? void 0
: deserializeInviteInvitedToField(val.invited_to);
const actionableBy: undefined | UserMini =
val.actionable_by == void 0
? void 0
: deserializeUserMini(val.actionable_by);
const invitedBy: undefined | UserMini =
val.invited_by == void 0 ? void 0 : deserializeUserMini(val.invited_by);
if (!(val.status == void 0) && !sdIsString(val.status)) {
throw new BoxSdkError({
message: 'Expecting string for "status" of type "InviteInput"',
});
}
const status: undefined | string = val.status == void 0 ? void 0 : val.status;
if (!(val.created_at == void 0) && !sdIsString(val.created_at)) {
throw new BoxSdkError({
message: 'Expecting string for "created_at" of type "InviteInput"',
});
}
const createdAt: undefined | DateTime =
val.created_at == void 0 ? void 0 : deserializeDateTime(val.created_at);
if (!(val.modified_at == void 0) && !sdIsString(val.modified_at)) {
throw new BoxSdkError({
message: 'Expecting string for "modified_at" of type "InviteInput"',
});
}
const modifiedAt: undefined | DateTime =
val.modified_at == void 0 ? void 0 : deserializeDateTime(val.modified_at);
return {
id: id,
type: type,
invitedTo: invitedTo,
actionableBy: actionableBy,
invitedBy: invitedBy,
status: status,
createdAt: createdAt,
modifiedAt: modifiedAt,
} satisfies InviteInput;
}