diff --git a/models/item.create.js b/models/item.create.js new file mode 100644 index 0000000000000000000000000000000000000000..ca622c2c502abe0b5220eed83ea08465e6b85c14 --- /dev/null +++ b/models/item.create.js @@ -0,0 +1,44 @@ +var Sequelize = require('sequelize'); +var sequelize = require('./sequelize'); +var Users = require('./user.create'); + +sequelize + .authenticate() + .then(() => { + console.log('Connection has been established successfully.'); + }) + .catch(err => { + console.error('Unable to connect to the database:', err); + }); + +var Items = sequelize.define('Items', { + description: Sequelize.STRING, + price: Sequelize.FLOAT, + typeItem: Sequelize.INTEGER, // typeDemande + userId: Sequelize.INTEGER, + id: { + type: Sequelize.INTEGER, + primaryKey: true, + autoIncrement: true + } +}, { + tableItem: 'Items', +}); + +sequelize.sync({force:true}).then(() => { + Items.create({ + description: 'Slip semi-propre', + price: 4, + userId: 1, + typeItem: 2 + }) + + Items.create({ + description: 'Bon shit sa mère', + price: 10, + userId: 2, + typeItem: 1 + }) +}) + +Items.belongsTo(Users) diff --git a/models/item.model.js b/models/item.model.js index 309125b50cc101ed5e907836d39878c00daaa2c5..d0b6469b82c50b9cc538a47480e77ad77e140a10 100644 --- a/models/item.model.js +++ b/models/item.model.js @@ -1,5 +1,6 @@ var Sequelize = require('sequelize'); var sequelize = require('./sequelize'); +var Users = require('./user.model'); sequelize .authenticate() @@ -19,7 +20,7 @@ var Items = sequelize.define('Items', { tableItem: 'Items', }); -sequelize.sync({force:true}).then(() => { +sequelize.sync().then(() => { Items.create({ description: 'Slip semi-propre', price: 4, @@ -51,7 +52,7 @@ function getItemsByDate(page, step, typeItem) { limit: offset + step, order: [['createdAt', 'DESC']], where: where - }); +}) } function getItemsByUserId(id, page, step, typeItem){ diff --git a/models/user.create.js b/models/user.create.js new file mode 100644 index 0000000000000000000000000000000000000000..ef52cb30644822975486547051402dbf8ab8c3b8 --- /dev/null +++ b/models/user.create.js @@ -0,0 +1,34 @@ +var Sequelize = require('sequelize'); +var sequelize = require('./sequelize'); + +sequelize + .authenticate() + .then(() => { + console.log('Connection has been established successfully.'); + }) + .catch(err => { + console.error('Unable to connect to the database:', err); + }); + +var Users = sequelize.define('Users', { + uName: { + type : Sequelize.STRING, + allowNull: false, + unique: true, + }, + fName: Sequelize.STRING, + lName: Sequelize.STRING, + phoneNumber: Sequelize.STRING, + token: Sequelize.STRING, + expires: Sequelize.DATE, + id: { + type: Sequelize.INTEGER, + primaryKey: true, + autoIncrement: true + } +},{ + timestamps: false, + tableUser: 'Users', +}); + +sequelize.sync({force:true}) diff --git a/models/user.model.js b/models/user.model.js index 1b65b7ddaa29808a2b5f24ff3777eb0210b2681f..fa898d6dc976b11131ddd924e581ba379cf9ae4f 100644 --- a/models/user.model.js +++ b/models/user.model.js @@ -21,13 +21,32 @@ var Users = sequelize.define('Users', { lName: Sequelize.STRING, phoneNumber: Sequelize.STRING, token: Sequelize.STRING, - expires: Sequelize.DATE + expires: Sequelize.DATE, + id: { + type:Sequelize.INTEGER, + primaryKey: true, + autoIncrement: true + } },{ timestamps: false, tableUser: 'Users', }); -sequelize.sync({force:true}) +sequelize.sync()/*.then(() => { + Users.create({ + uName: '2015fleyn', + fName: 'Fley', + lName: 'Nicolas', + phoneNumber: '0650588938' + }) + + Users.create({ + uName: '2015cochetg', + fName: 'Cochet', + lName: 'Gabriel', + phoneNumber: '0664211239' + }) +})*/ function refreshUser(user){ expiresTime = user.toJSON().expires diff --git a/routes/item.route.js b/routes/item.route.js index a64940997207075b56c48f64a820c374ac86ebf5..12fdbc866537d1ec6f086ade2cf0614840a795f5 100644 --- a/routes/item.route.js +++ b/routes/item.route.js @@ -1,11 +1,32 @@ const express = require('express'); const itemModel = require('../models/item.model'); +const Users = require('../models/user.model'); const authMiddleware = require('../middlewares/authMiddleware'); const router = express.Router(); const DEFAULT_PAGE = 0; const DEFAULT_STEP = 10; +function joinUser(res,Items){ + result = [] + for(let i = 0; i!= Items.length; i++){ + Users.getUser(Items[i].userId).then(user => { + //console.log(user) + for(key in user.dataValues){ + Items[i].dataValues[key] = user.dataValues[key]; + } + result.push(Items[i].dataValues) + if(result.length == Items.length){ + res.send(JSON.stringify(result)) + //return result + } + }) + } + if(Items.length == 0){ + res.send("[]") + } +} + //router.use(authMiddleware.checkAuth()); router.get('/byId/:id', function(req, res) { @@ -21,7 +42,7 @@ router.get('/date', function(req, res) { page = DEFAULT_PAGE; if(isNaN(step)) step = DEFAULT_STEP; - itemModel.getItemsByDate(page, step, typeItem).then(out => res.json(out)); + itemModel.getItemsByDate(page, step, typeItem).then(Items => joinUser(res,Items)) }); router.get('/userId', function(req, res) { @@ -33,7 +54,7 @@ router.get('/userId', function(req, res) { page = DEFAULT_PAGE; if(isNaN(step)) step = DEFAULT_STEP; - itemModel.getItemsByUserId(userId, page, step, typeItem).then(out => res.json(out)); + itemModel.getItemsByUserId(userId, page, step, typeItem).then(Items => joinUser(res,Items)); }); router.get('/description', function(req, res) { @@ -44,7 +65,7 @@ router.get('/description', function(req, res) { page = DEFAULT_PAGE; if(isNaN(step)) step = DEFAULT_STEP; - itemModel.getItemsByDescription(req.query.desc, page, step, typeItem).then(out => res.json(out)); + itemModel.getItemsByDescription(req.query.desc, page, step, typeItem).then(Items => joinUser(res,Items)); }); router.post('/', function(req, res) {