|
|
|
|
|
import { Injectable } from '@angular/core'; |
|
|
|
|
|
@Injectable({ |
|
|
providedIn: 'root' |
|
|
}) |
|
|
export class AuthService { |
|
|
|
|
|
constructor() { } |
|
|
|
|
|
|
|
|
signUp(name: string, role: string, email: string, password: string): Promise<any> { |
|
|
return new Promise((resolve) => { |
|
|
|
|
|
const user = { name, role, email, password }; |
|
|
localStorage.setItem('user', JSON.stringify(user)); |
|
|
localStorage.setItem('userRole', role); |
|
|
resolve('User signed up'); |
|
|
}); |
|
|
} |
|
|
|
|
|
|
|
|
signIn(email: string, password: string): Promise<any> { |
|
|
return new Promise((resolve, reject) => { |
|
|
const user = JSON.parse(localStorage.getItem('user') || '{}'); |
|
|
|
|
|
if (user.email === email && user.password === password) { |
|
|
resolve('User signed in'); |
|
|
} else { |
|
|
reject('Invalid credentials'); |
|
|
} |
|
|
}); |
|
|
} |
|
|
|
|
|
|
|
|
isLoggedIn(): boolean { |
|
|
return !!localStorage.getItem('user'); |
|
|
} |
|
|
|
|
|
|
|
|
getUserRole(): string | null { |
|
|
return localStorage.getItem('userRole'); |
|
|
} |
|
|
|
|
|
|
|
|
logout(): void { |
|
|
localStorage.removeItem('user'); |
|
|
localStorage.removeItem('userRole'); |
|
|
} |
|
|
} |
|
|
|