This commit is contained in:
2025-12-17 12:05:00 +01:00
parent 4d890863d3
commit 07dfefebe4
65 changed files with 6034 additions and 778 deletions

View File

@@ -14,17 +14,10 @@ export class InMemoryTrackRepository implements ITrackRepository {
private tracks: Map<string, Track>;
private readonly logger: Logger;
constructor(logger: Logger, seedData?: Track[]) {
constructor(logger: Logger) {
this.logger = logger;
this.logger.info('InMemoryTrackRepository initialized.');
this.tracks = new Map();
if (seedData) {
seedData.forEach(track => {
this.tracks.set(track.id, track);
this.logger.debug(`Seeded track: ${track.id}.`);
});
}
}
async findById(id: string): Promise<Track | null> {
@@ -59,8 +52,8 @@ export class InMemoryTrackRepository implements ITrackRepository {
this.logger.debug(`Finding tracks by game id: ${gameId}`);
try {
const tracks = Array.from(this.tracks.values())
.filter(track => track.gameId === gameId)
.sort((a, b) => a.name.localeCompare(b.name));
.filter(track => track.gameId.props === gameId)
.sort((a, b) => a.name.props.localeCompare(b.name.props));
this.logger.info(`Found ${tracks.length} tracks for game id: ${gameId}.`);
return tracks;
} catch (error) {
@@ -74,7 +67,7 @@ export class InMemoryTrackRepository implements ITrackRepository {
try {
const tracks = Array.from(this.tracks.values())
.filter(track => track.category === category)
.sort((a, b) => a.name.localeCompare(b.name));
.sort((a, b) => a.name.props.localeCompare(b.name.props));
this.logger.info(`Found ${tracks.length} tracks for category: ${category}.`);
return tracks;
} catch (error) {
@@ -87,8 +80,8 @@ export class InMemoryTrackRepository implements ITrackRepository {
this.logger.debug(`Finding tracks by country: ${country}`);
try {
const tracks = Array.from(this.tracks.values())
.filter(track => track.country.toLowerCase() === country.toLowerCase())
.sort((a, b) => a.name.localeCompare(b.name));
.filter(track => track.country.props.toLowerCase() === country.toLowerCase())
.sort((a, b) => a.name.props.localeCompare(b.name.props));
this.logger.info(`Found ${tracks.length} tracks for country: ${country}.`);
return tracks;
} catch (error) {
@@ -103,10 +96,10 @@ export class InMemoryTrackRepository implements ITrackRepository {
const lowerQuery = query.toLowerCase();
const tracks = Array.from(this.tracks.values())
.filter(track =>
track.name.toLowerCase().includes(lowerQuery) ||
track.shortName.toLowerCase().includes(lowerQuery)
track.name.props.toLowerCase().includes(lowerQuery) ||
track.shortName.props.toLowerCase().includes(lowerQuery)
)
.sort((a, b) => a.name.localeCompare(b.name));
.sort((a, b) => a.name.props.localeCompare(b.name.props));
this.logger.info(`Found ${tracks.length} tracks matching search query: ${query}.`);
return tracks;
} catch (error) {