var db = require('../lib/db')
, mongoose = require('mongoose');
var ProduitSchema = new db.Schema({
_id : {type:Number},
nom : {type: String},
code : {type: String,unique:true},
prixInitial : {type:Number},
prixReduit : {type:Number},
quantite : {type:Number},
disponible : {type:Boolean},
dateCreation : {type:Date},
cegidDesc : {type:String},
col : {typr:String},
_attribut : {type:mongoose.Schema.Types.ObjectId,ref:'ProduitAttribut'},
_marque : {type:Number,ref:'Marque'}
});
var ProduitClass = db.mongoose.model('Produit',ProduitSchema);
function addNewProduit(nom,code,dateCreation,marque,callback){
var instance = new ProduitClass();
instance.nom = nom;
instance.code = code;
instance.dateCreation = dateCreation;
instance.marque = marque;
instance.save(function(err){
if(err){
console.log('Error '+err);
callback(err)
}
else{
console.log('Saved new product '+code);
callback(null,instance);
}
});
}
module.exports.addNewProduit = addNewProduit;
then I have this file that does the request:
var sql = require('mssql')
, Produit = require('./models/Produit')
, ProduitAttribut = require('./models/ProduitAttribut')
, ProduitAttributValeur = require('./models/ProduitAttributValeur')
, Marque = require('./models/Marque')
, _ = require('underscore');
var config = {
user: 'sa',
password: "***',
database: 'dbrevsport'
}
var connection = new sql.Connection(config, function(err) {
if(err){
console.log('error '+err);
}
Marque.findAll(function(err,marques){
if(err||(!marques)){
console.log(err);
throw err;
}
else{
_.each(marques,function(marque){
console.log('Fetching the '+marque.nom+' products');
fetchNewProductsOfBrand(marque,function(err,m){
if(err){
console.log("error here");
throw err;
}
});
});
}
});
});
function fetchNewProductsOfBrand(marque,callback){
var request = new sql.Request(connection); // or: var request = connection.request();
console.log('||Starting the query for the brands product');
console.log('||At: '+new Date());
request.query('this is where I put my request', function(err, recordset) {
if(err){
console.log('||Errors '+err);
console.log('||At: '+new Date());
callback(err);
}
else{
var count = recordset.lenght;
_.each(recordset,function(article){
setTimeout(function(){
Produit.addNewProduit(article.ga_libelle,article.ga_codearticle,article.ga_datecreation,function(err,m){
if(err){
console.log('||Errors '+err);
}
});
},50);
});
}
//console.log(recordset);
});
}