IIC2513 / Syllabus-S1

Sección 1 - Antonio Ossa
32 stars 0 forks source link

Validar existencia de recursos #76

Open c4ebt opened 1 month ago

c4ebt commented 1 month ago

En la ruta GET /chats/:username1/:username2, existen varias posibilidades que podrían hacer que no se encuentre un recurso:

En un principio me pareció obvio que hay que validar la existencia de todos estos recursos en el mismo orden en que los mencioné, y mostrar mensajes de error correspondientes, i.e. si alguno de los dos usuario no existía "User not found", y si no había un chat entre ambos "Chat not found".

Sin embargo, en otras tareas he tenido problemas y me han dicho que es porque mi función "hace más de lo que el enunciado pide que haga", y que esto es incorrecto y no se debería hacer. Por esto, preferí preguntar:

  1. ¿Qué es exactamente lo que se pide que validemos cuando el enunciado dice "en caso de que un recurso no se encuentre"?
  2. ¿Exactamente a qué hace referencia este recurso?
  3. ¿Cómo se vería esto en el ejemplo anterior?
  4. ¿Las respuestas anteriores aplican para todos los endpoints?
  5. Importa el orden de prioridad con el que se muestran los mensajes? Por ejemplo, si en el endpoint POST /messages/ tanto user como chatId son inválidos, importa cual mensaje entre "User not found" y "Chat not found" se pone en el response body?

Gracias de antemano :)

rodrigoogalde commented 1 month ago

Hola

  1. Validar que no existe
  2. Al modelo Chat
  3. Debes retornar un Chat not found junto con el status correspondiente a este error
  4. Depende a que endpoints te refieres, pero donde implique buscar y que no se encuentre, debe seguir el mismo procedimiento.
  5. Puedes asumir que no se van a hacer POST a chats inválidos o con usuarios inexistentes