ChristianAlbaladejo / api-meetSport-v1

Api for MeetSport app
0 stars 0 forks source link

Descargar controladores #1

Open albsierra opened 4 years ago

albsierra commented 4 years ago

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

    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 https://github.com/ChristianAlbaladejo/api-meetSport-v1/blob/c33eaa575b81fc4d49fb5c922412288e077c79d5/models/follows.js#L10

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.

ChristianAlbaladejo commented 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:

https://github.com/ChristianAlbaladejo/api-meetSport-v1/blob/c33eaa575b81fc4d49fb5c922412288e077c79d5/controllers/follow.js#L30

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

https://github.com/ChristianAlbaladejo/api-meetSport-v1/blob/c33eaa575b81fc4d49fb5c922412288e077c79d5/models/follows.js#L10

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 .