box-ui-elements
Version:
Box UI Elements
34 lines (33 loc) • 2.14 kB
TypeScript
import API from '../../api';
import type { MetadataQuery as MetadataQueryType, MetadataQueryResponseData } from '../../common/types/metadataQueries';
import type { MetadataTemplateSchemaResponse, MetadataTemplate, MetadataFieldValue } from '../../common/types/metadata';
import type { ElementsXhrError } from '../../common/types/api';
import type { Collection } from '../../common/types/core';
type SuccessCallback = (metadataQueryCollection: Collection, metadataTemplate: MetadataTemplate) => void;
type ErrorCallback = (e: ElementsXhrError) => void;
export default class MetadataQueryAPIHelper {
api: API;
metadataQueryResponseData: MetadataQueryResponseData;
metadataTemplate: MetadataTemplate;
templateKey: string;
templateScope: string;
metadataQuery: MetadataQueryType;
constructor(api: API);
createJSONPatchOperations: (field: string, oldValue: MetadataFieldValue | null, newValue: MetadataFieldValue | null) => JSONPatchOperations;
getMetadataQueryFields: () => string[];
flattenMetadata: (metadata?: MetadataType) => MetadataType;
getDataWithTypes: (templateSchemaResponse?: MetadataTemplateSchemaResponse) => Collection;
getTemplateSchemaInfo: (data: MetadataQueryResponseData) => Promise<MetadataTemplateSchemaResponse | void>;
queryMetadata: () => Promise<MetadataQueryResponseData>;
fetchMetadataQueryResults: (metadataQuery: MetadataQueryType, successCallback: SuccessCallback, errorCallback: ErrorCallback) => Promise<void>;
updateMetadata: (file: BoxItem, field: string, oldValue: MetadataFieldValue | null, newValue: MetadataFieldValue | null, successCallback: () => void, errorCallback: ErrorCallback) => Promise<void>;
/**
* Verify that the metadata query has required fields and update it if necessary
* For a file item, default fields included in the response are "type", "id", "etag"
*
* @param {MetadataQueryType} metadataQuery metadata query object
* @return {MetadataQueryType} updated metadata query object with required fields
*/
verifyQueryFields: (metadataQuery: MetadataQueryType) => MetadataQueryType;
}
export {};