summaryrefslogtreecommitdiff
path: root/backend/populate_prisma.js
diff options
context:
space:
mode:
authorxAlpharax <42233094+xAlpharax@users.noreply.github.com>2023-12-10 08:39:32 +0200
committerxAlpharax <42233094+xAlpharax@users.noreply.github.com>2023-12-10 08:39:32 +0200
commit84913b0c5645071615cc113011d5696548905ef9 (patch)
tree2d9781cce31f73cb31d779fdc2f5a5fc9b92c95d /backend/populate_prisma.js
parentccbbd775a921f92e5472ccf53317d9e31bd9152d (diff)
Merged the front-end and back-end dev environments into master.
Massive W for the team. Full Google Auth + other Prisma quirks and functionalities. Changes to be committed: new file: .gitattributes new file: backend/index.js new file: backend/login_pages/index.js new file: backend/package-lock.json new file: backend/package.json new file: backend/populate_prisma.js new file: backend/prisma/schema.prisma new file: backend/views/pages/auth.ejs new file: backend/views/pages/success.ejs new file: frontend/README.md new file: frontend/package-lock.json new file: frontend/package.json new file: frontend/public/favicon.ico new file: frontend/public/index.html new file: frontend/public/logo192.png new file: frontend/public/logo1922.png new file: frontend/public/logo512.png new file: frontend/public/manifest.json new file: frontend/public/robots.txt new file: frontend/src/App.css new file: frontend/src/App.js new file: frontend/src/App.test.js new file: frontend/src/Footer.css new file: frontend/src/Footer.js new file: frontend/src/components/Navbar.js new file: frontend/src/components/NavbarElements.js new file: frontend/src/components/logo192.png new file: frontend/src/index.css new file: frontend/src/index.js new file: frontend/src/logo.svg new file: frontend/src/pages/about.js new file: frontend/src/pages/contact.css new file: frontend/src/pages/contact.js new file: frontend/src/pages/courses.css new file: frontend/src/pages/courses.js new file: frontend/src/pages/index.css new file: frontend/src/pages/index.js new file: frontend/src/reportWebVitals.js new file: frontend/src/setupTests.js
Diffstat (limited to 'backend/populate_prisma.js')
-rw-r--r--backend/populate_prisma.js112
1 files changed, 112 insertions, 0 deletions
diff --git a/backend/populate_prisma.js b/backend/populate_prisma.js
new file mode 100644
index 0000000..a1e974b
--- /dev/null
+++ b/backend/populate_prisma.js
@@ -0,0 +1,112 @@
+const { PrismaClient } = require('@prisma/client');
+const prisma = new PrismaClient();
+
+async function seedDatabase() {
+ // Insert users
+ const user1 = await prisma.user.create({
+ data: {
+ user_data: {
+ create: {
+ total_seconds: 1000,
+ total_articles: 5,
+ },
+ },
+ email: 'user1@example.com',
+ password: 'hashedPassword1',
+ username: 'user1',
+ },
+ });
+
+ const user2 = await prisma.user.create({
+ data: {
+ user_data: {
+ create: {
+ total_seconds: 2000,
+ total_articles: 10,
+ },
+ },
+ email: 'user2@example.com',
+ password: 'hashedPassword2',
+ username: 'user2',
+ },
+ });
+
+ // Insert tags
+ const tag1 = await prisma.tag.create({
+ data: {
+ name: 'Tag1',
+ },
+ });
+
+ const tag2 = await prisma.tag.create({
+ data: {
+ name: 'Tag2',
+ },
+ });
+
+ // Insert courses
+ const course1 = await prisma.course.create({
+ data: {
+ title: 'Course 1',
+ description: 'Description 1',
+ author: {
+ connect: { id: user1.id },
+ },
+ tags: ['Tag1', 'Tag2'],
+ },
+ });
+
+ const course2 = await prisma.course.create({
+ data: {
+ title: 'Course 2',
+ description: 'Description 2',
+ author: {
+ connect: { id: user2.id },
+ },
+ tags: ['Tag1'],
+ },
+ });
+
+ // Insert course data
+ const courseData1 = await prisma.course_data.create({
+ data: {
+ total_readers: 50,
+ course: {
+ connect: { id: course1.id },
+ },
+ },
+ });
+
+ const courseData2 = await prisma.course_data.create({
+ data: {
+ total_readers: 30,
+ course: {
+ connect: { id: course2.id },
+ },
+ },
+ });
+
+ // Insert course feedback
+ await prisma.course_feedback.create({
+ data: {
+ feedback_value: 4,
+ feedback_text: 'Good course!',
+ course: {
+ connect: { id: course1.id },
+ },
+ author: {
+ connect: { id: user1.id },
+ },
+ },
+ });
+
+ console.log('Data seeding completed.');
+}
+
+seedDatabase()
+ .catch((error) => {
+ throw error;
+ })
+ .finally(async () => {
+ await prisma.$disconnect();
+ });