refactor parking structure construction into separate method

This commit is contained in:
2025-04-11 16:11:27 -07:00
parent 6998ff529c
commit 2a01d007a9

View File

@@ -31,24 +31,10 @@ export class ChapmanTimedApiBasedParkingRepositoryLoader implements ParkingRepos
try { try {
if (typeof json.Structures === "object") { if (typeof json.Structures === "object") {
const parkingStructures: IParkingStructure[] = json.Structures.map((jsonStructure: any) => { const parkingStructures: IParkingStructure[] = json.Structures.map(this.constructIParkingStructureFromJson);
const structureToReturn: IParkingStructure = {
capacity: jsonStructure.Capacity,
coordinates: {
latitude: jsonStructure.Latitude,
longitude: jsonStructure.Longitude,
},
id: ChapmanTimedApiBasedParkingRepositoryLoader.generateId(jsonStructure.Address),
name: jsonStructure.Name,
spotsAvailable: jsonStructure.CurrentCount,
address: jsonStructure.Address
}
return structureToReturn;
});
await Promise.all(parkingStructures.map(async (structure: IParkingStructure) => { await Promise.all(parkingStructures.map(async (structure: IParkingStructure) => {
this.repository.addOrUpdateParkingStructure(structure); await this.repository.addOrUpdateParkingStructure(structure);
})); }));
} }
} catch(e: any) { } catch(e: any) {
@@ -56,6 +42,22 @@ export class ChapmanTimedApiBasedParkingRepositoryLoader implements ParkingRepos
} }
} }
private constructIParkingStructureFromJson(jsonStructure: any) {
const structureToReturn: IParkingStructure = {
capacity: jsonStructure.Capacity,
coordinates: {
latitude: jsonStructure.Latitude,
longitude: jsonStructure.Longitude,
},
id: ChapmanTimedApiBasedParkingRepositoryLoader.generateId(jsonStructure.Address),
name: jsonStructure.Name,
spotsAvailable: jsonStructure.CurrentCount,
address: jsonStructure.Address
}
return structureToReturn;
}
private static normalizeAddress(address: string): string { private static normalizeAddress(address: string): string {
return address return address
.toLowerCase() .toLowerCase()