UNPKG

sdmx-rest

Version:

SDMX REST API client for JavaScript

51 lines (39 loc) 2.12 kB
// Generated by CoffeeScript 2.7.0 (function() { var ApiVersion, AvailabilityQuery2Handler, AvailabilityQueryHandler, DataQuery2Handler, DataQueryHandler, Generator, MetadataQueryHandler, SchemaQueryHandler, generator; ({ApiVersion} = require('../utils/api-version')); ({AvailabilityQueryHandler} = require('../utils/url-generator-availability')); ({AvailabilityQuery2Handler} = require('../utils/url-generator-availability2')); ({SchemaQueryHandler} = require('../utils/url-generator-schema')); ({DataQueryHandler} = require('../utils/url-generator-data')); ({DataQuery2Handler} = require('../utils/url-generator-data2')); ({MetadataQueryHandler} = require('../utils/url-generator-metadata')); generator = Generator = class Generator { getUrl(query, service, skipDefaults) { this.query = query; this.service = service; if (!this.query) { throw ReferenceError("A valid query must be supplied"); } if (!(this.service && this.service.url)) { throw ReferenceError(`${this.service} is not a valid service`); } if ((this.query.context != null) && (this.query.attributes != null)) { return new DataQuery2Handler().handle(this.query, this.service, skipDefaults); } else if ((this.query.context != null) && (this.query.mode != null)) { return new AvailabilityQuery2Handler().handle(this.query, this.service, skipDefaults); } else if (this.query.mode != null) { return new AvailabilityQueryHandler().handle(this.query, this.service, skipDefaults); } else if (this.query.flow != null) { return new DataQueryHandler().handle(this.query, this.service, skipDefaults); } else if (this.query.resource != null) { return new MetadataQueryHandler().handle(this.query, this.service, skipDefaults); } else if (this.query.context != null) { return new SchemaQueryHandler().handle(this.query, this.service, skipDefaults); } else { throw TypeError(`${this.query} is not a valid query`); } } }; exports.UrlGenerator = generator; }).call(this);