Merge pull request #48 in DEFINMA/definma-api from prediction-delta to master
* commit '9b75741f22c9f06dd24cd613318666fc67288522': Throw an error when a prediction cannot be found Add simple prediction comparison Allow predictions to be saved Add prediction model
This commit is contained in:
commit
dc662046b1
11
src/index.ts
11
src/index.ts
@ -110,14 +110,15 @@ if (process.env.NODE_ENV !== 'production') {
|
||||
|
||||
|
||||
// Require routes
|
||||
app.use('/', require('./routes/root'));
|
||||
app.use('/', require('./routes/sample'));
|
||||
app.use('/', require('./routes/help'));
|
||||
app.use('/', require('./routes/material'));
|
||||
app.use('/', require('./routes/measurement'));
|
||||
app.use('/', require('./routes/template'));
|
||||
app.use('/', require('./routes/model'));
|
||||
app.use('/', require('./routes/prediction'));
|
||||
app.use('/', require('./routes/root'));
|
||||
app.use('/', require('./routes/sample'));
|
||||
app.use('/', require('./routes/template'));
|
||||
app.use('/', require('./routes/user'));
|
||||
app.use('/', require('./routes/help'));
|
||||
|
||||
// Static files
|
||||
app.use('/static', express.static('static'));
|
||||
@ -140,4 +141,4 @@ const server = app.listen(port, () => {
|
||||
console.info(process.env.NODE_ENV === 'test' ? '' : `Listening on http://localhost:${port}`);
|
||||
});
|
||||
|
||||
module.exports = server;
|
||||
module.exports = server;
|
||||
|
12
src/models/prediction.ts
Normal file
12
src/models/prediction.ts
Normal file
@ -0,0 +1,12 @@
|
||||
import mongoose from 'mongoose';
|
||||
|
||||
|
||||
const PredictionSchema = new mongoose.Schema({
|
||||
name: {
|
||||
type: String,
|
||||
unique: true
|
||||
},
|
||||
value: Number
|
||||
});
|
||||
|
||||
export default mongoose.model<any, mongoose.Model<any, any>>('prediction', PredictionSchema);
|
@ -1,6 +1,7 @@
|
||||
import mongoose from 'mongoose';
|
||||
import db from '../db';
|
||||
import ModelModel from './model';
|
||||
import PredictionModel from './prediction';
|
||||
|
||||
const UserSchema = new mongoose.Schema({
|
||||
name: {type: String, index: {unique: true}},
|
||||
@ -11,6 +12,7 @@ const UserSchema = new mongoose.Schema({
|
||||
location: String,
|
||||
devices: [String],
|
||||
models: [{type: mongoose.Schema.Types.ObjectId, ref: ModelModel}],
|
||||
predictions: [{type: mongoose.Schema.Types.ObjectId, ref: PredictionModel}],
|
||||
status: String
|
||||
});
|
||||
|
||||
|
0
src/routes/prediction.spec.ts
Normal file
0
src/routes/prediction.spec.ts
Normal file
27
src/routes/prediction.ts
Normal file
27
src/routes/prediction.ts
Normal file
@ -0,0 +1,27 @@
|
||||
import express from 'express';
|
||||
import mongoose from 'mongoose';
|
||||
|
||||
import db from '../db';
|
||||
import PredictionModel from '../models/prediction';
|
||||
|
||||
const router = express.Router();
|
||||
|
||||
|
||||
router.post('/prediction/new', (req, res, next) => {
|
||||
console.log("New Prediction");
|
||||
console.log(JSON.stringify(req.body));
|
||||
new PredictionModel(req.body).save((err, data) => {
|
||||
if(err) return next(err);
|
||||
db.log(req, 'predictions', {_id: data._id}, data.toObject());
|
||||
});
|
||||
});
|
||||
|
||||
router.post('/prediction/compare', async (req, res, next) => {
|
||||
const valA = await PredictionModel.findOne({ name: req.body.nameA });
|
||||
const valB = await PredictionModel.findOne({ name: req.body.nameB });
|
||||
if(!valA || !valB) next(new Error("invalid prediction name"));
|
||||
res.json(valB.value - valA.value);
|
||||
});
|
||||
|
||||
|
||||
module.exports = router;
|
Reference in New Issue
Block a user