box-node-sdk
Version:
Official SDK for Box Platform APIs
162 lines (161 loc) • 5.59 kB
text/typescript
import { serializeFolderMini } from './folderMini';
import { deserializeFolderMini } from './folderMini';
import { serializeUserBase } from './userBase';
import { deserializeUserBase } from './userBase';
import { serializeDateTime } from '../internal/utils';
import { deserializeDateTime } from '../internal/utils';
import { FolderMini } from './folderMini';
import { UserBase } from './userBase';
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 interface FolderLockLockedOperationsField {
/**
* Whether moving the folder is restricted. */
readonly move: boolean;
/**
* Whether deleting the folder is restricted. */
readonly delete: boolean;
readonly rawData?: SerializedData;
}
export interface FolderLock {
readonly folder?: FolderMini;
/**
* The unique identifier for this folder lock. */
readonly id?: string;
/**
* The object type, always `folder_lock`. */
readonly type?: string;
readonly createdBy?: UserBase;
/**
* When the folder lock object was created. */
readonly createdAt?: DateTime;
/**
* The operations that have been locked. Currently the `move`
* and `delete` operations cannot be locked separately, and both need to be
* set to `true`. */
readonly lockedOperations?: FolderLockLockedOperationsField;
/**
* The lock type, always `freeze`. */
readonly lockType?: string;
readonly rawData?: SerializedData;
}
export function serializeFolderLockLockedOperationsField(
val: FolderLockLockedOperationsField,
): SerializedData {
return { ['move']: val.move, ['delete']: val.delete };
}
export function deserializeFolderLockLockedOperationsField(
val: SerializedData,
): FolderLockLockedOperationsField {
if (!sdIsMap(val)) {
throw new BoxSdkError({
message: 'Expecting a map for "FolderLockLockedOperationsField"',
});
}
if (val.move == void 0) {
throw new BoxSdkError({
message:
'Expecting "move" of type "FolderLockLockedOperationsField" to be defined',
});
}
if (!sdIsBoolean(val.move)) {
throw new BoxSdkError({
message:
'Expecting boolean for "move" of type "FolderLockLockedOperationsField"',
});
}
const move: boolean = val.move;
if (val.delete == void 0) {
throw new BoxSdkError({
message:
'Expecting "delete" of type "FolderLockLockedOperationsField" to be defined',
});
}
if (!sdIsBoolean(val.delete)) {
throw new BoxSdkError({
message:
'Expecting boolean for "delete" of type "FolderLockLockedOperationsField"',
});
}
const _delete: boolean = val.delete;
return {
move: move,
delete: _delete,
} satisfies FolderLockLockedOperationsField;
}
export function serializeFolderLock(val: FolderLock): SerializedData {
return {
['folder']:
val.folder == void 0 ? val.folder : serializeFolderMini(val.folder),
['id']: val.id,
['type']: val.type,
['created_by']:
val.createdBy == void 0
? val.createdBy
: serializeUserBase(val.createdBy),
['created_at']:
val.createdAt == void 0
? val.createdAt
: serializeDateTime(val.createdAt),
['locked_operations']:
val.lockedOperations == void 0
? val.lockedOperations
: serializeFolderLockLockedOperationsField(val.lockedOperations),
['lock_type']: val.lockType,
};
}
export function deserializeFolderLock(val: SerializedData): FolderLock {
if (!sdIsMap(val)) {
throw new BoxSdkError({ message: 'Expecting a map for "FolderLock"' });
}
const folder: undefined | FolderMini =
val.folder == void 0 ? void 0 : deserializeFolderMini(val.folder);
if (!(val.id == void 0) && !sdIsString(val.id)) {
throw new BoxSdkError({
message: 'Expecting string for "id" of type "FolderLock"',
});
}
const id: undefined | string = val.id == void 0 ? void 0 : val.id;
if (!(val.type == void 0) && !sdIsString(val.type)) {
throw new BoxSdkError({
message: 'Expecting string for "type" of type "FolderLock"',
});
}
const type: undefined | string = val.type == void 0 ? void 0 : val.type;
const createdBy: undefined | UserBase =
val.created_by == void 0 ? void 0 : deserializeUserBase(val.created_by);
if (!(val.created_at == void 0) && !sdIsString(val.created_at)) {
throw new BoxSdkError({
message: 'Expecting string for "created_at" of type "FolderLock"',
});
}
const createdAt: undefined | DateTime =
val.created_at == void 0 ? void 0 : deserializeDateTime(val.created_at);
const lockedOperations: undefined | FolderLockLockedOperationsField =
val.locked_operations == void 0
? void 0
: deserializeFolderLockLockedOperationsField(val.locked_operations);
if (!(val.lock_type == void 0) && !sdIsString(val.lock_type)) {
throw new BoxSdkError({
message: 'Expecting string for "lock_type" of type "FolderLock"',
});
}
const lockType: undefined | string =
val.lock_type == void 0 ? void 0 : val.lock_type;
return {
folder: folder,
id: id,
type: type,
createdBy: createdBy,
createdAt: createdAt,
lockedOperations: lockedOperations,
lockType: lockType,
} satisfies FolderLock;
}