POST finished
This commit is contained in:
parent
8315fc0d3b
commit
ab8c74a641
@ -4,7 +4,7 @@ import TemplateTreatmentModel from '../models/treatment_template';
|
|||||||
import TemplateMeasurementModel from '../models/measurement_template';
|
import TemplateMeasurementModel from '../models/measurement_template';
|
||||||
import TestHelper from "../test/helper";
|
import TestHelper from "../test/helper";
|
||||||
|
|
||||||
// TODO: convert name to id, criteria for new name, criteria for new version, criteria for prefix
|
|
||||||
|
|
||||||
describe('/template', () => {
|
describe('/template', () => {
|
||||||
let server;
|
let server;
|
||||||
@ -305,6 +305,7 @@ describe('/template', () => {
|
|||||||
should(res.body.parameters[0]).have.property('range');
|
should(res.body.parameters[0]).have.property('range');
|
||||||
should(res.body.parameters[0].range).have.property('values');
|
should(res.body.parameters[0].range).have.property('values');
|
||||||
should(res.body.parameters[0].range.values[0]).be.eql('copper');
|
should(res.body.parameters[0].range.values[0]).be.eql('copper');
|
||||||
|
done();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
it('stores the template', done => {
|
it('stores the template', done => {
|
||||||
@ -366,17 +367,27 @@ describe('/template', () => {
|
|||||||
url: '/template/treatment/new',
|
url: '/template/treatment/new',
|
||||||
auth: {basic: 'admin'},
|
auth: {basic: 'admin'},
|
||||||
httpStatus: 400,
|
httpStatus: 400,
|
||||||
req: {name: 'heat aging', parameters: [{range: {min: 1}}]},
|
req: {name: 'heat aging', number_prefix: 'C', parameters: [{range: {min: 1}}]},
|
||||||
res: {status: 'Invalid body format', details: '"parameters[0].name" is required'}
|
res: {status: 'Invalid body format', details: '"parameters[0].name" is required'}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
it('rejects a missing number prefix', done => {
|
||||||
|
TestHelper.request(server, done, {
|
||||||
|
method: 'post',
|
||||||
|
url: '/template/treatment/new',
|
||||||
|
auth: {basic: 'admin'},
|
||||||
|
httpStatus: 400,
|
||||||
|
req: {name: 'heat aging', parameters: [{name: 'time', range: {min: 1}}]},
|
||||||
|
res: {status: 'Invalid body format', details: '"number_prefix" is required'}
|
||||||
|
});
|
||||||
|
});
|
||||||
it('rejects a missing parameter range', done => {
|
it('rejects a missing parameter range', done => {
|
||||||
TestHelper.request(server, done, {
|
TestHelper.request(server, done, {
|
||||||
method: 'post',
|
method: 'post',
|
||||||
url: '/template/treatment/new',
|
url: '/template/treatment/new',
|
||||||
auth: {basic: 'admin'},
|
auth: {basic: 'admin'},
|
||||||
httpStatus: 400,
|
httpStatus: 400,
|
||||||
req: {name: 'heat aging', parameters: [{name: 'time'}]},
|
req: {name: 'heat aging', number_prefix: 'C', parameters: [{name: 'time'}]},
|
||||||
res: {status: 'Invalid body format', details: '"parameters[0].range" is required'}
|
res: {status: 'Invalid body format', details: '"parameters[0].range" is required'}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@ -386,7 +397,7 @@ describe('/template', () => {
|
|||||||
url: '/template/treatment/new',
|
url: '/template/treatment/new',
|
||||||
auth: {basic: 'admin'},
|
auth: {basic: 'admin'},
|
||||||
httpStatus: 400,
|
httpStatus: 400,
|
||||||
req: {name: 'heat aging', parameters: [{name: 'time', range: {xx: 1}}]},
|
req: {name: 'heat aging', number_prefix: 'C', parameters: [{name: 'time', range: {xx: 1}}]},
|
||||||
res: {status: 'Invalid body format', details: '"parameters[0].range.xx" is not allowed'}
|
res: {status: 'Invalid body format', details: '"parameters[0].range.xx" is not allowed'}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@ -396,8 +407,8 @@ describe('/template', () => {
|
|||||||
url: '/template/treatment/new',
|
url: '/template/treatment/new',
|
||||||
auth: {basic: 'admin'},
|
auth: {basic: 'admin'},
|
||||||
httpStatus: 400,
|
httpStatus: 400,
|
||||||
req: {name: 'heat aging', parameters: [{name: 'time', range: {}}], xx: 33},
|
req: {name: 'heat aging', number_prefix: 'C', parameters: [{name: 'time', range: {}}], xx: 33},
|
||||||
res: {}
|
res: {status: 'Invalid body format', details: '"xx" is not allowed'}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
it('rejects already existing number prefixes', done => {
|
it('rejects already existing number prefixes', done => {
|
||||||
@ -720,6 +731,7 @@ describe('/template', () => {
|
|||||||
should(res.body.parameters[0]).have.property('name', 'vz');
|
should(res.body.parameters[0]).have.property('name', 'vz');
|
||||||
should(res.body.parameters[0]).have.property('range');
|
should(res.body.parameters[0]).have.property('range');
|
||||||
should(res.body.parameters[0].range).have.property('min', 1);
|
should(res.body.parameters[0].range).have.property('min', 1);
|
||||||
|
done();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
it('stores the template', done => {
|
it('stores the template', done => {
|
||||||
@ -736,7 +748,7 @@ describe('/template', () => {
|
|||||||
should(data).have.lengthOf(1);
|
should(data).have.lengthOf(1);
|
||||||
should(data[0]).have.only.keys('_id', 'name', 'version', 'parameters', '__v');
|
should(data[0]).have.only.keys('_id', 'name', 'version', 'parameters', '__v');
|
||||||
should(data[0]).have.property('name', 'vz');
|
should(data[0]).have.property('name', 'vz');
|
||||||
should(data[0]).have.property('vaersion', 1);
|
should(data[0]).have.property('version', 1);
|
||||||
should(data[0]).have.property('parameters').have.lengthOf(1);
|
should(data[0]).have.property('parameters').have.lengthOf(1);
|
||||||
should(data[0].parameters[0]).have.property('name', 'vz');
|
should(data[0].parameters[0]).have.property('name', 'vz');
|
||||||
should(data[0].parameters[0]).have.property('range');
|
should(data[0].parameters[0]).have.property('range');
|
||||||
@ -802,7 +814,7 @@ describe('/template', () => {
|
|||||||
auth: {basic: 'admin'},
|
auth: {basic: 'admin'},
|
||||||
httpStatus: 400,
|
httpStatus: 400,
|
||||||
req: {name: 'IR spectrum', parameters: [{name: 'data point table', range: {}}], xx: 35},
|
req: {name: 'IR spectrum', parameters: [{name: 'data point table', range: {}}], xx: 35},
|
||||||
res: {}
|
res: {status: 'Invalid body format', details: '"xx" is not allowed'}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
it('rejects an API key', done => {
|
it('rejects an API key', done => {
|
||||||
|
@ -63,20 +63,22 @@ router.put('/template/:collection(measurement|treatment)/' + IdValidate.paramete
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// router.delete('/template/:collection(measurement|treatment)/:name', (req, res, next) => {
|
router.post('/template/:collection(measurement|treatment)/new', async (req, res, next) => {
|
||||||
// if (!req.auth(res, ['maintain', 'admin'], 'basic')) return;
|
if (!req.auth(res, ['maintain', 'admin'], 'basic')) return;
|
||||||
//
|
|
||||||
// (req.params.collection === 'treatment' ? TemplateTreatmentModel : TemplateMeasurementModel)
|
const {error, value: template} = TemplateValidate.input(req.body, 'new', req.params.collection);
|
||||||
// .findOneAndDelete({name: req.params.name}).lean().exec((err, data) => {
|
if (error) return res400(error, res);
|
||||||
// if (err) return next(err);
|
|
||||||
// if (data) {
|
if (_.has(template, 'number_prefix')) { // got number_prefix
|
||||||
// res.json({status: 'OK'})
|
if (!await numberPrefixCheck(template, req, res, next)) return;
|
||||||
// }
|
}
|
||||||
// else {
|
|
||||||
// res.status(404).json({status: 'Not found'});
|
template.version = 1;
|
||||||
// }
|
await new (model(req))(template).save((err, data) => {
|
||||||
// });
|
if (err) next (err);
|
||||||
// });
|
res.json(TemplateValidate.output(data.toObject(), req.params.collection));
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
module.exports = router;
|
module.exports = router;
|
||||||
|
Reference in New Issue
Block a user