Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 'use strict';
- var user = require('../models').user;
- var course = require('../models').course;
- var studentCourse = require('../models').studentCourse;
- var users = [
- {
- name: "Cristiano Araujo",
- email: "cristiano@araujo.com",
- password: "password",
- isProfessor: true,
- createdAt: new Date(),
- updatedAt: new Date()
- },
- {
- name: "Daniel Oliveira",
- email: "daniel@oliveira.com",
- password: "password",
- isProfessor: false,
- createdAt: new Date(),
- updatedAt: new Date()
- },
- {
- name: "Pedro Castilho",
- email: "pedro@castilho.com",
- password: "password",
- isProfessor: false,
- createdAt: new Date(),
- updatedAt: new Date()
- }
- ];
- var courses = [
- {
- name: 'Projetão 2016.2',
- code: 'PROJ20162',
- createdAt: new Date(),
- updatedAt: new Date()
- },
- {
- name: 'Empreendimentos 2016.2',
- code: 'EMPR20162',
- createdAt: new Date(),
- updatedAt: new Date()
- }
- ];
- //TODO: inserir cursos e estudantes e professores ligados a ele
- module.exports = {
- up: function (queryInterface, Sequelize) {
- /*
- Add altering commands here.
- Return a promise to correctly handle asynchronicity.
- Example:
- return queryInterface.bulkInsert('Person', [{
- name: 'John Doe',
- isBetaMember: false
- }], {});
- */
- var users;
- var finalPromise = new Promise(function(resolve, reject){
- queryInterface.bulkDelete('users')
- .then(() => queryInterface.bulkDelete('courses'))
- .then(() => queryInterface.bulkDelete('student_course'))
- .then(() => queryInterface.bulkInsert('users', users))
- .then(() => user.findOne({
- where: {
- email: users[0].email
- }
- }))
- .then((professor) => {
- return new Promise((resolve, reject) => {
- for(var i = 0; i < courses.length; i++){
- courses[i]["professor_id"] = professor.id;
- }
- resolve();
- });
- })
- .then(() => queryInterface.bulkInsert('courses', courses))
- .then(() => user.findAll({
- where:{
- $or: [
- {email: 'daniel@oliveira.com'},
- {email: 'pedro@castilho.com'}
- ]
- }
- }))
- .then((users) => {
- console.log(users);
- var data = users;
- return course.findOne({
- where: {
- code: "PROJ20162"
- }
- });
- })
- .then((course) => {
- console.log('meu curso ' + course.name)
- var promises = [];
- for (var user in users) {
- console.log('meus usuarios ' + user.name);
- promises.append(studentCourse.create({
- course_id: course.id,
- student_id: user.id
- }));
- }
- return Promise.all(promises);
- })
- .then(resolve)
- .catch((err)=>{
- console.log(err);
- });
- });
- return finalPromise;
- },
- down: function (queryInterface, Sequelize) {
- /*
- Add reverting commands here.
- Return a promise to correctly handle asynchronicity.
- Example:
- return queryInterface.bulkDelete('Person', null, {});
- */
- var promises = [
- queryInterface.bulkDelete('courses'),
- queryInterface.bulkDelete('users')
- ]
- return Promise.all(promises);
- }
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement