UNPKG

cs-mpx-dataservice

Version:

MPX Dataservices

73 lines (62 loc) 2.34 kB
/** * Created by paul.rangel on 4/27/15. * * Based on the endpoint service from Tim Barker in the NBCNews Scheduler UI project see * //depot/ConsultingServices/Customers/NBCNews/SchedulerUI/main/js/services/endpoint.js * */ var q = require("q"); var rawGet = require("./rawGet"); var parseResolveDomainResponse = require("./parseResolveDomainResponse"); var resolveRegistryDomainUrl = require("./resolveRegistryDomainUrl"); var createEndpoint = require("./createEndpoint"); var _account, _token, _endpoints = {}, _registryServiceSchema = '1.1', _initialized = false; var _load = function() { var deferred = q.defer(); var params = { 'schema' : _registryServiceSchema, 'form' : 'json', 'token' : _token, 'account': _account, '_accountId' : _account }; var url = resolveRegistryDomainUrl(undefined, _account); rawGet(url, params).then(function(data) { if (data.hasOwnProperty('resolveDomainResponse')) { var registry = data['resolveDomainResponse']; var endpoints = parseResolveDomainResponse(registry, _endpoints); if(!endpoints) { deferred.reject({code:0, message:'Unable to connect to Registry Service.', url:url}) } else { _initialized = true; deferred.resolve(endpoints); } } else { deferred.reject({code:0, message:'Unable to connect to Registry Service.', url:url}) } }, function(error) { deferred.reject(error); }); return deferred.promise; }; module.exports = { init : function(account, token) { _account = account; _token = token; return _load(); }, register : function(name, service, schema, suffix, params) { _endpoints[name] = createEndpoint.create(service, schema, suffix, params); }, registerDataService: function(name, service, schema, objectType) { _endpoints[name] = createEndpoint.createDataService(service, schema, objectType); }, getEndpoint : function(endpoint) { if(endpoint in _endpoints) { return _endpoints[endpoint]; } }, getEndpoints : function() { return _endpoints; } };