mirror of
https://github.com/linux-odyssey/linux-odyssey.git
synced 2026-11-05 19:20:12 +08:00
55 lines
1.3 KiB
JavaScript
55 lines
1.3 KiB
JavaScript
import { Router } from 'express'
|
|
import passport from 'passport'
|
|
import sessions from './sessionRouter.js'
|
|
import quests from './questRouter.js'
|
|
import commands from './commandRouter.js'
|
|
import authRouter from './authRouter.js'
|
|
import authRequired from '../../middleware/authRequired.js'
|
|
import userRouter from './userRouter.js'
|
|
import config from '../../config.js'
|
|
import leaderboardController from '../controllers/leaderboardController.js'
|
|
|
|
const router = Router()
|
|
|
|
if (!config.isProduction) {
|
|
router.get('/', (req, res) => {
|
|
res.send('Hello API!')
|
|
})
|
|
|
|
router.get('/ip', (req, res) => {
|
|
res.json({ ip: req.ip, forwarded: req.headers['x-forwarded-for'] })
|
|
})
|
|
}
|
|
|
|
router.use('/auth', authRouter)
|
|
router.use('/quests', quests)
|
|
router.use('/users', userRouter)
|
|
|
|
router.use('/sessions', authRequired, sessions)
|
|
router.use(
|
|
'/commands',
|
|
passport.authenticate('jwt', { session: false }),
|
|
authRequired,
|
|
commands
|
|
)
|
|
|
|
router.get('/survey', (req, res) => {
|
|
if (!config.surveyUrl) {
|
|
res.status(404).send('Survey not configured')
|
|
return
|
|
}
|
|
res.redirect(config.surveyUrl)
|
|
})
|
|
|
|
router.get('/bug-report', (req, res) => {
|
|
if (!config.bugReportUrl) {
|
|
res.status(404).send('Bug report not configured')
|
|
return
|
|
}
|
|
res.redirect(config.bugReportUrl)
|
|
})
|
|
|
|
router.get('/leaderboard', leaderboardController)
|
|
|
|
export default router
|