- public doesReservationExists(reservation: Partial<Reservation>): [boolean, Reservation] {
- const foundReservation = this.getReservationBy(
- ReservationFilterKey.RESERVATION_ID,
- reservation?.id
- );
- return Utils.isUndefined(foundReservation) ? [false, null] : [true, foundReservation];
- }
-
- public startReservationExpirationSetInterval(customInterval?: number): void {
- const interval =
- customInterval ?? Constants.DEFAULT_RESERVATION_EXPIRATION_OBSERVATION_INTERVAL;
- logger.info(
- `${this.logPrefix()} Reservation expiration date interval is set to ${interval}
- and starts on charging station now`
- );
- // eslint-disable-next-line @typescript-eslint/no-misused-promises
- this.reservationExpirationSetInterval = setInterval(async (): Promise<void> => {
- if (this.hasEvses) {
- for (const evse of this.evses.values()) {
- for (const connector of evse.connectors.values()) {
- if (connector?.reservation?.expiryDate.toString() < new Date().toISOString()) {
- await this.removeReservation(connector.reservation);
- }
- }
- }
- } else {
- for (const connector of this.connectors.values()) {
- if (connector?.reservation?.expiryDate.toString() < new Date().toISOString()) {
- await this.removeReservation(connector.reservation);
- }
- }
- }
- }, interval);
- }
-
- public restartReservationExpiryDateSetInterval(): void {
- this.stopReservationExpirationSetInterval();
- this.startReservationExpirationSetInterval();
- }
-
- public validateIncomingRequestWithReservation(connectorId: number, idTag: string): boolean {
- const reservation = this.getReservationBy(ReservationFilterKey.CONNECTOR_ID, connectorId);
- return !Utils.isUndefined(reservation) && reservation.idTag === idTag;
- }
-