37 lines
1.2 KiB
TypeScript
37 lines
1.2 KiB
TypeScript
|
import express from "express";
|
||
|
import MuteHandler from "./MuteHandler";
|
||
|
|
||
|
export default class Routes {
|
||
|
public constructor(
|
||
|
private muteHandler = new MuteHandler()
|
||
|
) { }
|
||
|
|
||
|
public setRoutes(app: express.Application): void {
|
||
|
app.route('').get(this.landingPage.bind(this))
|
||
|
app.route('/').get(this.landingPage.bind(this))
|
||
|
app.route('/mute').post(this.mutePlayer.bind(this))
|
||
|
app.route('/unmute/all').post(this.unmuteAll.bind(this))
|
||
|
app.route('/unmute/:id').post(this.unmutePlayer.bind(this))
|
||
|
}
|
||
|
private async mutePlayer(req: express.Request, res: express.Response): Promise<void> {
|
||
|
const playerName = req.body.name
|
||
|
console.log(`Muting player ${playerName}`)
|
||
|
this.muteHandler.mute(playerName)
|
||
|
res.status(200).json()
|
||
|
}
|
||
|
private async unmuteAll(_: express.Request, res: express.Response): Promise<void> {
|
||
|
console.log(`Unmuting all players`)
|
||
|
this.muteHandler.unmuteAll()
|
||
|
res.status(200).json()
|
||
|
}
|
||
|
private async unmutePlayer(req: express.Request, res: express.Response): Promise<void> {
|
||
|
const playerName = req.body.name
|
||
|
console.log(`Unmuting player ${playerName}`)
|
||
|
this.muteHandler.unmute(playerName)
|
||
|
res.status(200).json()
|
||
|
}
|
||
|
private async landingPage(_: express.Request, res: express.Response): Promise<void> {
|
||
|
res.send('Hello World')
|
||
|
}
|
||
|
}
|