Ryan aed0f28f13
Migrate to svelte for frontend (#9)
* Svelte: WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* Finished

* Remove redundant code

* Fix typo

* Re-add routes

* Form margin

* Mobile nicities

* Mobile changed

* Increase keepalvie

* Update Guild.svelte

* Update Whitelabel.svelte

* Whitelabel changes
2021-06-30 15:40:55 +01:00

49 lines
1.5 KiB
Svelte

<script context="module">
import axios from 'axios';
import {API_URL, OAUTH} from "../js/constants";
const _tokenKey = 'token';
export function getToken() {
let token = window.localStorage.getItem(_tokenKey);
if (token == null) {
redirectLogin();
return;
}
return token;
}
export function setToken(token) {
window.localStorage.setItem(_tokenKey, token);
}
export function redirectLogin() {
// TODO: State
window.location.href = `https://discordapp.com/oauth2/authorize?response_type=code&redirect_uri=${OAUTH.redirectUri}&scope=identify%20guilds&client_id=${OAUTH.clientId}&state=`
}
export function clearLocalStorage() {
window.localStorage.clear();
}
export function setDefaultHeaders() {
axios.defaults.headers.common['Authorization'] = getToken();
axios.defaults.headers.common['x-tickets'] = 'true'; // arbitrary header name and value
axios.defaults.validateStatus = (s) => true;
}
function addRefreshInterceptor() {
axios.interceptors.response.use(async (res) => { // we set validateStatus to false
if (res.status === 401) {
await _refreshToken();
}
return res;
}, async (err) => {
if (err.response.status === 401) {
await _refreshToken();
}
return err.response;
});
}
</script>