Project

General

Profile

Development #43077

Split du endpoint fillslots

Added by Lauréline Guerin about 2 months ago. Updated about 1 month ago.

Status:
Solution proposée
Priority:
Normal
Category:
-
Target version:
-
Start date:
19 May 2020
Due date:
% Done:

0%

Patch proposed:
Yes
Planning:
No

Description

Le endpoint fillslots gère les réservations de tous les types d'agenda, or un agenda de type events ou meetings/virtual n'ont pas forcément les mêmes options.

Ainsi:
- un Event d'agenda meetings/virtual n'a forcément qu'une place, du coup le paramètre count n'a pas de sens
- seul les agendas de type events a une file d'attente
- seuls les agendas de type meetings/virtual ont des Desk, des TimePeriod et des TimePeriodException

A priori, il peut arriver qu'une url fillslots soit construite à la main pour un agenda de type events, mais pas pour les autres.

Du coup, on pourrait splitter le endpoint fillslots, et avoir une url agenda/<agenda_id>/meetings/fillslots pour meetings/virtual et l'url habituelle pour events.

En profiter pour ajouter quelques checks sur le type d'agenda pour les endpoints accept, suspend, resize

0005-api-remove-fillslots_url-from-meetings-agenda-detail.patch View (2.58 KB) Lauréline Guerin, 22 May 2020 10:58 AM

0004-api-split-fillslot-endpoints-43077.patch View (54.9 KB) Lauréline Guerin, 22 May 2020 10:58 AM

0003-api-move-serializers-43077.patch View (5.86 KB) Lauréline Guerin, 22 May 2020 10:58 AM

0002-api-use-APIError-in-fillslots-view-43077.patch View (11.8 KB) Lauréline Guerin, 22 May 2020 10:58 AM

0001-api-limit-accept-suspend-resize-endpoints-to-events-.patch View (6.35 KB) Lauréline Guerin, 22 May 2020 10:58 AM

0005-api-remove-fillslots_url-from-meetings-agenda-detail.patch View (2.58 KB) Lauréline Guerin, 25 May 2020 10:32 AM

0004-api-split-fillslot-endpoints-43077.patch View (54.8 KB) Lauréline Guerin, 25 May 2020 10:32 AM

0003-api-move-serializers-43077.patch View (5.86 KB) Lauréline Guerin, 25 May 2020 10:32 AM

0002-api-use-APIError-in-fillslots-view-43077.patch View (11.8 KB) Lauréline Guerin, 25 May 2020 10:32 AM

0001-api-limit-accept-suspend-resize-endpoints-to-events-.patch View (6.35 KB) Lauréline Guerin, 25 May 2020 10:32 AM

History

#1 Updated by Benjamin Dauvergne about 2 months ago

On peut déjà séparer l'implémentation en 2/3 sans toucher aux URLs non ? J'étais déjà pour avant, mais comme pour l'autre j'aimerai bien ne pas avoir des tonnes de rebase à faire sur #42169. Si t'en es à vouloir réécrire fillslot je pense que la relecture de #42169 t'es permise.

#2 Updated by Frédéric Péters about 2 months ago

(elle a relu #42169)

#3 Updated by Lauréline Guerin about 2 months ago

(j'ai relu #42169 ;) )
Je peux attendre que #42169 soit mergé, et gérer les conflits.
J'aimerais que #42169 et #40728 passent pour continuer #38942, en attendant je splitte)

#4 Updated by Lauréline Guerin about 1 month ago

J'ai essayé de réorganiser le code en limitant les spaghettis. J'aurais bien tenté de factoriser un peu plus la méthode fillslots mais j'ai peur que ça soit moins lisible.

Ca fait 4 urls: events/single, events/multiple, meetings/single, meetings/multiple, sachant que pour la réservation multiple d'après la doc c'est que pour les agendas de type events, mais que le code était très permissif.
J'ai conservé cette possibilité, avec l'idée d'analyser les logs dans quelques temps pour voir si c'est utilisé ou pas.

#6 Updated by Lauréline Guerin about 1 month ago

(derniers patch: juste une modif dans le 0004 pour déplacer get_places_count dans EventFillSlotsMixin)

Also available in: Atom PDF