README
Ticketing
- Liste d'interfaces de la partie ticketing.
- Regles de validation d'un ticket
- Conversion d'un ticket au format ASN1 (barcode)
Regles de validation
Pour savoir à quoi sert un test il ne faut pas hesiter à lire le code et les tests.
Valider un ticket
Permet de verifier qu'un ticket respecte un ensemble de regles (rules:
ValidDate
,AntiPassback
,EnabledTicket
,PassengerCount
,ValidationDelay
,ValidationCount
).
fonction : validate(ticket: Ticket): boolean
.
Valider la validation d'un ticket
Permet de verifier que le ticket est valider (ex qrcode scanné) sur le bon réseau (rules:
AllowedNetwork
).
fonction : validateValidation(ticket: Ticket, validation: ValidationInput): boolean
.
Utiliser les regles
Il est possible d'utiliser chaque regles indépendament.
Exemple avec la regle UserId
, elle permet de verifier qu'un user id est présent dans la liste des passagers du ticket.
import { UserId } from "@mybus/ticketing";
new UserId().validate(ticket, { userId: "9a8ab5c8-9f27-441e-bc96-3095fae38e0a" });
Recuperation du status du ticket
getTicketState(ticket): TicketState
en retour : UNDER_VALIDATION | COMPLETED | UNCOMPOSTED
Conversion d'un ticket au format ASN1
La fonction convertTicketToHex(ticket: Ticket): string
renvoie une string en hexadecimal représentant le ticket au format ASN1.
La fonction convertHexToTicketId(uicBarCodeHex: string): string | null
renvoie l'id du ticket à partir d'une string en hexadecimal représentant un ticket au format ASN1.