diff options
Diffstat (limited to 'ufund-ui/src/app/services')
| -rw-r--r-- | ufund-ui/src/app/services/auth.service.ts | 14 | ||||
| -rw-r--r-- | ufund-ui/src/app/services/toasts.service.ts | 27 | 
2 files changed, 39 insertions, 2 deletions
diff --git a/ufund-ui/src/app/services/auth.service.ts b/ufund-ui/src/app/services/auth.service.ts index 6bc7145..b75c931 100644 --- a/ufund-ui/src/app/services/auth.service.ts +++ b/ufund-ui/src/app/services/auth.service.ts @@ -1,7 +1,8 @@ -import {Injectable} from '@angular/core'; +import {Injectable, Injector} from '@angular/core';  import {BehaviorSubject, firstValueFrom} from 'rxjs';  import {User} from '../models/User';  import {HttpClient, HttpHeaders} from '@angular/common/http'; +import {UsersService} from './users.service';  @Injectable({      providedIn: 'root' @@ -24,7 +25,9 @@ export class AuthService {      });      constructor( -        private http: HttpClient +        private http: HttpClient, +        // private userService: UsersService +        private injector: Injector      ) {}      async login(username: string, password: string) { @@ -42,6 +45,13 @@ export class AuthService {          // this.currentUser.subscribe(r => console.log("currentUser: "+r.username))      } +    async restoreLogin(username: string, key: string) { + +        const userService = this.injector.get(UsersService); +        this.apiKey = key; +        this.currentUser.next(await firstValueFrom(userService.getUser(username))) +    } +      getCurrentUserSubject() {          return this.currentUser;      } diff --git a/ufund-ui/src/app/services/toasts.service.ts b/ufund-ui/src/app/services/toasts.service.ts new file mode 100644 index 0000000..4fd024e --- /dev/null +++ b/ufund-ui/src/app/services/toasts.service.ts @@ -0,0 +1,27 @@ +import {Injectable, ViewContainerRef} from '@angular/core'; +import {ToastComponent} from '../components/toast/toast.component'; + +export enum ToastType { +    INFO, +    WARNING, +    ERROR +} + +@Injectable({ +    providedIn: 'root' +}) +export class ToastsService { + +    private vcr?: ViewContainerRef + +    sendToast(type: ToastType, message: string, action?: {label: string, onAction: () => void}) { +        let compRef = this.vcr?.createComponent(ToastComponent)! +        compRef.setInput("message", message) +        compRef.setInput("type", type) +        compRef.setInput("action", action) +    } + +    setRootViewContainerRef(vcr: ViewContainerRef) { +        this.vcr = vcr +    } +}  | 
