API Docs for: 1.7.0
Show:

File: src/js/data/urlBuilder.js

/**
 * Created by Chantell.Nichols on 10/5/2015.
 */
define(function () {

  var fetch = function fetch(url) {
    return ICE.fetchJSON(url);
  };

  var urlBuilder = function urlBuilder(service, config, key, secret) {
    var self = this;
    this.urlStart = [service, '/host/', config].join('');
    this.urlEnd = ['apikey=', key, '&apisecret=', secret].join('');

    this.getSummaryData = function (resaleEnabled, platinumEnabled) {
      var urlArg;
      if (resaleEnabled && platinumEnabled) {
        urlArg = '/facets?by=shape+inventorytypes&show=facerange&q=available';
      } else if (!resaleEnabled && platinumEnabled) {
        urlArg = '/facets?by=shape&show=facerange&q=and(available,has(inventorytypes,"primary"))';
      } else if (resaleEnabled && !platinumEnabled) {
        urlArg = '/facets?by=shape+inventorytypes&show=facerange&q=and(available,has(offertypes,"standard"))';
      } else {
        urlArg = '/facets?by=shape&show=facerange&q=and(available,and(has(inventorytypes,"primary"),has(offertypes,"standard")))';
      }
      return fetch([self.urlStart, urlArg, '&', self.urlEnd].join(''));
    };

    this.getPlaceData = function (segments, resaleEnabled, platinumEnabled) {
      var urlArg = '/facets?by=shape+offers+inventorytypes&show=places&q=';
      var queryExpression = ['and(available,any(shapes,"', segments.join('","'), '"))'].join('');

      if (!resaleEnabled && platinumEnabled) {
        queryExpression = ['and(', queryExpression, ',has(inventorytypes,"primary"))'].join('');
      } else if (resaleEnabled && !platinumEnabled) {
        queryExpression = ['and(', queryExpression, ',has(offertypes,"standard"))'].join('');
      } else if (!resaleEnabled && !platinumEnabled) {
        queryExpression = ['and(', queryExpression, ',and(has(inventorytypes,"primary"),has(offertypes,"standard")))'].join('');
      }

      urlArg = [urlArg, queryExpression].join('');

      return fetch([self.urlStart, urlArg, '&', self.urlEnd].join(''));
    };

    this.getOffers = function (id) {
      var urlArgs = ['/offers'];
      if (id) {
        urlArgs.push('/');
        urlArgs.push(id);
      }
      var urlArg = urlArgs.join('');
      return fetch([self.urlStart, urlArg, '?', self.urlEnd].join(''));
    };
    this.getSegmentsOffers = function () {
      var urlArg = '/facets?by=shape+offers';
      return fetch([self.urlStart, urlArg, '&', self.urlEnd].join(''));
    };

    this.getAdaData = function () {
      var urlArg = '/facets?by=attributes+accessibility+shape+offers+inventorytypes&show=places&q=accessibility';

      return fetch([self.urlStart, urlArg, '&', self.urlEnd].join(''));
    };
  };

  return urlBuilder;
});