UNPKG

sdmx-rest

Version:

SDMX REST API client for JavaScript

89 lines (77 loc) 2.64 kB
// Generated by CoffeeScript 2.7.0 (function() { var IDType, NCNameIDType, NestedNCNameIDType, SchemaContext, SchemaQuery, SingleVersionType, ValidQuery, createErrorMessage, defaults, isValidEnum, isValidExplicit, isValidPattern, isValidQuery, query, hasProp = {}.hasOwnProperty; ({SchemaContext} = require('./schema-context')); ({NestedNCNameIDType, IDType, SingleVersionType, NCNameIDType} = require('../utils/sdmx-patterns')); ({isValidEnum, isValidPattern, createErrorMessage} = require('../utils/validators')); defaults = { version: 'latest', explicit: false }; isValidExplicit = function(input, errors) { var valid; valid = typeof input === 'boolean'; if (!valid) { errors.push(`${input} is not a valid value for explicit. Must be true or false`); } return valid; }; ValidQuery = { context: function(q, i, e) { return isValidEnum(i, SchemaContext, 'context', e); }, agency: function(q, i, e) { return isValidPattern(i, NestedNCNameIDType, 'agency', e); }, id: function(q, i, e) { return isValidPattern(i, IDType, 'resource ids', e); }, version: function(q, i, e) { return isValidPattern(i, SingleVersionType, 'versions', e); }, explicit: function(q, i, e) { return isValidExplicit(i, e); }, obsDimension: function(q, i, e) { return !i || isValidPattern(i, NCNameIDType, 'obs dimension', e); } }; isValidQuery = function(query) { var errors, isValid, k, v; errors = []; isValid = false; for (k in query) { if (!hasProp.call(query, k)) continue; v = query[k]; isValid = ValidQuery[k](query, v, errors); if (!isValid) { break; } } return { isValid: isValid, errors: errors }; }; // A query for XML schemas, as defined by the SDMX RESTful API. query = SchemaQuery = class SchemaQuery { static from(opts) { var input, ref, ref1; query = { context: opts != null ? opts.context : void 0, agency: opts != null ? opts.agency : void 0, id: opts != null ? opts.id : void 0, version: (ref = opts != null ? opts.version : void 0) != null ? ref : defaults.version, explicit: (ref1 = opts != null ? opts.explicit : void 0) != null ? ref1 : defaults.explicit, obsDimension: opts != null ? opts.obsDimension : void 0 }; input = isValidQuery(query); if (!input.isValid) { throw Error(createErrorMessage(input.errors, 'schema query')); } return query; } }; exports.SchemaQuery = query; }).call(this);