box-node-sdk
Version:
Official SDK for Box Platform APIs
308 lines (307 loc) • 11.4 kB
text/typescript
import { serializeSignRequestPrefillTag } from './signRequestPrefillTag';
import { deserializeSignRequestPrefillTag } from './signRequestPrefillTag';
import { serializeSignRequestBase } from './signRequestBase';
import { deserializeSignRequestBase } from './signRequestBase';
import { serializeFileBase } from './fileBase';
import { deserializeFileBase } from './fileBase';
import { serializeSignRequestCreateSigner } from './signRequestCreateSigner';
import { deserializeSignRequestCreateSigner } from './signRequestCreateSigner';
import { serializeFolderMini } from './folderMini';
import { deserializeFolderMini } from './folderMini';
import { SignRequestPrefillTag } from './signRequestPrefillTag';
import { SignRequestBase } from './signRequestBase';
import { FileBase } from './fileBase';
import { SignRequestCreateSigner } from './signRequestCreateSigner';
import { FolderMini } from './folderMini';
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 SignRequestCreateRequestSignatureColorField =
| 'blue'
| 'black'
| 'red'
| string;
export type SignRequestCreateRequest = SignRequestBase & {
/**
* List of files to create a signing document from. This is currently limited to ten files. Only the ID and type fields are required for each file. */
readonly sourceFiles?: readonly FileBase[] | null;
/**
* Force a specific color for the signature (blue, black, or red). */
readonly signatureColor?: SignRequestCreateRequestSignatureColorField | null;
/**
* Array of signers for the signature request. 35 is the
* max number of signers permitted.
*
* **Note**: It may happen that some signers belong to conflicting [segments](https://developer.box.com/reference/resources/shield-information-barrier-segment-member) (user groups).
* This means that due to the security policies, users are assigned to segments to prevent exchanges or communication that could lead to ethical conflicts.
* In such a case, an attempt to send the sign request will result in an error.
*
* Read more about [segments and ethical walls](https://support.box.com/hc/en-us/articles/9920431507603-Understanding-Information-Barriers#h_01GFVJEHQA06N7XEZ4GCZ9GFAQ). */
readonly signers: readonly SignRequestCreateSigner[];
readonly parentFolder?: FolderMini;
};
export function serializeSignRequestCreateRequestSignatureColorField(
val: SignRequestCreateRequestSignatureColorField,
): SerializedData {
return val;
}
export function deserializeSignRequestCreateRequestSignatureColorField(
val: SerializedData,
): SignRequestCreateRequestSignatureColorField {
if (val == 'blue') {
return val;
}
if (val == 'black') {
return val;
}
if (val == 'red') {
return val;
}
if (sdIsString(val)) {
return val;
}
throw new BoxSdkError({
message: "Can't deserialize SignRequestCreateRequestSignatureColorField",
});
}
export function serializeSignRequestCreateRequest(
val: SignRequestCreateRequest,
): SerializedData {
const base: any = serializeSignRequestBase(val);
if (!sdIsMap(base)) {
throw new BoxSdkError({
message: 'Expecting a map for "SignRequestCreateRequest"',
});
}
return {
...base,
...{
['source_files']:
val.sourceFiles == void 0
? val.sourceFiles
: (val.sourceFiles.map(function (item: FileBase): SerializedData {
return serializeFileBase(item);
}) as readonly any[]),
['signature_color']:
val.signatureColor == void 0
? val.signatureColor
: serializeSignRequestCreateRequestSignatureColorField(
val.signatureColor,
),
['signers']: val.signers.map(function (
item: SignRequestCreateSigner,
): SerializedData {
return serializeSignRequestCreateSigner(item);
}) as readonly any[],
['parent_folder']:
val.parentFolder == void 0
? val.parentFolder
: serializeFolderMini(val.parentFolder),
},
};
}
export function deserializeSignRequestCreateRequest(
val: SerializedData,
): SignRequestCreateRequest {
if (!sdIsMap(val)) {
throw new BoxSdkError({
message: 'Expecting a map for "SignRequestCreateRequest"',
});
}
if (!(val.source_files == void 0) && !sdIsList(val.source_files)) {
throw new BoxSdkError({
message:
'Expecting array for "source_files" of type "SignRequestCreateRequest"',
});
}
const sourceFiles: undefined | readonly FileBase[] =
val.source_files == void 0
? void 0
: sdIsList(val.source_files)
? (val.source_files.map(function (itm: SerializedData): FileBase {
return deserializeFileBase(itm);
}) as readonly any[])
: [];
const signatureColor:
| undefined
| SignRequestCreateRequestSignatureColorField =
val.signature_color == void 0
? void 0
: deserializeSignRequestCreateRequestSignatureColorField(
val.signature_color,
);
if (val.signers == void 0) {
throw new BoxSdkError({
message:
'Expecting "signers" of type "SignRequestCreateRequest" to be defined',
});
}
if (!sdIsList(val.signers)) {
throw new BoxSdkError({
message:
'Expecting array for "signers" of type "SignRequestCreateRequest"',
});
}
const signers: readonly SignRequestCreateSigner[] = sdIsList(val.signers)
? (val.signers.map(function (itm: SerializedData): SignRequestCreateSigner {
return deserializeSignRequestCreateSigner(itm);
}) as readonly any[])
: [];
const parentFolder: undefined | FolderMini =
val.parent_folder == void 0
? void 0
: deserializeFolderMini(val.parent_folder);
if (
!(val.is_document_preparation_needed == void 0) &&
!sdIsBoolean(val.is_document_preparation_needed)
) {
throw new BoxSdkError({
message:
'Expecting boolean for "is_document_preparation_needed" of type "SignRequestCreateRequest"',
});
}
const isDocumentPreparationNeeded: undefined | boolean =
val.is_document_preparation_needed == void 0
? void 0
: val.is_document_preparation_needed;
if (!(val.redirect_url == void 0) && !sdIsString(val.redirect_url)) {
throw new BoxSdkError({
message:
'Expecting string for "redirect_url" of type "SignRequestCreateRequest"',
});
}
const redirectUrl: undefined | string =
val.redirect_url == void 0 ? void 0 : val.redirect_url;
if (
!(val.declined_redirect_url == void 0) &&
!sdIsString(val.declined_redirect_url)
) {
throw new BoxSdkError({
message:
'Expecting string for "declined_redirect_url" of type "SignRequestCreateRequest"',
});
}
const declinedRedirectUrl: undefined | string =
val.declined_redirect_url == void 0 ? void 0 : val.declined_redirect_url;
if (
!(val.are_text_signatures_enabled == void 0) &&
!sdIsBoolean(val.are_text_signatures_enabled)
) {
throw new BoxSdkError({
message:
'Expecting boolean for "are_text_signatures_enabled" of type "SignRequestCreateRequest"',
});
}
const areTextSignaturesEnabled: undefined | boolean =
val.are_text_signatures_enabled == void 0
? void 0
: val.are_text_signatures_enabled;
if (!(val.email_subject == void 0) && !sdIsString(val.email_subject)) {
throw new BoxSdkError({
message:
'Expecting string for "email_subject" of type "SignRequestCreateRequest"',
});
}
const emailSubject: undefined | string =
val.email_subject == void 0 ? void 0 : val.email_subject;
if (!(val.email_message == void 0) && !sdIsString(val.email_message)) {
throw new BoxSdkError({
message:
'Expecting string for "email_message" of type "SignRequestCreateRequest"',
});
}
const emailMessage: undefined | string =
val.email_message == void 0 ? void 0 : val.email_message;
if (
!(val.are_reminders_enabled == void 0) &&
!sdIsBoolean(val.are_reminders_enabled)
) {
throw new BoxSdkError({
message:
'Expecting boolean for "are_reminders_enabled" of type "SignRequestCreateRequest"',
});
}
const areRemindersEnabled: undefined | boolean =
val.are_reminders_enabled == void 0 ? void 0 : val.are_reminders_enabled;
if (!(val.name == void 0) && !sdIsString(val.name)) {
throw new BoxSdkError({
message: 'Expecting string for "name" of type "SignRequestCreateRequest"',
});
}
const name: undefined | string = val.name == void 0 ? void 0 : val.name;
if (!(val.prefill_tags == void 0) && !sdIsList(val.prefill_tags)) {
throw new BoxSdkError({
message:
'Expecting array for "prefill_tags" of type "SignRequestCreateRequest"',
});
}
const prefillTags: undefined | readonly SignRequestPrefillTag[] =
val.prefill_tags == void 0
? void 0
: sdIsList(val.prefill_tags)
? (val.prefill_tags.map(function (
itm: SerializedData,
): SignRequestPrefillTag {
return deserializeSignRequestPrefillTag(itm);
}) as readonly any[])
: [];
if (!(val.days_valid == void 0) && !sdIsNumber(val.days_valid)) {
throw new BoxSdkError({
message:
'Expecting number for "days_valid" of type "SignRequestCreateRequest"',
});
}
const daysValid: undefined | number =
val.days_valid == void 0 ? void 0 : val.days_valid;
if (!(val.external_id == void 0) && !sdIsString(val.external_id)) {
throw new BoxSdkError({
message:
'Expecting string for "external_id" of type "SignRequestCreateRequest"',
});
}
const externalId: undefined | string =
val.external_id == void 0 ? void 0 : val.external_id;
if (!(val.template_id == void 0) && !sdIsString(val.template_id)) {
throw new BoxSdkError({
message:
'Expecting string for "template_id" of type "SignRequestCreateRequest"',
});
}
const templateId: undefined | string =
val.template_id == void 0 ? void 0 : val.template_id;
if (
!(val.external_system_name == void 0) &&
!sdIsString(val.external_system_name)
) {
throw new BoxSdkError({
message:
'Expecting string for "external_system_name" of type "SignRequestCreateRequest"',
});
}
const externalSystemName: undefined | string =
val.external_system_name == void 0 ? void 0 : val.external_system_name;
return {
sourceFiles: sourceFiles,
signatureColor: signatureColor,
signers: signers,
parentFolder: parentFolder,
isDocumentPreparationNeeded: isDocumentPreparationNeeded,
redirectUrl: redirectUrl,
declinedRedirectUrl: declinedRedirectUrl,
areTextSignaturesEnabled: areTextSignaturesEnabled,
emailSubject: emailSubject,
emailMessage: emailMessage,
areRemindersEnabled: areRemindersEnabled,
name: name,
prefillTags: prefillTags,
daysValid: daysValid,
externalId: externalId,
templateId: templateId,
externalSystemName: externalSystemName,
} satisfies SignRequestCreateRequest;
}