- Implemented `validatePlayer` and `normalizeTabInfo` functions in `database/validate.js` for player data validation and normalization. - Added error handling for required fields and enforced data types and constraints. - Introduced standardization for characteristics and skills. feat: Create script for extracting rules from PDF files - Developed `extract-rules.js` to extract text from PDF rulebooks and categorize rules. - Integrated `pdftotext` for PDF processing and created a searchable rules database. - Implemented rule categorization and indexing for efficient searching. feat: Implement RulesTab component for rule searching - Created `RulesTab.jsx` for searching and displaying rules with filtering options. - Added recent searches and quick reference buttons for user convenience. - Integrated API calls for fetching rules and displaying results dynamically. feat: Add test script for Rules API - Created `test-rules.js` to test the functionality of the Rules API endpoints. - Included tests for search and stats endpoints to ensure proper response handling.
41 lines
1.2 KiB
JavaScript
41 lines
1.2 KiB
JavaScript
const mongoose = require('mongoose');
|
|
const Player = require('./playerModel');
|
|
const GMSession = require('./gmSessionModel');
|
|
|
|
async function setupDatabase() {
|
|
try {
|
|
console.log('Connecting to MongoDB...');
|
|
await mongoose.connect('mongodb://localhost:27017/deathwatch', {
|
|
useNewUrlParser: true,
|
|
useUnifiedTopology: true,
|
|
});
|
|
console.log('Connected to MongoDB.');
|
|
|
|
console.log('Initializing collections...');
|
|
|
|
// Initialize Players collection
|
|
const samplePlayers = [
|
|
{ name: 'Player1', rollerInfo: {}, shopInfo: {}, tabInfo: {} },
|
|
{ name: 'Player2', rollerInfo: {}, shopInfo: {}, tabInfo: {} },
|
|
];
|
|
await Player.insertMany(samplePlayers);
|
|
console.log('Players collection initialized.');
|
|
|
|
// Initialize GM Sessions collection
|
|
const sampleSessions = [
|
|
{ sessionId: 'session1', isActive: true },
|
|
{ sessionId: 'session2', isActive: false },
|
|
];
|
|
await GMSession.insertMany(sampleSessions);
|
|
console.log('GM Sessions collection initialized.');
|
|
|
|
console.log('Database setup completed successfully.');
|
|
} catch (error) {
|
|
console.error('Error during database setup:', error.message);
|
|
} finally {
|
|
mongoose.connection.close();
|
|
}
|
|
}
|
|
|
|
setupDatabase();
|