diff --git a/src/index.js b/src/index.js index 6f30908d13af47f773c954d5f697f7a9984eeab2..4021292e7bcb7a17192c4b2e6d1ccc81faade48e 100644 --- a/src/index.js +++ b/src/index.js @@ -17,11 +17,9 @@ const startDailyDate = moment() .subtract(32, 'month') .format('YYYY-MM-DD') const startLoadDate = moment() - .subtract(8, 'day') - .format('YYYY-MM-DD') -const endDate = moment() - .subtract(1, 'day') + .subtract(7, 'day') .format('YYYY-MM-DD') +const endDate = moment().format('YYYY-MM-DD') const baseUrl = 'https://gw.hml.api.enedis.fr' /** @@ -34,8 +32,8 @@ const baseUrl = 'https://gw.hml.api.enedis.fr' async function start(fields) { try { const { access_token } = fields - const { info } = fields - const usage_point_id = info.usage_point_id + const { oauth_callback_results } = fields + const usage_point_id = oauth_callback_results.usage_point_id log('info', 'Fetching enedis daily data') const fetchedDailyData = await getDailyData(access_token, usage_point_id) @@ -132,7 +130,7 @@ async function getLoadData(token, usagePointID) { async function processData(data, doctype, filterKeys) { const parsedData = JSON.parse(data) const intervalData = parsedData.meter_reading.interval_reading - const formatedData = await formateData(intervalData) + const formatedData = await formateData(intervalData, doctype) // Remove data for existing days into the DB const filteredData = await hydrateAndFilter(formatedData, doctype, { keys: filterKeys @@ -222,13 +220,15 @@ async function storeData(data, doctype, filterKeys) { * Format data for DB storage * Remove bad data */ -async function formateData(data) { +async function formateData(data, doctype) { log('info', 'Formating data') return data.map(record => { const date = moment(record.date, 'YYYY/MM/DD h:mm:ss') if (record.value != -2) { + const load = + doctype === 'io.enedis.minute' ? record.value / 2 : record.value return { - load: parseFloat(record.value / 1000), + load: parseFloat(load / 1000), year: parseInt(date.format('YYYY')), month: parseInt(date.format('M')), day: parseInt(date.format('D')), @@ -281,7 +281,7 @@ async function buildDataFromKey(doctype, key, value) { hour = split[3] } return { - load: Math.round(value * 1000) / 1000, + load: Math.round(value * 10000) / 10000, year: parseInt(year), month: parseInt(month), day: parseInt(day),