From b6b41c06aa6e3f8180677198ec741cf0854093b7 Mon Sep 17 00:00:00 2001 From: Claudiu Farcas Date: Sat, 20 Jun 2026 01:52:29 +0000 Subject: [PATCH] feat: refactor database connection handling to separate database module --- octofit-tracker/backend/dist/database.js | 16 ++++++++++++++++ octofit-tracker/backend/dist/index.js | 5 ++--- octofit-tracker/backend/dist/scripts/seed.js | 10 +++------- octofit-tracker/backend/src/database.ts | 11 +++++++++++ octofit-tracker/backend/src/index.ts | 5 ++--- octofit-tracker/backend/src/scripts/seed.ts | 8 +++----- 6 files changed, 37 insertions(+), 18 deletions(-) create mode 100644 octofit-tracker/backend/dist/database.js create mode 100644 octofit-tracker/backend/src/database.ts diff --git a/octofit-tracker/backend/dist/database.js b/octofit-tracker/backend/dist/database.js new file mode 100644 index 0000000..baa7094 --- /dev/null +++ b/octofit-tracker/backend/dist/database.js @@ -0,0 +1,16 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.disconnectDatabase = exports.connectDatabase = void 0; +const mongoose_1 = __importDefault(require("mongoose")); +const mongoUri = process.env.MONGO_URI || "mongodb://127.0.0.1:27017/octofit_db"; +const connectDatabase = async () => { + await mongoose_1.default.connect(mongoUri); +}; +exports.connectDatabase = connectDatabase; +const disconnectDatabase = async () => { + await mongoose_1.default.disconnect(); +}; +exports.disconnectDatabase = disconnectDatabase; diff --git a/octofit-tracker/backend/dist/index.js b/octofit-tracker/backend/dist/index.js index ada4f73..01ec155 100644 --- a/octofit-tracker/backend/dist/index.js +++ b/octofit-tracker/backend/dist/index.js @@ -4,15 +4,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) { }; Object.defineProperty(exports, "__esModule", { value: true }); const express_1 = __importDefault(require("express")); -const mongoose_1 = __importDefault(require("mongoose")); const Activity_1 = require("./models/Activity"); +const database_1 = require("./database"); const Leaderboard_1 = require("./models/Leaderboard"); const Team_1 = require("./models/Team"); const User_1 = require("./models/User"); const Workout_1 = require("./models/Workout"); const app = (0, express_1.default)(); const port = Number(process.env.PORT) || 8000; -const mongoUri = process.env.MONGO_URI || "mongodb://127.0.0.1:27017/octofit_db"; const codespaceName = process.env.CODESPACE_NAME; const baseUrl = codespaceName ? `https://${codespaceName}-8000.app.github.dev` @@ -80,7 +79,7 @@ app.get("/api/workouts/", async (_req, res) => { }); const start = async () => { try { - await mongoose_1.default.connect(mongoUri); + await (0, database_1.connectDatabase)(); app.listen(port, () => { console.log(`OctoFit backend listening on ${baseUrl}`); }); diff --git a/octofit-tracker/backend/dist/scripts/seed.js b/octofit-tracker/backend/dist/scripts/seed.js index 9b1ca94..f7c9ae8 100644 --- a/octofit-tracker/backend/dist/scripts/seed.js +++ b/octofit-tracker/backend/dist/scripts/seed.js @@ -1,18 +1,14 @@ "use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; Object.defineProperty(exports, "__esModule", { value: true }); -const mongoose_1 = __importDefault(require("mongoose")); +const database_1 = require("../database"); const Activity_1 = require("../models/Activity"); const Leaderboard_1 = require("../models/Leaderboard"); const Team_1 = require("../models/Team"); const User_1 = require("../models/User"); const Workout_1 = require("../models/Workout"); -const mongoUri = process.env.MONGO_URI || "mongodb://127.0.0.1:27017/octofit_db"; const seed = async () => { try { - await mongoose_1.default.connect(mongoUri); + await (0, database_1.connectDatabase)(); console.log("Seed the octofit_db database with test data"); await Promise.all([ Activity_1.ActivityModel.deleteMany({}), @@ -155,7 +151,7 @@ const seed = async () => { process.exitCode = 1; } finally { - await mongoose_1.default.disconnect(); + await (0, database_1.disconnectDatabase)(); } }; void seed(); diff --git a/octofit-tracker/backend/src/database.ts b/octofit-tracker/backend/src/database.ts new file mode 100644 index 0000000..e1cedff --- /dev/null +++ b/octofit-tracker/backend/src/database.ts @@ -0,0 +1,11 @@ +import mongoose from "mongoose"; + +const mongoUri = process.env.MONGO_URI || "mongodb://127.0.0.1:27017/octofit_db"; + +export const connectDatabase = async () => { + await mongoose.connect(mongoUri); +}; + +export const disconnectDatabase = async () => { + await mongoose.disconnect(); +}; diff --git a/octofit-tracker/backend/src/index.ts b/octofit-tracker/backend/src/index.ts index 66df6eb..dd49241 100644 --- a/octofit-tracker/backend/src/index.ts +++ b/octofit-tracker/backend/src/index.ts @@ -1,6 +1,6 @@ import express from "express"; -import mongoose from "mongoose"; import { ActivityModel } from "./models/Activity"; +import { connectDatabase } from "./database"; import { LeaderboardModel } from "./models/Leaderboard"; import { TeamModel } from "./models/Team"; import { UserModel } from "./models/User"; @@ -8,7 +8,6 @@ import { WorkoutModel } from "./models/Workout"; const app = express(); const port = Number(process.env.PORT) || 8000; -const mongoUri = process.env.MONGO_URI || "mongodb://127.0.0.1:27017/octofit_db"; const codespaceName = process.env.CODESPACE_NAME; const baseUrl = codespaceName ? `https://${codespaceName}-8000.app.github.dev` @@ -79,7 +78,7 @@ app.get("/api/workouts/", async (_req, res) => { const start = async () => { try { - await mongoose.connect(mongoUri); + await connectDatabase(); app.listen(port, () => { console.log(`OctoFit backend listening on ${baseUrl}`); }); diff --git a/octofit-tracker/backend/src/scripts/seed.ts b/octofit-tracker/backend/src/scripts/seed.ts index 6b51055..fbd1c7e 100644 --- a/octofit-tracker/backend/src/scripts/seed.ts +++ b/octofit-tracker/backend/src/scripts/seed.ts @@ -1,15 +1,13 @@ -import mongoose from "mongoose"; +import { connectDatabase, disconnectDatabase } from "../database"; import { ActivityModel } from "../models/Activity"; import { LeaderboardModel } from "../models/Leaderboard"; import { TeamModel } from "../models/Team"; import { UserModel } from "../models/User"; import { WorkoutModel } from "../models/Workout"; -const mongoUri = process.env.MONGO_URI || "mongodb://127.0.0.1:27017/octofit_db"; - const seed = async () => { try { - await mongoose.connect(mongoUri); + await connectDatabase(); console.log("Seed the octofit_db database with test data"); @@ -159,7 +157,7 @@ const seed = async () => { console.error("Seed failed", error); process.exitCode = 1; } finally { - await mongoose.disconnect(); + await disconnectDatabase(); } };