Add legacy skin and cape routes, improve error handling
Introduces legacy routes for Minecraft skins and capes to support older endpoints. Enhances error handling in sessionsRepository for missing skins/capes, adds getActiveSkin and getActiveCape to sessionsService, and improves error logging in server.js.
This commit is contained in:
parent
80fb6c6cd4
commit
9b36c85974
@ -69,9 +69,14 @@ async function getActiveSkin(uuid) {
|
||||
`
|
||||
const rows = await database.query(sql, [uuid])
|
||||
const skin = rows[0]
|
||||
|
||||
if (!skin) {
|
||||
throw new DefaultError(404, "Not found", "Not found")
|
||||
}
|
||||
return { code: 200, data: skin || null }
|
||||
} catch (error) {
|
||||
if (error instanceof DefaultError) {
|
||||
throw error
|
||||
}
|
||||
logger.log("Internal Server Error".bold + " : " + error.toString(), ["MariaDB", "yellow"])
|
||||
throw new DefaultError(500, "Internal Server Error", "Please contact an administrator.")
|
||||
}
|
||||
@ -87,9 +92,14 @@ async function getActiveCape(uuid) {
|
||||
`
|
||||
const rows = await database.query(sql, [uuid])
|
||||
const cape = rows[0]
|
||||
|
||||
if (!cape) {
|
||||
throw new DefaultError(404, "Not found", "Not found")
|
||||
}
|
||||
return { code: 200, data: cape || null }
|
||||
} catch (error) {
|
||||
if (error instanceof DefaultError) {
|
||||
throw error
|
||||
}
|
||||
logger.log("Internal Server Error".bold + " : " + error.toString(), ["MariaDB", "yellow"])
|
||||
throw new DefaultError(500, "Internal Server Error", "Please contact an administrator.")
|
||||
}
|
||||
|
||||
10
routes/legacy/MinecraftCloaks/[username].js
Normal file
10
routes/legacy/MinecraftCloaks/[username].js
Normal file
@ -0,0 +1,10 @@
|
||||
const express = require("express")
|
||||
const router = express.Router({ mergeParams: true })
|
||||
const sessionsService = require("../../../services/sessionsService")
|
||||
|
||||
router.get("", async (req, res) => {
|
||||
const cape = await sessionsService.getActiveCape({ username: req.params.username.replace(".png", "") })
|
||||
return res.redirect(`/textures${cape.data.url}`)
|
||||
})
|
||||
|
||||
module.exports = router
|
||||
10
routes/legacy/MinecraftSkins/[username].js
Normal file
10
routes/legacy/MinecraftSkins/[username].js
Normal file
@ -0,0 +1,10 @@
|
||||
const express = require("express")
|
||||
const router = express.Router({ mergeParams: true })
|
||||
const sessionsService = require("../../../services/sessionsService")
|
||||
|
||||
router.get("", async (req, res) => {
|
||||
const cape = await sessionsService.getActiveSkin({ username: req.params.username.replace(".png", "") })
|
||||
return res.redirect(`/textures${cape.data.url}`)
|
||||
})
|
||||
|
||||
module.exports = router
|
||||
10
routes/legacy/cloaks/[username].js
Normal file
10
routes/legacy/cloaks/[username].js
Normal file
@ -0,0 +1,10 @@
|
||||
const express = require("express")
|
||||
const router = express.Router({ mergeParams: true })
|
||||
const sessionsService = require("../../../services/sessionsService")
|
||||
|
||||
router.get("", async (req, res) => {
|
||||
const cape = await sessionsService.getActiveCape({ username: req.params.username.replace(".png", "") })
|
||||
return res.redirect(`/textures${cape.data.url}`)
|
||||
})
|
||||
|
||||
module.exports = router
|
||||
10
routes/legacy/skins/[username].js
Normal file
10
routes/legacy/skins/[username].js
Normal file
@ -0,0 +1,10 @@
|
||||
const express = require("express")
|
||||
const router = express.Router({ mergeParams: true })
|
||||
const sessionsService = require("../../../services/sessionsService")
|
||||
|
||||
router.get("", async (req, res) => {
|
||||
const cape = await sessionsService.getActiveSkin({ username: req.params.username.replace(".png", "") })
|
||||
return res.redirect(`/textures${cape.data.url}`)
|
||||
})
|
||||
|
||||
module.exports = router
|
||||
@ -149,7 +149,7 @@ app.all(/.*/, (req, res, next) => {
|
||||
app.use((err, req, res, next) => {
|
||||
const statusCode = err.statusCode || err.code || 500
|
||||
|
||||
logger.log(req.originalUrl)
|
||||
logger.error(`Error occured on: ${req.originalUrl.bold}`, ["API", "red"])
|
||||
logger.error(err.message, ["API", "red"])
|
||||
|
||||
if (typeof err.serialize === "function") {
|
||||
|
||||
@ -167,9 +167,37 @@ async function joinLegacyServer({ name, sessionId, serverId }) {
|
||||
return { code: 200, message: "OK" }
|
||||
}
|
||||
|
||||
async function getActiveSkin({ username }) {
|
||||
try {
|
||||
const dbUser = await authRepository.getUser(username)
|
||||
const activeSkin = await sessionRepository.getActiveSkin(dbUser.user.uuid)
|
||||
return activeSkin
|
||||
} catch (error) {
|
||||
if (!(error instanceof DefaultError)) {
|
||||
throw new DefaultError(400, "Bad Request", error.toString())
|
||||
}
|
||||
throw error
|
||||
}
|
||||
}
|
||||
|
||||
async function getActiveCape({ username }) {
|
||||
try {
|
||||
const dbUser = await authRepository.getUser(username)
|
||||
const activeCape = await sessionRepository.getActiveCape(dbUser.user.uuid)
|
||||
return activeCape
|
||||
} catch (error) {
|
||||
if (!(error instanceof DefaultError)) {
|
||||
throw new DefaultError(400, "Bad Request", error.toString())
|
||||
}
|
||||
throw error
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
getProfile,
|
||||
joinServer,
|
||||
getActiveCape,
|
||||
getActiveSkin,
|
||||
hasJoinedServer,
|
||||
joinLegacyServer,
|
||||
getBlockedServers,
|
||||
|
||||
@ -523,6 +523,7 @@ module.exports = {
|
||||
getPlayerProperty,
|
||||
addPlayerProperty,
|
||||
updatePreferences,
|
||||
uploadSkinFromUrl,
|
||||
getSettingsSchema,
|
||||
getPlayerBanStatus,
|
||||
removeProfileAction,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user