From 45df97f15c1c8384438b5d9deaa7b97f505a0e0d Mon Sep 17 00:00:00 2001 From: Brendan Chen Date: Thu, 10 Apr 2025 16:36:02 -0700 Subject: [PATCH] add methods to generate an ID based on address --- ...pmanTimedApiBasedParkingRepositoryLoader.ts | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/loaders/ParkingRepositoryLoaders/ChapmanTimedApiBasedParkingRepositoryLoader.ts b/src/loaders/ParkingRepositoryLoaders/ChapmanTimedApiBasedParkingRepositoryLoader.ts index 0ff07ef..2bb88ab 100644 --- a/src/loaders/ParkingRepositoryLoaders/ChapmanTimedApiBasedParkingRepositoryLoader.ts +++ b/src/loaders/ParkingRepositoryLoaders/ChapmanTimedApiBasedParkingRepositoryLoader.ts @@ -1,5 +1,6 @@ import { ParkingRepositoryLoader } from "./ParkingRepositoryLoader"; import { ParkingGetterSetterRepository } from "../../repositories/ParkingGetterSetterRepository"; +import { createHash } from "node:crypto"; export class ChapmanTimedApiBasedParkingRepositoryLoader implements ParkingRepositoryLoader { public static readonly id = "chapman-parking-loader"; @@ -11,4 +12,21 @@ export class ChapmanTimedApiBasedParkingRepositoryLoader implements ParkingRepos async fetchAndUpdateParkingStructures(): Promise { // TODO } + + private normalizeAddress(address: string): string { + return address + .toLowerCase() + .split(/\s+/) + .filter(part => part.length > 0) + .join(' '); + } + + private generateId(address: string): string { + const normalized = this.normalizeAddress(address); + const hash = createHash('sha256') + .update(normalized) + .digest('hex'); + + return hash.substring(0, 12); + } }