const express = require("express") const router = express.Router() const authService = require("../../services/authService") const oauth2Service = require("../../services/oauth2Service") router.get("/redirect", async (req, res) => { const accessToken = req.headers.authorization.replace("Bearer ", "") const player = await authService.verifyAccessToken({ accessToken }) const redirectObject = await oauth2Service.generateAssociationDiscordURL(player.user.uuid) return res.json({ url: redirectObject.url }) }) router.get("/link", async (req, res) => { const { code, state } = req.query const result = await oauth2Service.handleAssociationCallback("discord", code, state) return res.status(200).json(result) }) router.delete("/link", async (req, res) => { const accessToken = req.headers.authorization.replace("Bearer ", "") const player = await authService.verifyAccessToken({ accessToken }) const result = await oauth2Service.unlinkAccount("discord", player.user.uuid) return res.status(result.code).json(result) }) module.exports = router