function buildLibrary (API_URL) {
var getFromApi = R.curry(function (requestType, site, measurement, from, to, interval, alignment) {
var defaultQsParams = {
Service: 'Hilltop',
Request: requestType
}
debug(chalk.blue('\nurl: ', API_URL, '\nrequestType: ', requestType, '\nsite: ', site, '\nmeasurement: ', measurement, '\nfrom: ', from, '\nto: ', to, '\ninterval: ', interval, '\n alignment', alignment))
return new Promise((resolve, reject) => {
let queryParams = Object.assign(defaultQsParams, {
Site: site,
Measurement: measurement,
From: from,
To: to,
Interval: interval
})
if (alignment) {
queryParams = Object.assign(queryParams, {Alignment: alignment})
}
request(API_URL, {
method: 'get',
qs: queryParams
}, (err, response, body) => {
if (err) {
debug(chalk.red('error getting the url:', API_URL, ' msg:', err))
reject(err)
} else {
resolve(body)
}
})
}).then(parseXmlString)
})
function getDatumsFromResponse (result) {
return result.Hilltop.Measurement[0].Data[0].E
.map((point) => {
return {time: point.T[0], value: point['I1'][0]}
})
}