-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathpopulate-db.ts
executable file
·71 lines (40 loc) · 1.72 KB
/
populate-db.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
import {database, initializeApp} from "firebase";
import {firebaseConfig} from "./src/environments/firebase.config";
import {dbData} from "./db-data";
console.log("WARNING VERY IMPORTANT - PLEASE READ THIS\n\n\n");
console.log('WARNING Please set your own firebase config on src/environmnents/firebase.config.ts');
console.log('Otherwise you will get permissions errors, because the populate-db script is trying to write to my database instead of yours. ');
console.log('Any issues please contact me, Thanks, Vasco\n\n\n');
initializeApp(firebaseConfig);
const coursesRef = database().ref('courses');
const lessonsRef = database().ref('lessons');
dbData.courses.forEach( course => {
console.log('adding course', course.url);
const courseRef = coursesRef.push({
url: course.url,
description: course.description,
iconUrl: course.iconUrl,
courseListIcon: course.courseListIcon,
longDescription: course.longDescription
});
let lessonKeysPerCourse = [];
course.lessons.forEach((lesson:any) => {
console.log('adding lesson ', lesson.url);
lessonKeysPerCourse.push(lessonsRef.push({
description: lesson.description,
duration: lesson.duration,
url: lesson.url,
tags: lesson.tags,
videoUrl: lesson.videoUrl || null,
longDescription: lesson.longDescription,
courseId: courseRef.key
}).key);
});
const association = database().ref('lessonsPerCourse');
const lessonsPerCourse = association.child(courseRef.key);
lessonKeysPerCourse.forEach(lessonKey => {
console.log('adding lesson to course ');
const lessonCourseAssociation = lessonsPerCourse.child(lessonKey);
lessonCourseAssociation.set(true);
});
});