Skip to content

Commit 70d28f7

Browse files
authored
Merge branch 'code-differently:main' into main
2 parents 41cb92f + abb394d commit 70d28f7

21 files changed

+925
-7
lines changed
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package com.codedifferently.lesson9.dataprovider;
2+
3+
import java.util.Map;
4+
import org.springframework.stereotype.Service;
5+
6+
@Service
7+
public class MontezBrProvider extends DataProvider {
8+
public String getProviderName() {
9+
return "montezb";
10+
}
11+
12+
public Map<String, Class> getColumnTypeByName() {
13+
return Map.of(
14+
"column1", Float.class,
15+
"column2", Short.class,
16+
"column3", Boolean.class,
17+
"column4", Integer.class,
18+
"column5", Long.class,
19+
"column6", Double.class,
20+
"column7", String.class);
21+
}
22+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package com.codedifferently.lesson9.dataprovider;
2+
3+
import java.util.Map;
4+
import org.springframework.stereotype.Service;
5+
6+
@Service
7+
public class OliviaJamesProvider extends DataProvider {
8+
9+
public String getProviderName() {
10+
11+
return "oliviajames";
12+
}
13+
14+
public Map<String, Class> getColumnTypeByName() {
15+
return Map.of(
16+
"column1", String.class,
17+
"column2", Double.class,
18+
"column3", Long.class,
19+
"column4", Short.class,
20+
"column5", Integer.class,
21+
"column6", Float.class,
22+
"column7", Boolean.class);
23+
}
24+
}
Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
[
2+
{
3+
"column1": "1.863895E38",
4+
"column2": "6998",
5+
"column3": "true",
6+
"column4": "1269627853",
7+
"column5": "5820458545739166720",
8+
"column6": "1.436185005130375E308",
9+
"column7": "ye25g"
10+
},
11+
{
12+
"column1": "2.2073703E38",
13+
"column2": "31051",
14+
"column3": "false",
15+
"column4": "195099502",
16+
"column5": "7823978771683994624",
17+
"column6": "1.703004837906517E308",
18+
"column7": "yibn0"
19+
},
20+
{
21+
"column1": "3.3211768E38",
22+
"column2": "27056",
23+
"column3": "false",
24+
"column4": "557211270",
25+
"column5": "3555070442975083008",
26+
"column6": "1.6667231001500445E308",
27+
"column7": "z7flxj9ih"
28+
},
29+
{
30+
"column1": "1.6676249E38",
31+
"column2": "11188",
32+
"column3": "true",
33+
"column4": "1364839748",
34+
"column5": "5247280208224276480",
35+
"column6": "5.573864411176169E307",
36+
"column7": "703typ2qsxni"
37+
},
38+
{
39+
"column1": "2.3070655E38",
40+
"column2": "25660",
41+
"column3": "false",
42+
"column4": "991280458",
43+
"column5": "4047343583020718592",
44+
"column6": "9.819210694336025E306",
45+
"column7": "4z7wnu"
46+
},
47+
{
48+
"column1": "3.4997513E37",
49+
"column2": "7615",
50+
"column3": "true",
51+
"column4": "681995715",
52+
"column5": "2643907710975564800",
53+
"column6": "5.146227084316043E307",
54+
"column7": "cwe5vf8"
55+
},
56+
{
57+
"column1": "1.517785E38",
58+
"column2": "2489",
59+
"column3": "true",
60+
"column4": "2090041544",
61+
"column5": "3217921269451220480",
62+
"column6": "5.74053698522329E307",
63+
"column7": "2bt47x8dpyw"
64+
},
65+
{
66+
"column1": "8.259404E37",
67+
"column2": "2148",
68+
"column3": "false",
69+
"column4": "1134389096",
70+
"column5": "4917746663066431488",
71+
"column6": "1.5187138866355861E308",
72+
"column7": "t3ocnadzx1l5"
73+
},
74+
{
75+
"column1": "2.9935023E38",
76+
"column2": "2652",
77+
"column3": "true",
78+
"column4": "515853127",
79+
"column5": "1803397750918669056",
80+
"column6": "4.686361471260443E307",
81+
"column7": "lsi2w6z"
82+
},
83+
{
84+
"column1": "1.8579561E38",
85+
"column2": "31546",
86+
"column3": "false",
87+
"column4": "1894352427",
88+
"column5": "7812610742153510912",
89+
"column6": "1.4053257217166533E308",
90+
"column7": "xma7jpqg"
91+
}
92+
]
Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
[
2+
{
3+
"column1": "nz5xtf",
4+
"column2": "1.197797482238104E308",
5+
"column3": "6776285359612816384",
6+
"column4": "12839",
7+
"column5": "716029217",
8+
"column6": "1.8966081E38",
9+
"column7": "false"
10+
},
11+
{
12+
"column1": "ev589",
13+
"column2": "5.750856912711028E307",
14+
"column3": "2375177690879723520",
15+
"column4": "30440",
16+
"column5": "610940561",
17+
"column6": "2.2582356E38",
18+
"column7": "false"
19+
},
20+
{
21+
"column1": "vtzc0e",
22+
"column2": "1.2119198189037794E308",
23+
"column3": "7310746682471859200",
24+
"column4": "25379",
25+
"column5": "772305514",
26+
"column6": "9.970872E37",
27+
"column7": "true"
28+
},
29+
{
30+
"column1": "2trpkdb9omz",
31+
"column2": "3.197488851050967E307",
32+
"column3": "3019966835606569984",
33+
"column4": "7849",
34+
"column5": "109652160",
35+
"column6": "1.7385883E38",
36+
"column7": "false"
37+
},
38+
{
39+
"column1": "wtzmnj6",
40+
"column2": "1.074399324465288E308",
41+
"column3": "3590360280136418816",
42+
"column4": "18251",
43+
"column5": "1765426537",
44+
"column6": "3.0557306E38",
45+
"column7": "true"
46+
},
47+
{
48+
"column1": "cuekgls0",
49+
"column2": "1.5138522039300354E308",
50+
"column3": "545666802789177088",
51+
"column4": "17302",
52+
"column5": "949239854",
53+
"column6": "2.8012E38",
54+
"column7": "false"
55+
},
56+
{
57+
"column1": "rlgt1xm6",
58+
"column2": "9.964833183058719E307",
59+
"column3": "7454111030525443072",
60+
"column4": "28345",
61+
"column5": "869600527",
62+
"column6": "1.1602527E38",
63+
"column7": "false"
64+
},
65+
{
66+
"column1": "015jogt",
67+
"column2": "3.3638913008676015E307",
68+
"column3": "5664502378656301056",
69+
"column4": "29248",
70+
"column5": "2058627750",
71+
"column6": "1.9735697E38",
72+
"column7": "true"
73+
},
74+
{
75+
"column1": "4opm1va257",
76+
"column2": "1.1788429234835814E308",
77+
"column3": "7599382845915704320",
78+
"column4": "4432",
79+
"column5": "1860215346",
80+
"column6": "1.7235586E38",
81+
"column7": "true"
82+
},
83+
{
84+
"column1": "ezwd31af",
85+
"column2": "1.0539346106176145E307",
86+
"column3": "6126291837102578688",
87+
"column4": "26201",
88+
"column5": "819184575",
89+
"column6": "2.8135185E38",
90+
"column7": "true"
91+
}
92+
]
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
import csv from 'csv-parser';
2+
import fs from 'fs';
3+
import { Credit, MediaItem } from '../models/index.js';
4+
import { Loader } from './loader.js';
5+
6+
export class JBeyLoader implements Loader {
7+
getLoaderName(): string {
8+
return 'JBey';
9+
}
10+
11+
async loadData(): Promise<MediaItem[]> {
12+
const credits = await this.loadCredits();
13+
const mediaItems = await this.loadMediaItems();
14+
15+
console.log(
16+
`Loaded ${credits.length} credits and ${mediaItems.length} media items`,
17+
);
18+
19+
return [...mediaItems.values()];
20+
}
21+
22+
async loadMediaItems(): Promise<MediaItem[]> {
23+
// TODO: Implement this method.
24+
const mediaItems = [];
25+
const readable = fs
26+
.createReadStream('data/media_items.csv', 'utf-8')
27+
.pipe(csv());
28+
for await (const row of readable) {
29+
const { id, title, type, year } = row;
30+
mediaItems.push(new MediaItem(id, title, type, year, []));
31+
}
32+
return mediaItems;
33+
}
34+
35+
async loadCredits(): Promise<Credit[]> {
36+
const credits = [];
37+
const readable = fs
38+
.createReadStream('data/credits.csv', 'utf-8')
39+
.pipe(csv());
40+
for await (const row of readable) {
41+
const { media_item_id, role, name } = row;
42+
credits.push(new Credit(media_item_id, name, role));
43+
}
44+
return credits;
45+
}
46+
}
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
import csv from 'csv-parser';
2+
import fs from 'fs';
3+
import { Credit, MediaItem } from '../models/index.js';
4+
import { Loader } from './loader.js';
5+
6+
export class BryanaSingletonBarnhartLoader implements Loader {
7+
getLoaderName(): string {
8+
return 'bryanasingletonbarnhart';
9+
}
10+
11+
async loadData(): Promise<MediaItem[]> {
12+
const credits = await this.loadCredits();
13+
const mediaItems = await this.loadMediaItems();
14+
15+
console.log(
16+
`Loaded ${credits.length} credits and ${mediaItems.length} media items`,
17+
);
18+
19+
return [...mediaItems.values()];
20+
}
21+
22+
async loadMediaItems(): Promise<MediaItem[]> {
23+
// TODO: Implement this method.g
24+
const mediaItems = [];
25+
const readable = fs
26+
.createReadStream('data/media_items.csv', 'utf-8')
27+
.pipe(csv());
28+
for await (const row of readable) {
29+
const { id, title, year, type } = row;
30+
mediaItems.push(new MediaItem(id, title, type, year, []));
31+
}
32+
return mediaItems;
33+
34+
}
35+
36+
async loadCredits(): Promise<Credit[]> {
37+
const credits = [];
38+
const readable = fs
39+
.createReadStream('data/credits.csv', 'utf-8')
40+
.pipe(csv());
41+
for await (const row of readable) {
42+
const { media_item_id, role, name } = row;
43+
credits.push(new Credit(media_item_id, name, role));
44+
}
45+
return credits;
46+
}
47+
}

lesson_10/libraries/src/loaders/chanel_hutt_loader.ts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,6 @@ export class ChanelHuttLoader implements Loader {
2323
if (mediaItem) {
2424
mediaItem.addCredit(credit);
2525
}
26-
console.log(
27-
`Loaded ${credits.length} credits and ${mediaItems.length} media items`,
28-
);
2926
}
3027
// Returns an array of the values from the hashmap.
3128
return Array.from(hashMapIndex.values());
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
import csv from 'csv-parser';
2+
import fs from 'fs';
3+
import { Credit, MediaItem } from '../models/index.js';
4+
import { Loader } from './loader.js';
5+
6+
export class DavidAdenaikeLoader implements Loader {
7+
getLoaderName(): string {
8+
return 'davidadenaike';
9+
}
10+
11+
async loadData(): Promise<MediaItem[]> {
12+
const credits = await this.loadCredits();
13+
const mediaItems = await this.loadMediaItems();
14+
15+
console.log(
16+
`Loaded ${credits.length} credits and ${mediaItems.length} media items`,
17+
);
18+
19+
return [...mediaItems.values()];
20+
}
21+
22+
async loadMediaItems(): Promise<MediaItem[]> {
23+
// TODO: Implement this method.
24+
const mediaItems = [];
25+
const readable = fs
26+
.createReadStream('data/media_items.csv', 'utf-8')
27+
.pipe(csv());
28+
for await (const row of readable) {
29+
const { id, type, title, year } = row;
30+
mediaItems.push(new MediaItem(id, title, type, year, []));
31+
}
32+
return mediaItems;
33+
}
34+
35+
async loadCredits(): Promise<Credit[]> {
36+
const credits = [];
37+
const readable = fs
38+
.createReadStream('data/credits.csv', 'utf-8')
39+
.pipe(csv());
40+
for await (const row of readable) {
41+
const { media_item_id, role, name } = row;
42+
credits.push(new Credit(media_item_id, name, role));
43+
}
44+
return credits;
45+
}
46+
}

0 commit comments

Comments
 (0)