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