From 6d997bc4165cce85f4d8eb8e11abb99ea59a5746 Mon Sep 17 00:00:00 2001 From: pedrosortega Date: Fri, 27 Jun 2025 15:46:41 -0400 Subject: [PATCH 1/6] changes to connect --- database/db.js | 9 +++++++-- database/task.js | 2 +- package-lock.json | 32 ++++++++++++++++---------------- package.json | 4 ++-- 4 files changed, 26 insertions(+), 21 deletions(-) diff --git a/database/db.js b/database/db.js index 611d1b0..40ec49f 100644 --- a/database/db.js +++ b/database/db.js @@ -1,9 +1,14 @@ const { Sequelize } = require("sequelize"); -const pg = require("pg"); +// const pg = require("pg"); const db = new Sequelize( - process.env.DATABASE_URL || "postgres://localhost:5432/ttp_backend", + "todo_list", + "postgres", + "poolrec", + // process.env.DATABASE_URL || "postgres://localhost:5432/todo_list", { + host: "127.0.0.1", + dialect: "postgres", logging: false, // comment this line to enable logging } ); diff --git a/database/task.js b/database/task.js index 49b1b18..3f97e04 100644 --- a/database/task.js +++ b/database/task.js @@ -1,4 +1,4 @@ -const { DataTypes } = require("sequelize"); +// const { DataTypes } = require("sequelize"); const db = require("./db"); // TASK 1: Define the Task model here diff --git a/package-lock.json b/package-lock.json index 9cd0e79..b0099fb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,10 +10,10 @@ "license": "ISC", "dependencies": { "cors": "^2.8.5", - "dotenv": "^16.5.0", + "dotenv": "^16.6.1", "express": "^5.1.0", "morgan": "^1.10.0", - "pg": "^8.16.2", + "pg": "^8.16.3", "sequelize": "^6.37.7" }, "devDependencies": { @@ -311,9 +311,9 @@ } }, "node_modules/dotenv": { - "version": "16.5.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.5.0.tgz", - "integrity": "sha512-m/C+AwOAr9/W1UOIZUo232ejMNnJAJtYQjUbHoNTBNTJSvqzzDh7vnrei3o3r3m9blf6ZoDkvcw0VmozNRFJxg==", + "version": "16.6.1", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.6.1.tgz", + "integrity": "sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==", "license": "BSD-2-Clause", "engines": { "node": ">=12" @@ -981,14 +981,14 @@ } }, "node_modules/pg": { - "version": "8.16.2", - "resolved": "https://registry.npmjs.org/pg/-/pg-8.16.2.tgz", - "integrity": "sha512-OtLWF0mKLmpxelOt9BqVq83QV6bTfsS0XLegIeAKqKjurRnRKie1Dc1iL89MugmSLhftxw6NNCyZhm1yQFLMEQ==", + "version": "8.16.3", + "resolved": "https://registry.npmjs.org/pg/-/pg-8.16.3.tgz", + "integrity": "sha512-enxc1h0jA/aq5oSDMvqyW3q89ra6XIIDZgCX9vkMrnz5DFTw/Ny3Li2lFQ+pt3L6MCgm/5o2o8HW9hiJji+xvw==", "license": "MIT", "dependencies": { "pg-connection-string": "^2.9.1", "pg-pool": "^3.10.1", - "pg-protocol": "^1.10.2", + "pg-protocol": "^1.10.3", "pg-types": "2.2.0", "pgpass": "1.0.5" }, @@ -996,7 +996,7 @@ "node": ">= 16.0.0" }, "optionalDependencies": { - "pg-cloudflare": "^1.2.6" + "pg-cloudflare": "^1.2.7" }, "peerDependencies": { "pg-native": ">=3.0.1" @@ -1008,9 +1008,9 @@ } }, "node_modules/pg-cloudflare": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/pg-cloudflare/-/pg-cloudflare-1.2.6.tgz", - "integrity": "sha512-uxmJAnmIgmYgnSFzgOf2cqGQBzwnRYcrEgXuFjJNEkpedEIPBSEzxY7ph4uA9k1mI+l/GR0HjPNS6FKNZe8SBQ==", + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/pg-cloudflare/-/pg-cloudflare-1.2.7.tgz", + "integrity": "sha512-YgCtzMH0ptvZJslLM1ffsY4EuGaU0cx4XSdXLRFae8bPP4dS5xL1tNB3k2o/N64cHJpwU7dxKli/nZ2lUa5fLg==", "license": "MIT", "optional": true }, @@ -1039,9 +1039,9 @@ } }, "node_modules/pg-protocol": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.10.2.tgz", - "integrity": "sha512-Ci7jy8PbaWxfsck2dwZdERcDG2A0MG8JoQILs+uZNjABFuBuItAZCWUNz8sXRDMoui24rJw7WlXqgpMdBSN/vQ==", + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.10.3.tgz", + "integrity": "sha512-6DIBgBQaTKDJyxnXaLiLR8wBpQQcGWuAESkRBX/t6OwA8YsqP+iVSiond2EDy6Y/dsGk8rh/jtax3js5NeV7JQ==", "license": "MIT" }, "node_modules/pg-types": { diff --git a/package.json b/package.json index e6d2a1d..816c4fa 100644 --- a/package.json +++ b/package.json @@ -14,10 +14,10 @@ "description": "", "dependencies": { "cors": "^2.8.5", - "dotenv": "^16.5.0", + "dotenv": "^16.6.1", "express": "^5.1.0", "morgan": "^1.10.0", - "pg": "^8.16.2", + "pg": "^8.16.3", "sequelize": "^6.37.7" }, "devDependencies": { From 1cf3b7ed88f422312e03d1f5fb31e109740faaec Mon Sep 17 00:00:00 2001 From: pedrosortega Date: Tue, 1 Jul 2025 18:30:04 -0400 Subject: [PATCH 2/6] made secure connection --- database/db.js | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/database/db.js b/database/db.js index 40ec49f..a6c435b 100644 --- a/database/db.js +++ b/database/db.js @@ -1,14 +1,15 @@ +require("dotenv").config(); const { Sequelize } = require("sequelize"); -// const pg = require("pg"); +const pg = require("pg"); const db = new Sequelize( - "todo_list", - "postgres", - "poolrec", + process.env.DB_NAME, + process.env.DB_USER, + process.env.DB_PASSWORD, // process.env.DATABASE_URL || "postgres://localhost:5432/todo_list", { - host: "127.0.0.1", - dialect: "postgres", + host: process.env.DB_HOST, + dialect: process.env.DB_DIALECT, logging: false, // comment this line to enable logging } ); From c36bb5216724d314354d473fd4a04da1a904fa68 Mon Sep 17 00:00:00 2001 From: pedrosortega Date: Tue, 1 Jul 2025 18:39:21 -0400 Subject: [PATCH 3/6] defined task model --- database/task.js | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/database/task.js b/database/task.js index 3f97e04..6b7a142 100644 --- a/database/task.js +++ b/database/task.js @@ -1,12 +1,20 @@ -// const { DataTypes } = require("sequelize"); +const { DataTypes } = require("sequelize"); const db = require("./db"); // TASK 1: Define the Task model here const Task = db.define("task", { - // You should define the following columns: - // - title: string, required - // - description: string, required - // - completed: boolean, default false + title: { + type: DataTypes.STRING, + allowNull: false, + }, + description: { + type: DataTypes.STRING, + allowNull: false, + }, + completed: { + type: DataTypes.BOOLEAN, + defaultValue: false, + }, }); module.exports = Task; From bfc058a3f58652dff0ebec5c11e86283dc634494 Mon Sep 17 00:00:00 2001 From: pedrosortega Date: Tue, 1 Jul 2025 18:44:30 -0400 Subject: [PATCH 4/6] defined user model --- database/user.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/database/user.js b/database/user.js index 70abf66..7164861 100644 --- a/database/user.js +++ b/database/user.js @@ -3,8 +3,10 @@ const db = require("./db"); // TASK 2: Define the User model here const User = db.define("user", { - // You should define the following columns: - // - name: string, required + name: { + type: DataTypes.STRING, + allowNull: false, + }, }); module.exports = User; From 74d900e1d3e2a24c8cecf475aead7f7f1e91e687 Mon Sep 17 00:00:00 2001 From: pedrosortega Date: Tue, 1 Jul 2025 19:14:28 -0400 Subject: [PATCH 5/6] establish relationship between user and task --- database/db.js | 1 - database/index.js | 2 ++ 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/database/db.js b/database/db.js index a6c435b..6efcee7 100644 --- a/database/db.js +++ b/database/db.js @@ -6,7 +6,6 @@ const db = new Sequelize( process.env.DB_NAME, process.env.DB_USER, process.env.DB_PASSWORD, - // process.env.DATABASE_URL || "postgres://localhost:5432/todo_list", { host: process.env.DB_HOST, dialect: process.env.DB_DIALECT, diff --git a/database/index.js b/database/index.js index 5bdf687..ed14453 100644 --- a/database/index.js +++ b/database/index.js @@ -4,6 +4,8 @@ const User = require("./user"); // TASK 3: Set up associations here // What kind of relationship is there between a user and a task? +User.hasMany(Task); +Task.belongsTo(User); // Export everything needed module.exports = { From 8bca6627bb44f853fccc321a38d7f138e1474256 Mon Sep 17 00:00:00 2001 From: pedrosortega Date: Fri, 4 Jul 2025 14:08:05 -0400 Subject: [PATCH 6/6] api route to get all tasks --- api/tasks.js | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/api/tasks.js b/api/tasks.js index 17a66ba..e05252c 100644 --- a/api/tasks.js +++ b/api/tasks.js @@ -7,12 +7,23 @@ const { Task, User } = require("../database"); // GET all tasks router.get("/", async (req, res) => { - // Replace this with your code! - res.status(501).send("Not implemented"); + try { + const result = await Task.findAll(); + res.send(result); + } catch (error) { + res.status(501).send("Not implemented"); + } }); // GET a single task by id - +// router.get("/:id", async (req, res) => { +// // try { +// // const result = await Task.findByPk(`api/tasks/${id}`); +// // res.send(result); +// // } catch (error) { +// // console.error("Error:", error); +// // } +// }); // Patch a task by id // Delete a task by id