/**
* 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;
});