box-node-sdk
Version:
Official SDK for Box Platform APIs
248 lines (247 loc) • 6.76 kB
text/typescript
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 ClientErrorV2025R0TypeField = 'error';
export type ClientErrorV2025R0CodeField =
| 'created'
| 'accepted'
| 'no_content'
| 'redirect'
| 'not_modified'
| 'bad_request'
| 'unauthorized'
| 'forbidden'
| 'not_found'
| 'method_not_allowed'
| 'conflict'
| 'precondition_failed'
| 'too_many_requests'
| 'internal_server_error'
| 'unavailable'
| 'item_name_invalid'
| 'insufficient_scope'
| string;
export interface ClientErrorV2025R0 {
/**
* The value will always be `error`. */
readonly type?: ClientErrorV2025R0TypeField;
/**
* The HTTP status of the response. */
readonly status?: number;
/**
* A Box-specific error code. */
readonly code?: ClientErrorV2025R0CodeField;
/**
* A short message describing the error. */
readonly message?: string;
/**
* A free-form object that contains additional context
* about the error. The possible fields are defined on
* a per-endpoint basis. `message` is only one example. */
readonly contextInfo?: {
readonly [key: string]: any;
} | null;
/**
* A URL that links to more information about why this error occurred. */
readonly helpUrl?: string;
/**
* A unique identifier for this response, which can be used
* when contacting Box support. */
readonly requestId?: string;
readonly rawData?: SerializedData;
}
export function serializeClientErrorV2025R0TypeField(
val: ClientErrorV2025R0TypeField,
): SerializedData {
return val;
}
export function deserializeClientErrorV2025R0TypeField(
val: SerializedData,
): ClientErrorV2025R0TypeField {
if (val == 'error') {
return val;
}
throw new BoxSdkError({
message: "Can't deserialize ClientErrorV2025R0TypeField",
});
}
export function serializeClientErrorV2025R0CodeField(
val: ClientErrorV2025R0CodeField,
): SerializedData {
return val;
}
export function deserializeClientErrorV2025R0CodeField(
val: SerializedData,
): ClientErrorV2025R0CodeField {
if (val == 'created') {
return val;
}
if (val == 'accepted') {
return val;
}
if (val == 'no_content') {
return val;
}
if (val == 'redirect') {
return val;
}
if (val == 'not_modified') {
return val;
}
if (val == 'bad_request') {
return val;
}
if (val == 'unauthorized') {
return val;
}
if (val == 'forbidden') {
return val;
}
if (val == 'not_found') {
return val;
}
if (val == 'method_not_allowed') {
return val;
}
if (val == 'conflict') {
return val;
}
if (val == 'precondition_failed') {
return val;
}
if (val == 'too_many_requests') {
return val;
}
if (val == 'internal_server_error') {
return val;
}
if (val == 'unavailable') {
return val;
}
if (val == 'item_name_invalid') {
return val;
}
if (val == 'insufficient_scope') {
return val;
}
if (sdIsString(val)) {
return val;
}
throw new BoxSdkError({
message: "Can't deserialize ClientErrorV2025R0CodeField",
});
}
export function serializeClientErrorV2025R0(
val: ClientErrorV2025R0,
): SerializedData {
return {
['type']:
val.type == void 0
? val.type
: serializeClientErrorV2025R0TypeField(val.type),
['status']: val.status,
['code']:
val.code == void 0
? val.code
: serializeClientErrorV2025R0CodeField(val.code),
['message']: val.message,
['context_info']:
val.contextInfo == void 0
? val.contextInfo
: (Object.fromEntries(
Object.entries(val.contextInfo).map(([k, v]: [string, any]) => [
k,
(function (v: any): any {
return v;
})(v),
]),
) as {
readonly [key: string]: any;
}),
['help_url']: val.helpUrl,
['request_id']: val.requestId,
};
}
export function deserializeClientErrorV2025R0(
val: SerializedData,
): ClientErrorV2025R0 {
if (!sdIsMap(val)) {
throw new BoxSdkError({
message: 'Expecting a map for "ClientErrorV2025R0"',
});
}
const type: undefined | ClientErrorV2025R0TypeField =
val.type == void 0
? void 0
: deserializeClientErrorV2025R0TypeField(val.type);
if (!(val.status == void 0) && !sdIsNumber(val.status)) {
throw new BoxSdkError({
message: 'Expecting number for "status" of type "ClientErrorV2025R0"',
});
}
const status: undefined | number = val.status == void 0 ? void 0 : val.status;
const code: undefined | ClientErrorV2025R0CodeField =
val.code == void 0
? void 0
: deserializeClientErrorV2025R0CodeField(val.code);
if (!(val.message == void 0) && !sdIsString(val.message)) {
throw new BoxSdkError({
message: 'Expecting string for "message" of type "ClientErrorV2025R0"',
});
}
const message: undefined | string =
val.message == void 0 ? void 0 : val.message;
if (!(val.context_info == void 0) && !sdIsMap(val.context_info)) {
throw new BoxSdkError({
message:
'Expecting object for "context_info" of type "ClientErrorV2025R0"',
});
}
const contextInfo:
| undefined
| {
readonly [key: string]: any;
} =
val.context_info == void 0
? void 0
: sdIsMap(val.context_info)
? (Object.fromEntries(
Object.entries(val.context_info).map(([k, v]: [string, any]) => [
k,
(function (v: any): any {
return v;
})(v),
]),
) as {
readonly [key: string]: any;
})
: {};
if (!(val.help_url == void 0) && !sdIsString(val.help_url)) {
throw new BoxSdkError({
message: 'Expecting string for "help_url" of type "ClientErrorV2025R0"',
});
}
const helpUrl: undefined | string =
val.help_url == void 0 ? void 0 : val.help_url;
if (!(val.request_id == void 0) && !sdIsString(val.request_id)) {
throw new BoxSdkError({
message: 'Expecting string for "request_id" of type "ClientErrorV2025R0"',
});
}
const requestId: undefined | string =
val.request_id == void 0 ? void 0 : val.request_id;
return {
type: type,
status: status,
code: code,
message: message,
contextInfo: contextInfo,
helpUrl: helpUrl,
requestId: requestId,
} satisfies ClientErrorV2025R0;
}