Advertisement
Guest User

Untitled

a guest
Nov 1st, 2016
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. 'use strict';
  2.  
  3. var user = require('../models').user;
  4. var course = require('../models').course;
  5. var studentCourse = require('../models').studentCourse;
  6.  
  7. var users = [
  8.   {
  9.     name: "Cristiano Araujo",
  10.     email: "cristiano@araujo.com",
  11.     password: "password",
  12.     isProfessor: true,
  13.     createdAt: new Date(),
  14.     updatedAt: new Date()
  15.   },
  16.   {
  17.     name: "Daniel Oliveira",
  18.     email: "daniel@oliveira.com",
  19.     password: "password",
  20.     isProfessor: false,
  21.     createdAt: new Date(),
  22.     updatedAt: new Date()
  23.   },
  24.   {
  25.     name: "Pedro Castilho",
  26.     email: "pedro@castilho.com",
  27.     password: "password",
  28.     isProfessor: false,
  29.     createdAt: new Date(),
  30.     updatedAt: new Date()
  31.   }
  32. ];
  33.  
  34. var courses = [
  35.   {
  36.     name: 'Projetão 2016.2',
  37.     code: 'PROJ20162',
  38.     createdAt: new Date(),
  39.     updatedAt: new Date()
  40.   },
  41.   {
  42.     name: 'Empreendimentos 2016.2',
  43.     code: 'EMPR20162',
  44.     createdAt: new Date(),
  45.     updatedAt: new Date()
  46.  
  47.   }
  48. ];
  49.  
  50. //TODO: inserir cursos e estudantes e professores ligados a ele
  51. module.exports = {
  52.   up: function (queryInterface, Sequelize) {
  53.     /*
  54.       Add altering commands here.
  55.       Return a promise to correctly handle asynchronicity.
  56.  
  57.       Example:
  58.       return queryInterface.bulkInsert('Person', [{
  59.         name: 'John Doe',
  60.         isBetaMember: false
  61.       }], {});
  62.     */
  63.  
  64.     var users;
  65.     var finalPromise = new Promise(function(resolve, reject){
  66.       queryInterface.bulkDelete('users')
  67.         .then(() => queryInterface.bulkDelete('courses'))
  68.         .then(() => queryInterface.bulkDelete('student_course'))
  69.         .then(() => queryInterface.bulkInsert('users', users))
  70.         .then(() => user.findOne({
  71.           where: {
  72.             email: users[0].email
  73.           }
  74.         }))
  75.         .then((professor) => {
  76.             return new Promise((resolve, reject) => {
  77.               for(var i = 0; i < courses.length; i++){
  78.                 courses[i]["professor_id"] = professor.id;
  79.               }
  80.               resolve();
  81.             });
  82.         })
  83.         .then(() => queryInterface.bulkInsert('courses', courses))
  84.         .then(() => user.findAll({
  85.           where:{
  86.             $or: [
  87.               {email: 'daniel@oliveira.com'},
  88.               {email: 'pedro@castilho.com'}
  89.             ]
  90.           }
  91.         }))
  92.         .then((users) => {
  93.           console.log(users);
  94.           var data = users;
  95.           return course.findOne({
  96.               where: {
  97.                 code: "PROJ20162"
  98.               }
  99.             });
  100.         })
  101.         .then((course) => {
  102.           console.log('meu curso ' + course.name)
  103.           var promises = [];
  104.           for (var user in users) {
  105.             console.log('meus usuarios ' + user.name);
  106.             promises.append(studentCourse.create({
  107.               course_id: course.id,
  108.               student_id: user.id
  109.             }));
  110.           }
  111.           return Promise.all(promises);
  112.         })
  113.         .then(resolve)
  114.         .catch((err)=>{
  115.           console.log(err);
  116.         });
  117.     });
  118.  
  119.     return finalPromise;
  120.  
  121.   },
  122.  
  123.   down: function (queryInterface, Sequelize) {
  124.     /*
  125.       Add reverting commands here.
  126.       Return a promise to correctly handle asynchronicity.
  127.  
  128.       Example:
  129.       return queryInterface.bulkDelete('Person', null, {});
  130.     */
  131.  
  132.     var promises = [
  133.       queryInterface.bulkDelete('courses'),
  134.       queryInterface.bulkDelete('users')
  135.     ]
  136.     return Promise.all(promises);
  137.  
  138.   }
  139. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement