Advertisement
Guest User

Untitled

a guest
Jun 14th, 2016
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. use strict';
  2. var mongoose = require('mongoose');
  3. var fs = require('fs');
  4. var parse = require('csv-parse');
  5. var Schema = mongoose.Schema;
  6. mongoose.connect('mongodb://127.0.0.1:27017/zoomerauth');
  7.   var userSchema = new mongoose.Schema({
  8.     username: { type: String, unique: true },
  9.     password: String,
  10.     email: { type: String, unique: true },
  11.     isActive: String,
  12.     user: {
  13.       id: { type: mongoose.Schema.Types.ObjectId, ref: 'Account' },
  14.       name: { type: String, default: '' }
  15.     },
  16.     timeCreated: { type: Date, default: Date.now },
  17.     search: [String]
  18.   });
  19.   var accountSchema = new mongoose.Schema({
  20.     user: {
  21.       id: { type: mongoose.Schema.Types.ObjectId, ref: 'User' },
  22.       name: { type: String, default: '' }
  23.     },
  24.     isVerified: { type: String, default: '' },
  25.     verificationToken: { type: String, default: '' },
  26.     name: {
  27.       first: { type: String, default: '' },
  28.       middle: { type: String, default: '' },
  29.       last: { type: String, default: '' },
  30.       full: { type: String, default: '' }
  31.     },
  32.     company: { type: String, default: '' },
  33.     phone: { type: String, default: '' },
  34.     zip: { type: String, default: '' },
  35.     memberid: { type: String, default: '' },
  36.     status: {
  37.       id: { type: String, ref: 'Status' },
  38.       name: { type: String, default: '' },
  39.       userCreated: {
  40.         id: { type: mongoose.Schema.Types.ObjectId, ref: 'User' },
  41.         name: { type: String, default: '' },
  42.         time: { type: Date, default: Date.now }
  43.       }
  44.     },
  45.     userCreated: {
  46.       id: { type: mongoose.Schema.Types.ObjectId, ref: 'User' },
  47.       name: { type: String, default: '' },
  48.       time: { type: Date, default: Date.now }
  49.     },
  50.     search: [String]
  51.   });
  52. var User = mongoose.model('User', userSchema);
  53. var Account = mongoose.model('Account', accountSchema);
  54. fs.createReadStream('./salesforce.csv')
  55.     .pipe(parse({delimiter: ','}))
  56.     .on("data-invalid", function(data){
  57.       console.log(csvrow);
  58.     })
  59.     .on('data', function(csvrow) {
  60.       var u = {
  61.         isActive: 'yes',
  62.         username: csvrow[0],
  63.         email: csvrow[0],
  64.         search: [
  65.         csvrow[1] + ' '  + csvrow[2],
  66.         csvrow[0],
  67.         ]
  68.       };
  69.       console.log (u);
  70.       User.create(u, function (err, createdUser) {
  71.         var user = createdUser;
  72.         var displayName = csvrow[1] + ' '  + csvrow[2] || '';
  73.         var nameParts = displayName.split(' ');
  74.         var acct = {
  75.         isVerified: 'no',
  76.         'name.first': nameParts[0],
  77.         'name.last': nameParts[1] || '',
  78.         'name.full': displayName,
  79.         user: {
  80.           id: user._id,
  81.           name: user.username
  82.           },
  83.         search: [
  84.           nameParts[0],
  85.           nameParts[1] || ''
  86.         ]
  87.         };
  88.           Account.create(acct, function(err, account) {
  89.               if (err) {
  90.                 return workflow.emit('exception', err);
  91.               }
  92.             var fieldstoset = {$set: { user: { id: account._id, name: account.email } }};
  93.             User.findByIdAndUpdate(account._id, fieldstoset, function(err) {
  94.               if (err) {
  95.                 return workflow.emit('exception', err);
  96.               }
  97.             });
  98.            });
  99.          });
  100.     })
  101.     .on('end',function() {
  102.       console.log('complete');
  103.     });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement