require('dotenv').config() 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 module.exports = checkChannel = (async (channel_access_token) => { let result = [channel_access_token, ''] // Check if channel_access_token is valid if (!await validateToken(channel_access_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 { let [channel_access_token, channel_refresh_token] = result 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) } } else { let channel_name = await getUserInfo(client_id, channel_access_token, 'login') result = [channel_access_token, channel_name] writeEnv('TWITCH_CHANNEL_NAME', channel_name) } return result })