Editing: /home/goacom/baji.princedev.shop/routes/index.js
const express = require('express'); const router = express.Router(); const db = require('../database'); // Public Home Page (Mobile & Desktop compatible) router.get('/', (req, res) => { const categoryFilter = req.query.category || 'ALL'; const searchQuery = req.query.q || ''; const settings = db.getSettings(); const agents = db.getAgents(categoryFilter, searchQuery); const categories = ['ALL', 'SUB ADMIN', 'SUPER AGENT', 'MASTER AGENT', 'CUSTOMER CARE']; res.render('index', { settings, agents, categories, activeCategory: categoryFilter, searchQuery }); }); // Mobile shortcut route router.get('/m', (req, res) => { res.redirect('/?view=mobile'); }); // Inplay Live Matches Page router.get('/inplay', (req, res) => { const sportFilter = req.query.sport || 'ALL'; const settings = db.getSettings(); const matches = db.getInplayMatches(sportFilter); const sports = ['ALL', 'CRICKET', 'SOCCER', 'TENNIS']; res.render('inplay', { settings, matches, sports, activeSport: sportFilter }); }); // Dedicated Sports Page (/sports/cricket, /sports/soccer, /sports/tennis, etc.) router.get(['/sports/:sport', '/m/sports/:sport'], (req, res) => { const sportName = req.params.sport ? req.params.sport.toUpperCase() : 'CRICKET'; const settings = db.getSettings(); const matches = db.getInplayMatches(sportName); const sportsList = ['CRICKET', 'SOCCER', 'TENNIS', 'CASINO']; res.render('sports', { settings, matches, sportName, sportsList }); }); // Player / User Login Page (/login, /m/login) router.get(['/login', '/m/login'], (req, res) => { const settings = db.getSettings(); res.render('user_login', { settings, error: null }); }); // Player Profile / Account Section (/profile, /m/profile) router.get(['/profile', '/m/profile'], (req, res) => { const settings = db.getSettings(); const users = db.getUsers(); // Get active demo/logged user (player101 by default) const user = users.length > 0 ? users[0] : { id: 1, username: 'player101', phone: '+8801711110001', balance: 5000.00, status: 'Active' }; const transactions = db.getTransactions(user.id); const masterAgent = db.getAgents('MASTER AGENT')[0] || { name: 'Master Agent', whatsapp: settings.supportWhatsapp }; res.render('profile', { settings, user, transactions, masterAgent }); }); // Post Player Login Request router.post('/login', (req, res) => { const { username, password } = req.body; const settings = db.getSettings(); // Check if admin login credentials were provided if (db.verifyAdminPassword(username, password)) { req.session.isAdmin = true; req.session.username = username; return res.redirect('/admin/dashboard'); } // For player login, redirect to Agent WhatsApp for live betting account access const whatsappNum = (settings.supportWhatsapp || '').replace(/[^0-9]/g, ''); const waMsg = encodeURIComponent(`Hello, I want to login/access my betting account. Username: ${username}`); return res.render('user_login', { settings, error: null, redirectWa: `https://wa.me/${whatsappNum}?text=${waMsg}` }); }); // API endpoint for site settings & banner images router.get('/api/settings', (req, res) => { const settings = db.getSettings(); res.json({ success: true, settings }); }); // API endpoint for instant dynamic agent search router.get('/api/agents', (req, res) => { const categoryFilter = req.query.category || 'ALL'; const searchQuery = req.query.q || ''; const agents = db.getAgents(categoryFilter, searchQuery); res.json({ success: true, agents }); }); // API endpoint for games catalog router.get('/api/games', (req, res) => { const categoryFilter = req.query.category || 'ALL'; const games = db.getGames(categoryFilter); res.json({ success: true, games }); }); // API endpoint for live inplay matches router.get('/api/inplay', (req, res) => { const sportFilter = req.query.sport || 'ALL'; const matches = db.getInplayMatches(sportFilter); res.json({ success: true, matches }); }); // Post a complaint against an agent router.post('/complain', (req, res) => { const { agentId, agentName, userContact, issue } = req.body; if (!agentId || !userContact || !issue) { return res.status(400).json({ success: false, message: 'Please fill in all required fields.' }); } const complaint = db.addComplaint({ agentId, agentName, userContact, issue }); res.json({ success: true, message: 'Complaint submitted successfully!', complaint }); }); module.exports = router;
💾 Save