Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[api-v2] Flujos de creación de actividad y fases en sesión #325

Closed
claudio-alvarez opened this issue May 31, 2024 · 0 comments
Closed
Assignees
Labels
new feature New feature request

Comments

@claudio-alvarez
Copy link
Collaborator

claudio-alvarez commented May 31, 2024

Descripción general

Necesitamos implementar los flujos básicos de creación de actividades y fases en la API v2. El funcionamiento de esto (con endpoints necesarios entremedio) sería el siguiente:

El User de tipo Profesor crea una sesión (Session) y es su dueño.

POST /api/v2/sessions

Solamente el User de tipo Profesor que es el dueño de la sesión puede crear una actividad (Activity) dentro de la sesión (Session).

Se crea automáticamente la primera actividad, al invocar:

POST /api/v2/sessions

La actividad (Activity) queda vinculada al diseño (Design) en que se basa. Debe ir el ID del diseño (Design) en un objeto en el cuerpo de la petición POST.

La llamada a POST /sessions debe retornar el objeto de la sesión creada. El objeto de Session debería contener la Activity creada en forma automática. Ambos objetos contienen los IDs de los objetos junto con sus demás atributos.

Una vez que una actividad (Activity) es creada en una sesión (Session), se puede crear la primera fase (Phase) de la Activity de acuerdo a lo que especifica el diseño (Design).

Solamente el User de tipo Profesor que es el dueño de la sesión puede crear la siguiente fase (Phase) asociada a una actividad (Activity), de acuerdo al diseño (Design) en la sesión:

1. POST /api/v2/activities/:id/init_next_phase # Inicia la siguiente fase descrita en el Design
2. GET /api/v2/activities/:id/phases # Lista todas las fases en la actividad
3. PUT /api/v2/phases/:id # Permite modificar una fase

La siguiente fase (1) es creada según lo que especifica el diseño (Design) asociado a la actividad (Activity). Es necesario validar que una fase sólo pueda iniciarse una sola vez.

Entendamos que el diseño (Design) es la "receta" que describe cómo debe configurarse la siguiente fase (Phase) de la actividad (Activity).

Una vez que se crea la fase (Phase) de una actividad (Activity) en una sesión (Session), es posible crear una pregunta (Question) asociada a la fase (Phase).

POST /api/v2/phases/:id/questions # Crear una pregunta en la fase
GET /api/v2/phases/:id/questions # Obtener las preguntas en la fase

Solamente el profesor que es el dueño de la sesión puede crear una pregunta (Question) asociada a una fase (Phase) en una actividad (Activity) en una sesión (Session).

POST /api/v2/questions/id:/responses # Permite crear una respuesta a una pregunta
PUT /api/v2/questions/id:/responses # Permite actualizar una respuesta - sólo su dueño lo puede hacer
GET /api/v2/questions/id:/responses # Permite obtener todas las respuestas a la pregunta - sólo el profesor dueño de la sesión en donde existe la Question lo puede invocar

¿Cuándo se usaría?

Es funcionalidad básica de EthicApp que se utilizaría cada vez que se inicia una sesión (y actividad) en el sistema.

@claudio-alvarez claudio-alvarez added the new feature New feature request label May 31, 2024
benjamin-gonzalez-diaz added a commit that referenced this issue Jun 14, 2024
benjamin-gonzalez-diaz added a commit that referenced this issue Jun 19, 2024
author Benjamin Gonzalez <bigonzalez@miuandes.cl> 1717714016 -0400
committer Benjamin Gonzalez <bigonzalez@miuandes.cl> 1718813217 -0400

[api/v2]  add first test for this flow [#325]

[api/v2/test] rebasse branch [#325]

[api/v2] add new routes [#325]

[api/v2/test] new endpoint for session post & move de test folder [#325]

[api/v2/test] add new's test for new endpoints [#325]

[api/v2/test] add new test [#325]

[api/v2/test] fix response test [#325]

[api/v2/test] add last test [#325]

[api/v2/test] fix test & delete unused endpoint [#325]

[api/v2/test] delete unused endpoints [#325]

[Api/v2] changed login_user for authenticate_client & delete question_id from Design table [#325]

[api/v2/test] fix post user for view the already exist & fix compare session.creator and user.id [#325]

[api/v2/test] refactor endpoints [#325]

[api/vw/test] add casl abilities for at some endpoints [#325]

[api/v2/test] add casl for mutative operations [#325]

[api/v2/test] fix someone test [#325]

[api/v2/test] fix & add new test for duplicate phase with same number [#325]

[api/v2/test] add new test for duplicate number question [#325]

[api/v2/test] minors fix & add minor test (error in delete) [#325]

[api/v2/test] add restriction for get users [#325]
claudio-alvarez added a commit that referenced this issue Jun 25, 2024
[api-v2] creacion de varios test y endpoints #325
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
new feature New feature request
Projects
None yet
Development

No branches or pull requests

2 participants