introduced first_id to reference new template versions to original
This commit is contained in:
		@@ -133,7 +133,8 @@ describe('/template', () => {
 | 
			
		||||
            if (err) return done(err);
 | 
			
		||||
            TemplateConditionModel.findById(res.body._id).lean().exec((err, data:any) => {
 | 
			
		||||
              if (err) return done(err);
 | 
			
		||||
              should(data).have.only.keys('_id', 'name', 'version', 'parameters', '__v');
 | 
			
		||||
              should(data).have.only.keys('_id', 'first_id', 'name', 'version', 'parameters', '__v');
 | 
			
		||||
              should(data.first_id.toString()).be.eql('200000000000000000000001');
 | 
			
		||||
              should(data).have.property('name', 'heat aging');
 | 
			
		||||
              should(data).have.property('version', 2);
 | 
			
		||||
              should(data).have.property('parameters').have.lengthOf(1);
 | 
			
		||||
@@ -155,7 +156,8 @@ describe('/template', () => {
 | 
			
		||||
          if (err) return done(err);
 | 
			
		||||
          TemplateConditionModel.findById(res.body._id).lean().exec((err, data:any) => {
 | 
			
		||||
            if (err) return done(err);
 | 
			
		||||
            should(data).have.only.keys('_id', 'name', 'version', 'parameters', '__v');
 | 
			
		||||
            should(data).have.only.keys('_id', 'first_id', 'name', 'version', 'parameters', '__v');
 | 
			
		||||
            should(data.first_id.toString()).be.eql('200000000000000000000001');
 | 
			
		||||
            should(data).have.property('name', 'heat aging');
 | 
			
		||||
            should(data).have.property('version', 2);
 | 
			
		||||
            should(data).have.property('parameters').have.lengthOf(2);
 | 
			
		||||
@@ -315,7 +317,8 @@ describe('/template', () => {
 | 
			
		||||
          if (err) return done(err);
 | 
			
		||||
          TemplateConditionModel.findById(res.body._id).lean().exec((err, data:any) => {
 | 
			
		||||
            if (err) return done(err);
 | 
			
		||||
            should(data).have.only.keys('_id', 'name', 'version', 'parameters', '__v');
 | 
			
		||||
            should(data).have.only.keys('_id', 'first_id', 'name', 'version', 'parameters', '__v');
 | 
			
		||||
            should(data.first_id.toString()).be.eql(data._id.toString());
 | 
			
		||||
            should(data).have.property('name', 'heat aging');
 | 
			
		||||
            should(data).have.property('version', 1);
 | 
			
		||||
            should(data).have.property('parameters').have.lengthOf(1);
 | 
			
		||||
@@ -556,7 +559,8 @@ describe('/template', () => {
 | 
			
		||||
          should(_.omit(res.body, '_id')).be.eql({name: 'IR spectrum', version: 2, parameters: [{name: 'data point table', range: {min: 0, max: 1000}}]});
 | 
			
		||||
          TemplateMeasurementModel.findById(res.body._id).lean().exec((err, data:any) => {
 | 
			
		||||
            if (err) return done(err);
 | 
			
		||||
            should(data).have.only.keys('_id', 'name', 'version', 'parameters', '__v');
 | 
			
		||||
            should(data).have.only.keys('_id', 'first_id', 'name', 'version', 'parameters', '__v');
 | 
			
		||||
            should(data.first_id.toString()).be.eql('300000000000000000000001');
 | 
			
		||||
            should(data).have.property('name', 'IR spectrum');
 | 
			
		||||
            should(data).have.property('version', 2);
 | 
			
		||||
            should(data).have.property('parameters').have.lengthOf(1);
 | 
			
		||||
@@ -580,7 +584,8 @@ describe('/template', () => {
 | 
			
		||||
          should(_.omit(res.body, '_id')).be.eql({name: 'IR spectrum', version: 2, parameters: [{name: 'dpt', range: {type: 'array'}}]});
 | 
			
		||||
          TemplateMeasurementModel.findById(res.body._id).lean().exec((err, data:any) => {
 | 
			
		||||
            if (err) return done(err);
 | 
			
		||||
            should(data).have.only.keys('_id', 'name', 'version', 'parameters', '__v');
 | 
			
		||||
            should(data).have.only.keys('_id', 'first_id', 'name', 'version', 'parameters', '__v');
 | 
			
		||||
            should(data.first_id.toString()).be.eql('300000000000000000000001');
 | 
			
		||||
            should(data).have.property('name', 'IR spectrum');
 | 
			
		||||
            should(data).have.property('version', 2);
 | 
			
		||||
            should(data).have.property('parameters').have.lengthOf(1);
 | 
			
		||||
@@ -731,7 +736,8 @@ describe('/template', () => {
 | 
			
		||||
          TemplateMeasurementModel.find({name: 'vz'}).lean().exec((err, data:any) => {
 | 
			
		||||
            if (err) return done(err);
 | 
			
		||||
            should(data).have.lengthOf(1);
 | 
			
		||||
            should(data[0]).have.only.keys('_id', 'name', 'version', 'parameters', '__v');
 | 
			
		||||
            should(data[0]).have.only.keys('_id', 'first_id', 'name', 'version', 'parameters', '__v');
 | 
			
		||||
            should(data[0].first_id.toString()).be.eql(data[0]._id.toString());
 | 
			
		||||
            should(data[0]).have.property('name', 'vz');
 | 
			
		||||
            should(data[0]).have.property('version', 1);
 | 
			
		||||
            should(data[0]).have.property('parameters').have.lengthOf(1);
 | 
			
		||||
 
 | 
			
		||||
@@ -6,6 +6,7 @@ import ConditionTemplateModel from '../models/condition_template';
 | 
			
		||||
import MeasurementTemplateModel from '../models/measurement_template';
 | 
			
		||||
import res400 from './validate/res400';
 | 
			
		||||
import IdValidate from './validate/id';
 | 
			
		||||
import mongoose from "mongoose";
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@@ -65,6 +66,8 @@ router.post('/template/:collection(measurement|condition)/new', async (req, res,
 | 
			
		||||
  const {error, value: template} = TemplateValidate.input(req.body, 'new');
 | 
			
		||||
  if (error) return res400(error, res);
 | 
			
		||||
 | 
			
		||||
  template._id = mongoose.Types.ObjectId();  // set reference to itself for first version of template
 | 
			
		||||
  template.first_id = template._id;
 | 
			
		||||
  template.version = 1;  // set template version
 | 
			
		||||
  await new (model(req))(template).save((err, data) => {
 | 
			
		||||
    if (err) next (err);
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user