@golemio/pid
Version:
Golemio PID Module
74 lines (73 loc) • 4.15 kB
TypeScript
import { DeparturesRepository } from "../../data-access";
import { IStop } from "../../interfaces/IStop";
import { ITransferOutputDto } from "../../interfaces/ITransferOutputDto";
import { IV4TransferDto } from "../../interfaces/IV4TransferDto";
import { TransferStops } from "../../interfaces/TransferStops";
import { TripsToTransfers } from "../../interfaces/TripsToTransfers";
import { GtfsTripStopsRepository } from "../../../ropid-gtfs/data-access/redis/GtfsTripStopsRepository";
import { DelayComputationRepository } from "../../../public/data-access/redis/DelayComputationRepository";
import { PublicGtfsDepartureRepository } from "../../../public/data-access/redis/PublicGtfsDepartureRepository";
import { PublicStopTimeRepository } from "../../../public/data-access/redis/PublicStopTimeRepository";
import { PublicVehiclePositionsRepository } from "../../../public/data-access/redis/PublicVehiclePositionsRepository";
import { ILogger } from "@golemio/core/dist/helpers";
import { Moment } from "@golemio/core/dist/shared/moment-timezone";
import { TransferDepartureTransformation } from "../transformations/TransferDepartureTransformation";
export type FilterTripToStops = {
currentLine: TransferStops;
currentStop: IStop;
otherLinesMap: TripsToTransfers;
tripsToKeep: Set<string>;
};
export type FilterSpecificOptions = {
previousCountMax: number;
isOppositeDirectionFilterStopNameStrict: boolean;
};
export type LineFilterDto = {
data: FilterTripToStops;
options: FilterSpecificOptions;
};
export type LineFilterFn = (params: LineFilterDto) => Promise<LineFilterDto>;
export declare class TransferFacade {
private log;
private publicDepartureRepository;
private departuresRepository;
private departureTransformation;
private tripRepository;
private stopTimeRepository;
private delayComputationRepository;
private gtfsTripStopsRepository;
private static readonly DEPARTURES_LIMIT_LOWER;
private static readonly DEPARTURES_LIMIT_UPPER;
private static readonly MINUTE_AS_MS;
private static readonly OPEN_MINUTES_IN_PAST;
private static readonly OPEN_MINUTES_IN_PAST_MS;
constructor(log: ILogger, publicDepartureRepository: PublicGtfsDepartureRepository, departuresRepository: DeparturesRepository, departureTransformation: TransferDepartureTransformation, tripRepository: PublicVehiclePositionsRepository, stopTimeRepository: PublicStopTimeRepository, delayComputationRepository: DelayComputationRepository, gtfsTripStopsRepository: GtfsTripStopsRepository);
getTransferDepartures(stopIds: string[], tripNumber: string | null, currentMoment: Moment, minutesOffset: number, timeZone?: string): Promise<ITransferOutputDto[]>;
private static sortByDepartureTime;
private static isDifferentLine;
private static allowedTransfers;
private static jsonPathDataToLineFilterStop;
private calculateTimeFrom;
getTransferCache(stopId: string, stopIds: string[], limit: number, reqNumber: number, vehicleType: number, timeFrom: Date, sameNameStopIds: string[]): Promise<IV4TransferDto>;
private static findStopTimeByStopId;
/**
* Find position from cache for a vehicle of given type and registration number. If no position was found and the vehicle type
* given is bus, attempt fallback to trolleybus.
*/
private getDetailedVehiclePositionWithFallback;
private findVehicleArrival;
private processMultiplePositionsForDeparturesAtOnce;
private static findPreviousStop;
private static isOtherEndNearCurrent;
private static isOtherSubsetOfCurrent;
private static isOppositeDirection;
private static filterOutForwardSubgroupOfLine;
private static filterOutLinesWithBacktrackingConflict;
private static applyFiltersSequentially;
private static rawTripLinesEntriesToTransfersMap;
findRelevantTripIdsFromLines(tripIds: Set<string>, currentStopInput: IStop, currentTripId: string, previousCountMax?: number, isOppositeDirectionFilterStopNameStrict?: boolean): Promise<string[]>;
/**
* Fallback options as defined by ROPID
*/
private get defaultOptions();
}