create irradiance composite graph

This commit is contained in:
Eric Hulburd
2016-03-11 17:38:03 -06:00
parent 2dd9389694
commit 782f5cbf91
32 changed files with 824 additions and 379 deletions

View File

@@ -24,10 +24,10 @@ var api = express();
DB.sync().then(()=>{
routes(api);
api.use(bodyParser.json());
api.use(bodyParser.urlencoded({ extended: false }));
api.use(bodyParser.urlencoded({ extended: true }));
routes(api);
api.listen(API_PORT, () => {
console.log(`API is now running on http://localhost:${API_PORT}`);

View File

@@ -5,9 +5,14 @@ const NAME = 'EnergyController';
class EnergyController{
static index(req, res){
DB.EnergyDatum.exposeForHouseAtDates(req.query.house_id, req.query.dates).then((energy_data)=>{
res.json({data: energy_data});
});
console.log ('EnergyController.index');
console.log(JSON.stringify(req.body))
console.log(JSON.stringify(req.params))
console.log(JSON.stringify(req.query))
DB.EnergyDatum.exposeForHouseAtDates(req.body)
.then((energy_data)=>{
res.json({data: energy_data});
});
}
}

View File

@@ -32,16 +32,27 @@ var EnergyDatum = DB.sequelize.define(NAME, {
associate: ()=>{
EnergyDatum.belongsTo(DB.House);
},
exposeForHouseAtDates: (house_id, dates)=>{
var params = {house_id: house_id};
extend(params, ApiHelper.datesParamToSequelize(dates, 'day'));
exposeForHouseAtDates: (query)=>{
var attributes = ['id', 'production', 'irradiance', 'consumption', 'day'],
params = {};
if (query.houses){
attributes.push('house_id');
params['$or'] = []
query.houses.forEach((house_query)=>{
var house_params = {house_id: house_query.house_id};
extend(house_params, ApiHelper.datesParamToSequelize(house_query.dates, 'day'));
params['$or'].push(house_params);
});
} else {
params.house_id = query.house_id;
extend(params, ApiHelper.datesParamToSequelize(query.dates, 'day'));
}
return EnergyDatum.findAll({
where: params,
attributes: ['id', 'production', 'consumption', 'day']
attributes: attributes
}).then((energy_data)=>{
return energy_data.map((energy_datum)=>{
return energy_datum.dataValues;
});
return energy_data.map(energy_datum => energy_datum.dataValues);
});
}
}