Guest User

Untitled

a guest
Mar 22nd, 2018
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.63 KB | None | 0 0
  1. const fs = require('fs');
  2. // const path = require('path');
  3.  
  4. const seedersTmpDataFolder = 'seeders/bin';
  5.  
  6. class SeedingHelper {
  7. static saveData(filename, data) {
  8. return new Promise((resolve) => {
  9. fs.writeFile(`${seedersTmpDataFolder}/${filename}.json`, JSON.stringify(data, null, 't'), (err) => {
  10. if (err) throw err;
  11. resolve();
  12. });
  13. });
  14. }
  15.  
  16. static readData(filename) {
  17. return new Promise((resolve) => {
  18. fs.readFile(`${seedersTmpDataFolder}/${filename}.json`, 'utf8', (err, data) => {
  19. if (err) throw err;
  20. resolve(JSON.parse(data));
  21. });
  22. });
  23. }
  24. }
  25.  
  26. module.exports = SeedingHelper;
  27.  
  28. const { Seeder } = require('mongoose-data-seed');
  29. const mongoose = require('mongoose');
  30. const ResourceAction = require('../models/resourceAction');
  31. const SeedingHelper = require('../helpers/seeding-helper');
  32.  
  33. const { Types: { ObjectId } } = mongoose;
  34.  
  35. const data = [
  36. {
  37. _id: ObjectId(),
  38. name: 'test1'
  39. },
  40. {
  41. _id: ObjectId(),
  42. name: 'test2'
  43. },
  44. ];
  45.  
  46. class ResourceActionSeeder extends Seeder {
  47. async shouldRun() { // eslint-disable-line class-methods-use-this
  48. return ResourceAction.count().exec().then(count => count === 0);
  49. }
  50.  
  51. async run() { // eslint-disable-line class-methods-use-this
  52. let result;
  53. await SeedingHelper.saveData('resourceActions', data)
  54. .then(() => {
  55. result = ResourceAction.create(data);
  56. });
  57. return result;
  58. }
  59. }
  60.  
  61. module.exports = ResourceActionSeeder;
  62.  
  63. const { Seeder } = require('mongoose-data-seed');
  64. const mongoose = require('mongoose');
  65. const Resource = require('../models/resource');
  66. const SeedingHelper = require('../helpers/seeding-helper');
  67.  
  68. const { Types: { ObjectId } } = mongoose;
  69.  
  70. class ResourcesSeeder extends Seeder {
  71. async shouldRun() { // eslint-disable-line class-methods-use-this
  72. return Resource.count().exec().then(count => count === 0);
  73. }
  74.  
  75. async run() { // eslint-disable-line class-methods-use-this
  76. let result;
  77. await SeedingHelper.readData('resourceActions')
  78. .then((resourceActionsData) => {
  79. const machinesId = ObjectId();
  80.  
  81. const actionTest1 = ObjectId(resourceActionsData.find(x => x.name === 'test1')._id);
  82. const actionTest2 = ObjectId(resourceActionsData.find(x => x.name === 'test2')._id);
  83.  
  84. const data = [
  85. {
  86. _id: machinesId,
  87. name: 'machines',
  88. actions: [
  89. actionTest1,
  90. actionTest2,
  91. ],
  92. },
  93. ];
  94.  
  95. result = Resource.create(data);
  96.  
  97. if (result) SeedingHelper.saveData('resources', data);
  98. });
  99. return result;
  100. }
  101. }
  102.  
  103. module.exports = ResourcesSeeder;
Add Comment
Please, Sign In to add comment