Select Git revision
variables.index
-
Timothé Boulet authoredTimothé Boulet authored
item.model.js 2.10 KiB
var Sequelize = require('sequelize');
var sequelize = require('./sequelize');
var Users = require('./user.model');
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
}, {
tableItem: 'Items',
});
sequelize.sync()
function getItem(id) {
return Items.findById(id);
}
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']],
where: where
})
}
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: where
});
}
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,
order: [['createdAt', 'DESC']],
where: where
});
}
function addItem(description, price, userId, typeItem) {
return Items.create({ description: description, price: price, userId: userId, typeItem : typeItem});
}
function deleteItem(id) {
return Items.findOne(
{ where: { id: id } }
)
.then(function(items) {
return items.destroy();
})
}
module.exports = {
getItem,
getItemsByDate,
getItemsByUserId,
getItemsByDescription,
addItem,
deleteItem,
typeItem : {demande : 1,offre : 2}
}