diff --git a/src/repositories/parking/InMemoryParkingRepository.ts b/src/repositories/parking/InMemoryParkingRepository.ts index 84cea32..e07307a 100644 --- a/src/repositories/parking/InMemoryParkingRepository.ts +++ b/src/repositories/parking/InMemoryParkingRepository.ts @@ -1,9 +1,9 @@ import { ParkingGetterSetterRepository } from "./ParkingGetterSetterRepository"; import { - IParkingStructure, - IParkingStructureTimestampRecord + IParkingStructure, + IParkingStructureTimestampRecord } from "../../entities/ParkingRepositoryEntities"; -import { HistoricalParkingAverageQueryResult, HistoricalParkingAverageQueryArguments } from "./ParkingGetterRepository"; +import { HistoricalParkingAverageQueryResult, HistoricalParkingAverageFilterArguments } from "./ParkingGetterRepository"; import { CircularQueue } from "../../types/CircularQueue"; import { PARKING_LOGGING_INTERVAL_MS } from "../../environment"; @@ -63,7 +63,7 @@ export class InMemoryParkingRepository implements ParkingGetterSetterRepository return null; }; - getHistoricalAveragesOfParkingStructureCounts = async (id: string, options: HistoricalParkingAverageQueryArguments): Promise => { + getHistoricalAveragesOfParkingStructureCounts = async (id: string, options: HistoricalParkingAverageFilterArguments): Promise => { const queue = this.historicalData.get(id); if (!queue || queue.size() === 0) { return []; @@ -107,7 +107,7 @@ export class InMemoryParkingRepository implements ParkingGetterSetterRepository private calculateAveragesFromRecords = ( records: IParkingStructureTimestampRecord[], - options: HistoricalParkingAverageQueryArguments + options: HistoricalParkingAverageFilterArguments ): HistoricalParkingAverageQueryResult[] => { const results: HistoricalParkingAverageQueryResult[] = []; const { from, to, intervalMs } = options; diff --git a/src/repositories/parking/ParkingGetterRepository.ts b/src/repositories/parking/ParkingGetterRepository.ts index e1346a4..f3823e2 100644 --- a/src/repositories/parking/ParkingGetterRepository.ts +++ b/src/repositories/parking/ParkingGetterRepository.ts @@ -1,6 +1,6 @@ import { IParkingStructure } from "../../entities/ParkingRepositoryEntities"; -export interface HistoricalParkingAverageQueryArguments { +export interface HistoricalParkingAverageFilterArguments { from: Date; to: Date; intervalMs: number; @@ -22,5 +22,5 @@ export interface ParkingGetterRepository { * @param id * @param options */ - getHistoricalAveragesOfParkingStructureCounts(id: string, options: HistoricalParkingAverageQueryArguments): Promise; + getHistoricalAveragesOfParkingStructureCounts(id: string, options: HistoricalParkingAverageFilterArguments): Promise; } diff --git a/src/repositories/parking/RedisParkingRepository.ts b/src/repositories/parking/RedisParkingRepository.ts index 5704226..48a74b1 100644 --- a/src/repositories/parking/RedisParkingRepository.ts +++ b/src/repositories/parking/RedisParkingRepository.ts @@ -1,6 +1,6 @@ import { ParkingGetterSetterRepository } from "./ParkingGetterSetterRepository"; import { IParkingStructure } from "../../entities/ParkingRepositoryEntities"; -import { HistoricalParkingAverageQueryResult, HistoricalParkingAverageQueryArguments } from "./ParkingGetterRepository"; +import { HistoricalParkingAverageQueryResult, HistoricalParkingAverageFilterArguments } from "./ParkingGetterRepository"; import { BaseRedisRepository } from "../BaseRedisRepository"; import { PARKING_LOGGING_INTERVAL_MS } from "../../environment"; @@ -75,7 +75,7 @@ export class RedisParkingRepository extends BaseRedisRepository implements Parki return null; }; - getHistoricalAveragesOfParkingStructureCounts = async (id: string, options: HistoricalParkingAverageQueryArguments): Promise => { + getHistoricalAveragesOfParkingStructureCounts = async (id: string, options: HistoricalParkingAverageFilterArguments): Promise => { return this.calculateAveragesFromRecords(id, options); }; @@ -157,7 +157,7 @@ export class RedisParkingRepository extends BaseRedisRepository implements Parki private calculateAveragesFromRecords = async ( id: string, - options: HistoricalParkingAverageQueryArguments + options: HistoricalParkingAverageFilterArguments ): Promise => { const keys = this.createRedisKeys(id); const { from, to, intervalMs } = options; diff --git a/src/repositories/parking/__tests__/ParkingRepositorySharedTests.test.ts b/src/repositories/parking/__tests__/ParkingRepositorySharedTests.test.ts index d6d5858..feabfa1 100644 --- a/src/repositories/parking/__tests__/ParkingRepositorySharedTests.test.ts +++ b/src/repositories/parking/__tests__/ParkingRepositorySharedTests.test.ts @@ -1,9 +1,9 @@ import { afterEach, beforeEach, describe, expect, it, jest } from "@jest/globals"; import { InMemoryParkingRepository, } from "../InMemoryParkingRepository"; import { IParkingStructure } from "../../../entities/ParkingRepositoryEntities"; -import { HistoricalParkingAverageQueryArguments } from "../ParkingGetterRepository"; import { ParkingGetterSetterRepository } from "../ParkingGetterSetterRepository"; import { RedisParkingRepository } from "../RedisParkingRepository"; +import { HistoricalParkingAverageFilterArguments } from "../ParkingGetterRepository"; interface RepositoryHolder { name: string; @@ -151,7 +151,7 @@ describe.each(repositoryImplementations)('$name', (holder) => { describe("getHistoricalAveragesOfParkingStructureCounts", () => { it("should return empty array for non-existent structure or no data", async () => { - const options: HistoricalParkingAverageQueryArguments = { + const options: HistoricalParkingAverageFilterArguments = { from: new Date(1000), to: new Date(2000), intervalMs: 500 @@ -182,7 +182,7 @@ describe.each(repositoryImplementations)('$name', (holder) => { } const now = Date.now(); - const options: HistoricalParkingAverageQueryArguments = { + const options: HistoricalParkingAverageFilterArguments = { from: new Date(now - 10000), // Look back 10 seconds to: new Date(now + 10000), // Look forward 10 seconds intervalMs: 20000 // Single large interval diff --git a/src/resolvers/ParkingStructureResolvers.ts b/src/resolvers/ParkingStructureResolvers.ts index a108daf..b417876 100644 --- a/src/resolvers/ParkingStructureResolvers.ts +++ b/src/resolvers/ParkingStructureResolvers.ts @@ -1,10 +1,10 @@ import { Resolvers } from "../generated/graphql"; import { ServerContext } from "../ServerContext"; -import { HistoricalParkingAverageQueryArguments } from "../repositories/parking/ParkingGetterRepository"; +import { HistoricalParkingAverageFilterArguments } from "../repositories/parking/ParkingGetterRepository"; import { GraphQLError } from "graphql/error"; import { - PARKING_HISTORICAL_AVERAGE_MAXIMUM_TIMESPAN, - PARKING_HISTORICAL_AVERAGE_MINIMUM_INTERVAL + PARKING_HISTORICAL_AVERAGE_MAXIMUM_TIMESPAN, + PARKING_HISTORICAL_AVERAGE_MINIMUM_INTERVAL } from "../environment"; export const ParkingStructureResolvers: Resolvers = { @@ -27,7 +27,7 @@ export const ParkingStructureResolvers: Resolvers = { throwBadUserInputError('No interval provided'); return null; } - const queryArguments: HistoricalParkingAverageQueryArguments = { + const queryArguments: HistoricalParkingAverageFilterArguments = { from: new Date(args.input.from), intervalMs: args.input.intervalMs, to: new Date(args.input.to),