Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 | 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 1x 1x 1x 2x 2x 2x 1x 1x 1x 1x 1x 1x 1x 1x 2x 2x | const HiloModel = require('../models/hilo.js'); const UsuarioModel = require('../models/usuario.js'); const authConfig = require('../config/auth.js'); const jwt = require('jsonwebtoken'); // Clase Hilo donde contiene todos los metodos(funciones de clases llaman metodos). class Hilo { constructor() { } // Función de crear un Hilo. async crearHilo(body) { const session = await HiloModel.startSession(); session.startTransaction(); let hiloNuevo = await HiloModel.create([body], { session: session }).then(hiloNuevo => { return { status: 201, datos: hiloNuevo } }).catch(error => { return { status: 400, datos: { error: error.message } } }); let duenoDelHilo = await UsuarioModel.findByIdAndUpdate(body.usuario.usuarioId, { $push: { publicaciones: hiloNuevo.datos } }, { new: true, session: session }).then(dueno => { return { status: 200, usuario: dueno } }).catch(error => { return { status: 400 } }) if (hiloNuevo.status === 201 && duenoDelHilo.status === 200) { await session.commitTransaction(); session.endSession(); } else E{ await session.abortTransaction(); session.endSession(); } return hiloNuevo; } // Función mostrar todos los Hilos. async traerHilos() { let hilosEncontrados = await HiloModel.find().then(hilo => { return { status: 200, datos: hilo } }).catch(error => { return { status: 404, datos: { error: error.message } } }); return hilosEncontrados; } // Función mostrar un Hilo por ID. async traerHiloId(id) { let hiloEncontrado = await HiloModel.findById(id).then(hilo => { return { status: 200, datos: hilo } }).catch(error => { return { status: 404, datos: { error: error.message } } }); return hiloEncontrado; } async getLikesDeHilo(id) { let hiloEncontrado = await HiloModel.findById(id).select('likes').then(hilo => { return { status: 200, datos: hilo } }).catch(error => { return { status: 404, datos: { error: error.message } } }); return hiloEncontrado; } // Función de actualizar un Hilo. async cambiaHilo(id, body) { let hiloActualizado = await HiloModel.findByIdAndUpdate(id, body, {new: true}).then(hiloActualizado => { return { status: 200, datos: hiloActualizado } }).catch(error => { return { status: 400, datos: { error: error.message } } }); return hiloActualizado; } // Funcion de borrar un Hilo por ID. async borrarHilo(id) { return await HiloModel.findByIdAndRemove(id).then(hiloBorrado => { return { status: 200, datos: { hilo: `Hilo con el titulo ${hiloBorrado.titulo} ha sido borrado con suceso` } } }).catch(error => { return { status: 404, datos: { error: error.message } } }); } } let HiloController = new Hilo(); module.exports = HiloController; |