Guest User

Untitled

a guest
Mar 11th, 2018
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.24 KB | None | 0 0
  1. var Model = require('../models/model');
  2. let Restaurante = require('../models/schema_restaurante');
  3. let Admin = require('../models/schema_admin');
  4. // Moment js
  5. var moment = require('moment');
  6. // Working Hours
  7. var WorkingHours = require('working-hours').WorkingHours;
  8. // Random String
  9. var randomstring = require("randomstring");
  10. var bcrypt = require('bcryptjs');
  11. //multer
  12. var multer = require('multer');
  13. var path = require('path');
  14.  
  15. var storage = multer.diskStorage({
  16. destination: function(req, file, callback) {
  17. callback(null, './public/img/')
  18. },
  19. filename: function(req, file, callback) {
  20. callback(null, file.fieldname + '-' + Date.now() + path.extname(file.originalname))
  21. }
  22. });
  23.  
  24. exports.doRestauranteNuevo = function(req, res) {
  25. var upload = multer({
  26. storage: storage,
  27. fileFilter: function(req, file, callback) {
  28. var ext = path.extname(file.originalname)
  29. if (ext !== '.png' && ext !== '.jpg' && ext !== '.gif' && ext !== '.jpeg') {
  30. //return callback(res.end('Only images are allowed'), null)
  31. return callback(console.log('Only images are allowed'), null)
  32. }
  33. callback(null, true)
  34. }
  35. }).single('logo_imagen');
  36. /*upload(req, res, function(err) {
  37. res.end('File is uploaded')
  38. })*/
  39. upload(req, res, function(err) {
  40. req.checkBody('nombre', 'Ingresa el nombre completo del restaurante').isLength({ min: 5 });
  41. req.checkBody('eslogan', 'Ingresa el eslogan completo del restaurante').isLength({ min: 5 });
  42. req.checkBody('informacion', 'Ingresa el concepto del restaurante').isLength({ min: 5 });
  43. req.checkBody('correo_de_pedidos', 'Ingresa el correo electrónico para recibir los pedidos').isEmail();
  44. req.checkBody('servicios', 'Selecciona por lo menos una opción').notEmpty();
  45. req.checkBody('direccion[calle]', 'Escribe la calle donde se ubica el restaurante').isLength({min:10});
  46. req.checkBody('direccion[numero]', 'Escribe el número donde se ubica tu restaurante').isLength({min:2});
  47. req.checkBody('direccion[colonia]', 'Escribe la colonia donde se ubica el restaurante').isLength({min:5});
  48. req.checkBody('direccion[cp]', 'Escribe el codigo postal de la zona donde se encuentra el restaurante').isPostalCode('MX');
  49. req.checkBody('direccion[ciudad]', 'Escribe la ciudad donde se ubica el restaurante').isLength({min:5});
  50. req.checkBody('direccion[estado]', 'Escribe el estado postal donde se ubica el restaurante').isLength({min:5});
  51. req.checkBody('direccion[telefono1]', 'Escribe el número de teléfono del restaurante').isLength({min:6}).isNumeric();
  52. req.checkBody('direccion[telefono2]', 'Escribe el número de teléfono del restaurante').optional({ checkFalsy: true }).isLength({min:6}).isNumeric();
  53. req.checkBody('administrador[nombre]', 'Escribe el nombre del administrador del restaurante').isLength({min:6});
  54. req.checkBody('administrador[email]', 'Ingresa el correo electrónico del administrador').isEmail();
  55. req.checkBody('administrador[celular]', 'Ingresa el número celular del administrador').isLength({min:8}).isNumeric();
  56. req.checkBody('segundo_administrador[nombre]', 'Escribe el nombre de la segunda persona a cargo del restaurante').isLength({min:6});
  57. req.checkBody('segundo_administrador[celular]', 'Ingresa el número celular de la segunda persona a cargo').isLength({min:8}).isNumeric();;
  58. req.checkBody('propietario[nombre]', 'Escribe el nombre del propietario del restaurante').isLength({min:6});
  59. req.checkBody('propietario[celular]', 'Ingresa el número celular del propietario').isLength({min:8}).isNumeric();
  60. req.checkBody('entrega[nombre_repartidor]', 'Escribe el nombre del repartidor').isLength({min:6}).notEmpty();
  61. req.checkBody('entrega[medio_transporte]', 'Selecciona el medio de transporte del repartidor').notEmpty();
  62. req.checkBody('bancarios[banco]', 'Escribe el nombre del banco').isLength({min:4});
  63. req.checkBody('bancarios[rfc]', 'Escribe el RFC completo').isLength({min:12});
  64. req.checkBody('bancarios[cuentahabiente]', 'Escribe el nombre del cuentahabiente').isLength({min:4});
  65. req.checkBody('bancarios[clabe]', 'Escribe la CLABE del banco').isLength({min:6});
  66. req.checkBody('bancarios[correo_facturacion]', 'Escribe el nombre del banco').isEmail();
  67.  
  68. let errors = req.validationErrors();
  69. /*if(errors){
  70. console.log(errors);
  71. }*/
  72. if(err){
  73. console.log(err);
  74. }else if(errors){
  75. console.log(errors);
  76. let obj = {
  77. 'type':'error',
  78. 'data':errors
  79. };
  80. res.send(JSON.stringify(obj));
  81. }
  82. else{
  83. let restaurante = new Restaurante(req.body);
  84. restaurante.id = Math.random().toString(26).slice(2);
  85. restaurante.username = req.body.nombre.replace(/[^A-Z0-9]/ig, "").toLowerCase();
  86. restaurante.password = "123456";
  87. console.log(restaurante);
  88. bcrypt.genSalt(10, function(err, salt){
  89. bcrypt.hash(restaurante.password, salt, function(err, hash){
  90. if(err){
  91. console.log(err);
  92. }
  93. restaurante.password = hash;
  94. restaurante.save(function(err,dat){
  95. if(err){
  96. console.log(err);
  97. return;
  98. }else{
  99. console.log(dat._id);
  100. Admin.findOneAndUpdate({ _id: req.user._id }, {$push: {restaurantes: dat._id}}, {new: true}, function(err, doc){
  101. if(err){
  102. console.log("Something wrong when updating data!");
  103. }
  104. console.log(doc);
  105. let obj = {
  106. 'type':'success',
  107. 'data': 'Registro exitoso.',
  108. 'title': 'Alta de Restaurante',
  109. 'redirect': '/'
  110. };
  111. res.send(JSON.stringify(obj));
  112. });
  113. }
  114. });
  115. });
  116. });
  117. }
  118. })
  119. }
Add Comment
Please, Sign In to add comment