import * as moment from 'moment'; import { Information } from '../interfaces/information'; import { TicketDto } from '../interfaces/ticket/ticket.dto'; import { getTicketState } from './state'; export function getTicketInformation(ticket: TicketDto): Information { const ticketInfo = getTicketState(ticket); const expireAt = ticket.dateUntil; const countdown = getDiffInSecond(expireAt); const validationExpireAt = ticket?.lastValidValidation?.validUntil; const validationCountdown = getDiffInSecond(validationExpireAt); return { state: ticketInfo.state, expireAt, countdown, validationExpireAt, validationCountdown, errors: ticketInfo.errors, }; } function getDiffInSecond(expireAt?: Date): number | undefined { const now = Date.now(); if (!expireAt) { return undefined; } const countDown = moment(expireAt).diff(now, 'seconds'); return countDown < 0 ? 0 : countDown; }