40 lines
1018 B
JavaScript
40 lines
1018 B
JavaScript
import ArrayUtil from './../../../shared/utils/array';
|
|
import DateRange from './../../../shared/utils/date_range';
|
|
class EnergyDataApi {
|
|
|
|
static index(params){
|
|
if (params.houses){
|
|
var promises = [],
|
|
data = [];
|
|
for (var opts of params.houses){
|
|
var promise = EnergyDataApi.getHouseData(opts)
|
|
.then((res)=>{
|
|
data.concat(res);
|
|
});
|
|
promises.push(promise);
|
|
}
|
|
return Promise.all(promises)
|
|
.then(()=>{ return data; });
|
|
} else {
|
|
return EnergyDataApi.getHouseData(params);
|
|
}
|
|
}
|
|
|
|
static getHouseData(params){
|
|
return jQuery.ajax({
|
|
url: '/data/energy_data/' + params.house_id + ".json",
|
|
dataType: 'json'
|
|
}).then((res)=>{
|
|
return res.data.filter((energy_datum)=>{
|
|
return ArrayUtil.any(params.dates, (range)=>{
|
|
return DateRange.lte(range[0], energy_datum.day) && DateRange.gte(range[1], energy_datum.day)
|
|
});
|
|
});
|
|
});
|
|
|
|
}
|
|
|
|
}
|
|
|
|
export default EnergyDataApi;
|