Open albsierra opened 4 years ago
Muchas gracias por la corrección lo tengo ya corregido en mi código 👍
El jue., 30 abr. 2020 a las 9:17, Alberto Sierra (notifications@github.com) escribió:
En el controlador hay que procurar no realizar operaciones que corresponden al modelo. Por eso, eliminar seguidores podría quedarse algo así en el controlador:
Follow.eliminar({ 'user': userId, 'followed': followId },(err => { if (err) return res.status(500).send({ message: 'Error in unfollow' }); return res.status(200).send({ message: 'Follow is deleted' }) }));
Y luego en el modelo
FollowsSchema.static.eliminar = function(object , cb){
Follow.find(object).remove(cb);
}
Ten en cuenta que la operación de búsqueda del seguidor también puede dar error, y en tu caso no está controlado. Por ejemplo, si alguien intenta enviar a la API una petición de eliminación de un seguidor que, en realidad, no existe, te diría que "No se puede hacer un remove de algo que no es un objeto". Si este tipo de excepciones las gestionas en el controlador, éste va a crecer demasiado y, el controlador debería tener un código lo más claro posible.
— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/ChristianAlbaladejo/api-meetSport-v1/issues/1, or unsubscribe https://github.com/notifications/unsubscribe-auth/ANUHO6UUTG66OWRW77CZPZLRPEQXFANCNFSM4MVH3XYQ .
En el controlador hay que procurar no realizar operaciones que corresponden al modelo. Por eso, eliminar seguidores podría quedarse algo así en el controlador: https://github.com/ChristianAlbaladejo/api-meetSport-v1/blob/c33eaa575b81fc4d49fb5c922412288e077c79d5/controllers/follow.js#L30
Y luego en el modelo https://github.com/ChristianAlbaladejo/api-meetSport-v1/blob/c33eaa575b81fc4d49fb5c922412288e077c79d5/models/follows.js#L10
Ten en cuenta que la operación de búsqueda del seguidor también puede dar error, y en tu caso no está controlado. Por ejemplo, si alguien intenta enviar a la API una petición de eliminación de un seguidor que, en realidad, no existe, te diría que "No se puede hacer un remove de algo que no es un objeto". Si este tipo de excepciones las gestionas en el controlador, éste va a crecer demasiado y, el controlador debería tener un código lo más claro posible.