Cancel le reward fulfill + Refresh token dans DB
This commit is contained in:
@@ -1,8 +1,9 @@
|
||||
require('dotenv').config()
|
||||
|
||||
const validateToken = require('./validateToken')
|
||||
const refreshToken = require('./refreshToken')
|
||||
const writeEnv = require('./writeEnv')
|
||||
const dbRefreshToken = require('./dbRefreshToken')
|
||||
const validateToken = require('./validateToken')
|
||||
const refreshToken = require('./refreshToken')
|
||||
const writeEnv = require('./writeEnv')
|
||||
|
||||
let client_id = process.env.TWITCH_APP_ID
|
||||
let client_secret = process.env.TWITCH_APP_SECRET
|
||||
@@ -12,7 +13,10 @@ module.exports = checkChannel = (async (channel_access_token) => {
|
||||
|
||||
// Check if channel_access_token is valid
|
||||
if (!await validateToken(channel_access_token)) {
|
||||
result = await refreshToken(client_id, client_secret, process.env.TWITCH_CHANNEL_REFRESH_TOKEN)
|
||||
let channel_refresh_token = await dbRefreshToken('get', 'channel')
|
||||
if (channel_refresh_token.error) return channel_refresh_token.error
|
||||
|
||||
result = await refreshToken(client_id, client_secret, channel_refresh_token)
|
||||
|
||||
if (result.status) return result = ['no_refresh', result.message]
|
||||
else {
|
||||
@@ -20,6 +24,8 @@ module.exports = checkChannel = (async (channel_access_token) => {
|
||||
writeEnv('TWITCH_CHANNEL_ACCESS_TOKEN', channel_access_token)
|
||||
writeEnv('TWITCH_CHANNEL_REFRESH_TOKEN', channel_refresh_token)
|
||||
|
||||
await dbRefreshToken('update', 'channel', channel_refresh_token)
|
||||
|
||||
let channel_name = await getUserInfo(client_id, channel_access_token, 'login')
|
||||
writeEnv('TWITCH_CHANNEL_NAME', channel_name)
|
||||
}
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
require('dotenv').config()
|
||||
|
||||
const validateToken = require('./validateToken')
|
||||
const refreshToken = require('./refreshToken')
|
||||
const writeEnv = require('./writeEnv')
|
||||
const dbRefreshToken = require('./dbRefreshToken')
|
||||
const validateToken = require('./validateToken')
|
||||
const refreshToken = require('./refreshToken')
|
||||
const writeEnv = require('./writeEnv')
|
||||
|
||||
let client_id = process.env.TWITCH_APP_ID
|
||||
let client_secret = process.env.TWITCH_APP_SECRET
|
||||
@@ -12,7 +13,10 @@ module.exports = checkUser = (async (user_access_token) => {
|
||||
|
||||
// Check if user_access_token is valid
|
||||
if (!await validateToken(user_access_token)) {
|
||||
result = await refreshToken(client_id, client_secret, process.env.TWITCH_USER_REFRESH_TOKEN)
|
||||
let user_refresh_token = await dbRefreshToken('get', 'user')
|
||||
if (user_refresh_token.error) return user_refresh_token.error
|
||||
|
||||
result = await refreshToken(client_id, client_secret, user_refresh_token)
|
||||
|
||||
if (result.status) return result = ['no_refresh', result.message]
|
||||
else {
|
||||
@@ -20,6 +24,8 @@ module.exports = checkUser = (async (user_access_token) => {
|
||||
writeEnv('TWITCH_USER_ACCESS_TOKEN', user_access_token)
|
||||
writeEnv('TWITCH_USER_REFRESH_TOKEN', user_refresh_token)
|
||||
|
||||
await dbRefreshToken('update', 'user', user_refresh_token)
|
||||
|
||||
let user_name = await getUserInfo(client_id, user_access_token, 'login')
|
||||
writeEnv('TWITCH_USER_NAME', user_name)
|
||||
}
|
||||
|
||||
40
utils/dbRefreshToken.js
Normal file
40
utils/dbRefreshToken.js
Normal file
@@ -0,0 +1,40 @@
|
||||
const mysql = require('mysql2/promise')
|
||||
require('dotenv').config()
|
||||
|
||||
module.exports = dbRefreshToken = (async (action, type, token) => {
|
||||
// Create a connection to the MySQL database
|
||||
const connection = await mysql.createConnection({
|
||||
host: process.env.MYSQL_HOST,
|
||||
port: process.env.MYSQL_PORT,
|
||||
user: process.env.MYSQL_USER,
|
||||
password: process.env.MYSQL_PASSWORD,
|
||||
database: process.env.MYSQL_DATABASE
|
||||
})
|
||||
|
||||
if (action === 'get') {
|
||||
// Get the refresh token from the database
|
||||
let results = await connection.query('SELECT value FROM env WHERE refresh_token = ?', [type])
|
||||
.then(async ([rows, fields]) => { return rows[0].value })
|
||||
.catch(error => { console.error(error) })
|
||||
|
||||
// Terminate the connection to the database
|
||||
await connection.end()
|
||||
|
||||
if (!results) return { error: "Can't get the refresh token !" }
|
||||
return results
|
||||
}
|
||||
else if (action === 'update') {
|
||||
// Update the refresh token in the database
|
||||
let results = await connection.query('UPDATE env SET value = ? WHERE refresh_token = ?', [token, type])
|
||||
.then(async ([rows, fields]) => { return rows })
|
||||
.catch(error => { console.error(error) })
|
||||
|
||||
// Terminate the connection to the database
|
||||
await connection.end()
|
||||
|
||||
if (!results) return { error: "Can't update the refresh token !" }
|
||||
return results
|
||||
}
|
||||
|
||||
return result
|
||||
})
|
||||
@@ -40,6 +40,7 @@ module.exports = rewardRedemption = (async (viewer_id, viewer_name, client_id, a
|
||||
|
||||
// Fullfil the reward redemption
|
||||
if (result.status === 'insert_entry' || result.status === 'update_entry') {
|
||||
/*
|
||||
await axios.patch(`https://api.twitch.tv/helix/channel_points/custom_rewards/redemptions?id=${id}&broadcaster_id=${broadcaster_id}&reward_id=${reward_id}`, {
|
||||
status: 'FULFILLED'
|
||||
}, {
|
||||
@@ -51,6 +52,7 @@ module.exports = rewardRedemption = (async (viewer_id, viewer_name, client_id, a
|
||||
}).then(response => {
|
||||
//return response.data.data[0].status
|
||||
}).catch(error => { console.error(error.response.data) })
|
||||
*/
|
||||
}
|
||||
|
||||
return result
|
||||
|
||||
Reference in New Issue
Block a user