const axios = require('axios'); const qs = require('qs'); const Session = require("../models/Session"); async function refreshToken(token) { try { const session = await Session.findOne({where: {token: token}}); const {data} = await axios.post(DISCORD_TOKEN_ENDPOINT, qs.stringify({ client_id: process.env.CLIENT_ID, client_secret: process.env.CLIENT_SECRET, grant_type: "refresh_token", refresh_token: session.refresh_token })); await Session.update({access_token: data.access_token, refresh_token: data.refresh_token}, {where: {token: token}}); return data.access_token; } catch (e) { return "could not refresh token"; } } module.exports.refreshToken = refreshToken;