box-node-sdk
Version:
Official SDK for Box Platform APIs
1,112 lines • 46.4 kB
JavaScript
import { deserializeMetadataTaxonomy } from '../schemas/metadataTaxonomy.js';
import { deserializeMetadataTaxonomies } from '../schemas/metadataTaxonomies.js';
import { deserializeMetadataTaxonomyLevels } from '../schemas/metadataTaxonomyLevels.js';
import { serializeMetadataTaxonomyLevel } from '../schemas/metadataTaxonomyLevel.js';
import { deserializeMetadataTaxonomyLevel } from '../schemas/metadataTaxonomyLevel.js';
import { deserializeMetadataTaxonomyNodes } from '../schemas/metadataTaxonomyNodes.js';
import { deserializeMetadataTaxonomyNode } from '../schemas/metadataTaxonomyNode.js';
import { BoxSdkError } from '../box/errors.js';
import { NetworkSession } from '../networking/network.js';
import { FetchOptions } from '../networking/fetchOptions.js';
import { prepareParams } from '../internal/utils.js';
import { toString } from '../internal/utils.js';
import { sdIsNumber } from '../serialization/json.js';
import { sdIsString } from '../serialization/json.js';
import { sdIsMap } from '../serialization/json.js';
export class CreateMetadataTaxonomyOptionals {
headers = new CreateMetadataTaxonomyHeaders({});
cancellationToken = void 0;
constructor(fields) {
if (fields.headers !== undefined) {
this.headers = fields.headers;
}
if (fields.cancellationToken !== undefined) {
this.cancellationToken = fields.cancellationToken;
}
}
}
export class GetMetadataTaxonomiesOptionals {
queryParams = {};
headers = new GetMetadataTaxonomiesHeaders({});
cancellationToken = void 0;
constructor(fields) {
if (fields.queryParams !== undefined) {
this.queryParams = fields.queryParams;
}
if (fields.headers !== undefined) {
this.headers = fields.headers;
}
if (fields.cancellationToken !== undefined) {
this.cancellationToken = fields.cancellationToken;
}
}
}
export class GetMetadataTaxonomyByKeyOptionals {
headers = new GetMetadataTaxonomyByKeyHeaders({});
cancellationToken = void 0;
constructor(fields) {
if (fields.headers !== undefined) {
this.headers = fields.headers;
}
if (fields.cancellationToken !== undefined) {
this.cancellationToken = fields.cancellationToken;
}
}
}
export class UpdateMetadataTaxonomyOptionals {
headers = new UpdateMetadataTaxonomyHeaders({});
cancellationToken = void 0;
constructor(fields) {
if (fields.headers !== undefined) {
this.headers = fields.headers;
}
if (fields.cancellationToken !== undefined) {
this.cancellationToken = fields.cancellationToken;
}
}
}
export class DeleteMetadataTaxonomyOptionals {
headers = new DeleteMetadataTaxonomyHeaders({});
cancellationToken = void 0;
constructor(fields) {
if (fields.headers !== undefined) {
this.headers = fields.headers;
}
if (fields.cancellationToken !== undefined) {
this.cancellationToken = fields.cancellationToken;
}
}
}
export class CreateMetadataTaxonomyLevelOptionals {
headers = new CreateMetadataTaxonomyLevelHeaders({});
cancellationToken = void 0;
constructor(fields) {
if (fields.headers !== undefined) {
this.headers = fields.headers;
}
if (fields.cancellationToken !== undefined) {
this.cancellationToken = fields.cancellationToken;
}
}
}
export class UpdateMetadataTaxonomyLevelByIdOptionals {
headers = new UpdateMetadataTaxonomyLevelByIdHeaders({});
cancellationToken = void 0;
constructor(fields) {
if (fields.headers !== undefined) {
this.headers = fields.headers;
}
if (fields.cancellationToken !== undefined) {
this.cancellationToken = fields.cancellationToken;
}
}
}
export class AddMetadataTaxonomyLevelOptionals {
headers = new AddMetadataTaxonomyLevelHeaders({});
cancellationToken = void 0;
constructor(fields) {
if (fields.headers !== undefined) {
this.headers = fields.headers;
}
if (fields.cancellationToken !== undefined) {
this.cancellationToken = fields.cancellationToken;
}
}
}
export class DeleteMetadataTaxonomyLevelOptionals {
headers = new DeleteMetadataTaxonomyLevelHeaders({});
cancellationToken = void 0;
constructor(fields) {
if (fields.headers !== undefined) {
this.headers = fields.headers;
}
if (fields.cancellationToken !== undefined) {
this.cancellationToken = fields.cancellationToken;
}
}
}
export class GetMetadataTaxonomyNodesOptionals {
queryParams = {};
headers = new GetMetadataTaxonomyNodesHeaders({});
cancellationToken = void 0;
constructor(fields) {
if (fields.queryParams !== undefined) {
this.queryParams = fields.queryParams;
}
if (fields.headers !== undefined) {
this.headers = fields.headers;
}
if (fields.cancellationToken !== undefined) {
this.cancellationToken = fields.cancellationToken;
}
}
}
export class CreateMetadataTaxonomyNodeOptionals {
headers = new CreateMetadataTaxonomyNodeHeaders({});
cancellationToken = void 0;
constructor(fields) {
if (fields.headers !== undefined) {
this.headers = fields.headers;
}
if (fields.cancellationToken !== undefined) {
this.cancellationToken = fields.cancellationToken;
}
}
}
export class GetMetadataTaxonomyNodeByIdOptionals {
headers = new GetMetadataTaxonomyNodeByIdHeaders({});
cancellationToken = void 0;
constructor(fields) {
if (fields.headers !== undefined) {
this.headers = fields.headers;
}
if (fields.cancellationToken !== undefined) {
this.cancellationToken = fields.cancellationToken;
}
}
}
export class UpdateMetadataTaxonomyNodeOptionals {
requestBody = {};
headers = new UpdateMetadataTaxonomyNodeHeaders({});
cancellationToken = void 0;
constructor(fields) {
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 class DeleteMetadataTaxonomyNodeOptionals {
headers = new DeleteMetadataTaxonomyNodeHeaders({});
cancellationToken = void 0;
constructor(fields) {
if (fields.headers !== undefined) {
this.headers = fields.headers;
}
if (fields.cancellationToken !== undefined) {
this.cancellationToken = fields.cancellationToken;
}
}
}
export class GetMetadataTemplateFieldOptionsOptionals {
queryParams = {};
headers = new GetMetadataTemplateFieldOptionsHeaders({});
cancellationToken = void 0;
constructor(fields) {
if (fields.queryParams !== undefined) {
this.queryParams = fields.queryParams;
}
if (fields.headers !== undefined) {
this.headers = fields.headers;
}
if (fields.cancellationToken !== undefined) {
this.cancellationToken = fields.cancellationToken;
}
}
}
export class CreateMetadataTaxonomyHeaders {
/**
* Extra headers that will be included in the HTTP request. */
extraHeaders = {};
constructor(fields) {
if (fields.extraHeaders !== undefined) {
this.extraHeaders = fields.extraHeaders;
}
}
}
export class GetMetadataTaxonomiesHeaders {
/**
* Extra headers that will be included in the HTTP request. */
extraHeaders = {};
constructor(fields) {
if (fields.extraHeaders !== undefined) {
this.extraHeaders = fields.extraHeaders;
}
}
}
export class GetMetadataTaxonomyByKeyHeaders {
/**
* Extra headers that will be included in the HTTP request. */
extraHeaders = {};
constructor(fields) {
if (fields.extraHeaders !== undefined) {
this.extraHeaders = fields.extraHeaders;
}
}
}
export class UpdateMetadataTaxonomyHeaders {
/**
* Extra headers that will be included in the HTTP request. */
extraHeaders = {};
constructor(fields) {
if (fields.extraHeaders !== undefined) {
this.extraHeaders = fields.extraHeaders;
}
}
}
export class DeleteMetadataTaxonomyHeaders {
/**
* Extra headers that will be included in the HTTP request. */
extraHeaders = {};
constructor(fields) {
if (fields.extraHeaders !== undefined) {
this.extraHeaders = fields.extraHeaders;
}
}
}
export class CreateMetadataTaxonomyLevelHeaders {
/**
* Extra headers that will be included in the HTTP request. */
extraHeaders = {};
constructor(fields) {
if (fields.extraHeaders !== undefined) {
this.extraHeaders = fields.extraHeaders;
}
}
}
export class UpdateMetadataTaxonomyLevelByIdHeaders {
/**
* Extra headers that will be included in the HTTP request. */
extraHeaders = {};
constructor(fields) {
if (fields.extraHeaders !== undefined) {
this.extraHeaders = fields.extraHeaders;
}
}
}
export class AddMetadataTaxonomyLevelHeaders {
/**
* Extra headers that will be included in the HTTP request. */
extraHeaders = {};
constructor(fields) {
if (fields.extraHeaders !== undefined) {
this.extraHeaders = fields.extraHeaders;
}
}
}
export class DeleteMetadataTaxonomyLevelHeaders {
/**
* Extra headers that will be included in the HTTP request. */
extraHeaders = {};
constructor(fields) {
if (fields.extraHeaders !== undefined) {
this.extraHeaders = fields.extraHeaders;
}
}
}
export class GetMetadataTaxonomyNodesHeaders {
/**
* Extra headers that will be included in the HTTP request. */
extraHeaders = {};
constructor(fields) {
if (fields.extraHeaders !== undefined) {
this.extraHeaders = fields.extraHeaders;
}
}
}
export class CreateMetadataTaxonomyNodeHeaders {
/**
* Extra headers that will be included in the HTTP request. */
extraHeaders = {};
constructor(fields) {
if (fields.extraHeaders !== undefined) {
this.extraHeaders = fields.extraHeaders;
}
}
}
export class GetMetadataTaxonomyNodeByIdHeaders {
/**
* Extra headers that will be included in the HTTP request. */
extraHeaders = {};
constructor(fields) {
if (fields.extraHeaders !== undefined) {
this.extraHeaders = fields.extraHeaders;
}
}
}
export class UpdateMetadataTaxonomyNodeHeaders {
/**
* Extra headers that will be included in the HTTP request. */
extraHeaders = {};
constructor(fields) {
if (fields.extraHeaders !== undefined) {
this.extraHeaders = fields.extraHeaders;
}
}
}
export class DeleteMetadataTaxonomyNodeHeaders {
/**
* Extra headers that will be included in the HTTP request. */
extraHeaders = {};
constructor(fields) {
if (fields.extraHeaders !== undefined) {
this.extraHeaders = fields.extraHeaders;
}
}
}
export class GetMetadataTemplateFieldOptionsHeaders {
/**
* Extra headers that will be included in the HTTP request. */
extraHeaders = {};
constructor(fields) {
if (fields.extraHeaders !== undefined) {
this.extraHeaders = fields.extraHeaders;
}
}
}
export class MetadataTaxonomiesManager {
auth;
networkSession = new NetworkSession({});
constructor(fields) {
if (fields.auth !== undefined) {
this.auth = fields.auth;
}
if (fields.networkSession !== undefined) {
this.networkSession = fields.networkSession;
}
}
/**
* Creates a new metadata taxonomy that can be used in
* metadata templates.
* @param {CreateMetadataTaxonomyRequestBody} requestBody Request body of createMetadataTaxonomy method
* @param {CreateMetadataTaxonomyOptionalsInput} optionalsInput
* @returns {Promise<MetadataTaxonomy>}
*/
async createMetadataTaxonomy(requestBody, optionalsInput = {}) {
const optionals = new CreateMetadataTaxonomyOptionals({
headers: optionalsInput.headers,
cancellationToken: optionalsInput.cancellationToken,
});
const headers = optionals.headers;
const cancellationToken = optionals.cancellationToken;
const headersMap = prepareParams({ ...{}, ...headers.extraHeaders });
const response = await this.networkSession.networkClient.fetch(new FetchOptions({
url: ''.concat(this.networkSession.baseUrls.baseUrl, '/2.0/metadata_taxonomies'),
method: 'POST',
headers: headersMap,
data: serializeCreateMetadataTaxonomyRequestBody(requestBody),
contentType: 'application/json',
responseFormat: 'json',
auth: this.auth,
networkSession: this.networkSession,
cancellationToken: cancellationToken,
}));
return {
...deserializeMetadataTaxonomy(response.data),
rawData: response.data,
};
}
/**
* Used to retrieve all metadata taxonomies in a namespace.
* @param {string} namespace The namespace of the metadata taxonomy.
Example: "enterprise_123456"
* @param {GetMetadataTaxonomiesOptionalsInput} optionalsInput
* @returns {Promise<MetadataTaxonomies>}
*/
async getMetadataTaxonomies(namespace, optionalsInput = {}) {
const optionals = new GetMetadataTaxonomiesOptionals({
queryParams: optionalsInput.queryParams,
headers: optionalsInput.headers,
cancellationToken: optionalsInput.cancellationToken,
});
const queryParams = optionals.queryParams;
const headers = optionals.headers;
const cancellationToken = optionals.cancellationToken;
const queryParamsMap = prepareParams({
['marker']: toString(queryParams.marker),
['limit']: toString(queryParams.limit),
});
const headersMap = prepareParams({ ...{}, ...headers.extraHeaders });
const response = await this.networkSession.networkClient.fetch(new FetchOptions({
url: ''.concat(this.networkSession.baseUrls.baseUrl, '/2.0/metadata_taxonomies/', toString(namespace)),
method: 'GET',
params: queryParamsMap,
headers: headersMap,
responseFormat: 'json',
auth: this.auth,
networkSession: this.networkSession,
cancellationToken: cancellationToken,
}));
return {
...deserializeMetadataTaxonomies(response.data),
rawData: response.data,
};
}
/**
* Used to retrieve a metadata taxonomy by taxonomy key.
* @param {string} namespace The namespace of the metadata taxonomy.
Example: "enterprise_123456"
* @param {string} taxonomyKey The key of the metadata taxonomy.
Example: "geography"
* @param {GetMetadataTaxonomyByKeyOptionalsInput} optionalsInput
* @returns {Promise<MetadataTaxonomy>}
*/
async getMetadataTaxonomyByKey(namespace, taxonomyKey, optionalsInput = {}) {
const optionals = new GetMetadataTaxonomyByKeyOptionals({
headers: optionalsInput.headers,
cancellationToken: optionalsInput.cancellationToken,
});
const headers = optionals.headers;
const cancellationToken = optionals.cancellationToken;
const headersMap = prepareParams({ ...{}, ...headers.extraHeaders });
const response = await this.networkSession.networkClient.fetch(new FetchOptions({
url: ''.concat(this.networkSession.baseUrls.baseUrl, '/2.0/metadata_taxonomies/', toString(namespace), '/', toString(taxonomyKey)),
method: 'GET',
headers: headersMap,
responseFormat: 'json',
auth: this.auth,
networkSession: this.networkSession,
cancellationToken: cancellationToken,
}));
return {
...deserializeMetadataTaxonomy(response.data),
rawData: response.data,
};
}
/**
* Updates an existing metadata taxonomy.
* @param {string} namespace The namespace of the metadata taxonomy.
Example: "enterprise_123456"
* @param {string} taxonomyKey The key of the metadata taxonomy.
Example: "geography"
* @param {UpdateMetadataTaxonomyRequestBody} requestBody Request body of updateMetadataTaxonomy method
* @param {UpdateMetadataTaxonomyOptionalsInput} optionalsInput
* @returns {Promise<MetadataTaxonomy>}
*/
async updateMetadataTaxonomy(namespace, taxonomyKey, requestBody, optionalsInput = {}) {
const optionals = new UpdateMetadataTaxonomyOptionals({
headers: optionalsInput.headers,
cancellationToken: optionalsInput.cancellationToken,
});
const headers = optionals.headers;
const cancellationToken = optionals.cancellationToken;
const headersMap = prepareParams({ ...{}, ...headers.extraHeaders });
const response = await this.networkSession.networkClient.fetch(new FetchOptions({
url: ''.concat(this.networkSession.baseUrls.baseUrl, '/2.0/metadata_taxonomies/', toString(namespace), '/', toString(taxonomyKey)),
method: 'PATCH',
headers: headersMap,
data: serializeUpdateMetadataTaxonomyRequestBody(requestBody),
contentType: 'application/json',
responseFormat: 'json',
auth: this.auth,
networkSession: this.networkSession,
cancellationToken: cancellationToken,
}));
return {
...deserializeMetadataTaxonomy(response.data),
rawData: response.data,
};
}
/**
* Delete a metadata taxonomy.
* This deletion is permanent and cannot be reverted.
* @param {string} namespace The namespace of the metadata taxonomy.
Example: "enterprise_123456"
* @param {string} taxonomyKey The key of the metadata taxonomy.
Example: "geography"
* @param {DeleteMetadataTaxonomyOptionalsInput} optionalsInput
* @returns {Promise<undefined>}
*/
async deleteMetadataTaxonomy(namespace, taxonomyKey, optionalsInput = {}) {
const optionals = new DeleteMetadataTaxonomyOptionals({
headers: optionalsInput.headers,
cancellationToken: optionalsInput.cancellationToken,
});
const headers = optionals.headers;
const cancellationToken = optionals.cancellationToken;
const headersMap = prepareParams({ ...{}, ...headers.extraHeaders });
const response = await this.networkSession.networkClient.fetch(new FetchOptions({
url: ''.concat(this.networkSession.baseUrls.baseUrl, '/2.0/metadata_taxonomies/', toString(namespace), '/', toString(taxonomyKey)),
method: 'DELETE',
headers: headersMap,
responseFormat: 'no_content',
auth: this.auth,
networkSession: this.networkSession,
cancellationToken: cancellationToken,
}));
return void 0;
}
/**
* Creates new metadata taxonomy levels.
* @param {string} namespace The namespace of the metadata taxonomy.
Example: "enterprise_123456"
* @param {string} taxonomyKey The key of the metadata taxonomy.
Example: "geography"
* @param {readonly MetadataTaxonomyLevel[]} requestBody Request body of createMetadataTaxonomyLevel method
* @param {CreateMetadataTaxonomyLevelOptionalsInput} optionalsInput
* @returns {Promise<MetadataTaxonomyLevels>}
*/
async createMetadataTaxonomyLevel(namespace, taxonomyKey, requestBody, optionalsInput = {}) {
const optionals = new CreateMetadataTaxonomyLevelOptionals({
headers: optionalsInput.headers,
cancellationToken: optionalsInput.cancellationToken,
});
const headers = optionals.headers;
const cancellationToken = optionals.cancellationToken;
const headersMap = prepareParams({ ...{}, ...headers.extraHeaders });
const response = await this.networkSession.networkClient.fetch(new FetchOptions({
url: ''.concat(this.networkSession.baseUrls.baseUrl, '/2.0/metadata_taxonomies/', toString(namespace), '/', toString(taxonomyKey), '/levels'),
method: 'POST',
headers: headersMap,
data: requestBody.map(serializeMetadataTaxonomyLevel),
contentType: 'application/json',
responseFormat: 'json',
auth: this.auth,
networkSession: this.networkSession,
cancellationToken: cancellationToken,
}));
return {
...deserializeMetadataTaxonomyLevels(response.data),
rawData: response.data,
};
}
/**
* Updates an existing metadata taxonomy level.
* @param {string} namespace The namespace of the metadata taxonomy.
Example: "enterprise_123456"
* @param {string} taxonomyKey The key of the metadata taxonomy.
Example: "geography"
* @param {number} levelIndex The index of the metadata taxonomy level.
Example: 1
* @param {UpdateMetadataTaxonomyLevelByIdRequestBody} requestBody Request body of updateMetadataTaxonomyLevelById method
* @param {UpdateMetadataTaxonomyLevelByIdOptionalsInput} optionalsInput
* @returns {Promise<MetadataTaxonomyLevel>}
*/
async updateMetadataTaxonomyLevelById(namespace, taxonomyKey, levelIndex, requestBody, optionalsInput = {}) {
const optionals = new UpdateMetadataTaxonomyLevelByIdOptionals({
headers: optionalsInput.headers,
cancellationToken: optionalsInput.cancellationToken,
});
const headers = optionals.headers;
const cancellationToken = optionals.cancellationToken;
const headersMap = prepareParams({ ...{}, ...headers.extraHeaders });
const response = await this.networkSession.networkClient.fetch(new FetchOptions({
url: ''.concat(this.networkSession.baseUrls.baseUrl, '/2.0/metadata_taxonomies/', toString(namespace), '/', toString(taxonomyKey), '/levels/', toString(levelIndex)),
method: 'PATCH',
headers: headersMap,
data: serializeUpdateMetadataTaxonomyLevelByIdRequestBody(requestBody),
contentType: 'application/json',
responseFormat: 'json',
auth: this.auth,
networkSession: this.networkSession,
cancellationToken: cancellationToken,
}));
return {
...deserializeMetadataTaxonomyLevel(response.data),
rawData: response.data,
};
}
/**
* Creates a new metadata taxonomy level and appends it to the existing levels.
* If there are no levels defined yet, this will create the first level.
* @param {string} namespace The namespace of the metadata taxonomy.
Example: "enterprise_123456"
* @param {string} taxonomyKey The key of the metadata taxonomy.
Example: "geography"
* @param {AddMetadataTaxonomyLevelRequestBody} requestBody Request body of addMetadataTaxonomyLevel method
* @param {AddMetadataTaxonomyLevelOptionalsInput} optionalsInput
* @returns {Promise<MetadataTaxonomyLevels>}
*/
async addMetadataTaxonomyLevel(namespace, taxonomyKey, requestBody, optionalsInput = {}) {
const optionals = new AddMetadataTaxonomyLevelOptionals({
headers: optionalsInput.headers,
cancellationToken: optionalsInput.cancellationToken,
});
const headers = optionals.headers;
const cancellationToken = optionals.cancellationToken;
const headersMap = prepareParams({ ...{}, ...headers.extraHeaders });
const response = await this.networkSession.networkClient.fetch(new FetchOptions({
url: ''.concat(this.networkSession.baseUrls.baseUrl, '/2.0/metadata_taxonomies/', toString(namespace), '/', toString(taxonomyKey), '/levels:append'),
method: 'POST',
headers: headersMap,
data: serializeAddMetadataTaxonomyLevelRequestBody(requestBody),
contentType: 'application/json',
responseFormat: 'json',
auth: this.auth,
networkSession: this.networkSession,
cancellationToken: cancellationToken,
}));
return {
...deserializeMetadataTaxonomyLevels(response.data),
rawData: response.data,
};
}
/**
* Deletes the last level of the metadata taxonomy.
* @param {string} namespace The namespace of the metadata taxonomy.
Example: "enterprise_123456"
* @param {string} taxonomyKey The key of the metadata taxonomy.
Example: "geography"
* @param {DeleteMetadataTaxonomyLevelOptionalsInput} optionalsInput
* @returns {Promise<MetadataTaxonomyLevels>}
*/
async deleteMetadataTaxonomyLevel(namespace, taxonomyKey, optionalsInput = {}) {
const optionals = new DeleteMetadataTaxonomyLevelOptionals({
headers: optionalsInput.headers,
cancellationToken: optionalsInput.cancellationToken,
});
const headers = optionals.headers;
const cancellationToken = optionals.cancellationToken;
const headersMap = prepareParams({ ...{}, ...headers.extraHeaders });
const response = await this.networkSession.networkClient.fetch(new FetchOptions({
url: ''.concat(this.networkSession.baseUrls.baseUrl, '/2.0/metadata_taxonomies/', toString(namespace), '/', toString(taxonomyKey), '/levels:trim'),
method: 'POST',
headers: headersMap,
responseFormat: 'json',
auth: this.auth,
networkSession: this.networkSession,
cancellationToken: cancellationToken,
}));
return {
...deserializeMetadataTaxonomyLevels(response.data),
rawData: response.data,
};
}
/**
* Used to retrieve metadata taxonomy nodes based on the parameters specified.
* Results are sorted in lexicographic order unless a `query` parameter is passed.
* With a `query` parameter specified, results are sorted in order of relevance.
* @param {string} namespace The namespace of the metadata taxonomy.
Example: "enterprise_123456"
* @param {string} taxonomyKey The key of the metadata taxonomy.
Example: "geography"
* @param {GetMetadataTaxonomyNodesOptionalsInput} optionalsInput
* @returns {Promise<MetadataTaxonomyNodes>}
*/
async getMetadataTaxonomyNodes(namespace, taxonomyKey, optionalsInput = {}) {
const optionals = new GetMetadataTaxonomyNodesOptionals({
queryParams: optionalsInput.queryParams,
headers: optionalsInput.headers,
cancellationToken: optionalsInput.cancellationToken,
});
const queryParams = optionals.queryParams;
const headers = optionals.headers;
const cancellationToken = optionals.cancellationToken;
const queryParamsMap = prepareParams({
['level']: queryParams.level
? queryParams.level.map(toString).join(',')
: undefined,
['parent']: queryParams.parent
? queryParams.parent.map(toString).join(',')
: undefined,
['ancestor']: queryParams.ancestor
? queryParams.ancestor.map(toString).join(',')
: undefined,
['query']: toString(queryParams.query),
['include-total-result-count']: toString(queryParams.includeTotalResultCount),
['marker']: toString(queryParams.marker),
['limit']: toString(queryParams.limit),
});
const headersMap = prepareParams({ ...{}, ...headers.extraHeaders });
const response = await this.networkSession.networkClient.fetch(new FetchOptions({
url: ''.concat(this.networkSession.baseUrls.baseUrl, '/2.0/metadata_taxonomies/', toString(namespace), '/', toString(taxonomyKey), '/nodes'),
method: 'GET',
params: queryParamsMap,
headers: headersMap,
responseFormat: 'json',
auth: this.auth,
networkSession: this.networkSession,
cancellationToken: cancellationToken,
}));
return {
...deserializeMetadataTaxonomyNodes(response.data),
rawData: response.data,
};
}
/**
* Creates a new metadata taxonomy node.
* @param {string} namespace The namespace of the metadata taxonomy.
Example: "enterprise_123456"
* @param {string} taxonomyKey The key of the metadata taxonomy.
Example: "geography"
* @param {CreateMetadataTaxonomyNodeRequestBody} requestBody Request body of createMetadataTaxonomyNode method
* @param {CreateMetadataTaxonomyNodeOptionalsInput} optionalsInput
* @returns {Promise<MetadataTaxonomyNode>}
*/
async createMetadataTaxonomyNode(namespace, taxonomyKey, requestBody, optionalsInput = {}) {
const optionals = new CreateMetadataTaxonomyNodeOptionals({
headers: optionalsInput.headers,
cancellationToken: optionalsInput.cancellationToken,
});
const headers = optionals.headers;
const cancellationToken = optionals.cancellationToken;
const headersMap = prepareParams({ ...{}, ...headers.extraHeaders });
const response = await this.networkSession.networkClient.fetch(new FetchOptions({
url: ''.concat(this.networkSession.baseUrls.baseUrl, '/2.0/metadata_taxonomies/', toString(namespace), '/', toString(taxonomyKey), '/nodes'),
method: 'POST',
headers: headersMap,
data: serializeCreateMetadataTaxonomyNodeRequestBody(requestBody),
contentType: 'application/json',
responseFormat: 'json',
auth: this.auth,
networkSession: this.networkSession,
cancellationToken: cancellationToken,
}));
return {
...deserializeMetadataTaxonomyNode(response.data),
rawData: response.data,
};
}
/**
* Retrieves a metadata taxonomy node by its identifier.
* @param {string} namespace The namespace of the metadata taxonomy.
Example: "enterprise_123456"
* @param {string} taxonomyKey The key of the metadata taxonomy.
Example: "geography"
* @param {string} nodeId The identifier of the metadata taxonomy node.
Example: "14d3d433-c77f-49c5-b146-9dea370f6e32"
* @param {GetMetadataTaxonomyNodeByIdOptionalsInput} optionalsInput
* @returns {Promise<MetadataTaxonomyNode>}
*/
async getMetadataTaxonomyNodeById(namespace, taxonomyKey, nodeId, optionalsInput = {}) {
const optionals = new GetMetadataTaxonomyNodeByIdOptionals({
headers: optionalsInput.headers,
cancellationToken: optionalsInput.cancellationToken,
});
const headers = optionals.headers;
const cancellationToken = optionals.cancellationToken;
const headersMap = prepareParams({ ...{}, ...headers.extraHeaders });
const response = await this.networkSession.networkClient.fetch(new FetchOptions({
url: ''.concat(this.networkSession.baseUrls.baseUrl, '/2.0/metadata_taxonomies/', toString(namespace), '/', toString(taxonomyKey), '/nodes/', toString(nodeId)),
method: 'GET',
headers: headersMap,
responseFormat: 'json',
auth: this.auth,
networkSession: this.networkSession,
cancellationToken: cancellationToken,
}));
return {
...deserializeMetadataTaxonomyNode(response.data),
rawData: response.data,
};
}
/**
* Updates an existing metadata taxonomy node.
* @param {string} namespace The namespace of the metadata taxonomy.
Example: "enterprise_123456"
* @param {string} taxonomyKey The key of the metadata taxonomy.
Example: "geography"
* @param {string} nodeId The identifier of the metadata taxonomy node.
Example: "14d3d433-c77f-49c5-b146-9dea370f6e32"
* @param {UpdateMetadataTaxonomyNodeOptionalsInput} optionalsInput
* @returns {Promise<MetadataTaxonomyNode>}
*/
async updateMetadataTaxonomyNode(namespace, taxonomyKey, nodeId, optionalsInput = {}) {
const optionals = new UpdateMetadataTaxonomyNodeOptionals({
requestBody: optionalsInput.requestBody,
headers: optionalsInput.headers,
cancellationToken: optionalsInput.cancellationToken,
});
const requestBody = optionals.requestBody;
const headers = optionals.headers;
const cancellationToken = optionals.cancellationToken;
const headersMap = prepareParams({ ...{}, ...headers.extraHeaders });
const response = await this.networkSession.networkClient.fetch(new FetchOptions({
url: ''.concat(this.networkSession.baseUrls.baseUrl, '/2.0/metadata_taxonomies/', toString(namespace), '/', toString(taxonomyKey), '/nodes/', toString(nodeId)),
method: 'PATCH',
headers: headersMap,
data: serializeUpdateMetadataTaxonomyNodeRequestBody(requestBody),
contentType: 'application/json',
responseFormat: 'json',
auth: this.auth,
networkSession: this.networkSession,
cancellationToken: cancellationToken,
}));
return {
...deserializeMetadataTaxonomyNode(response.data),
rawData: response.data,
};
}
/**
* Delete a metadata taxonomy node.
* This deletion is permanent and cannot be reverted.
* Only metadata taxonomy nodes without any children can be deleted.
* @param {string} namespace The namespace of the metadata taxonomy.
Example: "enterprise_123456"
* @param {string} taxonomyKey The key of the metadata taxonomy.
Example: "geography"
* @param {string} nodeId The identifier of the metadata taxonomy node.
Example: "14d3d433-c77f-49c5-b146-9dea370f6e32"
* @param {DeleteMetadataTaxonomyNodeOptionalsInput} optionalsInput
* @returns {Promise<undefined>}
*/
async deleteMetadataTaxonomyNode(namespace, taxonomyKey, nodeId, optionalsInput = {}) {
const optionals = new DeleteMetadataTaxonomyNodeOptionals({
headers: optionalsInput.headers,
cancellationToken: optionalsInput.cancellationToken,
});
const headers = optionals.headers;
const cancellationToken = optionals.cancellationToken;
const headersMap = prepareParams({ ...{}, ...headers.extraHeaders });
const response = await this.networkSession.networkClient.fetch(new FetchOptions({
url: ''.concat(this.networkSession.baseUrls.baseUrl, '/2.0/metadata_taxonomies/', toString(namespace), '/', toString(taxonomyKey), '/nodes/', toString(nodeId)),
method: 'DELETE',
headers: headersMap,
responseFormat: 'no_content',
auth: this.auth,
networkSession: this.networkSession,
cancellationToken: cancellationToken,
}));
return void 0;
}
/**
* Used to retrieve metadata taxonomy nodes which are available for the taxonomy field based
* on its configuration and the parameters specified.
* Results are sorted in lexicographic order unless a `query` parameter is passed.
* With a `query` parameter specified, results are sorted in order of relevance.
* @param {string} namespace The namespace of the metadata taxonomy.
Example: "enterprise_123456"
* @param {string} templateKey The name of the metadata template.
Example: "properties"
* @param {string} fieldKey The key of the metadata taxonomy field in the template.
Example: "geography"
* @param {GetMetadataTemplateFieldOptionsOptionalsInput} optionalsInput
* @returns {Promise<MetadataTaxonomyNodes>}
*/
async getMetadataTemplateFieldOptions(namespace, templateKey, fieldKey, optionalsInput = {}) {
const optionals = new GetMetadataTemplateFieldOptionsOptionals({
queryParams: optionalsInput.queryParams,
headers: optionalsInput.headers,
cancellationToken: optionalsInput.cancellationToken,
});
const queryParams = optionals.queryParams;
const headers = optionals.headers;
const cancellationToken = optionals.cancellationToken;
const queryParamsMap = prepareParams({
['level']: queryParams.level
? queryParams.level.map(toString).join(',')
: undefined,
['parent']: queryParams.parent
? queryParams.parent.map(toString).join(',')
: undefined,
['ancestor']: queryParams.ancestor
? queryParams.ancestor.map(toString).join(',')
: undefined,
['query']: toString(queryParams.query),
['include-total-result-count']: toString(queryParams.includeTotalResultCount),
['only-selectable-options']: toString(queryParams.onlySelectableOptions),
['marker']: toString(queryParams.marker),
['limit']: toString(queryParams.limit),
});
const headersMap = prepareParams({ ...{}, ...headers.extraHeaders });
const response = await this.networkSession.networkClient.fetch(new FetchOptions({
url: ''.concat(this.networkSession.baseUrls.baseUrl, '/2.0/metadata_templates/', toString(namespace), '/', toString(templateKey), '/fields/', toString(fieldKey), '/options'),
method: 'GET',
params: queryParamsMap,
headers: headersMap,
responseFormat: 'json',
auth: this.auth,
networkSession: this.networkSession,
cancellationToken: cancellationToken,
}));
return {
...deserializeMetadataTaxonomyNodes(response.data),
rawData: response.data,
};
}
}
export function serializeCreateMetadataTaxonomyRequestBody(val) {
return {
['key']: val.key,
['displayName']: val.displayName,
['namespace']: val.namespace,
};
}
export function deserializeCreateMetadataTaxonomyRequestBody(val) {
if (!sdIsMap(val)) {
throw new BoxSdkError({
message: 'Expecting a map for "CreateMetadataTaxonomyRequestBody"',
});
}
if (!(val.key == void 0) && !sdIsString(val.key)) {
throw new BoxSdkError({
message: 'Expecting string for "key" of type "CreateMetadataTaxonomyRequestBody"',
});
}
const key = val.key == void 0 ? void 0 : val.key;
if (val.displayName == void 0) {
throw new BoxSdkError({
message: 'Expecting "displayName" of type "CreateMetadataTaxonomyRequestBody" to be defined',
});
}
if (!sdIsString(val.displayName)) {
throw new BoxSdkError({
message: 'Expecting string for "displayName" of type "CreateMetadataTaxonomyRequestBody"',
});
}
const displayName = val.displayName;
if (val.namespace == void 0) {
throw new BoxSdkError({
message: 'Expecting "namespace" of type "CreateMetadataTaxonomyRequestBody" to be defined',
});
}
if (!sdIsString(val.namespace)) {
throw new BoxSdkError({
message: 'Expecting string for "namespace" of type "CreateMetadataTaxonomyRequestBody"',
});
}
const namespace = val.namespace;
return {
key: key,
displayName: displayName,
namespace: namespace,
};
}
export function serializeUpdateMetadataTaxonomyRequestBody(val) {
return { ['displayName']: val.displayName };
}
export function deserializeUpdateMetadataTaxonomyRequestBody(val) {
if (!sdIsMap(val)) {
throw new BoxSdkError({
message: 'Expecting a map for "UpdateMetadataTaxonomyRequestBody"',
});
}
if (val.displayName == void 0) {
throw new BoxSdkError({
message: 'Expecting "displayName" of type "UpdateMetadataTaxonomyRequestBody" to be defined',
});
}
if (!sdIsString(val.displayName)) {
throw new BoxSdkError({
message: 'Expecting string for "displayName" of type "UpdateMetadataTaxonomyRequestBody"',
});
}
const displayName = val.displayName;
return {
displayName: displayName,
};
}
export function serializeUpdateMetadataTaxonomyLevelByIdRequestBody(val) {
return { ['displayName']: val.displayName, ['description']: val.description };
}
export function deserializeUpdateMetadataTaxonomyLevelByIdRequestBody(val) {
if (!sdIsMap(val)) {
throw new BoxSdkError({
message: 'Expecting a map for "UpdateMetadataTaxonomyLevelByIdRequestBody"',
});
}
if (val.displayName == void 0) {
throw new BoxSdkError({
message: 'Expecting "displayName" of type "UpdateMetadataTaxonomyLevelByIdRequestBody" to be defined',
});
}
if (!sdIsString(val.displayName)) {
throw new BoxSdkError({
message: 'Expecting string for "displayName" of type "UpdateMetadataTaxonomyLevelByIdRequestBody"',
});
}
const displayName = val.displayName;
if (!(val.description == void 0) && !sdIsString(val.description)) {
throw new BoxSdkError({
message: 'Expecting string for "description" of type "UpdateMetadataTaxonomyLevelByIdRequestBody"',
});
}
const description = val.description == void 0 ? void 0 : val.description;
return {
displayName: displayName,
description: description,
};
}
export function serializeAddMetadataTaxonomyLevelRequestBody(val) {
return { ['displayName']: val.displayName, ['description']: val.description };
}
export function deserializeAddMetadataTaxonomyLevelRequestBody(val) {
if (!sdIsMap(val)) {
throw new BoxSdkError({
message: 'Expecting a map for "AddMetadataTaxonomyLevelRequestBody"',
});
}
if (val.displayName == void 0) {
throw new BoxSdkError({
message: 'Expecting "displayName" of type "AddMetadataTaxonomyLevelRequestBody" to be defined',
});
}
if (!sdIsString(val.displayName)) {
throw new BoxSdkError({
message: 'Expecting string for "displayName" of type "AddMetadataTaxonomyLevelRequestBody"',
});
}
const displayName = val.displayName;
if (!(val.description == void 0) && !sdIsString(val.description)) {
throw new BoxSdkError({
message: 'Expecting string for "description" of type "AddMetadataTaxonomyLevelRequestBody"',
});
}
const description = val.description == void 0 ? void 0 : val.description;
return {
displayName: displayName,
description: description,
};
}
export function serializeCreateMetadataTaxonomyNodeRequestBody(val) {
return {
['displayName']: val.displayName,
['level']: val.level,
['parentId']: val.parentId,
};
}
export function deserializeCreateMetadataTaxonomyNodeRequestBody(val) {
if (!sdIsMap(val)) {
throw new BoxSdkError({
message: 'Expecting a map for "CreateMetadataTaxonomyNodeRequestBody"',
});
}
if (val.displayName == void 0) {
throw new BoxSdkError({
message: 'Expecting "displayName" of type "CreateMetadataTaxonomyNodeRequestBody" to be defined',
});
}
if (!sdIsString(val.displayName)) {
throw new BoxSdkError({
message: 'Expecting string for "displayName" of type "CreateMetadataTaxonomyNodeRequestBody"',
});
}
const displayName = val.displayName;
if (val.level == void 0) {
throw new BoxSdkError({
message: 'Expecting "level" of type "CreateMetadataTaxonomyNodeRequestBody" to be defined',
});
}
if (!sdIsNumber(val.level)) {
throw new BoxSdkError({
message: 'Expecting number for "level" of type "CreateMetadataTaxonomyNodeRequestBody"',
});
}
const level = val.level;
if (!(val.parentId == void 0) && !sdIsString(val.parentId)) {
throw new BoxSdkError({
message: 'Expecting string for "parentId" of type "CreateMetadataTaxonomyNodeRequestBody"',
});
}
const parentId = val.parentId == void 0 ? void 0 : val.parentId;
return {
displayName: displayName,
level: level,
parentId: parentId,
};
}
export function serializeUpdateMetadataTaxonomyNodeRequestBody(val) {
return { ['displayName']: val.displayName };
}
export function deserializeUpdateMetadataTaxonomyNodeRequestBody(val) {
if (!sdIsMap(val)) {
throw new BoxSdkError({
message: 'Expecting a map for "UpdateMetadataTaxonomyNodeRequestBody"',
});
}
if (!(val.displayName == void 0) && !sdIsString(val.displayName)) {
throw new BoxSdkError({
message: 'Expecting string for "displayName" of type "UpdateMetadataTaxonomyNodeRequestBody"',
});
}
const displayName = val.displayName == void 0 ? void 0 : val.displayName;
return {
displayName: displayName,
};
}
//# sourceMappingURL=metadataTaxonomies.js.map