From 461b1d1a593110403ca701c3eac0196f57372f6c Mon Sep 17 00:00:00 2001 From: Brendan Chen Date: Tue, 8 Apr 2025 16:47:41 -0700 Subject: [PATCH] implement class --- src/repositories/InMemoryParkingRepository.ts | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/src/repositories/InMemoryParkingRepository.ts b/src/repositories/InMemoryParkingRepository.ts index 0048a1e..763ab38 100644 --- a/src/repositories/InMemoryParkingRepository.ts +++ b/src/repositories/InMemoryParkingRepository.ts @@ -2,22 +2,35 @@ import { ParkingGetterSetterRepository } from "./ParkingGetterSetterRepository"; import { IParkingStructure } from "../entities/ParkingRepositoryEntities"; export class InMemoryParkingRepository implements ParkingGetterSetterRepository { + private structures: Map; + + constructor() { + this.structures = new Map(); + } + async addOrUpdateParkingStructure(structure: IParkingStructure): Promise { + this.structures.set(structure.id, { ...structure }); } async clearParkingStructureData(): Promise { + this.structures.clear(); } async getParkingStructureById(id: string): Promise { - return null; + const structure = this.structures.get(id); + return structure ? { ...structure } : null; } async getParkingStructures(): Promise { - return []; + return Array.from(this.structures.values()).map(structure => ({ ...structure })); } async removeParkingStructureIfExists(id: string): Promise { + const structure = this.structures.get(id); + if (structure) { + this.structures.delete(id); + return { ...structure }; + } return null; } - }