Introduces new session server endpoints for hasJoined and profile lookup, adds a SessionError class for improved error handling, and updates error exports. Also renames sessionRepository and sessionService files to sessionsRepository and sessionsService for consistency, and sets max listeners in logger.
26 lines
1019 B
JavaScript
26 lines
1019 B
JavaScript
const path = require("path")
|
|
const express = require("express")
|
|
const router = express.Router()
|
|
const sessionsService = require("../../../../services/sessionsService")
|
|
const Logger = require("../../../../modules/logger")
|
|
const { YggdrasilError, DefaultError } = require("../../../../errors/errors")
|
|
const logger = Logger.createLogger(path.join(__dirname, "..", "..", "..", ".."))
|
|
|
|
router.get("/", async (req, res) => {
|
|
const { username, serverId, ip } = req.query
|
|
try {
|
|
const result = await sessionsService.hasJoinedServer({ username, serverId, ip })
|
|
if (result.code === 200) {
|
|
logger.log(`Server join verified for: ${username}`, ["SESSION", "green"])
|
|
return res.status(200).json(result.data)
|
|
}
|
|
return res.status(204).end()
|
|
} catch (err) {
|
|
if (err instanceof DefaultError) {
|
|
throw new YggdrasilError(err.code, err.error || "InternalServerError", err.message, err.cause)
|
|
}
|
|
throw err
|
|
}
|
|
})
|
|
|
|
module.exports = router |