12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- import axios from 'axios';
- import { Configuration } from './configuration';
- import { Session } from './session';
- import {
- BackendReturnStatus,
- DefaultUser,
- UserBackend,
- User,
- } from '../types';
- export class Auth {
- static triggerLoginFlow(): void {
- const url = [
- Configuration.vatsim.authorizeUrl,
- `?client_id=${Configuration.vatsim.clientId}`,
- `&redirect_uri=${Configuration.resourceServer}/auth/vatsim`,
- `&response_type=code`,
- `&scope=full_name+vatsim_details`,
- `&approval_prompt=auto`,
- ].join('');
- window.location.replace(url);
- }
- static async tokenIsValid(): Promise<BackendReturnStatus> {
- const token = Session.bearerToken();
- if (!token) return BackendReturnStatus.Unauthorized;
- return axios
- .get<void>(`${Configuration.resourceServer}/auth/validate`, {
- headers: {
- Authorization: `Bearer ${token}`,
- },
- })
- .then(() => BackendReturnStatus.Ok)
- .catch((err) => {
- if (err.response.status === 401) return BackendReturnStatus.Unauthorized;
- return BackendReturnStatus.Failure;
- });
- }
- static async user(): Promise<UserBackend> {
- const token = Session.bearerToken();
- if (!token) {
- return {
- status: BackendReturnStatus.Unauthorized,
- user: DefaultUser,
- };
- }
- return axios
- .get<User>(`${Configuration.resourceServer}/auth/user`, {
- headers: {
- Authorization: `Bearer ${token}`,
- },
- })
- .then((response) => {
- return {
- status: BackendReturnStatus.Ok,
- user: response.data,
- };
- })
- .catch((err) => {
- return {
- status: err.response.status === 401 ? BackendReturnStatus.Unauthorized : BackendReturnStatus.Failure,
- user: DefaultUser,
- };
- });
- }
- static async refreshRadarScopeKey(): Promise<BackendReturnStatus> {
- const token = Session.bearerToken();
- if (!token) return BackendReturnStatus.Unauthorized;
- return axios
- .patch<void>(`${Configuration.resourceServer}/auth/refreshRadarScopeKey`, {
- headers: {
- Authorization: `Bearer ${token}`,
- },
- })
- .then(() => BackendReturnStatus.Ok)
- .catch((err) => {
- return err.response.status === 401 ? BackendReturnStatus.Unauthorized : BackendReturnStatus.Failure;
- });
- }
- }
|