box-node-sdk
Version:
Official SDK for Box Platform APIs
260 lines (259 loc) • 8.36 kB
text/typescript
import { serializeTermsOfServiceBaseTypeField } from './termsOfServiceBase';
import { deserializeTermsOfServiceBaseTypeField } from './termsOfServiceBase';
import { serializeTermsOfServiceBase } from './termsOfServiceBase';
import { deserializeTermsOfServiceBase } from './termsOfServiceBase';
import { serializeDateTime } from '../internal/utils';
import { deserializeDateTime } from '../internal/utils';
import { TermsOfServiceBaseTypeField } from './termsOfServiceBase';
import { TermsOfServiceBase } from './termsOfServiceBase';
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 TermsOfServiceStatusField = 'enabled' | 'disabled' | string;
export type TermsOfServiceEnterpriseTypeField = 'enterprise';
export interface TermsOfServiceEnterpriseField {
/**
* The unique identifier for this enterprise. */
readonly id?: string;
/**
* The value will always be `enterprise`. */
readonly type?: TermsOfServiceEnterpriseTypeField;
/**
* The name of the enterprise. */
readonly name?: string;
readonly rawData?: SerializedData;
}
export type TermsOfServiceTosTypeField = 'managed' | 'external' | string;
export class TermsOfService extends TermsOfServiceBase {
readonly status?: TermsOfServiceStatusField;
readonly enterprise?: TermsOfServiceEnterpriseField;
readonly tosType?: TermsOfServiceTosTypeField;
readonly text?: string;
readonly createdAt?: DateTime;
readonly modifiedAt?: DateTime;
constructor(fields: TermsOfService) {
super(fields);
if (fields.status !== undefined) {
this.status = fields.status;
}
if (fields.enterprise !== undefined) {
this.enterprise = fields.enterprise;
}
if (fields.tosType !== undefined) {
this.tosType = fields.tosType;
}
if (fields.text !== undefined) {
this.text = fields.text;
}
if (fields.createdAt !== undefined) {
this.createdAt = fields.createdAt;
}
if (fields.modifiedAt !== undefined) {
this.modifiedAt = fields.modifiedAt;
}
}
}
export function serializeTermsOfServiceStatusField(
val: TermsOfServiceStatusField,
): SerializedData {
return val;
}
export function deserializeTermsOfServiceStatusField(
val: SerializedData,
): TermsOfServiceStatusField {
if (val == 'enabled') {
return val;
}
if (val == 'disabled') {
return val;
}
if (sdIsString(val)) {
return val;
}
throw new BoxSdkError({
message: "Can't deserialize TermsOfServiceStatusField",
});
}
export function serializeTermsOfServiceEnterpriseTypeField(
val: TermsOfServiceEnterpriseTypeField,
): SerializedData {
return val;
}
export function deserializeTermsOfServiceEnterpriseTypeField(
val: SerializedData,
): TermsOfServiceEnterpriseTypeField {
if (val == 'enterprise') {
return val;
}
throw new BoxSdkError({
message: "Can't deserialize TermsOfServiceEnterpriseTypeField",
});
}
export function serializeTermsOfServiceEnterpriseField(
val: TermsOfServiceEnterpriseField,
): SerializedData {
return {
['id']: val.id,
['type']:
val.type == void 0
? val.type
: serializeTermsOfServiceEnterpriseTypeField(val.type),
['name']: val.name,
};
}
export function deserializeTermsOfServiceEnterpriseField(
val: SerializedData,
): TermsOfServiceEnterpriseField {
if (!sdIsMap(val)) {
throw new BoxSdkError({
message: 'Expecting a map for "TermsOfServiceEnterpriseField"',
});
}
if (!(val.id == void 0) && !sdIsString(val.id)) {
throw new BoxSdkError({
message:
'Expecting string for "id" of type "TermsOfServiceEnterpriseField"',
});
}
const id: undefined | string = val.id == void 0 ? void 0 : val.id;
const type: undefined | TermsOfServiceEnterpriseTypeField =
val.type == void 0
? void 0
: deserializeTermsOfServiceEnterpriseTypeField(val.type);
if (!(val.name == void 0) && !sdIsString(val.name)) {
throw new BoxSdkError({
message:
'Expecting string for "name" of type "TermsOfServiceEnterpriseField"',
});
}
const name: undefined | string = val.name == void 0 ? void 0 : val.name;
return {
id: id,
type: type,
name: name,
} satisfies TermsOfServiceEnterpriseField;
}
export function serializeTermsOfServiceTosTypeField(
val: TermsOfServiceTosTypeField,
): SerializedData {
return val;
}
export function deserializeTermsOfServiceTosTypeField(
val: SerializedData,
): TermsOfServiceTosTypeField {
if (val == 'managed') {
return val;
}
if (val == 'external') {
return val;
}
if (sdIsString(val)) {
return val;
}
throw new BoxSdkError({
message: "Can't deserialize TermsOfServiceTosTypeField",
});
}
export function serializeTermsOfService(val: TermsOfService): SerializedData {
const base: any = serializeTermsOfServiceBase(val);
if (!sdIsMap(base)) {
throw new BoxSdkError({ message: 'Expecting a map for "TermsOfService"' });
}
return {
...base,
...{
['status']:
val.status == void 0
? val.status
: serializeTermsOfServiceStatusField(val.status),
['enterprise']:
val.enterprise == void 0
? val.enterprise
: serializeTermsOfServiceEnterpriseField(val.enterprise),
['tos_type']:
val.tosType == void 0
? val.tosType
: serializeTermsOfServiceTosTypeField(val.tosType),
['text']: val.text,
['created_at']:
val.createdAt == void 0
? val.createdAt
: serializeDateTime(val.createdAt),
['modified_at']:
val.modifiedAt == void 0
? val.modifiedAt
: serializeDateTime(val.modifiedAt),
},
};
}
export function deserializeTermsOfService(val: SerializedData): TermsOfService {
if (!sdIsMap(val)) {
throw new BoxSdkError({ message: 'Expecting a map for "TermsOfService"' });
}
const status: undefined | TermsOfServiceStatusField =
val.status == void 0
? void 0
: deserializeTermsOfServiceStatusField(val.status);
const enterprise: undefined | TermsOfServiceEnterpriseField =
val.enterprise == void 0
? void 0
: deserializeTermsOfServiceEnterpriseField(val.enterprise);
const tosType: undefined | TermsOfServiceTosTypeField =
val.tos_type == void 0
? void 0
: deserializeTermsOfServiceTosTypeField(val.tos_type);
if (!(val.text == void 0) && !sdIsString(val.text)) {
throw new BoxSdkError({
message: 'Expecting string for "text" of type "TermsOfService"',
});
}
const text: undefined | string = val.text == void 0 ? void 0 : val.text;
if (!(val.created_at == void 0) && !sdIsString(val.created_at)) {
throw new BoxSdkError({
message: 'Expecting string for "created_at" of type "TermsOfService"',
});
}
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 "TermsOfService"',
});
}
const modifiedAt: undefined | DateTime =
val.modified_at == void 0 ? void 0 : deserializeDateTime(val.modified_at);
if (val.id == void 0) {
throw new BoxSdkError({
message: 'Expecting "id" of type "TermsOfService" to be defined',
});
}
if (!sdIsString(val.id)) {
throw new BoxSdkError({
message: 'Expecting string for "id" of type "TermsOfService"',
});
}
const id: string = val.id;
if (val.type == void 0) {
throw new BoxSdkError({
message: 'Expecting "type" of type "TermsOfService" to be defined',
});
}
const type: TermsOfServiceBaseTypeField =
deserializeTermsOfServiceBaseTypeField(val.type);
return {
status: status,
enterprise: enterprise,
tosType: tosType,
text: text,
createdAt: createdAt,
modifiedAt: modifiedAt,
id: id,
type: type,
} satisfies TermsOfService;
}