Skip to content

Commit

Permalink
Integrate site preferences when instantiating a new Meter object
Browse files Browse the repository at this point in the history
  • Loading branch information
carlsonrob committed Aug 22, 2023
1 parent e63321b commit 6d721aa
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 21 deletions.
16 changes: 9 additions & 7 deletions src/server/services/csvPipeline/uploadReadings.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ const { TimeSortTypesJS, BooleanTypesJS } = require('./validateCsvUploadParams')
const Meter = require('../../models/Meter');
const { log } = require('../../log');
const moment = require('moment');
const Preferences = require('../../models/Preferences');

/**
* Middleware that uploads readings via the pipeline. This should be the final stage of the CSV Pipeline.
Expand Down Expand Up @@ -36,6 +37,7 @@ async function uploadReadings(req, res, filepath, conn) {
err.message
);
} else {
const preferences = await Preferences.get(conn);
// If createMeter is true, we will create the meter for the user.
// The meter type is unknown so set to other. Most parameters take on default values.
const tempMeter = new Meter(
Expand All @@ -54,7 +56,7 @@ async function uploadReadings(req, res, filepath, conn) {
undefined, // cumulativeReset
undefined, // cumulativeResetStart
undefined, // cumulativeResetEnd
undefined, // readingGap
preferences.defaultMeterReadingGap, // readingGap
undefined, // readingVariation
undefined, // readingDuplication
undefined, // timeSort
Expand All @@ -66,12 +68,12 @@ async function uploadReadings(req, res, filepath, conn) {
undefined, // unit
undefined, // default graphic unit
undefined, // area unit
undefined, // reading frequency
undefined, // minVal
undefined, // maxVal
undefined, // minDate
undefined, // maxDate
undefined, // maxError
preferences.defaultMeterReadingFrequency, // reading frequency
preferences.defaultMeterMinimumValue, // minVal
preferences.defaultMeterMaximumValue, // maxVal
preferences.defaultMeterMinimumDate, // minDate
preferences.defaultMeterMaximumDate, // maxDate
preferences.defaultMeterMaximumErrors, // maxError
undefined // disableChecks
)
await tempMeter.insert(conn);
Expand Down
16 changes: 9 additions & 7 deletions src/server/services/obvius/loadLogfileToReadings.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ const Meter = require('../../models/Meter');
const loadArrayInput = require('../pipeline-in-progress/loadArrayInput');
const { log } = require('../../log');
const demuxCsvWithSingleColumnTimestamps = require('./csvDemux');
const Preferences = require('../../models/Preferences');

async function loadLogfileToReadings(serialNumber, ipAddress, logfile, conn) {
// Get demultiplexed, parsed data from the CSV.
Expand All @@ -18,6 +19,7 @@ async function loadLogfileToReadings(serialNumber, ipAddress, logfile, conn) {
try {
meter = await Meter.getByName(`${serialNumber}.${i}`, conn);
} catch (v) {
const preferences = await Preferences.get(conn);
// For now, new Obvius meters collect data (enabled) but do not display (not displayable).
// Also, the identifier is similar to the meter name for now.
// end only time is true for Obvius meters.
Expand All @@ -40,7 +42,7 @@ async function loadLogfileToReadings(serialNumber, ipAddress, logfile, conn) {
undefined, //cumulativeReset
undefined, // cumulativeResetStart
undefined, // cumulativeResetEnd
undefined, // readingGap
preferences.defaultMeterReadingGap, // readingGap
undefined, // readingVariation
undefined, //readingDuplication
undefined, // timeSort
Expand All @@ -52,12 +54,12 @@ async function loadLogfileToReadings(serialNumber, ipAddress, logfile, conn) {
undefined, // unit
undefined, // default graphic unit
undefined, // area unit
undefined, // reading frequency
undefined, // minVal
undefined, // maxVal
undefined, // minDate
undefined, // maxDate
undefined, // maxError
preferences.defaultMeterReadingFrequency, // reading frequency
preferences.defaultMeterMinimumValue, // minVal
preferences.defaultMeterMaximumValue, // maxVal
preferences.defaultMeterMinimumDate, // minDate
preferences.defaultMeterMaximumDate, // maxDate
preferences.defaultMeterMaximumErrors, // maxError
undefined // disableChecks
);
await meter.insert(conn);
Expand Down
15 changes: 8 additions & 7 deletions src/server/services/readMamacMeters.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ const stopDB = require('../models/database').stopDB;
const { log } = require('../log');
const moment = require('moment');
const Unit = require('../models/Unit');

const Preferences = require('../../models/Preferences');
const parseXMLPromisified = util.promisify(parseString);

async function parseCSV(filename) {
Expand Down Expand Up @@ -62,6 +62,7 @@ async function getMeterInfo(url, ip, csvLine) {
} else {
unitId = kWhUnit.id;
}
const preferences = await Preferences.get(conn);
return reqWithTimeout(url, 5000, csvLine)
// Doing raw.data is untested since went to axios. If get access to MAMAC meter then should test.
.then(raw => parseXMLPromisified(raw.data))
Expand Down Expand Up @@ -96,12 +97,12 @@ async function getMeterInfo(url, ip, csvLine) {
unitId, // unit
unitId, // default graphic unit
undefined, // area unit
undefined, // reading frequency
undefined, // minVal
undefined, // maxVal
undefined, // minDate
undefined, // maxDate
undefined, // maxError
preferences.defaultMeterReadingFrequency, // reading frequency
preferences.defaultMeterMinimumValue, // minVal
preferences.defaultMeterMaximumValue, // maxVal
preferences.defaultMeterMinimumDate, // minDate
preferences.defaultMeterMaximumDate, // maxDate
preferences.defaultMeterMaximumErrors, // maxError
undefined // disableChecks
);
});
Expand Down

0 comments on commit 6d721aa

Please sign in to comment.