transactionData.js 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. const Transaction = require("../models/transaction");
  2. const Order = require("../models/order");
  3. const Merchant = require("../models/merchant");
  4. module.exports = {
  5. populate: function(req, res){
  6. if(!req.session.user){
  7. res.session.error = "Must be logged in to do that";
  8. return res.redirect("/");
  9. }
  10. function randomDate() {
  11. let now = new Date();
  12. let start = new Date();
  13. start.setFullYear(now.getFullYear() - 1);
  14. return new Date(start.getTime() + Math.random() * (now.getTime() - start.getTime()));
  15. }
  16. Merchant.findOne({_id: req.session.user})
  17. .then((merchant)=>{
  18. let newTransactions = [];
  19. for(let i = 0; i < 5000; i++){
  20. let newTransaction = new Transaction({
  21. merchant: merchant._id,
  22. date: randomDate(),
  23. recipes: []
  24. });
  25. let numberOfRecipes = Math.floor((Math.random() * 5) + 1);
  26. for(let j = 0; j < numberOfRecipes; j++){
  27. let recipeNumber = Math.floor(Math.random() * merchant.recipes.length);
  28. let randQuantity = Math.floor((Math.random() * 3) + 1);
  29. newTransaction.recipes.push({
  30. recipe: merchant.recipes[recipeNumber],
  31. quantity: randQuantity
  32. });
  33. }
  34. newTransactions.push(newTransaction);
  35. }
  36. Transaction.create(newTransactions)
  37. .then((transactions)=>{
  38. return res.redirect("/data");
  39. })
  40. .catch((err)=>{
  41. return;
  42. });
  43. })
  44. .catch((err)=>{
  45. return;
  46. });
  47. }
  48. }