UNPKG

@pikmeup/database-service

Version:

Shared database service for PikMeUp using Typegoose with MongoDB

96 lines (95 loc) 5.62 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.models = exports.Role = exports.RouteSchedule = exports.Leave = exports.CabAssignment = exports.Supervisor = exports.Passenger = exports.User = exports.PassengerRecord = exports.TripStatus = exports.TripType = exports.Trip = exports.Stop = exports.Route = exports.Driver = exports.Cab = exports.RouteScheduleModel = exports.LeaveModel = exports.CabAssignmentModel = exports.SupervisorModel = exports.PassengerModel = exports.UserModel = exports.TripModel = exports.StopModel = exports.RouteModel = exports.DriverModel = exports.CabModel = void 0; exports.connectToDatabase = connectToDatabase; exports.disconnectFromDatabase = disconnectFromDatabase; require("reflect-metadata"); const mongoose_1 = __importDefault(require("mongoose")); const Cab_1 = require("./models/Cab"); const Driver_1 = require("./models/Driver"); const Route_1 = require("./models/Route"); const Stop_1 = require("./models/Stop"); const Trip_1 = require("./models/Trip"); const User_1 = require("./models/User"); Object.defineProperty(exports, "Role", { enumerable: true, get: function () { return User_1.Role; } }); const Passenger_1 = require("./models/Passenger"); const Supervisor_1 = require("./models/Supervisor"); const CabAssignment_1 = require("./models/CabAssignment"); const Leave_1 = require("./models/Leave"); const RouteSchedule_1 = require("./models/RouteSchedule"); const typegoose_1 = require("@typegoose/typegoose"); // Create and export models exports.CabModel = (0, typegoose_1.getModelForClass)(Cab_1.Cab); exports.DriverModel = (0, typegoose_1.getModelForClass)(Driver_1.Driver); exports.RouteModel = (0, typegoose_1.getModelForClass)(Route_1.Route); exports.StopModel = (0, typegoose_1.getModelForClass)(Stop_1.Stop); exports.TripModel = (0, typegoose_1.getModelForClass)(Trip_1.Trip); exports.UserModel = (0, typegoose_1.getModelForClass)(User_1.User); exports.PassengerModel = (0, typegoose_1.getModelForClass)(Passenger_1.Passenger); exports.SupervisorModel = (0, typegoose_1.getModelForClass)(Supervisor_1.Supervisor); exports.CabAssignmentModel = (0, typegoose_1.getModelForClass)(CabAssignment_1.CabAssignment); exports.LeaveModel = (0, typegoose_1.getModelForClass)(Leave_1.Leave); exports.RouteScheduleModel = (0, typegoose_1.getModelForClass)(RouteSchedule_1.RouteSchedule); // Export model classes var Cab_2 = require("./models/Cab"); Object.defineProperty(exports, "Cab", { enumerable: true, get: function () { return Cab_2.Cab; } }); var Driver_2 = require("./models/Driver"); Object.defineProperty(exports, "Driver", { enumerable: true, get: function () { return Driver_2.Driver; } }); var Route_2 = require("./models/Route"); Object.defineProperty(exports, "Route", { enumerable: true, get: function () { return Route_2.Route; } }); var Stop_2 = require("./models/Stop"); Object.defineProperty(exports, "Stop", { enumerable: true, get: function () { return Stop_2.Stop; } }); var Trip_2 = require("./models/Trip"); Object.defineProperty(exports, "Trip", { enumerable: true, get: function () { return Trip_2.Trip; } }); Object.defineProperty(exports, "TripType", { enumerable: true, get: function () { return Trip_2.TripType; } }); Object.defineProperty(exports, "TripStatus", { enumerable: true, get: function () { return Trip_2.TripStatus; } }); Object.defineProperty(exports, "PassengerRecord", { enumerable: true, get: function () { return Trip_2.PassengerRecord; } }); var User_2 = require("./models/User"); Object.defineProperty(exports, "User", { enumerable: true, get: function () { return User_2.User; } }); var Passenger_2 = require("./models/Passenger"); Object.defineProperty(exports, "Passenger", { enumerable: true, get: function () { return Passenger_2.Passenger; } }); var Supervisor_2 = require("./models/Supervisor"); Object.defineProperty(exports, "Supervisor", { enumerable: true, get: function () { return Supervisor_2.Supervisor; } }); var CabAssignment_2 = require("./models/CabAssignment"); Object.defineProperty(exports, "CabAssignment", { enumerable: true, get: function () { return CabAssignment_2.CabAssignment; } }); var Leave_2 = require("./models/Leave"); Object.defineProperty(exports, "Leave", { enumerable: true, get: function () { return Leave_2.Leave; } }); var RouteSchedule_2 = require("./models/RouteSchedule"); Object.defineProperty(exports, "RouteSchedule", { enumerable: true, get: function () { return RouteSchedule_2.RouteSchedule; } }); async function connectToDatabase(uri) { try { await mongoose_1.default.connect(uri); console.log('Successfully connected to MongoDB.'); } catch (error) { console.error('Error connecting to MongoDB:', error); throw error; } } async function disconnectFromDatabase() { try { await mongoose_1.default.disconnect(); console.log('Successfully disconnected from MongoDB.'); } catch (error) { console.error('Error disconnecting from MongoDB:', error); throw error; } } // Export all models as a single object exports.models = { Cab: exports.CabModel, Driver: exports.DriverModel, Route: exports.RouteModel, Stop: exports.StopModel, Trip: exports.TripModel, User: exports.UserModel, Passenger: exports.PassengerModel, Supervisor: exports.SupervisorModel, CabAssignment: exports.CabAssignmentModel, Leave: exports.LeaveModel, RouteSchedule: exports.RouteScheduleModel };