box-node-sdk
Version:
Official SDK for Box Platform APIs
831 lines (830 loc) • 27.9 kB
text/typescript
import { serializeTaskAssignments } from '../schemas/taskAssignments';
import { deserializeTaskAssignments } from '../schemas/taskAssignments';
import { serializeClientError } from '../schemas/clientError';
import { deserializeClientError } from '../schemas/clientError';
import { serializeTaskAssignment } from '../schemas/taskAssignment';
import { deserializeTaskAssignment } from '../schemas/taskAssignment';
import { ResponseFormat } from '../networking/fetchOptions';
import { TaskAssignments } from '../schemas/taskAssignments';
import { ClientError } from '../schemas/clientError';
import { TaskAssignment } from '../schemas/taskAssignment';
import { BoxSdkError } from '../box/errors';
import { Authentication } from '../networking/auth';
import { NetworkSession } from '../networking/network';
import { FetchOptions } from '../networking/fetchOptions';
import { FetchResponse } from '../networking/fetchResponse';
import { prepareParams } from '../internal/utils';
import { toString } from '../internal/utils';
import { ByteStream } from '../internal/utils';
import { CancellationToken } from '../internal/utils';
import { sdToJson } from '../serialization/json';
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 class GetTaskAssignmentsOptionals {
readonly headers: GetTaskAssignmentsHeaders = new GetTaskAssignmentsHeaders(
{},
);
readonly cancellationToken?: CancellationToken = void 0;
constructor(
fields: Omit<GetTaskAssignmentsOptionals, 'headers' | 'cancellationToken'> &
Partial<
Pick<GetTaskAssignmentsOptionals, 'headers' | 'cancellationToken'>
>,
) {
if (fields.headers !== undefined) {
this.headers = fields.headers;
}
if (fields.cancellationToken !== undefined) {
this.cancellationToken = fields.cancellationToken;
}
}
}
export interface GetTaskAssignmentsOptionalsInput {
readonly headers?: GetTaskAssignmentsHeaders;
readonly cancellationToken?: CancellationToken;
}
export class CreateTaskAssignmentOptionals {
readonly headers: CreateTaskAssignmentHeaders =
new CreateTaskAssignmentHeaders({});
readonly cancellationToken?: CancellationToken = void 0;
constructor(
fields: Omit<
CreateTaskAssignmentOptionals,
'headers' | 'cancellationToken'
> &
Partial<
Pick<CreateTaskAssignmentOptionals, 'headers' | 'cancellationToken'>
>,
) {
if (fields.headers !== undefined) {
this.headers = fields.headers;
}
if (fields.cancellationToken !== undefined) {
this.cancellationToken = fields.cancellationToken;
}
}
}
export interface CreateTaskAssignmentOptionalsInput {
readonly headers?: CreateTaskAssignmentHeaders;
readonly cancellationToken?: CancellationToken;
}
export class GetTaskAssignmentByIdOptionals {
readonly headers: GetTaskAssignmentByIdHeaders =
new GetTaskAssignmentByIdHeaders({});
readonly cancellationToken?: CancellationToken = void 0;
constructor(
fields: Omit<
GetTaskAssignmentByIdOptionals,
'headers' | 'cancellationToken'
> &
Partial<
Pick<GetTaskAssignmentByIdOptionals, 'headers' | 'cancellationToken'>
>,
) {
if (fields.headers !== undefined) {
this.headers = fields.headers;
}
if (fields.cancellationToken !== undefined) {
this.cancellationToken = fields.cancellationToken;
}
}
}
export interface GetTaskAssignmentByIdOptionalsInput {
readonly headers?: GetTaskAssignmentByIdHeaders;
readonly cancellationToken?: CancellationToken;
}
export class UpdateTaskAssignmentByIdOptionals {
readonly requestBody: UpdateTaskAssignmentByIdRequestBody =
{} satisfies UpdateTaskAssignmentByIdRequestBody;
readonly headers: UpdateTaskAssignmentByIdHeaders =
new UpdateTaskAssignmentByIdHeaders({});
readonly cancellationToken?: CancellationToken = void 0;
constructor(
fields: Omit<
UpdateTaskAssignmentByIdOptionals,
'requestBody' | 'headers' | 'cancellationToken'
> &
Partial<
Pick<
UpdateTaskAssignmentByIdOptionals,
'requestBody' | 'headers' | 'cancellationToken'
>
>,
) {
if (fields.requestBody !== undefined) {
this.requestBody = fields.requestBody;
}
if (fields.headers !== undefined) {
this.headers = fields.headers;
}
if (fields.cancellationToken !== undefined) {
this.cancellationToken = fields.cancellationToken;
}
}
}
export interface UpdateTaskAssignmentByIdOptionalsInput {
readonly requestBody?: UpdateTaskAssignmentByIdRequestBody;
readonly headers?: UpdateTaskAssignmentByIdHeaders;
readonly cancellationToken?: CancellationToken;
}
export class DeleteTaskAssignmentByIdOptionals {
readonly headers: DeleteTaskAssignmentByIdHeaders =
new DeleteTaskAssignmentByIdHeaders({});
readonly cancellationToken?: CancellationToken = void 0;
constructor(
fields: Omit<
DeleteTaskAssignmentByIdOptionals,
'headers' | 'cancellationToken'
> &
Partial<
Pick<DeleteTaskAssignmentByIdOptionals, 'headers' | 'cancellationToken'>
>,
) {
if (fields.headers !== undefined) {
this.headers = fields.headers;
}
if (fields.cancellationToken !== undefined) {
this.cancellationToken = fields.cancellationToken;
}
}
}
export interface DeleteTaskAssignmentByIdOptionalsInput {
readonly headers?: DeleteTaskAssignmentByIdHeaders;
readonly cancellationToken?: CancellationToken;
}
export class GetTaskAssignmentsHeaders {
/**
* Extra headers that will be included in the HTTP request. */
readonly extraHeaders?: {
readonly [key: string]: undefined | string;
} = {};
constructor(
fields: Omit<GetTaskAssignmentsHeaders, 'extraHeaders'> &
Partial<Pick<GetTaskAssignmentsHeaders, 'extraHeaders'>>,
) {
if (fields.extraHeaders !== undefined) {
this.extraHeaders = fields.extraHeaders;
}
}
}
export interface GetTaskAssignmentsHeadersInput {
/**
* Extra headers that will be included in the HTTP request. */
readonly extraHeaders?: {
readonly [key: string]: undefined | string;
};
}
export type CreateTaskAssignmentRequestBodyTaskTypeField = 'task';
export class CreateTaskAssignmentRequestBodyTaskField {
/**
* The ID of the task. */
readonly id!: string;
/**
* The type of the item to assign. */
readonly type: CreateTaskAssignmentRequestBodyTaskTypeField =
'task' as CreateTaskAssignmentRequestBodyTaskTypeField;
readonly rawData?: SerializedData;
constructor(
fields: Omit<CreateTaskAssignmentRequestBodyTaskField, 'type'> &
Partial<Pick<CreateTaskAssignmentRequestBodyTaskField, 'type'>>,
) {
if (fields.id !== undefined) {
this.id = fields.id;
}
if (fields.type !== undefined) {
this.type = fields.type;
}
if (fields.rawData !== undefined) {
this.rawData = fields.rawData;
}
}
}
export interface CreateTaskAssignmentRequestBodyTaskFieldInput {
/**
* The ID of the task. */
readonly id: string;
/**
* The type of the item to assign. */
readonly type?: CreateTaskAssignmentRequestBodyTaskTypeField;
readonly rawData?: SerializedData;
}
export interface CreateTaskAssignmentRequestBodyAssignToField {
/**
* The ID of the user to assign to the
* task.
*
* To specify a user by their email
* address use the `login` parameter. */
readonly id?: string;
/**
* The email address of the user to assign to the task.
* To specify a user by their user ID please use the `id` parameter. */
readonly login?: string;
readonly rawData?: SerializedData;
}
export interface CreateTaskAssignmentRequestBody {
/**
* The task to assign to a user. */
readonly task: CreateTaskAssignmentRequestBodyTaskField;
/**
* The user to assign the task to. */
readonly assignTo: CreateTaskAssignmentRequestBodyAssignToField;
readonly rawData?: SerializedData;
}
export class CreateTaskAssignmentHeaders {
/**
* Extra headers that will be included in the HTTP request. */
readonly extraHeaders?: {
readonly [key: string]: undefined | string;
} = {};
constructor(
fields: Omit<CreateTaskAssignmentHeaders, 'extraHeaders'> &
Partial<Pick<CreateTaskAssignmentHeaders, 'extraHeaders'>>,
) {
if (fields.extraHeaders !== undefined) {
this.extraHeaders = fields.extraHeaders;
}
}
}
export interface CreateTaskAssignmentHeadersInput {
/**
* Extra headers that will be included in the HTTP request. */
readonly extraHeaders?: {
readonly [key: string]: undefined | string;
};
}
export class GetTaskAssignmentByIdHeaders {
/**
* Extra headers that will be included in the HTTP request. */
readonly extraHeaders?: {
readonly [key: string]: undefined | string;
} = {};
constructor(
fields: Omit<GetTaskAssignmentByIdHeaders, 'extraHeaders'> &
Partial<Pick<GetTaskAssignmentByIdHeaders, 'extraHeaders'>>,
) {
if (fields.extraHeaders !== undefined) {
this.extraHeaders = fields.extraHeaders;
}
}
}
export interface GetTaskAssignmentByIdHeadersInput {
/**
* Extra headers that will be included in the HTTP request. */
readonly extraHeaders?: {
readonly [key: string]: undefined | string;
};
}
export type UpdateTaskAssignmentByIdRequestBodyResolutionStateField =
| 'completed'
| 'incomplete'
| 'approved'
| 'rejected'
| string;
export interface UpdateTaskAssignmentByIdRequestBody {
/**
* An optional message by the assignee that can be added to the task. */
readonly message?: string;
/**
* The state of the task assigned to the user.
*
* * For a task with an `action` value of `complete` this can be
* `incomplete` or `completed`.
* * For a task with an `action` of `review` this can be
* `incomplete`, `approved`, or `rejected`. */
readonly resolutionState?: UpdateTaskAssignmentByIdRequestBodyResolutionStateField;
readonly rawData?: SerializedData;
}
export class UpdateTaskAssignmentByIdHeaders {
/**
* Extra headers that will be included in the HTTP request. */
readonly extraHeaders?: {
readonly [key: string]: undefined | string;
} = {};
constructor(
fields: Omit<UpdateTaskAssignmentByIdHeaders, 'extraHeaders'> &
Partial<Pick<UpdateTaskAssignmentByIdHeaders, 'extraHeaders'>>,
) {
if (fields.extraHeaders !== undefined) {
this.extraHeaders = fields.extraHeaders;
}
}
}
export interface UpdateTaskAssignmentByIdHeadersInput {
/**
* Extra headers that will be included in the HTTP request. */
readonly extraHeaders?: {
readonly [key: string]: undefined | string;
};
}
export class DeleteTaskAssignmentByIdHeaders {
/**
* Extra headers that will be included in the HTTP request. */
readonly extraHeaders?: {
readonly [key: string]: undefined | string;
} = {};
constructor(
fields: Omit<DeleteTaskAssignmentByIdHeaders, 'extraHeaders'> &
Partial<Pick<DeleteTaskAssignmentByIdHeaders, 'extraHeaders'>>,
) {
if (fields.extraHeaders !== undefined) {
this.extraHeaders = fields.extraHeaders;
}
}
}
export interface DeleteTaskAssignmentByIdHeadersInput {
/**
* Extra headers that will be included in the HTTP request. */
readonly extraHeaders?: {
readonly [key: string]: undefined | string;
};
}
export class TaskAssignmentsManager {
readonly auth?: Authentication;
readonly networkSession: NetworkSession = new NetworkSession({});
constructor(
fields: Omit<
TaskAssignmentsManager,
| 'networkSession'
| 'getTaskAssignments'
| 'createTaskAssignment'
| 'getTaskAssignmentById'
| 'updateTaskAssignmentById'
| 'deleteTaskAssignmentById'
> &
Partial<Pick<TaskAssignmentsManager, 'networkSession'>>,
) {
if (fields.auth !== undefined) {
this.auth = fields.auth;
}
if (fields.networkSession !== undefined) {
this.networkSession = fields.networkSession;
}
}
/**
* Lists all of the assignments for a given task.
* @param {string} taskId The ID of the task.
Example: "12345"
* @param {GetTaskAssignmentsOptionalsInput} optionalsInput
* @returns {Promise<TaskAssignments>}
*/
async getTaskAssignments(
taskId: string,
optionalsInput: GetTaskAssignmentsOptionalsInput = {},
): Promise<TaskAssignments> {
const optionals: GetTaskAssignmentsOptionals =
new GetTaskAssignmentsOptionals({
headers: optionalsInput.headers,
cancellationToken: optionalsInput.cancellationToken,
});
const headers: any = optionals.headers;
const cancellationToken: any = optionals.cancellationToken;
const headersMap: {
readonly [key: string]: string;
} = prepareParams({ ...{}, ...headers.extraHeaders });
const response: FetchResponse =
await this.networkSession.networkClient.fetch(
new FetchOptions({
url: ''.concat(
this.networkSession.baseUrls.baseUrl,
'/2.0/tasks/',
(toString(taskId) as string)!,
'/assignments',
) as string,
method: 'GET',
headers: headersMap,
responseFormat: 'json' as ResponseFormat,
auth: this.auth,
networkSession: this.networkSession,
cancellationToken: cancellationToken,
}),
);
return {
...deserializeTaskAssignments(response.data!),
rawData: response.data!,
};
}
/**
* Assigns a task to a user.
*
* A task can be assigned to more than one user by creating multiple
* assignments.
* @param {CreateTaskAssignmentRequestBody} requestBody Request body of createTaskAssignment method
* @param {CreateTaskAssignmentOptionalsInput} optionalsInput
* @returns {Promise<TaskAssignment>}
*/
async createTaskAssignment(
requestBody: CreateTaskAssignmentRequestBody,
optionalsInput: CreateTaskAssignmentOptionalsInput = {},
): Promise<TaskAssignment> {
const optionals: CreateTaskAssignmentOptionals =
new CreateTaskAssignmentOptionals({
headers: optionalsInput.headers,
cancellationToken: optionalsInput.cancellationToken,
});
const headers: any = optionals.headers;
const cancellationToken: any = optionals.cancellationToken;
const headersMap: {
readonly [key: string]: string;
} = prepareParams({ ...{}, ...headers.extraHeaders });
const response: FetchResponse =
await this.networkSession.networkClient.fetch(
new FetchOptions({
url: ''.concat(
this.networkSession.baseUrls.baseUrl,
'/2.0/task_assignments',
) as string,
method: 'POST',
headers: headersMap,
data: serializeCreateTaskAssignmentRequestBody(requestBody),
contentType: 'application/json',
responseFormat: 'json' as ResponseFormat,
auth: this.auth,
networkSession: this.networkSession,
cancellationToken: cancellationToken,
}),
);
return {
...deserializeTaskAssignment(response.data!),
rawData: response.data!,
};
}
/**
* Retrieves information about a task assignment.
* @param {string} taskAssignmentId The ID of the task assignment.
Example: "12345"
* @param {GetTaskAssignmentByIdOptionalsInput} optionalsInput
* @returns {Promise<TaskAssignment>}
*/
async getTaskAssignmentById(
taskAssignmentId: string,
optionalsInput: GetTaskAssignmentByIdOptionalsInput = {},
): Promise<TaskAssignment> {
const optionals: GetTaskAssignmentByIdOptionals =
new GetTaskAssignmentByIdOptionals({
headers: optionalsInput.headers,
cancellationToken: optionalsInput.cancellationToken,
});
const headers: any = optionals.headers;
const cancellationToken: any = optionals.cancellationToken;
const headersMap: {
readonly [key: string]: string;
} = prepareParams({ ...{}, ...headers.extraHeaders });
const response: FetchResponse =
await this.networkSession.networkClient.fetch(
new FetchOptions({
url: ''.concat(
this.networkSession.baseUrls.baseUrl,
'/2.0/task_assignments/',
(toString(taskAssignmentId) as string)!,
) as string,
method: 'GET',
headers: headersMap,
responseFormat: 'json' as ResponseFormat,
auth: this.auth,
networkSession: this.networkSession,
cancellationToken: cancellationToken,
}),
);
return {
...deserializeTaskAssignment(response.data!),
rawData: response.data!,
};
}
/**
* Updates a task assignment. This endpoint can be
* used to update the state of a task assigned to a user.
* @param {string} taskAssignmentId The ID of the task assignment.
Example: "12345"
* @param {UpdateTaskAssignmentByIdOptionalsInput} optionalsInput
* @returns {Promise<TaskAssignment>}
*/
async updateTaskAssignmentById(
taskAssignmentId: string,
optionalsInput: UpdateTaskAssignmentByIdOptionalsInput = {},
): Promise<TaskAssignment> {
const optionals: UpdateTaskAssignmentByIdOptionals =
new UpdateTaskAssignmentByIdOptionals({
requestBody: optionalsInput.requestBody,
headers: optionalsInput.headers,
cancellationToken: optionalsInput.cancellationToken,
});
const requestBody: any = optionals.requestBody;
const headers: any = optionals.headers;
const cancellationToken: any = optionals.cancellationToken;
const headersMap: {
readonly [key: string]: string;
} = prepareParams({ ...{}, ...headers.extraHeaders });
const response: FetchResponse =
await this.networkSession.networkClient.fetch(
new FetchOptions({
url: ''.concat(
this.networkSession.baseUrls.baseUrl,
'/2.0/task_assignments/',
(toString(taskAssignmentId) as string)!,
) as string,
method: 'PUT',
headers: headersMap,
data: serializeUpdateTaskAssignmentByIdRequestBody(requestBody),
contentType: 'application/json',
responseFormat: 'json' as ResponseFormat,
auth: this.auth,
networkSession: this.networkSession,
cancellationToken: cancellationToken,
}),
);
return {
...deserializeTaskAssignment(response.data!),
rawData: response.data!,
};
}
/**
* Deletes a specific task assignment.
* @param {string} taskAssignmentId The ID of the task assignment.
Example: "12345"
* @param {DeleteTaskAssignmentByIdOptionalsInput} optionalsInput
* @returns {Promise<undefined>}
*/
async deleteTaskAssignmentById(
taskAssignmentId: string,
optionalsInput: DeleteTaskAssignmentByIdOptionalsInput = {},
): Promise<undefined> {
const optionals: DeleteTaskAssignmentByIdOptionals =
new DeleteTaskAssignmentByIdOptionals({
headers: optionalsInput.headers,
cancellationToken: optionalsInput.cancellationToken,
});
const headers: any = optionals.headers;
const cancellationToken: any = optionals.cancellationToken;
const headersMap: {
readonly [key: string]: string;
} = prepareParams({ ...{}, ...headers.extraHeaders });
const response: FetchResponse =
await this.networkSession.networkClient.fetch(
new FetchOptions({
url: ''.concat(
this.networkSession.baseUrls.baseUrl,
'/2.0/task_assignments/',
(toString(taskAssignmentId) as string)!,
) as string,
method: 'DELETE',
headers: headersMap,
responseFormat: 'no_content' as ResponseFormat,
auth: this.auth,
networkSession: this.networkSession,
cancellationToken: cancellationToken,
}),
);
return void 0;
}
}
export interface TaskAssignmentsManagerInput {
readonly auth?: Authentication;
readonly networkSession?: NetworkSession;
}
export function serializeCreateTaskAssignmentRequestBodyTaskTypeField(
val: CreateTaskAssignmentRequestBodyTaskTypeField,
): SerializedData {
return val;
}
export function deserializeCreateTaskAssignmentRequestBodyTaskTypeField(
val: SerializedData,
): CreateTaskAssignmentRequestBodyTaskTypeField {
if (val == 'task') {
return val;
}
throw new BoxSdkError({
message: "Can't deserialize CreateTaskAssignmentRequestBodyTaskTypeField",
});
}
export function serializeCreateTaskAssignmentRequestBodyTaskField(
val: CreateTaskAssignmentRequestBodyTaskField,
): SerializedData {
return {
['id']: val.id,
['type']: serializeCreateTaskAssignmentRequestBodyTaskTypeField(val.type),
};
}
export function deserializeCreateTaskAssignmentRequestBodyTaskField(
val: SerializedData,
): CreateTaskAssignmentRequestBodyTaskField {
if (!sdIsMap(val)) {
throw new BoxSdkError({
message: 'Expecting a map for "CreateTaskAssignmentRequestBodyTaskField"',
});
}
if (val.id == void 0) {
throw new BoxSdkError({
message:
'Expecting "id" of type "CreateTaskAssignmentRequestBodyTaskField" to be defined',
});
}
if (!sdIsString(val.id)) {
throw new BoxSdkError({
message:
'Expecting string for "id" of type "CreateTaskAssignmentRequestBodyTaskField"',
});
}
const id: string = val.id;
if (val.type == void 0) {
throw new BoxSdkError({
message:
'Expecting "type" of type "CreateTaskAssignmentRequestBodyTaskField" to be defined',
});
}
const type: CreateTaskAssignmentRequestBodyTaskTypeField =
deserializeCreateTaskAssignmentRequestBodyTaskTypeField(val.type);
return {
id: id,
type: type,
} satisfies CreateTaskAssignmentRequestBodyTaskField;
}
export function serializeCreateTaskAssignmentRequestBodyTaskFieldInput(
val: CreateTaskAssignmentRequestBodyTaskFieldInput,
): SerializedData {
return {
['id']: val.id,
['type']:
val.type == void 0
? val.type
: serializeCreateTaskAssignmentRequestBodyTaskTypeField(val.type),
};
}
export function deserializeCreateTaskAssignmentRequestBodyTaskFieldInput(
val: SerializedData,
): CreateTaskAssignmentRequestBodyTaskFieldInput {
if (!sdIsMap(val)) {
throw new BoxSdkError({
message:
'Expecting a map for "CreateTaskAssignmentRequestBodyTaskFieldInput"',
});
}
if (val.id == void 0) {
throw new BoxSdkError({
message:
'Expecting "id" of type "CreateTaskAssignmentRequestBodyTaskFieldInput" to be defined',
});
}
if (!sdIsString(val.id)) {
throw new BoxSdkError({
message:
'Expecting string for "id" of type "CreateTaskAssignmentRequestBodyTaskFieldInput"',
});
}
const id: string = val.id;
const type: undefined | CreateTaskAssignmentRequestBodyTaskTypeField =
val.type == void 0
? void 0
: deserializeCreateTaskAssignmentRequestBodyTaskTypeField(val.type);
return {
id: id,
type: type,
} satisfies CreateTaskAssignmentRequestBodyTaskFieldInput;
}
export function serializeCreateTaskAssignmentRequestBodyAssignToField(
val: CreateTaskAssignmentRequestBodyAssignToField,
): SerializedData {
return { ['id']: val.id, ['login']: val.login };
}
export function deserializeCreateTaskAssignmentRequestBodyAssignToField(
val: SerializedData,
): CreateTaskAssignmentRequestBodyAssignToField {
if (!sdIsMap(val)) {
throw new BoxSdkError({
message:
'Expecting a map for "CreateTaskAssignmentRequestBodyAssignToField"',
});
}
if (!(val.id == void 0) && !sdIsString(val.id)) {
throw new BoxSdkError({
message:
'Expecting string for "id" of type "CreateTaskAssignmentRequestBodyAssignToField"',
});
}
const id: undefined | string = val.id == void 0 ? void 0 : val.id;
if (!(val.login == void 0) && !sdIsString(val.login)) {
throw new BoxSdkError({
message:
'Expecting string for "login" of type "CreateTaskAssignmentRequestBodyAssignToField"',
});
}
const login: undefined | string = val.login == void 0 ? void 0 : val.login;
return {
id: id,
login: login,
} satisfies CreateTaskAssignmentRequestBodyAssignToField;
}
export function serializeCreateTaskAssignmentRequestBody(
val: CreateTaskAssignmentRequestBody,
): SerializedData {
return {
['task']: serializeCreateTaskAssignmentRequestBodyTaskField(val.task),
['assign_to']: serializeCreateTaskAssignmentRequestBodyAssignToField(
val.assignTo,
),
};
}
export function deserializeCreateTaskAssignmentRequestBody(
val: SerializedData,
): CreateTaskAssignmentRequestBody {
if (!sdIsMap(val)) {
throw new BoxSdkError({
message: 'Expecting a map for "CreateTaskAssignmentRequestBody"',
});
}
if (val.task == void 0) {
throw new BoxSdkError({
message:
'Expecting "task" of type "CreateTaskAssignmentRequestBody" to be defined',
});
}
const task: CreateTaskAssignmentRequestBodyTaskField =
deserializeCreateTaskAssignmentRequestBodyTaskField(val.task);
if (val.assign_to == void 0) {
throw new BoxSdkError({
message:
'Expecting "assign_to" of type "CreateTaskAssignmentRequestBody" to be defined',
});
}
const assignTo: CreateTaskAssignmentRequestBodyAssignToField =
deserializeCreateTaskAssignmentRequestBodyAssignToField(val.assign_to);
return {
task: task,
assignTo: assignTo,
} satisfies CreateTaskAssignmentRequestBody;
}
export function serializeUpdateTaskAssignmentByIdRequestBodyResolutionStateField(
val: UpdateTaskAssignmentByIdRequestBodyResolutionStateField,
): SerializedData {
return val;
}
export function deserializeUpdateTaskAssignmentByIdRequestBodyResolutionStateField(
val: SerializedData,
): UpdateTaskAssignmentByIdRequestBodyResolutionStateField {
if (val == 'completed') {
return val;
}
if (val == 'incomplete') {
return val;
}
if (val == 'approved') {
return val;
}
if (val == 'rejected') {
return val;
}
if (sdIsString(val)) {
return val;
}
throw new BoxSdkError({
message:
"Can't deserialize UpdateTaskAssignmentByIdRequestBodyResolutionStateField",
});
}
export function serializeUpdateTaskAssignmentByIdRequestBody(
val: UpdateTaskAssignmentByIdRequestBody,
): SerializedData {
return {
['message']: val.message,
['resolution_state']:
val.resolutionState == void 0
? val.resolutionState
: serializeUpdateTaskAssignmentByIdRequestBodyResolutionStateField(
val.resolutionState,
),
};
}
export function deserializeUpdateTaskAssignmentByIdRequestBody(
val: SerializedData,
): UpdateTaskAssignmentByIdRequestBody {
if (!sdIsMap(val)) {
throw new BoxSdkError({
message: 'Expecting a map for "UpdateTaskAssignmentByIdRequestBody"',
});
}
if (!(val.message == void 0) && !sdIsString(val.message)) {
throw new BoxSdkError({
message:
'Expecting string for "message" of type "UpdateTaskAssignmentByIdRequestBody"',
});
}
const message: undefined | string =
val.message == void 0 ? void 0 : val.message;
const resolutionState:
| undefined
| UpdateTaskAssignmentByIdRequestBodyResolutionStateField =
val.resolution_state == void 0
? void 0
: deserializeUpdateTaskAssignmentByIdRequestBodyResolutionStateField(
val.resolution_state,
);
return {
message: message,
resolutionState: resolutionState,
} satisfies UpdateTaskAssignmentByIdRequestBody;
}