diff --git a/lesson_10/libraries/src/loaders/dylan_lafferty_loaders.ts b/lesson_10/libraries/src/loaders/dylan_lafferty_loaders.ts deleted file mode 100644 index 0f17bcd70..000000000 --- a/lesson_10/libraries/src/loaders/dylan_lafferty_loaders.ts +++ /dev/null @@ -1,62 +0,0 @@ -import csv from 'csv-parser'; -import fs from 'fs'; -import { Credit, MediaItem } from '../models/index.js'; -import { Loader } from './loader.js'; - -export class DylanLaffertysLoader implements Loader { - getLoaderName(): string { - return 'dylanlafferty'; - } - async loadData(): Promise { - const credits = await this.loadCredits(); //loads credits from the csv file - const mediaItems = await this.loadMediaItems(); //loads media items from csv file - - //Creates a map where the key is a string and the value is MediaItem Object - const mapIndex = new Map(); - - //Loops through the CSV file and gets the id of the mediaItem that is specified. - for (const mediaItem of mediaItems) { - mapIndex.set(mediaItem.getId(), mediaItem); - - } - - for (const credit of credits) { - const mediaItem = mapIndex.get(credit.getMediaItemId()); //Finds the media item by getting media ID - if (mediaItem) { - mediaItem.addCredit(credit); - } - } - - console.log( - `Loaded ${credits.length} credits and ${mediaItems.length} media items`, - ); - //Returns a newly created array by converting the map values - return Array.from(mapIndex.values()); - } - - async loadMediaItems(): Promise { - const mediaItem = []; - const readable = fs - .createReadStream('data/media_items.csv', 'utf-8') - .pipe(csv()); - - for await (const row of readable) { - const { id, title, type, year } = row; - mediaItem.push(new MediaItem(id, title, type, year, [])); - } - return mediaItem; - } - - async loadCredits(): Promise { - const credits = []; - const readable = fs - .createReadStream('data/credits.csv', 'utf-8') - .pipe(csv()); - for await (const row of readable) { - const { media_item_id, role, name } = row; - credits.push(new Credit(media_item_id, name, role)); - } - return credits; - } -} -//# sourceMappingURL=dylan_lafferty_loaders.js.map diff --git a/lesson_10/libraries/src/loaders/mercedes_mathews_loader.ts b/lesson_10/libraries/src/loaders/khayla_saunders_loader.ts similarity index 70% rename from lesson_10/libraries/src/loaders/mercedes_mathews_loader.ts rename to lesson_10/libraries/src/loaders/khayla_saunders_loader.ts index fd15056f2..6fcb0edac 100644 --- a/lesson_10/libraries/src/loaders/mercedes_mathews_loader.ts +++ b/lesson_10/libraries/src/loaders/khayla_saunders_loader.ts @@ -3,22 +3,20 @@ import fs from 'fs'; import { Credit, MediaItem } from '../models/index.js'; import { Loader } from './loader.js'; -export class MercedesMathewsLoader implements Loader { +export class KhaylaSaundersLoader implements Loader { getLoaderName(): string { - return 'mercedesmathews'; + return 'khaylasaunders'; } - + //TA Help/Chatgpt to complete Extra Credit async loadData(): Promise { - const credits = await this.loadCredits(); const mediaItems = await this.loadMediaItems(); - - const mediaMap = new Map(); - for (const media of mediaItems) { - mediaMap.set(media.getId(), media); - } + const credits = await this.loadCredits(); for (const credit of credits) { - const mediaItem = mediaMap.get(credit.getMediaItemId()); + const mediaItem = mediaItems.find( + (item) => item.getId() === credit.getMediaItemId(), + ); + if (mediaItem) { mediaItem.addCredit(credit); } @@ -28,20 +26,20 @@ export class MercedesMathewsLoader implements Loader { `Loaded ${credits.length} credits and ${mediaItems.length} media items`, ); - console.log(...mediaItems.values()); - return [...mediaItems.values()]; + return mediaItems; } async loadMediaItems(): Promise { - const medias = []; + // TODO: Implement this method. + const mediaItems = []; const readable = fs .createReadStream('data/media_items.csv', 'utf-8') .pipe(csv()); for await (const row of readable) { const { id, title, type, year } = row; - medias.push(new MediaItem(id, title, type, year, [])); + mediaItems.push(new MediaItem(id, title, type, year, [])); } - return medias; + return mediaItems; } async loadCredits(): Promise { diff --git a/lesson_10/libraries/src/loaders/loaders.module.ts b/lesson_10/libraries/src/loaders/loaders.module.ts index b85b85314..9979ae614 100644 --- a/lesson_10/libraries/src/loaders/loaders.module.ts +++ b/lesson_10/libraries/src/loaders/loaders.module.ts @@ -2,12 +2,14 @@ import { Module } from '@nestjs/common'; import { AnthonyMaysLoader } from './anthony_mays_loader.js'; import { DylanLaffertysLoader } from './dylan_lafferty_loaders.js'; +import { KhaylaSaundersLoader } from './khayla_saunders_loader.js'; import { MercedesMathewsLoader } from './mercedes_mathews_loader.js'; export const Loaders = Symbol.for('Loaders'); const LOADER_PROVIDERS = [ AnthonyMaysLoader, + KhaylaSaundersLoader, DylanLaffertysLoader, MercedesMathewsLoader, ];