box-node-sdk
Version:
Official SDK for Box Platform APIs
72 lines • 2.41 kB
JavaScript
import { serializeMetadataFilterValue } from './metadataFilterValue.js';
import { deserializeMetadataFilterValue } from './metadataFilterValue.js';
import { BoxSdkError } from '../box/errors.js';
import { sdIsString } from '../serialization/json.js';
import { sdIsMap } from '../serialization/json.js';
export function serializeMetadataFilterScopeField(val) {
return val;
}
export function deserializeMetadataFilterScopeField(val) {
if (val == 'global') {
return val;
}
if (val == 'enterprise') {
return val;
}
if (val == 'enterprise_{enterprise_id}') {
return val;
}
if (sdIsString(val)) {
return val;
}
throw new BoxSdkError({
message: "Can't deserialize MetadataFilterScopeField",
});
}
export function serializeMetadataFilter(val) {
return {
['scope']: val.scope == void 0
? val.scope
: serializeMetadataFilterScopeField(val.scope),
['templateKey']: val.templateKey,
['filters']: val.filters == void 0
? val.filters
: Object.fromEntries(Object.entries(val.filters).map(([k, v]) => [
k,
serializeMetadataFilterValue(v),
])),
};
}
export function deserializeMetadataFilter(val) {
if (!sdIsMap(val)) {
throw new BoxSdkError({ message: 'Expecting a map for "MetadataFilter"' });
}
const scope = val.scope == void 0
? void 0
: deserializeMetadataFilterScopeField(val.scope);
if (!(val.templateKey == void 0) && !sdIsString(val.templateKey)) {
throw new BoxSdkError({
message: 'Expecting string for "templateKey" of type "MetadataFilter"',
});
}
const templateKey = val.templateKey == void 0 ? void 0 : val.templateKey;
if (!(val.filters == void 0) && !sdIsMap(val.filters)) {
throw new BoxSdkError({
message: 'Expecting object for "filters" of type "MetadataFilter"',
});
}
const filters = val.filters == void 0
? void 0
: sdIsMap(val.filters)
? Object.fromEntries(Object.entries(val.filters).map(([k, v]) => [
k,
deserializeMetadataFilterValue(v),
]))
: {};
return {
scope: scope,
templateKey: templateKey,
filters: filters,
};
}
//# sourceMappingURL=metadataFilter.js.map