@pikmeup/database-service
Version: 
Shared database service for PikMeUp using Typegoose with MongoDB
96 lines (95 loc) • 5.62 kB
JavaScript
;
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
};