Spaces:
Sleeping
Sleeping
| 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 onOIDCClicked(auth_url, client_id, openInNewTab = false) { | |
| const state = await getOAuthState(); | |
| if (!state) return; | |
| const redirect_uri = `${window.location.origin}/oauth/oidc`; | |
| const response_type = "code"; | |
| const scope = "openid profile email"; | |
| const url = `${auth_url}?client_id=${client_id}&redirect_uri=${redirect_uri}&response_type=${response_type}&scope=${scope}&state=${state}`; | |
| if (openInNewTab) { | |
| window.open(url); | |
| } else | |
| { | |
| window.location.href = url; | |
| } | |
| } | |
| 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 []; | |
| } | |