From 8f59e8dbb31a930e148a3a7ff6cba9274f74a9d5 Mon Sep 17 00:00:00 2001 From: haldanek Date: Thu, 17 Oct 2024 00:44:40 +0000 Subject: [PATCH 1/6] feat: adds created file for Kimberlee's Lesson_10 Loading the media collection --- .../src/loaders/kimberlee_haldane_loader.ts | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 lesson_10/libraries/src/loaders/kimberlee_haldane_loader.ts diff --git a/lesson_10/libraries/src/loaders/kimberlee_haldane_loader.ts b/lesson_10/libraries/src/loaders/kimberlee_haldane_loader.ts new file mode 100644 index 000000000..f3e6ea431 --- /dev/null +++ b/lesson_10/libraries/src/loaders/kimberlee_haldane_loader.ts @@ -0,0 +1,38 @@ +import csv from 'csv-parser'; +import fs from 'fs'; +import { Credit, MediaItem } from '../models/index.js'; +import { Loader } from './loader.js'; + +export class KimberleeHaldaneLoader implements Loader { + getLoaderName(): string { + return 'kimberleehaldane'; + } + + async loadData(): Promise { + const credits = await this.loadCredits(); + const mediaItems = await this.loadMediaItems(); + + console.log( + `Loaded ${credits.length} credits and ${mediaItems.length} media items`, + ); + + return [...mediaItems.values()]; + } + + async loadMediaItems(): Promise { + // TODO: Implement this method. + return []; + } + + 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; + } +} From 5ce836b35b4928b1503e3ce02cd34a9cdcf45726 Mon Sep 17 00:00:00 2001 From: haldanek Date: Thu, 17 Oct 2024 19:53:18 +0000 Subject: [PATCH 2/6] feat: adds Lesson_10 loading the media collection/ parsing a csv for Kimberlee --- .../src/loaders/kimberlee_haldane_loader.ts | 24 +++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/lesson_10/libraries/src/loaders/kimberlee_haldane_loader.ts b/lesson_10/libraries/src/loaders/kimberlee_haldane_loader.ts index f3e6ea431..61d95169d 100644 --- a/lesson_10/libraries/src/loaders/kimberlee_haldane_loader.ts +++ b/lesson_10/libraries/src/loaders/kimberlee_haldane_loader.ts @@ -20,8 +20,28 @@ export class KimberleeHaldaneLoader implements Loader { } async loadMediaItems(): Promise { - // TODO: Implement this method. - return []; + const mediaItems = []; + const readable = fs + .createReadStream('data/media_items.csv', 'utf-8') + .pipe(csv()); + + /*interface Movie { + id: number; + type: string; + title: string; + genre: string; + year: number; + } + + const results: Movie[] = [];*/ + + fs.createReadStream('data/media_items.csv', 'utf-8').pipe(csv()); + for await (const row of readable) { + const { id, type, title, year } = row; + mediaItems.push(new MediaItem(id, title, type, year, [])); + } + + return mediaItems; } async loadCredits(): Promise { From be348c1121f93071b1adaf009ba325159f0b3f42 Mon Sep 17 00:00:00 2001 From: haldanek Date: Thu, 17 Oct 2024 19:55:41 +0000 Subject: [PATCH 3/6] feat: added Kimberlee as a loader --- lesson_10/libraries/src/loaders/loaders.module.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lesson_10/libraries/src/loaders/loaders.module.ts b/lesson_10/libraries/src/loaders/loaders.module.ts index 5997b6f7e..c0b60eae6 100644 --- a/lesson_10/libraries/src/loaders/loaders.module.ts +++ b/lesson_10/libraries/src/loaders/loaders.module.ts @@ -1,11 +1,11 @@ import { Module } from '@nestjs/common'; import { AnthonyMaysLoader } from './anthony_mays_loader.js'; -import { XavierCruzLoader } from './xavier_cruz_loader.js'; +import { KimberleeHaldaneLoader } from './kimberlee_haldane_loader.js'; export const Loaders = Symbol.for('Loaders'); // Add your quiz provider here. -const LOADER_PROVIDERS = [AnthonyMaysLoader, XavierCruzLoader]; +const LOADER_PROVIDERS = [AnthonyMaysLoader, KimberleeHaldaneLoader]; @Module({ providers: [ From ea6826408f8a976ba3bace6432d9c8c3bb65f9e7 Mon Sep 17 00:00:00 2001 From: haldanek Date: Thu, 17 Oct 2024 20:10:42 +0000 Subject: [PATCH 4/6] feat: adds lesson_10 loading the media/ parsing a csv for Kimberlee chore: added a source note --- .../src/loaders/kimberlee_haldane_loader.ts | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/lesson_10/libraries/src/loaders/kimberlee_haldane_loader.ts b/lesson_10/libraries/src/loaders/kimberlee_haldane_loader.ts index 61d95169d..c2df2c44e 100644 --- a/lesson_10/libraries/src/loaders/kimberlee_haldane_loader.ts +++ b/lesson_10/libraries/src/loaders/kimberlee_haldane_loader.ts @@ -25,20 +25,12 @@ export class KimberleeHaldaneLoader implements Loader { .createReadStream('data/media_items.csv', 'utf-8') .pipe(csv()); - /*interface Movie { - id: number; - type: string; - title: string; - genre: string; - year: number; - } - - const results: Movie[] = [];*/ - fs.createReadStream('data/media_items.csv', 'utf-8').pipe(csv()); for await (const row of readable) { const { id, type, title, year } = row; mediaItems.push(new MediaItem(id, title, type, year, [])); + //Xavier helped me with line 31. I couldn't figure out why + //MediaItems was asking for things not listed on the media items list. } return mediaItems; From d57ac70382c3cfa0356d712b4e931c56f278f1d7 Mon Sep 17 00:00:00 2001 From: haldanek Date: Fri, 18 Oct 2024 01:09:20 +0000 Subject: [PATCH 5/6] chore: moved comment above invocation and added a space after the // --- lesson_10/libraries/src/loaders/kimberlee_haldane_loader.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lesson_10/libraries/src/loaders/kimberlee_haldane_loader.ts b/lesson_10/libraries/src/loaders/kimberlee_haldane_loader.ts index c2df2c44e..509f34cb3 100644 --- a/lesson_10/libraries/src/loaders/kimberlee_haldane_loader.ts +++ b/lesson_10/libraries/src/loaders/kimberlee_haldane_loader.ts @@ -28,9 +28,9 @@ export class KimberleeHaldaneLoader implements Loader { fs.createReadStream('data/media_items.csv', 'utf-8').pipe(csv()); for await (const row of readable) { const { id, type, title, year } = row; + // Xavier helped me with line 33. I couldn't figure out why + // MediaItems was asking for things not listed on the media items list. mediaItems.push(new MediaItem(id, title, type, year, [])); - //Xavier helped me with line 31. I couldn't figure out why - //MediaItems was asking for things not listed on the media items list. } return mediaItems; From d0e62ba4c02ec48aa9d53100fb54739b52e3c015 Mon Sep 17 00:00:00 2001 From: haldanek Date: Fri, 18 Oct 2024 01:15:52 +0000 Subject: [PATCH 6/6] chore: fixed loader module --- lesson_10/libraries/src/loaders/loaders.module.ts | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/lesson_10/libraries/src/loaders/loaders.module.ts b/lesson_10/libraries/src/loaders/loaders.module.ts index c0b60eae6..6118a9932 100644 --- a/lesson_10/libraries/src/loaders/loaders.module.ts +++ b/lesson_10/libraries/src/loaders/loaders.module.ts @@ -1,11 +1,23 @@ import { Module } from '@nestjs/common'; +import { AngelicaCastilloLoader } from './angelica_castillo_loader.js'; import { AnthonyMaysLoader } from './anthony_mays_loader.js'; +import { JamesCapparellLoader } from './james_capparell_loader.js'; import { KimberleeHaldaneLoader } from './kimberlee_haldane_loader.js'; +import { NileJacksonLoader } from './nile_jackson_loader.js'; +import { XavierCruzLoader } from './xavier_cruz_loader.js'; export const Loaders = Symbol.for('Loaders'); // Add your quiz provider here. -const LOADER_PROVIDERS = [AnthonyMaysLoader, KimberleeHaldaneLoader]; + +const LOADER_PROVIDERS = [ + AnthonyMaysLoader, + AngelicaCastilloLoader, + JamesCapparellLoader, + NileJacksonLoader, + XavierCruzLoader, + KimberleeHaldaneLoader, +]; @Module({ providers: [