Introduces endpoints and logic for uploading Minecraft skins via file or URL, storing textures, and managing player skins. Adds new repository and service methods for texture registration and retrieval, updates authorization handling, and uses process.cwd() for data paths. Also includes static serving of textures and rate limiting for skin uploads.
26 lines
1018 B
JavaScript
26 lines
1018 B
JavaScript
const express = require("express")
|
|
const router = express.Router()
|
|
const userService = require("../../../../../services/userService")
|
|
const authService = require("../../../../../services/authService")
|
|
|
|
router.delete("/", async (req, res) => {
|
|
const player = await authService.verifyAccessToken({ accessToken: req.headers.authorization.replace("Bearer", "").trim() })
|
|
await userService.hideCape(player.user.uuid)
|
|
return res.status(200).send()
|
|
})
|
|
|
|
router.put("/", async (req, res) => {
|
|
const player = await authService.verifyAccessToken(req.headers.authorization)
|
|
|
|
await userService.showCape(player.user.uuid, req.body.capeId)
|
|
const [skinsResult, capesResult] = await Promise.all([userService.getSkins(player.user.uuid), userService.getCapes(player.user.uuid)])
|
|
|
|
return res.status(200).json({
|
|
id: player.user.uuid.replace(/-/g, ""),
|
|
name: player.user.username,
|
|
skins: skinsResult.data || [],
|
|
capes: capesResult.data || []
|
|
})
|
|
})
|
|
|
|
module.exports = router |