@mybus/ticketing

- Liste d'interfaces de la partie ticketing. - Regles de validation d'un ticket - Conversion d'un ticket au format ASN1 (barcode)

Usage no npm install needed!

<script type="module">
  import mybusTicketing from 'https://cdn.skypack.dev/@mybus/ticketing';
</script>

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.