mirror of
https://github.com/brendan-ch/project-inter-server.git
synced 2026-04-17 07:50:31 +00:00
Add SHUTTLE_WILL_LEAVE_STOP event and upload payload names
This commit is contained in:
@@ -5,6 +5,7 @@ export const ShuttleRepositoryEvent = {
|
||||
SHUTTLE_UPDATED: "shuttleUpdated",
|
||||
SHUTTLE_REMOVED: "shuttleRemoved",
|
||||
SHUTTLE_WILL_ARRIVE_AT_STOP: "shuttleArrivedAtStop",
|
||||
SHUTTLE_WILL_LEAVE_STOP: "shuttleWillLeaveStop",
|
||||
} as const;
|
||||
|
||||
export type ShuttleRepositoryEventName = typeof ShuttleRepositoryEvent[keyof typeof ShuttleRepositoryEvent];
|
||||
@@ -12,15 +13,20 @@ export type ShuttleRepositoryEventName = typeof ShuttleRepositoryEvent[keyof typ
|
||||
export type EtaRemovedEventPayload = IEta;
|
||||
export type EtaDataClearedEventPayload = IEta[];
|
||||
|
||||
export interface WillArriveAtStopPayload {
|
||||
export interface ShuttleWillArriveAtStopPayload {
|
||||
lastStopArrival?: ShuttleStopArrival;
|
||||
willArriveAt: ShuttleStopArrival;
|
||||
};
|
||||
|
||||
export interface ShuttleWillLeaveStopPayload {
|
||||
stopArrivalThatShuttleIsLeaving: ShuttleStopArrival;
|
||||
}
|
||||
|
||||
export interface ShuttleRepositoryEventPayloads {
|
||||
[ShuttleRepositoryEvent.SHUTTLE_UPDATED]: IShuttle,
|
||||
[ShuttleRepositoryEvent.SHUTTLE_REMOVED]: IShuttle,
|
||||
[ShuttleRepositoryEvent.SHUTTLE_WILL_ARRIVE_AT_STOP]: WillArriveAtStopPayload,
|
||||
[ShuttleRepositoryEvent.SHUTTLE_WILL_ARRIVE_AT_STOP]: ShuttleWillArriveAtStopPayload,
|
||||
[ShuttleRepositoryEvent.SHUTTLE_WILL_LEAVE_STOP]: ShuttleWillLeaveStopPayload,
|
||||
}
|
||||
|
||||
export type ShuttleRepositoryEventListener<T extends ShuttleRepositoryEventName> = (
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { SelfUpdatingETARepository } from "./SelfUpdatingETARepository";
|
||||
import { ShuttleGetterRepository, ShuttleRepositoryEvent, ShuttleStopArrival, ShuttleTravelTimeDataIdentifier, ShuttleTravelTimeDateFilterArguments, WillArriveAtStopPayload } from "../ShuttleGetterRepository";
|
||||
import { ShuttleGetterRepository, ShuttleRepositoryEvent, ShuttleStopArrival, ShuttleTravelTimeDataIdentifier, ShuttleTravelTimeDateFilterArguments, ShuttleWillArriveAtStopPayload } from "../ShuttleGetterRepository";
|
||||
import { BaseInMemoryETARepository } from "./BaseInMemoryETARepository";
|
||||
import { IOrderedStop, IShuttle } from "../../../entities/ShuttleRepositoryEntities";
|
||||
import { ETARepositoryEvent } from "./ETAGetterRepository";
|
||||
@@ -159,7 +159,7 @@ export class InMemorySelfUpdatingETARepository extends BaseInMemoryETARepository
|
||||
private async handleShuttleWillArriveAtStop({
|
||||
lastStopArrival: lastArrival,
|
||||
willArriveAt: currentArrival,
|
||||
}: WillArriveAtStopPayload): Promise<void> {
|
||||
}: ShuttleWillArriveAtStopPayload): Promise<void> {
|
||||
if (lastArrival) {
|
||||
// disallow cases where this gets triggered multiple times
|
||||
if (lastArrival.stopId === currentArrival.stopId) return;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { SelfUpdatingETARepository } from "./SelfUpdatingETARepository";
|
||||
import { BaseRedisETARepository } from "./BaseRedisETARepository";
|
||||
import { createClient, RedisClientType } from "redis";
|
||||
import { ShuttleGetterRepository, ShuttleRepositoryEvent, ShuttleStopArrival, ShuttleTravelTimeDataIdentifier, ShuttleTravelTimeDateFilterArguments, WillArriveAtStopPayload } from "../ShuttleGetterRepository";
|
||||
import { ShuttleGetterRepository, ShuttleRepositoryEvent, ShuttleStopArrival, ShuttleTravelTimeDataIdentifier, ShuttleTravelTimeDateFilterArguments, ShuttleWillArriveAtStopPayload } from "../ShuttleGetterRepository";
|
||||
import { REDIS_RECONNECT_INTERVAL } from "../../../environment";
|
||||
import { IEta, IOrderedStop, IShuttle } from "../../../entities/ShuttleRepositoryEntities";
|
||||
import { ETARepositoryEvent } from "./ETAGetterRepository";
|
||||
@@ -181,7 +181,7 @@ export class RedisSelfUpdatingETARepository extends BaseRedisETARepository imple
|
||||
private async handleShuttleWillArriveAtStop({
|
||||
lastStopArrival: lastArrival,
|
||||
willArriveAt: currentArrival,
|
||||
}: WillArriveAtStopPayload) {
|
||||
}: ShuttleWillArriveAtStopPayload) {
|
||||
// only update time traveled if last arrival exists
|
||||
if (lastArrival) {
|
||||
// disallow cases where this gets triggered multiple times
|
||||
|
||||
Reference in New Issue
Block a user