From 3dda3d77a13f84a40f8132f49f4ad704f2810a75 Mon Sep 17 00:00:00 2001 From: VLE2FE Date: Tue, 14 Jul 2020 12:07:43 +0200 Subject: [PATCH] minor fixes --- data_import/import.js | 14 ++++++++++++-- src/routes/root.ts | 1 + src/routes/sample.ts | 3 ++- src/routes/validate/sample.ts | 3 ++- src/routes/validate/template.ts | 1 + 5 files changed, 18 insertions(+), 4 deletions(-) diff --git a/data_import/import.js b/data_import/import.js index 627e1b8..dc8c8d8 100644 --- a/data_import/import.js +++ b/data_import/import.js @@ -11,8 +11,8 @@ const kfDoc = 'C:\\Users\\vle2fe\\Documents\\Data\\Rng_200707\\kf.csv'; const vzDoc = 'C:\\Users\\vle2fe\\Documents\\Data\\Rng_200707\\vz.csv'; const nmDocs = 'C:\\Users\\vle2fe\\Documents\\Data\\Rng_200707\\nmDocs'; // NormMaster Documents const dptFiles = 'C:\\Users\\vle2fe\\Documents\\Data\\Rng_200707\\DPT'; // Spectrum files -// const host = 'http://localhost:3000'; -const host = 'https://definma-api.apps.de1.bosch-iot-cloud.com'; +const host = 'http://localhost:3000'; +// const host = 'https://definma-api.apps.de1.bosch-iot-cloud.com'; let data = []; // metadata contents let materials = {}; let samples = []; @@ -127,6 +127,16 @@ async function allDpts() { measurement_template }; data.values.dpt = f.split('\r\n').map(e => e.split(',')); + let rescale = false; + for (let i in data.values.dpt) { + if (data.values.dpt[i][1] > 2) { + rescale = true; + break; + } + } + if (rescale) { + data.values.dpt = data.values.dpt.map(e => [e[0], e[1] / 100]); + } await axios({ method: 'post', url: host + '/measurement/new', diff --git a/src/routes/root.ts b/src/routes/root.ts index 946948f..1547844 100644 --- a/src/routes/root.ts +++ b/src/routes/root.ts @@ -17,6 +17,7 @@ router.get('/authorized', (req, res) => { res.json({status: 'Authorization successful', method: req.authDetails.method}); }); +// TODO: evaluate exact changelog functionality (restoring, delting after time, etc.) router.get('/changelog/:timestamp/:page?/:pagesize?', (req, res, next) => { if (!req.auth(res, ['maintain', 'admin'], 'basic')) return; diff --git a/src/routes/sample.ts b/src/routes/sample.ts index ef87ab3..91ada86 100644 --- a/src/routes/sample.ts +++ b/src/routes/sample.ts @@ -118,7 +118,7 @@ router.get('/samples', async (req, res, next) => { } queryPtr[0].$match.$and.push({measurement_template: mongoose.Types.ObjectId(measurementTemplate._id)}); // find measurements to sort if (filters.filters.find(e => e.field === filters.sort[0])) { // sorted measurement should also be filtered - queryPtr[0].$match.$and.push(...filterQueries(filters.filters.find(e => e.field === filters.sort[0]))); + queryPtr[0].$match.$and.push(...filterQueries(filters.filters.filter(e => e.field === filters.sort[0]).map(e => {e.field = 'values.' + e.field.split('.')[2]; return e; }))); } queryPtr.push( ...sortQuery(filters, ['values.' + measurementParam, 'sample_id'], sortStartValue), // sort measurements @@ -764,6 +764,7 @@ function addFilterQueries (queryPtr, filters) { // returns array of match queri } function filterQueries (filters) { + console.log(filters); return filters.map(e => { if (e.mode === 'or') { // allow or queries (needed for $ne added) return {['$' + e.mode]: e.values}; diff --git a/src/routes/validate/sample.ts b/src/routes/validate/sample.ts index ef0fa0a..3fb28d9 100644 --- a/src/routes/validate/sample.ts +++ b/src/routes/validate/sample.ts @@ -182,8 +182,8 @@ export default class SampleValidate { validator = Joi.object({ value: Joi.alternatives() .try( - Joi.string().max(128), Joi.number(), + Joi.string().max(128), Joi.boolean(), Joi.array() ) @@ -195,6 +195,7 @@ export default class SampleValidate { validator = Joi.object(this.sample); } const {value, error} = validator.validate({[field]: e}); + console.log(value); if (error) throw error; // reject invalid values // TODO: return exact error description, handle in frontend filters return value[field]; }); diff --git a/src/routes/validate/template.ts b/src/routes/validate/template.ts index 7a63d1d..ae9426a 100644 --- a/src/routes/validate/template.ts +++ b/src/routes/validate/template.ts @@ -1,6 +1,7 @@ import Joi from '@hapi/joi'; import IdValidate from './id'; +// TODO: do not allow a . in the name export default class TemplateValidate { private static template = { name: Joi.string()