EthicApp-Development / ethicapp-main

EthicApp's main repository containing backend and frontend applications
MIT License
1 stars 0 forks source link

[ethicapp-v2] Desarrollo de endpoints para utilizar funcionalidad de casos (Cases) #332

Open claudio-alvarez opened 4 weeks ago

claudio-alvarez commented 4 weeks ago

Descripción general

Estamos incorporando a EthicApp la funcionalidad necesaria para usar casos con los diseños. Necesitamos agregar endpoints a la aplicación para las operaciones básicas RESTful de modelo de caso.

GET /cases
POST /cases
PUT/PATCH /cases/:id
GET /cases/:id

Los casos son etiquetables, para lo cual hay contemplado un modelo de TopicTag, cuyas rutas son:

GET /topic_tags
POST /topic_tags
PUT /topic_tags/:id
GET /topic_tags/:id

Por lo tanto, también se requieren endpoints que relacionan Cases y Tags:

GET /cases/id:/tags # obtener todos los tags de un caso
POST /cases/id:/tags # agregar un tag a un caso
DELETE /cases/id:/tag/:tag_Id # desvincular un tag de un caso

Es necesario contemplar la asociación que existe entre Case y Design:

GET /designs/:id/case # el caso de un diseño - respuesta debiera ser un objeto JSON con la representación del caso
PATCH /designs/:id/case # actualiza el caso, para lo cual se requiere incluir en el request un objeto JSON con el `case_id` a utilizar.

Finalmente, los casos son públicos o privados dependiendo de lo que decide el autor dueño. Un usuario podría copiar un caso compartido por otro autor para incorporarlo a su colección. Entonces, entendemos que el usuario tiene una colección de casos.

POST /cases/id:/clone # en el body del request hay que pasar el user_id de quién sería el dueño de la copia

Referencias al respecto: https://chatgpt.com/share/5ff586fe-e5dc-434f-9892-bf1f8c507308

¿Cuándo se usaría?

Se usaría con toda la funcionalidad nueva de casos que tenemos en el backlog de EthicApp. Próximamente, los diseños podrán incluir un caso desde la base de datos de EthicApp. Los casos podrán ser compartidos (copiados) entre los usuarios.