introduced first_id to reference new template versions to original
This commit is contained in:
parent
ea336f4ebc
commit
0fcb902499
@ -165,14 +165,6 @@ Template:
|
|||||||
min: 0
|
min: 0
|
||||||
max: 2
|
max: 2
|
||||||
|
|
||||||
ConditionTemplate:
|
|
||||||
allOf:
|
|
||||||
- $ref: 'api.yaml#/components/schemas/Template'
|
|
||||||
properties:
|
|
||||||
number_prefix:
|
|
||||||
type: string
|
|
||||||
example: B
|
|
||||||
|
|
||||||
Email:
|
Email:
|
||||||
properties:
|
properties:
|
||||||
email:
|
email:
|
||||||
|
@ -14,7 +14,7 @@
|
|||||||
schema:
|
schema:
|
||||||
type: array
|
type: array
|
||||||
items:
|
items:
|
||||||
$ref: 'api.yaml#/components/schemas/ConditionTemplate'
|
$ref: 'api.yaml#/components/schemas/Template'
|
||||||
401:
|
401:
|
||||||
$ref: 'api.yaml#/components/responses/401'
|
$ref: 'api.yaml#/components/responses/401'
|
||||||
500:
|
500:
|
||||||
@ -36,7 +36,7 @@
|
|||||||
content:
|
content:
|
||||||
application/json:
|
application/json:
|
||||||
schema:
|
schema:
|
||||||
$ref: 'api.yaml#/components/schemas/ConditionTemplate'
|
$ref: 'api.yaml#/components/schemas/Template'
|
||||||
401:
|
401:
|
||||||
$ref: 'api.yaml#/components/responses/401'
|
$ref: 'api.yaml#/components/responses/401'
|
||||||
404:
|
404:
|
||||||
@ -56,14 +56,14 @@
|
|||||||
content:
|
content:
|
||||||
application/json:
|
application/json:
|
||||||
schema:
|
schema:
|
||||||
$ref: 'api.yaml#/components/schemas/ConditionTemplate'
|
$ref: 'api.yaml#/components/schemas/Template'
|
||||||
responses:
|
responses:
|
||||||
200:
|
200:
|
||||||
description: condition details
|
description: condition details
|
||||||
content:
|
content:
|
||||||
application/json:
|
application/json:
|
||||||
schema:
|
schema:
|
||||||
$ref: 'api.yaml#/components/schemas/ConditionTemplate'
|
$ref: 'api.yaml#/components/schemas/Template'
|
||||||
400:
|
400:
|
||||||
$ref: 'api.yaml#/components/responses/400'
|
$ref: 'api.yaml#/components/responses/400'
|
||||||
401:
|
401:
|
||||||
@ -88,14 +88,14 @@
|
|||||||
content:
|
content:
|
||||||
application/json:
|
application/json:
|
||||||
schema:
|
schema:
|
||||||
$ref: 'api.yaml#/components/schemas/ConditionTemplate'
|
$ref: 'api.yaml#/components/schemas/Template'
|
||||||
responses:
|
responses:
|
||||||
200:
|
200:
|
||||||
description: condition details
|
description: condition details
|
||||||
content:
|
content:
|
||||||
application/json:
|
application/json:
|
||||||
schema:
|
schema:
|
||||||
$ref: 'api.yaml#/components/schemas/ConditionTemplate'
|
$ref: 'api.yaml#/components/schemas/Template'
|
||||||
400:
|
400:
|
||||||
$ref: 'api.yaml#/components/responses/400'
|
$ref: 'api.yaml#/components/responses/400'
|
||||||
401:
|
401:
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
import mongoose from 'mongoose';
|
import mongoose from 'mongoose';
|
||||||
|
|
||||||
const ConditionTemplateSchema = new mongoose.Schema({
|
const ConditionTemplateSchema = new mongoose.Schema({
|
||||||
|
first_id: mongoose.Schema.Types.ObjectId,
|
||||||
name: String,
|
name: String,
|
||||||
version: Number,
|
version: Number,
|
||||||
parameters: [{
|
parameters: [{
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
import mongoose from 'mongoose';
|
import mongoose from 'mongoose';
|
||||||
|
|
||||||
const MeasurementTemplateSchema = new mongoose.Schema({
|
const MeasurementTemplateSchema = new mongoose.Schema({
|
||||||
|
first_id: mongoose.Schema.Types.ObjectId,
|
||||||
name: String,
|
name: String,
|
||||||
version: Number,
|
version: Number,
|
||||||
parameters: [{
|
parameters: [{
|
||||||
|
@ -133,7 +133,8 @@ describe('/template', () => {
|
|||||||
if (err) return done(err);
|
if (err) return done(err);
|
||||||
TemplateConditionModel.findById(res.body._id).lean().exec((err, data:any) => {
|
TemplateConditionModel.findById(res.body._id).lean().exec((err, data:any) => {
|
||||||
if (err) return done(err);
|
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('name', 'heat aging');
|
||||||
should(data).have.property('version', 2);
|
should(data).have.property('version', 2);
|
||||||
should(data).have.property('parameters').have.lengthOf(1);
|
should(data).have.property('parameters').have.lengthOf(1);
|
||||||
@ -155,7 +156,8 @@ describe('/template', () => {
|
|||||||
if (err) return done(err);
|
if (err) return done(err);
|
||||||
TemplateConditionModel.findById(res.body._id).lean().exec((err, data:any) => {
|
TemplateConditionModel.findById(res.body._id).lean().exec((err, data:any) => {
|
||||||
if (err) return done(err);
|
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('name', 'heat aging');
|
||||||
should(data).have.property('version', 2);
|
should(data).have.property('version', 2);
|
||||||
should(data).have.property('parameters').have.lengthOf(2);
|
should(data).have.property('parameters').have.lengthOf(2);
|
||||||
@ -315,7 +317,8 @@ describe('/template', () => {
|
|||||||
if (err) return done(err);
|
if (err) return done(err);
|
||||||
TemplateConditionModel.findById(res.body._id).lean().exec((err, data:any) => {
|
TemplateConditionModel.findById(res.body._id).lean().exec((err, data:any) => {
|
||||||
if (err) return done(err);
|
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('name', 'heat aging');
|
||||||
should(data).have.property('version', 1);
|
should(data).have.property('version', 1);
|
||||||
should(data).have.property('parameters').have.lengthOf(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}}]});
|
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) => {
|
TemplateMeasurementModel.findById(res.body._id).lean().exec((err, data:any) => {
|
||||||
if (err) return done(err);
|
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('name', 'IR spectrum');
|
||||||
should(data).have.property('version', 2);
|
should(data).have.property('version', 2);
|
||||||
should(data).have.property('parameters').have.lengthOf(1);
|
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'}}]});
|
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) => {
|
TemplateMeasurementModel.findById(res.body._id).lean().exec((err, data:any) => {
|
||||||
if (err) return done(err);
|
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('name', 'IR spectrum');
|
||||||
should(data).have.property('version', 2);
|
should(data).have.property('version', 2);
|
||||||
should(data).have.property('parameters').have.lengthOf(1);
|
should(data).have.property('parameters').have.lengthOf(1);
|
||||||
@ -731,7 +736,8 @@ describe('/template', () => {
|
|||||||
TemplateMeasurementModel.find({name: 'vz'}).lean().exec((err, data:any) => {
|
TemplateMeasurementModel.find({name: 'vz'}).lean().exec((err, data:any) => {
|
||||||
if (err) return done(err);
|
if (err) return done(err);
|
||||||
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', '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('name', 'vz');
|
||||||
should(data[0]).have.property('version', 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);
|
||||||
|
@ -6,6 +6,7 @@ import ConditionTemplateModel from '../models/condition_template';
|
|||||||
import MeasurementTemplateModel from '../models/measurement_template';
|
import MeasurementTemplateModel from '../models/measurement_template';
|
||||||
import res400 from './validate/res400';
|
import res400 from './validate/res400';
|
||||||
import IdValidate from './validate/id';
|
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');
|
const {error, value: template} = TemplateValidate.input(req.body, 'new');
|
||||||
if (error) return res400(error, res);
|
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
|
template.version = 1; // set template version
|
||||||
await new (model(req))(template).save((err, data) => {
|
await new (model(req))(template).save((err, data) => {
|
||||||
if (err) next (err);
|
if (err) next (err);
|
||||||
|
@ -423,6 +423,7 @@
|
|||||||
"condition_templates": [
|
"condition_templates": [
|
||||||
{
|
{
|
||||||
"_id": {"$oid":"200000000000000000000001"},
|
"_id": {"$oid":"200000000000000000000001"},
|
||||||
|
"first_id": {"$oid":"200000000000000000000001"},
|
||||||
"name": "heat treatment",
|
"name": "heat treatment",
|
||||||
"version": 1,
|
"version": 1,
|
||||||
"parameters": [
|
"parameters": [
|
||||||
@ -447,6 +448,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"_id": {"$oid":"200000000000000000000002"},
|
"_id": {"$oid":"200000000000000000000002"},
|
||||||
|
"first_id": {"$oid":"200000000000000000000001"},
|
||||||
"name": "heat treatment 2",
|
"name": "heat treatment 2",
|
||||||
"version": 2,
|
"version": 2,
|
||||||
"parameters": [
|
"parameters": [
|
||||||
@ -459,6 +461,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"_id": {"$oid":"200000000000000000000003"},
|
"_id": {"$oid":"200000000000000000000003"},
|
||||||
|
"first_id": {"$oid":"200000000000000000000003"},
|
||||||
"name": "raw material",
|
"name": "raw material",
|
||||||
"version": 1,
|
"version": 1,
|
||||||
"parameters": [
|
"parameters": [
|
||||||
@ -469,6 +472,7 @@
|
|||||||
"measurement_templates": [
|
"measurement_templates": [
|
||||||
{
|
{
|
||||||
"_id": {"$oid":"300000000000000000000001"},
|
"_id": {"$oid":"300000000000000000000001"},
|
||||||
|
"first_id": {"$oid":"300000000000000000000001"},
|
||||||
"name": "spectrum",
|
"name": "spectrum",
|
||||||
"version": 1,
|
"version": 1,
|
||||||
"parameters": [
|
"parameters": [
|
||||||
@ -483,6 +487,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"_id": {"$oid":"300000000000000000000002"},
|
"_id": {"$oid":"300000000000000000000002"},
|
||||||
|
"first_id": {"$oid":"300000000000000000000001"},
|
||||||
"name": "kf",
|
"name": "kf",
|
||||||
"version": 2,
|
"version": 2,
|
||||||
"parameters": [
|
"parameters": [
|
||||||
@ -505,6 +510,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"_id": {"$oid":"300000000000000000000003"},
|
"_id": {"$oid":"300000000000000000000003"},
|
||||||
|
"first_id": {"$oid":"300000000000000000000003"},
|
||||||
"name": "mt 3",
|
"name": "mt 3",
|
||||||
"version": 1,
|
"version": 1,
|
||||||
"parameters": [
|
"parameters": [
|
||||||
|
Reference in New Issue
Block a user