import { API, showError } from '../helpers'; export async function getOAuthState() { let path = '/api/oauth/state'; let affCode = localStorage.getItem('aff'); if (affCode && affCode.length > 0) { path += `?aff=${affCode}`; } const res = await API.get(path); const { success, message, data } = res.data; if (success) { return data; } else { showError(message); return ''; } } export async function onGitHubOAuthClicked(github_client_id) { const state = await getOAuthState(); if (!state) return; window.open( `https://github.com/login/oauth/authorize?client_id=${github_client_id}&state=${state}&scope=user:email`, ); } export async function onLinuxDOOAuthClicked(linuxdo_client_id) { const state = await getOAuthState(); if (!state) return; window.open( `https://connect.linux.do/oauth2/authorize?response_type=code&client_id=${linuxdo_client_id}&state=${state}`, ); } let channelModels = undefined; export async function loadChannelModels() { const res = await API.get('/api/models'); const { success, data } = res.data; if (!success) { return; } channelModels = data; localStorage.setItem('channel_models', JSON.stringify(data)); } export function getChannelModels(type) { if (channelModels !== undefined && type in channelModels) { if (!channelModels[type]) { return []; } return channelModels[type]; } let models = localStorage.getItem('channel_models'); if (!models) { return []; } channelModels = JSON.parse(models); if (type in channelModels) { return channelModels[type]; } return []; }