box-typescript-sdk-gen
Version:
Official Box TypeScript Generated SDK
309 lines (308 loc) • 8.5 kB
text/typescript
import { serializeFile } from './file.generated.js';
import { deserializeFile } from './file.generated.js';
import { serializeFolder } from './folder.generated.js';
import { deserializeFolder } from './folder.generated.js';
import { serializeWebhook } from './webhook.generated.js';
import { deserializeWebhook } from './webhook.generated.js';
import { serializeUserMini } from './userMini.generated.js';
import { deserializeUserMini } from './userMini.generated.js';
import { serializeFileOrFolder } from './fileOrFolder.generated.js';
import { deserializeFileOrFolder } from './fileOrFolder.generated.js';
import { serializeDateTime } from '../internal/utils.js';
import { deserializeDateTime } from '../internal/utils.js';
import { File } from './file.generated.js';
import { Folder } from './folder.generated.js';
import { Webhook } from './webhook.generated.js';
import { UserMini } from './userMini.generated.js';
import { FileOrFolder } from './fileOrFolder.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 WebhookInvocationTypeField = 'webhook_event';
export type WebhookInvocationTriggerField =
| 'FILE.UPLOADED'
| 'FILE.PREVIEWED'
| 'FILE.DOWNLOADED'
| 'FILE.TRASHED'
| 'FILE.DELETED'
| 'FILE.RESTORED'
| 'FILE.COPIED'
| 'FILE.MOVED'
| 'FILE.LOCKED'
| 'FILE.UNLOCKED'
| 'FILE.RENAMED'
| 'COMMENT.CREATED'
| 'COMMENT.UPDATED'
| 'COMMENT.DELETED'
| 'TASK_ASSIGNMENT.CREATED'
| 'TASK_ASSIGNMENT.UPDATED'
| 'METADATA_INSTANCE.CREATED'
| 'METADATA_INSTANCE.UPDATED'
| 'METADATA_INSTANCE.DELETED'
| 'FOLDER.CREATED'
| 'FOLDER.RENAMED'
| 'FOLDER.DOWNLOADED'
| 'FOLDER.RESTORED'
| 'FOLDER.DELETED'
| 'FOLDER.COPIED'
| 'FOLDER.MOVED'
| 'FOLDER.TRASHED'
| 'WEBHOOK.DELETED'
| 'COLLABORATION.CREATED'
| 'COLLABORATION.ACCEPTED'
| 'COLLABORATION.REJECTED'
| 'COLLABORATION.REMOVED'
| 'COLLABORATION.UPDATED'
| 'SHARED_LINK.DELETED'
| 'SHARED_LINK.CREATED'
| 'SHARED_LINK.UPDATED'
| 'SIGN_REQUEST.COMPLETED'
| 'SIGN_REQUEST.DECLINED'
| 'SIGN_REQUEST.EXPIRED'
| 'SIGN_REQUEST.SIGNER_EMAIL_BOUNCED'
| string;
export interface WebhookInvocation {
/**
* The unique identifier for this webhook invocation. */
readonly id?: string;
/**
* The value will always be `webhook_event`. */
readonly type?: WebhookInvocationTypeField;
readonly webhook?: Webhook;
readonly createdBy?: UserMini;
/**
* A timestamp identifying the time that
* the webhook event was triggered. */
readonly createdAt?: DateTime;
readonly trigger?: WebhookInvocationTriggerField;
readonly source?: FileOrFolder;
readonly rawData?: SerializedData;
}
export function serializeWebhookInvocationTypeField(
val: WebhookInvocationTypeField,
): SerializedData {
return val;
}
export function deserializeWebhookInvocationTypeField(
val: SerializedData,
): WebhookInvocationTypeField {
if (val == 'webhook_event') {
return val;
}
throw new BoxSdkError({
message: "Can't deserialize WebhookInvocationTypeField",
});
}
export function serializeWebhookInvocationTriggerField(
val: WebhookInvocationTriggerField,
): SerializedData {
return val;
}
export function deserializeWebhookInvocationTriggerField(
val: SerializedData,
): WebhookInvocationTriggerField {
if (val == 'FILE.UPLOADED') {
return val;
}
if (val == 'FILE.PREVIEWED') {
return val;
}
if (val == 'FILE.DOWNLOADED') {
return val;
}
if (val == 'FILE.TRASHED') {
return val;
}
if (val == 'FILE.DELETED') {
return val;
}
if (val == 'FILE.RESTORED') {
return val;
}
if (val == 'FILE.COPIED') {
return val;
}
if (val == 'FILE.MOVED') {
return val;
}
if (val == 'FILE.LOCKED') {
return val;
}
if (val == 'FILE.UNLOCKED') {
return val;
}
if (val == 'FILE.RENAMED') {
return val;
}
if (val == 'COMMENT.CREATED') {
return val;
}
if (val == 'COMMENT.UPDATED') {
return val;
}
if (val == 'COMMENT.DELETED') {
return val;
}
if (val == 'TASK_ASSIGNMENT.CREATED') {
return val;
}
if (val == 'TASK_ASSIGNMENT.UPDATED') {
return val;
}
if (val == 'METADATA_INSTANCE.CREATED') {
return val;
}
if (val == 'METADATA_INSTANCE.UPDATED') {
return val;
}
if (val == 'METADATA_INSTANCE.DELETED') {
return val;
}
if (val == 'FOLDER.CREATED') {
return val;
}
if (val == 'FOLDER.RENAMED') {
return val;
}
if (val == 'FOLDER.DOWNLOADED') {
return val;
}
if (val == 'FOLDER.RESTORED') {
return val;
}
if (val == 'FOLDER.DELETED') {
return val;
}
if (val == 'FOLDER.COPIED') {
return val;
}
if (val == 'FOLDER.MOVED') {
return val;
}
if (val == 'FOLDER.TRASHED') {
return val;
}
if (val == 'WEBHOOK.DELETED') {
return val;
}
if (val == 'COLLABORATION.CREATED') {
return val;
}
if (val == 'COLLABORATION.ACCEPTED') {
return val;
}
if (val == 'COLLABORATION.REJECTED') {
return val;
}
if (val == 'COLLABORATION.REMOVED') {
return val;
}
if (val == 'COLLABORATION.UPDATED') {
return val;
}
if (val == 'SHARED_LINK.DELETED') {
return val;
}
if (val == 'SHARED_LINK.CREATED') {
return val;
}
if (val == 'SHARED_LINK.UPDATED') {
return val;
}
if (val == 'SIGN_REQUEST.COMPLETED') {
return val;
}
if (val == 'SIGN_REQUEST.DECLINED') {
return val;
}
if (val == 'SIGN_REQUEST.EXPIRED') {
return val;
}
if (val == 'SIGN_REQUEST.SIGNER_EMAIL_BOUNCED') {
return val;
}
if (sdIsString(val)) {
return val;
}
throw new BoxSdkError({
message: "Can't deserialize WebhookInvocationTriggerField",
});
}
export function serializeWebhookInvocation(
val: WebhookInvocation,
): SerializedData {
return {
['id']: val.id,
['type']:
val.type == void 0
? val.type
: serializeWebhookInvocationTypeField(val.type),
['webhook']:
val.webhook == void 0 ? val.webhook : serializeWebhook(val.webhook),
['created_by']:
val.createdBy == void 0
? val.createdBy
: serializeUserMini(val.createdBy),
['created_at']:
val.createdAt == void 0
? val.createdAt
: serializeDateTime(val.createdAt),
['trigger']:
val.trigger == void 0
? val.trigger
: serializeWebhookInvocationTriggerField(val.trigger),
['source']:
val.source == void 0 ? val.source : serializeFileOrFolder(val.source),
};
}
export function deserializeWebhookInvocation(
val: SerializedData,
): WebhookInvocation {
if (!sdIsMap(val)) {
throw new BoxSdkError({
message: 'Expecting a map for "WebhookInvocation"',
});
}
if (!(val.id == void 0) && !sdIsString(val.id)) {
throw new BoxSdkError({
message: 'Expecting string for "id" of type "WebhookInvocation"',
});
}
const id: undefined | string = val.id == void 0 ? void 0 : val.id;
const type: undefined | WebhookInvocationTypeField =
val.type == void 0
? void 0
: deserializeWebhookInvocationTypeField(val.type);
const webhook: undefined | Webhook =
val.webhook == void 0 ? void 0 : deserializeWebhook(val.webhook);
const createdBy: undefined | UserMini =
val.created_by == void 0 ? void 0 : deserializeUserMini(val.created_by);
if (!(val.created_at == void 0) && !sdIsString(val.created_at)) {
throw new BoxSdkError({
message: 'Expecting string for "created_at" of type "WebhookInvocation"',
});
}
const createdAt: undefined | DateTime =
val.created_at == void 0 ? void 0 : deserializeDateTime(val.created_at);
const trigger: undefined | WebhookInvocationTriggerField =
val.trigger == void 0
? void 0
: deserializeWebhookInvocationTriggerField(val.trigger);
const source: undefined | FileOrFolder =
val.source == void 0 ? void 0 : deserializeFileOrFolder(val.source);
return {
id: id,
type: type,
webhook: webhook,
createdBy: createdBy,
createdAt: createdAt,
trigger: trigger,
source: source,
} satisfies WebhookInvocation;
}