63 lines
1.6 KiB
JavaScript
63 lines
1.6 KiB
JavaScript
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 [];
|
|
}
|