Impression

I - Règle métier

  1. Une carte est imprimable si elle est au status En cours
  2. Une carte peut-être ré-imprimée plusieurs fois

II - Flux

Impression de carte

  1. Création du job d’impression (au statut en attente (pending))
  2. Lancement de l’impression du job
sequenceDiagram participant U as UI participant A as API participant J as Job participant N as Notif U->>A: POST printjob/card/print A->>A: create printjob (1) A->>J: cineges.printjob-card.prepare activate J J->>J: loops printing (2) deactivate J J-->>N: done

Boucle d’impression

  1. Vérifie si un job impression est en cours       - Si oui, le nouveau job reste en attente       - Si non, vérifie qu’il n’y a pas de prochain job impression :             - Si oui, le nouveau job reste en attente             - Si non, le nouveau job passe en impression
  2. Lancement de l’impression vers le service d’impression de carte (carte par carte)
  3. Vérifie que le status de l’impression de la carte courante soit à imprimer (code : 9)
  4. Passes à la prochaine carte à imprimer
sequenceDiagram participant K as Kafka participant J as Job participant P as PrintCardService participant N as Notif K->>J: cineges.printjob-card.prepare J->>J: check printjob to print (1) alt Next printing J->>K: cineges.printjob-card.print else end K->>J: cineges.printjob-card.print loop Printing J->>P: POST /print (2) activate P P->>J: return job id deactivate P loop Get status J->>P: GET status/ (3) P->>J: return status alt Status = Printed J->>J: Next Printing (4) else end end end J-->>N: done J->>K: cineges.printjob.prepare