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

ShiftFreeLog : refactoring, utiliser un EventListener #714

Merged
merged 3 commits into from
Jan 26, 2023

Conversation

raphodn
Copy link
Member

@raphodn raphodn commented Jan 24, 2023

Quoi ?

S'inspirer de TimeLogEventListenener pour créer un ShiftFreeLogEventListenener

  • suppression de ShiftSubscriber
  • création de ShiftFreeLogEventListener
  • lorsque l'event ShiftFreedEvent est dispatché, créer le ShiftFreedLog correspondant
  • quelques modifs collatérales dans ShiftInvalidatedEvent
  • ne plus passer la justification (reason) via l'Entity - la passer maintenant par ShiftFreedEvent

@raphodn raphodn requested a review from petitalb January 24, 2023 16:05
@raphodn raphodn self-assigned this Jan 24, 2023
@petitalb
Copy link
Collaborator

Je ne suis pas sur de bien comprendre pourquoi tu veux faire ce changement ? Je ne suis pas tres au fait du pourquoi privilégier l'une ou l'autre implémentation.

Pour moi, celle que j'avais faite a le mérite de catcher toutes les modifications. Dans celle que tu proposes, il faut bien être sur de mettre la creation d'un event partout. C'est surtout ca qui avait justifier mon choix.

@raphodn
Copy link
Member Author

raphodn commented Jan 25, 2023

Je ne suis pas sur de bien comprendre pourquoi tu veux faire ce changement ? Je ne suis pas tres au fait du pourquoi privilégier l'une ou l'autre implémentation.

Pour moi, celle que j'avais faite a le mérite de catcher toutes les modifications. Dans celle que tu proposes, il faut bien être sur de mettre la creation d'un event partout. C'est surtout ca qui avait justifier mon choix.

Pourquoi on devrait catcher toutes les modifications ? Et pourquoi stocker le "reason" dans le Shift ? Cette méthode avec les Event me parait beaucoup plus propre et pérenne. Et nos table s'appelent "Log", c'est normale je trouve de les appeler quand on souhaite loger les actions qui nous importent (et pas " tout le temps")

D'ailleurs, même si on voulait catcher toutes les modifs (et donc avoir un ShiftSubcriber), je pense que ca serait plus propre de dispatcher ensuite des event en fonction de ce qu'on souhaite logger. Mais là le mapping est déjà 1-1 entre l'action du controlleur (shift_free) et l'event donc pas besoin de passer par le subscriber..

@raphodn raphodn linked an issue Jan 26, 2023 that may be closed by this pull request
@raphodn raphodn force-pushed the raphodn/log-free-shift-4 branch from a39e6a3 to df6cb58 Compare January 26, 2023 12:21
Base automatically changed from raphodn/log-free-shift-4 to master January 26, 2023 12:22
@raphodn raphodn force-pushed the raphodn/shift-free-event-refactor branch from 7473f13 to 3dc6014 Compare January 26, 2023 12:30
@petitalb
Copy link
Collaborator

Pourquoi on devrait catcher toutes les modifications ? Et pourquoi stocker le "reason" dans le Shift ? Cette méthode avec les Event me parait beaucoup plus propre et pérenne.

Faudra juste penser que lors des modifications futures (ex, suppression des créneaux lors de la fermeture de compte, gel du compte, exemption, ...) a créer l'event. Ca me parait plus error prone (ca va vite d'oublier un cas, et de ne pas s'en rendre compte vu qu'on aura des logs), l'autre solution avait le mérite de mettre le code qu'a un seul endroit, la il faut duppliquer autant fois.

@raphodn
Copy link
Member Author

raphodn commented Jan 26, 2023

Faudra juste penser que lors des modifications futures (ex, suppression des créneaux lors de la fermeture de compte, gel du compte, exemption, ...) a créer l'event. Ca me parait plus error prone (ca va vite d'oublier un cas, et de ne pas s'en rendre compte vu qu'on aura des logs), l'autre solution avait le mérite de mettre le code qu'a un seul endroit, la il faut duppliquer autant fois.

Je suis d'accord, ca dépend de la stratégie, je vois plutôt le ShiftFreeLog comme une table "métier", où l'on décide de stocker seulement les event qui nous intéressent. Par exemple, si on supprime un bucket, je ne pense pas qu'on devrait décompter ça comme un créneau libéré par un membre. Ca nous "forcera" à garder la logique métier en tête et de rajouter les event où c'est nécessaire (comme les TimeLog).

Je merge, et il y aura peut-être en effet d'autres endroits où l'on aura besoin d'appeler ShiftFreedEvent 👌

@raphodn raphodn merged commit be7a2b2 into master Jan 26, 2023
@raphodn raphodn deleted the raphodn/shift-free-event-refactor branch January 26, 2023 22:12
quot17 pushed a commit to quot17/gestion-compte that referenced this pull request Mar 28, 2023
…e#714)

* ShiftFreeEvent: add extra parameters

* Delete ShiftSubscriber. Create ShiftFreeLogEventListener. Listen onShiftFreed

* Set reason via ShiftFreedEvent
quot17 pushed a commit to quot17/gestion-compte that referenced this pull request Mar 28, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Garder une trâce des créneaux annulés par un membre
2 participants