From 45f2cb9de64fbb9c070f560a285f1750557c6ede Mon Sep 17 00:00:00 2001 From: karensprojects22 Date: Thu, 27 Mar 2025 18:05:38 +0000 Subject: [PATCH 1/3] feat: adds lKarens lesson_10 loader.ts file --- .../src/loaders/karen_alabi_loader.ts | 46 +++++++++++++++++++ .../libraries/src/loaders/loaders.module.ts | 3 +- 2 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 lesson_10/libraries/src/loaders/karen_alabi_loader.ts diff --git a/lesson_10/libraries/src/loaders/karen_alabi_loader.ts b/lesson_10/libraries/src/loaders/karen_alabi_loader.ts new file mode 100644 index 000000000..390513c7d --- /dev/null +++ b/lesson_10/libraries/src/loaders/karen_alabi_loader.ts @@ -0,0 +1,46 @@ +import csv from 'csv-parser'; +import fs from 'fs'; +import { Credit, MediaItem } from '../models/index.js'; +import { Loader } from './loader.js'; + +export class KarenAlabiLoader implements Loader { + getLoaderName(): string { + return 'karenalabi'; + } + + 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 { + 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; + mediaitems.push(new MediaItem(id, title, type, year, [])); + } + return mediaitems; + } + + 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; + } + +} diff --git a/lesson_10/libraries/src/loaders/loaders.module.ts b/lesson_10/libraries/src/loaders/loaders.module.ts index 22e32e2cd..443459a3e 100644 --- a/lesson_10/libraries/src/loaders/loaders.module.ts +++ b/lesson_10/libraries/src/loaders/loaders.module.ts @@ -1,10 +1,11 @@ import { Module } from '@nestjs/common'; import { AnthonyMaysLoader } from './anthony_mays_loader.js'; +import { KarenAlabiLoader } from './karen_alabi_loader.js'; export const Loaders = Symbol.for('Loaders'); -const LOADER_PROVIDERS = [AnthonyMaysLoader]; +const LOADER_PROVIDERS = [AnthonyMaysLoader, KarenAlabiLoader]; @Module({ providers: [ From 4a638f2a47a52fea3608e07b0445d0c8776851fc Mon Sep 17 00:00:00 2001 From: karensprojects22 Date: Fri, 28 Mar 2025 11:44:45 +0000 Subject: [PATCH 2/3] chore: updated lesson_10 loader.modules.ts file --- lesson_10/libraries/src/loaders/loaders.module.ts | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/lesson_10/libraries/src/loaders/loaders.module.ts b/lesson_10/libraries/src/loaders/loaders.module.ts index 22e32e2cd..d12bdc6d3 100644 --- a/lesson_10/libraries/src/loaders/loaders.module.ts +++ b/lesson_10/libraries/src/loaders/loaders.module.ts @@ -1,10 +1,18 @@ import { Module } from '@nestjs/common'; import { AnthonyMaysLoader } from './anthony_mays_loader.js'; +import { DylanLaffertysLoader } from './dylan_lafferty_loaders.js'; +import { KarenAlabiLoader } from './karen_alabi_loader.js'; +import { MercedesMathewsLoader } from './mercedes_mathews_loader.js'; export const Loaders = Symbol.for('Loaders'); -const LOADER_PROVIDERS = [AnthonyMaysLoader]; +const LOADER_PROVIDERS = [ + AnthonyMaysLoader, + DylanLaffertysLoader, + MercedesMathewsLoader, + KarenAlabiLoader, +]; @Module({ providers: [ From ba2ec261d655c5c916c32cc6c4cf3c3e87bd03e3 Mon Sep 17 00:00:00 2001 From: "Anthony D. Mays" Date: Wed, 2 Apr 2025 22:09:47 -0400 Subject: [PATCH 3/3] Update loaders.module.ts --- lesson_10/libraries/src/loaders/loaders.module.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lesson_10/libraries/src/loaders/loaders.module.ts b/lesson_10/libraries/src/loaders/loaders.module.ts index 04353e43e..277c9e39e 100644 --- a/lesson_10/libraries/src/loaders/loaders.module.ts +++ b/lesson_10/libraries/src/loaders/loaders.module.ts @@ -3,7 +3,7 @@ import { AnthonyMaysLoader } from './anthony_mays_loader.js'; import { ChanelHuttLoader } from './chanel_hutt_loader.js'; import { DavidAdenaikeLoader } from './david_adenaike_loader.js'; import { DavisDLoader } from './davis_d_loader.js'; -import { DylanLaffertysLoader } from './dylan_lafferty_loaders.js';\ +import { DylanLaffertysLoader } from './dylan_lafferty_loaders.js'; import { JBeyLoader } from './JBey_loader.js'; import { KarenAlabiLoader } from './karen_alabi_loader.js'; import { MercedesMathewsLoader } from './mercedes_mathews_loader.js';