diff --git a/models/item.model.js b/models/item.model.js index 4f1650aa0f75a495515c359cf208b428917b227a..daabee826485bd7ac6a9772d34e43f99a5f67492 100644 --- a/models/item.model.js +++ b/models/item.model.js @@ -13,7 +13,8 @@ sequelize var Items = sequelize.define('Items', { description: Sequelize.STRING, price: Sequelize.FLOAT, - userId: Sequelize.INTEGER + typeItem: Sequelize.INTEGER, // typeDemande + userId: Sequelize.INTEGER }, { tableItem: 'Items', }); @@ -23,12 +24,14 @@ sequelize.sync({force:true}).then(() => { description: 'Slip semi-propre', price: 4, userId: 1, + typeItem: 2 }).then(out => console.log(out.dataValues)); Items.create({ description: 'Bon shit sa mère', price: 10, userId: 2, + typeItem: 1 }).then(out => console.log(out.dataValues)); }) @@ -36,35 +39,56 @@ function getItem(id) { return Items.findById(id); } -function getItemsByDate(page, step) { +function getItemsByDate(page, step, typeItem) { var offset = (page * step); + let where = {} + if(!isNaN(typeItem)){ + where = {typeItem : typeItem} + } + console.log(where) return Items.findAll({ offset: offset, limit: offset + step, - order: [['createdAt', 'DESC']] + order: [['createdAt', 'DESC']], + where: where }); } -function getItemsByUserId(id, page, step){ +function getItemsByUserId(id, page, step, typeItem){ var offset = (page * step); + let where = {userId: id} + if(!isNaN(typeItem)){ + where = { + typeItem : typeItem, + userId: id + } + } return Items.findAll({ offset: offset, limit: offset + step, - where: { userId: id } + where: where }); } -function getItemsByDescription(description, page, step) { +function getItemsByDescription(description, page, step, typeItem) { var offset = (page * step); + let where = { description: { $like: `%${description}%` } } + if(!isNaN(typeItem)){ + where = { + description: { $like: `%${description}%` }, + typeItem : typeItem + } + } + console.log(where) return Items.findAll({ offset: offset, limit: offset + step, - where: { description: { $like: `%${description}%` } } + where: where }); } -function addItem(description, price, userId) { - return Items.create({ description: description, price: price, userId: userId }); +function addItem(description, price, userId, typeItem) { + return Items.create({ description: description, price: price, userId: userId, typeItem : typeItem}); } function deleteItem(id) { @@ -76,4 +100,12 @@ function deleteItem(id) { }) } -module.exports = {getItem, getItemsByDate, getItemsByUserId, getItemsByDescription, addItem, deleteItem} +module.exports = { + getItem, + getItemsByDate, + getItemsByUserId, + getItemsByDescription, + addItem, + deleteItem, + typeItem : {demande : 1,offre : 2} +} diff --git a/routes/item.route.js b/routes/item.route.js index d98b6ca3ed38feacd69c3562d991abdcde4b5c93..e386804e3261c47f45637792bcfac745f2d2b296 100644 --- a/routes/item.route.js +++ b/routes/item.route.js @@ -11,40 +11,41 @@ router.get('/byId/:id', function(req, res) { }); router.get('/date', function(req, res) { - console.log(req.query) let page = parseInt(req.query.page); let step = parseInt(req.query.step); + let typeItem = parseInt(req.query.typeItem); if(isNaN(page)) page = DEFAULT_PAGE; if(isNaN(step)) step = DEFAULT_STEP; - itemModel.getItemsByDate(page, step).then(out => res.json(out)); + itemModel.getItemsByDate(page, step, typeItem).then(out => res.json(out)); }); router.get('/userId', function(req, res) { - console.log(req.query) let userId = parseInt(req.query.uId); let page = parseInt(req.query.page); let step = parseInt(req.query.step); + let typeItem = parseInt(req.query.typeItem); if(isNaN(page)) page = DEFAULT_PAGE; if(isNaN(step)) step = DEFAULT_STEP; - itemModel.getItemsByUserId(userId, page, step).then(out => res.json(out)); + itemModel.getItemsByUserId(userId, page, step, typeItem).then(out => res.json(out)); }); router.get('/description', function(req, res) { let page = parseInt(req.query.page); let step = parseInt(req.query.step); + let typeItem = parseInt(req.query.typeItem); if(isNaN(page)) page = DEFAULT_PAGE; if(isNaN(step)) step = DEFAULT_STEP; - itemModel.getItemsByDescription(req.query.desc, page, step).then(out => res.json(out)); + itemModel.getItemsByDescription(req.query.desc, page, step, typeItem).then(out => res.json(out)); }); router.post('/', function(req, res) { - itemModel.addItem(req.body.description, req.body.price, req.body.userId).then(out => res.json(out.dataValues)) + itemModel.addItem(req.body.description, req.body.price, req.body.userId, req.body.typeItem).then(out => res.json(out.dataValues)) .catch(err => res.json(err)); });