Advertisement
Guest User

Untitled

a guest
Jan 17th, 2019
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2. const prompt = require("prompt");
  3.  
  4. var mongoose = require("mongoose");
  5. var mongoDB = "mongodb://127.0.0.1/tecgurus";
  6. mongoose.connect(mongoDB);
  7. mongoose.Promise = global.Promise;
  8.  
  9. var db = mongoose.connection;
  10.  
  11. db.on("error", console.error.bind(console, "MongoDb connection err"));
  12.  
  13. let Schema = mongoose.Schema;
  14.  
  15. let contactoSchema = Schema({
  16.   nombre: String,
  17.   telefono: String,
  18.   email: String
  19. });
  20. var Contacto = mongoose.model("contacto", contactoSchema);
  21.  
  22. const insert = contact => {
  23.   let contacto = new Contacto(contact);
  24.  
  25.   let promise = new Promise((res, rej) => {
  26.     contacto.save(err => {
  27.       if (err) rej(err);
  28.       res("usuario insertado");
  29.     });
  30.   });
  31.  
  32.   return promise;
  33. };
  34. const find = query => {
  35.   let promise = new Promise((res, rej) => {
  36.     Contacto.find(query,(err,result)=>{
  37.       if (err) rej(err);
  38.       res(result);
  39.     });
  40.   });
  41.   return promise;
  42. };
  43.  
  44. const update = (contacto, newValues) => {
  45.   let promise = new Promise((res, rej) => {
  46.     Contacto.update({_id: contacto._id},{$set:newValues},(err)=>{
  47.       if(err) rej(err);
  48.       res("Usuario actualizado");
  49.     });
  50.    
  51.   });
  52.   return promise;
  53. };
  54.  
  55. const deleteOne = contact => {
  56.   let promise = new Promise((res, rej) => {
  57.     Contacto.deleteOne(contact,(err)=>{
  58.       if(err) rej(err);
  59.       res("usuario eliminado");
  60.     });
  61.   });
  62.   return promise;
  63. };
  64.  
  65. const editRutine = contact => {
  66.   console.log(
  67.     `elige una opcion para el usuario ${JSON.stringify(
  68.       contact
  69.     )} 1) eliminar 2)editar`
  70.   );
  71.  
  72.   prompt.get(["opcion"], (err, result) => {
  73.     switch (result.opcion) {
  74.       case "1":
  75.         deleteOne(contact)
  76.           .then(res => {
  77.             console.log(res);
  78.           })
  79.           .catch(err => {
  80.             console.log(err);
  81.           });
  82.         break;
  83.       case "2":
  84.         prompt.get(
  85.           ["nuevo nombre", "nuevo telefono", "nuevo email"],
  86.           (err, result2) => {
  87.             let nuevo = {
  88.               nombre: result2["nuevo nombre"],
  89.               telefono: result2["nuevo telefono"],
  90.               email: result2["nuevo email"]
  91.             };
  92.             if (nuevo.nombre == "") {
  93.               delete nuevo.nombre;
  94.             }
  95.             if (nuevo.telefono == "") {
  96.               delete nuevo.telefono;
  97.             }
  98.             if (nuevo.email == "") {
  99.               delete nuevo.email;
  100.             }
  101.  
  102.             update(contact, nuevo)
  103.               .then(res => {
  104.                 console.log(res);
  105.                 main();
  106.               })
  107.               .catch(err => {
  108.                 console.log(err);
  109.                 main();
  110.               });
  111.           }
  112.         );
  113.         break;
  114.     }
  115.   });
  116. };
  117.  
  118. const main = () => {
  119.   console.log(
  120.     "elige una opcion 1) agregar contacto 2) buscar contact 3) salir"
  121.   );
  122.  
  123.   prompt.get(["opcion"], (err, result) => {
  124.     switch (result.opcion) {
  125.       case "1":
  126.         prompt.get(["nombre", "telefono", "email"], (err, result2) => {
  127.           let contacto = {
  128.             nombre: result2.nombre,
  129.             telefono: result2.telefono,
  130.             email: result2.email
  131.           };
  132.           insert(contacto)
  133.             .then(res => {
  134.               console.log(res);
  135.               main();
  136.             })
  137.             .catch(err => {
  138.               console.log(err);
  139.               main();
  140.             });
  141.         });
  142.  
  143.         break;
  144.       case "2":
  145.         prompt.get(["Busqueda"], (err, result3) => {
  146.           let search = { nombre: new RegExp(result3.Busqueda, "g") };
  147.           find(search)
  148.             .then(contactos => {
  149.               contactos.forEach((contact, i) => {
  150.                 console.log(`${i}  ${JSON.stringify(contact)}`);
  151.               });
  152.               prompt.get(["contacto"], (err, result4) => {
  153.                 editRutine(contactos[parseInt(result4.contacto)]);
  154.               });
  155.             })
  156.             .catch(err => {
  157.               console.log(err);
  158.               main();
  159.             });
  160.         });
  161.  
  162.         break;
  163.     }
  164.   });
  165. };
  166. main();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement