Project

General

Profile

Development #55367

api fillslots (réservation multiple), option pour créer des réservations indépendantes

Added by Frédéric Péters 3 months ago. Updated about 2 months ago.

Status:
Solution déployée
Priority:
Normal
Category:
-
Target version:
-
Start date:
03 Jul 2021
Due date:
% Done:

0%

Estimated time:
Patch proposed:
Yes
Planning:
No

Description

Si on garde l'API fillslots (question dans #40395, important de se décider), il y aurait à prendre en compte cette remarque :

Le fonctionnement primary/secondary marche bien uniquement pour la partie "je me désinscris totalement", pour les autres opérations on voudrait plutôt des événements indépendants.

Si on veut juste répondre à ça, on pourrait ajouter un paramètre supplémentaire à l'appel, pour dire de ne pas créer de secondary. Ça amène les questions sur le retour de l'appel, retourner une liste avec la réponse détaillée pour chaque réservation ? (par réponse détaillée j'entends notamment la série "api": {"cancel_url": ....


Files

Associated revisions

Revision 63c7dfec (diff)
Added by Valentin Deniaud about 2 months ago

api: rely on DRF validation (#55367)

Revision 3936f945 (diff)
Added by Valentin Deniaud about 2 months ago

api: move event selection code to function (#55367)

Revision a26183e5 (diff)
Added by Valentin Deniaud about 2 months ago

api: add endpoint to book multiple events independently (#55367)

Revision ec53b37d (diff)
Added by Valentin Deniaud about 2 months ago

api: rename recurring events views (#55367)

History

#1

Updated by Valentin Deniaud 2 months ago

  • Assignee set to Valentin Deniaud
#2

Updated by Valentin Deniaud 2 months ago

Comment on gère si dans la réservation de ['a', 'b', 'c'], 'b' est full ? On arrête tout ? (je dirais que oui, c'est d'ailleurs le cas actuellement, mais comme je pars sur une nouvelle API tout est possible)

#3

Updated by Thomas Noël (congés → 11 octobre) about 2 months ago

Pour l'instant je pense qu'on peut partir sur un blocage dès que quelque chose est full, donc un retour err:1 et une explication de ce qui est full (autant que possible). Ça sera plus facile à gérer en retour de l'appel dans le workflow.

(Quitte à plus tard imaginer un flag "reserve-ce-qui-est-possible" si c'est nécessaire)

#5

Updated by Thomas Noël (congés → 11 octobre) about 2 months ago

0001: au niveau des tests, vérifier que les réponses ne sont pas trop modifiées, genre « assert resp.json['reason'] == 'slots list cannot be empty' # legacy » est certainement là parce qu'on a encore des workflows qui testent cette réponse.

0002: ok

0003: il faudrait au moins, dans la réponse pouvoir dire si des résa ont été prises sur des listes d'attente (si on peut détailler slot par slot c'est bien mais bon)

#6

Updated by Valentin Deniaud about 2 months ago

Thomas Noël a écrit :

0001: au niveau des tests, vérifier que les réponses ne sont pas trop modifiées, genre « assert resp.json['reason'] == 'slots list cannot be empty' # legacy » est certainement là parce qu'on a encore des workflows qui testent cette réponse.

Je garde la modification du message parce que je doute qu'un workflow qui regarde ça existe (spécifique résa multiple + cas limite) mais j'ajoute le check de 'reason' pour la beauté du diff.

0003: il faudrait au moins, dans la réponse pouvoir dire si des résa ont été prises sur des listes d'attente (si on peut détailler slot par slot c'est bien mais bon)

OK j'ai ajouté la liste des évènements pour lesquelles la résa a été prise sur liste d'attente dans la réponse.

#7

Updated by Thomas Noël (congés → 11 octobre) about 2 months ago

  • Status changed from Solution proposée to Solution validée
#8

Updated by Valentin Deniaud about 2 months ago

À l'oral tu m'avais dit ne pas aimer l'URL /event_fillslots/, qu'est-ce que tu dirais d'un renommage au profit de /events/fillslots/, avec events qui fait référence au kind=events des agendas concernés ?

#9

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

Perso je n'aime vraiment pas les underscores dans les url mais vu qu'il y en a déjà qui se sont glissées dans recurrent_fillslots/_events, je dirais de laisser ainsi, et qu'on réfléchisse peut-être plus tard à comment réorganiser.

#10

Updated by Valentin Deniaud about 2 months ago

Frédéric Péters a écrit :

vu qu'il y en a déjà qui se sont glissées dans recurrent_fillslots

(vue pour le moment désactivée par défaut et utilisée nulle part)

je dirais de laisser ainsi, et qu'on réfléchisse peut-être plus tard à comment réorganiser.

L'avantage à voir ça maintenant ce serait de ne pas avoir d'URL « legacy » à supporter.

#11

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

Ok si les autres ne sont à coup sûr nulle part utilisées, voyons ça maintenant.

D'un premier jet j'aurais comme proposition :

  • agenda/(?P<agenda_identifier>[\w-]+)/events/fillslots/ (ton patch rename)
  • agenda/(?P<agenda_identifier>[\w-]+)/recurring-events/ (views.recurring_events_list)
  • agenda/(?P<agenda_identifier>[\w-]+)/recurring-events/fillslots/

ça m'ennuie d'alors ne pas avoir un events/ qui serait un views.events_list mais on peut se dire que ça s'ajouterait facilement plus tard.

#13

Updated by Lauréline Guerin about 2 months ago

  • Status changed from Solution proposée to Solution validée

ça manque un peu de test à mon goût (genre vérifier qu'on a une 404 si mauvais kind ou mauvais id, book past/future, etc), mais j'ai tendance à en écrire beaucoup ... :)

#14

Updated by Valentin Deniaud about 2 months ago

  • Status changed from Solution validée to Résolu (à déployer)
commit ec53b37d2d022e3fba14495b122f40c2a65a112b
Author: Valentin Deniaud <vdeniaud@entrouvert.com>
Date:   Tue Aug 3 14:02:10 2021 +0200

    api: rename recurring events views (#55367)

commit a26183e5faa3ae57d9a2062b5e218c5f6f224d88
Author: Valentin Deniaud <vdeniaud@entrouvert.com>
Date:   Thu Jul 29 11:20:38 2021 +0200

    api: add endpoint to book multiple events independently (#55367)

commit 3936f9450a03558a03ae264087fe867f0ac47898
Author: Valentin Deniaud <vdeniaud@entrouvert.com>
Date:   Thu Jul 29 11:20:38 2021 +0200

    api: move event selection code to function (#55367)

commit 63c7dfecc11f030b2bfc38e9849a8aeb4bb86c2c
Author: Valentin Deniaud <vdeniaud@entrouvert.com>
Date:   Thu Jul 29 11:19:58 2021 +0200

    api: rely on DRF validation (#55367)
#15

Updated by Valentin Deniaud about 2 months ago

Lauréline Guerin a écrit :

vérifier qu'on a une 404 si mauvais kind ou mauvais id, book past/future

(poussé en ajoutant ces deux là)

#16

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

  • Status changed from Résolu (à déployer) to Solution déployée

Also available in: Atom PDF