Skip to content
Snippets Groups Projects
Select Git revision
  • 456f080643339ba697b21f43ad64685609897593
  • master default
2 results

variables.index

Blame
  • 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}
    }