This commit is contained in:
Родитель
317b301f05
Коммит
bcac4f8027
|
@ -30,10 +30,16 @@ sequelize.models = Object.fromEntries(capsEntries);
|
|||
|
||||
// En sequelize.models están todos los modelos importados como propiedades
|
||||
// Para relacionarlos hacemos un destructuring
|
||||
const { Recipe } = sequelize.models;
|
||||
const { Recipe, Diet } = sequelize.models;
|
||||
|
||||
// Aca vendrian las relaciones
|
||||
// Product.hasMany(Reviews);
|
||||
|
||||
//Recipie
|
||||
Recipe.hasMany(Diet);
|
||||
Diet.belongsTo(Recipe);
|
||||
//Diet
|
||||
Diet.hasMany(Recipe);
|
||||
Recipe.belongsTo(Diet);
|
||||
|
||||
module.exports = {
|
||||
...sequelize.models, // para poder importar los modelos así: const { Product, User } = require('./db.js');
|
||||
|
|
|
@ -0,0 +1,17 @@
|
|||
const { DataTypes } = require('sequelize');
|
||||
// Exportamos una funcion que define el modelo
|
||||
// Luego le injectamos la conexion a sequelize.
|
||||
module.exports = (sequelize) => {
|
||||
// defino el modelo
|
||||
sequelize.define('diet', {
|
||||
ID: {
|
||||
type: DataTypes.UUID,
|
||||
defaultValue: DataTypes.UUIDV4,
|
||||
primaryKey: true,
|
||||
allowNull: false
|
||||
},
|
||||
name: {
|
||||
type: DataTypes.STRING
|
||||
}
|
||||
});
|
||||
};
|
|
@ -4,9 +4,25 @@ const { DataTypes } = require('sequelize');
|
|||
module.exports = (sequelize) => {
|
||||
// defino el modelo
|
||||
sequelize.define('recipe', {
|
||||
ID: {
|
||||
type: DataTypes.UUID,
|
||||
defaultValue: DataTypes.UUIDV4,
|
||||
primaryKey: true,
|
||||
allowNull: false
|
||||
},
|
||||
name: {
|
||||
type: DataTypes.STRING,
|
||||
allowNull: false,
|
||||
allowNull: false
|
||||
},
|
||||
resume: {
|
||||
type: DataTypes.STRING,
|
||||
allowNull: false
|
||||
},
|
||||
level: {
|
||||
type: DataTypes.INTEGER
|
||||
},
|
||||
instructions: {
|
||||
type: DataTypes.TEXT
|
||||
}
|
||||
});
|
||||
};
|
||||
|
|
|
@ -0,0 +1,16 @@
|
|||
var express = require('express');
|
||||
var router = express.Router();
|
||||
const { Recipe } = require('../db');
|
||||
|
||||
const endpoint = '/diets/';
|
||||
|
||||
router.get(endpoint, function (req, res, next) {
|
||||
const diets = Recipe.findAll();
|
||||
if (diets)
|
||||
res.send(diets);
|
||||
else
|
||||
res.status(404).send({ error: 'no existe ninguna dieta' });
|
||||
});
|
||||
|
||||
|
||||
module.exports = router;
|
|
@ -1,12 +1,13 @@
|
|||
const { Router } = require('express');
|
||||
// Importar todos los routers;
|
||||
// Ejemplo: const authRouter = require('./auth.js');
|
||||
|
||||
const recipeRouter = require('./recipes.js');
|
||||
const dietRouter = require('./require.js');
|
||||
|
||||
const router = Router();
|
||||
|
||||
// Configurar los routers
|
||||
// Ejemplo: router.use('/auth', authRouter);
|
||||
router.use('/recipes', recipeRouter);
|
||||
router.use('/diets', dietRouter);
|
||||
|
||||
|
||||
module.exports = router;
|
||||
|
|
|
@ -0,0 +1,58 @@
|
|||
var express = require('express');
|
||||
var router = express.Router();
|
||||
const { Recipe } = require('../db');
|
||||
|
||||
const endpoint = '/recipes/';
|
||||
const errPost = 'Error data provided';
|
||||
/* GET users listing. */
|
||||
/*
|
||||
[ ] GET /recipes?name='...':
|
||||
Obtener un listado de las recetas que contengan la palabra
|
||||
ingresada como query parameter
|
||||
Si no existe ninguna receta mostrar un mensaje adecuado
|
||||
*/
|
||||
router.get(endpoint, function (req, res, next) {
|
||||
const { name } = req.query;
|
||||
const condition = { where: { name } };
|
||||
const recipes = Recipe.findAll(
|
||||
condition
|
||||
);
|
||||
if (recipes)
|
||||
res.send(recipes);
|
||||
else
|
||||
res.status(404).send({ error: 'no existe ninguna receta con ese id' });
|
||||
});
|
||||
|
||||
/*
|
||||
[ ] GET /recipes/{idReceta}:
|
||||
Obtener el detalle de una receta en particular
|
||||
Debe traer solo los datos pedidos en la ruta de detalle
|
||||
de receta
|
||||
Incluir los tipos de dieta asociados
|
||||
*/
|
||||
router.get(endpoint + ':idReceta', function (req, res, next) {
|
||||
const { idReceta } = rq.params;
|
||||
const recipe = Recipe.findByPk(idReceta);
|
||||
res.send(recipe || 'Recipe not found');
|
||||
});
|
||||
|
||||
/*
|
||||
[ ] POST /recipes:
|
||||
Recibe los datos recolectados desde el formulario
|
||||
controlado de la ruta de creación de recetas por body
|
||||
Crea una receta en la base de datos relacionada con sus
|
||||
tipos de dietas.
|
||||
*/
|
||||
const newRecipe = ({ title, contents }) => Recipe.create({ title, contents });
|
||||
|
||||
router.post(endpoint, function (req, res, next) {
|
||||
const { title, contents } = req.body
|
||||
if (title && contents) {
|
||||
res.send(newRecipe({ title, contents }));
|
||||
}
|
||||
else
|
||||
res.status(404).json(errPost);
|
||||
});
|
||||
|
||||
|
||||
module.exports = router;
|
Загрузка…
Ссылка в новой задаче