1
0
Fork 0
forked from Kispi/Core
HGOE-SaS/webapp/src/services/auth.service.ts
Simon Giesel 212e0bbcc3
All checks were successful
continuous-integration/drone/push Build is passing
fix(webapp): small fixes
2023-07-09 22:45:42 +02:00

33 lines
No EOL
975 B
TypeScript

import { Admin } from 'pocketbase';
import { PocketbaseService } from './pocketbase.service';
import { useEventBus } from '@vueuse/core';
const API = PocketbaseService.getApi();
export class AuthService {
public static isAdmin(): boolean {
if(API.authStore.isValid && API.authStore.model) {
return !API.authStore.model.collectionId;
}
this.logout();
return false;
}
public static getAdmin(): Admin {
if(this.isAdmin()) {
return API.authStore.model as Admin;
}
throw new Error('Not authenticated');
}
public static async loginAsAdmin(email: string, password: string): Promise<Admin> {
const response = await API.admins.authWithPassword(email, password);
if(response) {
useEventBus<boolean>('isAdmin').emit(true);
return response.admin;
}
throw new Error('Invalid credentials');
}
public static logout(): void {
API.authStore.clear();
useEventBus<boolean>('isAdmin').emit(false);
}
}