Guest User

Untitled

a guest
Jul 17th, 2018
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.55 KB | None | 0 0
  1. const projectsData = require ('./data/projects.js');
  2. const usersData = require ('./data/users');
  3. const timeSheetsData = require ('./data/timesheets');
  4.  
  5. exports.seed = async function (knex) {
  6. await Promise.all ([knex ('users').del (), knex ('projects').del ()]);
  7. await knex ('projects').insert (projectsData);
  8.  
  9. // met promises
  10. await Promise.all (
  11. usersData.map (user =>
  12. knex ('users')
  13. .insert ({email: user.email})
  14. .returning ('id')
  15. .then (userId =>
  16. Promise.all (
  17. user.projects.map (projectTitle =>
  18. knex ('projects')
  19. .where ('titre', projectTitle)
  20. .first ()
  21. .then (projectRecord => {
  22. return knex ('projects_users').insert ({
  23. user_id: userId[0],
  24. project_id: projectRecord.id,
  25. });
  26. })
  27. )
  28. )
  29. )
  30. )
  31. );
  32.  
  33. await Promise.all (
  34. timeSheetsData.map (async timeSheet => {
  35. const projectRecord = await knex ('projects')
  36. .where ('titre', timeSheet.projet)
  37. .first ();
  38.  
  39. const userRecord = await knex ('users')
  40. .where ('email', timeSheet.collaborateur)
  41. .first ();
  42.  
  43. delete timeSheet.projet;
  44. delete timeSheet.collaborateur;
  45.  
  46. const newTimeSheet = Object.assign (
  47. {
  48. project_id: projectRecord.id,
  49. user_id: userRecord.id,
  50. },
  51. timeSheet
  52. );
  53.  
  54. // console.log (newTimeSheet);
  55. return knex ('timesheets').insert (newTimeSheet);
  56. })
  57. );
  58. };
Add Comment
Please, Sign In to add comment