diff options
author | sowgro <tpoke.ferrari@gmail.com> | 2025-03-30 14:34:10 -0400 |
---|---|---|
committer | sowgro <tpoke.ferrari@gmail.com> | 2025-03-30 14:34:10 -0400 |
commit | 9fba1c4af3c9b5aad206ec76469c1625125ea799 (patch) | |
tree | b31f52745944cfd6159b6fcef60b19fe4c80a3dc /ufund-ui/src/app/services/auth.service.ts | |
parent | f23afc7f3b0b62384b3b54a0864b02abc3b48b01 (diff) | |
parent | 0c793d302c5065085ff7982a68f7ed449d84d6dc (diff) | |
download | JellySolutions-9fba1c4af3c9b5aad206ec76469c1625125ea799.tar.gz JellySolutions-9fba1c4af3c9b5aad206ec76469c1625125ea799.tar.bz2 JellySolutions-9fba1c4af3c9b5aad206ec76469c1625125ea799.zip |
Merge remote-tracking branch 'origin/main' into list-and-cupboard-component-refactor
# Conflicts:
# ufund-api/src/main/java/com/ufund/api/ufundapi/controller/CupboardController.java
# ufund-api/src/main/java/com/ufund/api/ufundapi/model/Need.java
# ufund-ui/src/app/components/cupboard/cupboard.component.ts
# ufund-ui/src/app/components/need-list/need-list.component.ts
# ufund-ui/src/app/models/Need.ts
Diffstat (limited to 'ufund-ui/src/app/services/auth.service.ts')
-rw-r--r-- | ufund-ui/src/app/services/auth.service.ts | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/ufund-ui/src/app/services/auth.service.ts b/ufund-ui/src/app/services/auth.service.ts new file mode 100644 index 0000000..6bc7145 --- /dev/null +++ b/ufund-ui/src/app/services/auth.service.ts @@ -0,0 +1,57 @@ +import {Injectable} from '@angular/core'; +import {BehaviorSubject, firstValueFrom} from 'rxjs'; +import {User} from '../models/User'; +import {HttpClient, HttpHeaders} from '@angular/common/http'; + +@Injectable({ + providedIn: 'root' +}) +export class AuthService { + + private authUrl = "http://localhost:8080/auth" + private userUrl = "http://localhost:8080/users" + + private currentUser : BehaviorSubject<User | null> = new BehaviorSubject<User | null>(null); + private apiKey: string = ""; + + httpOptions2 = () => ({ + headers: new HttpHeaders({ + 'Content-Type': 'application/json', + "jelly-api-key": this.apiKey + }), + responseType: "text" as "json" // don't ask me how or why this works, bc i have no clue... + // see the relevant angular bug report https://github.com/angular/angular/issues/18586 + }); + + constructor( + private http: HttpClient + ) {} + + async login(username: string, password: string) { + let res = this.http.post<string>(this.authUrl, {username: username, password: password}, this.httpOptions2()); + this.apiKey = await firstValueFrom(res); + console.log("apikey: "+this.apiKey) + let res2 = this.http.get<User>(`${this.userUrl}/${username}`, { + headers: new HttpHeaders({ + 'Content-Type': 'application/json', + "jelly-api-key": this.apiKey + }) + }) + let currentU = await firstValueFrom(res2); + this.currentUser.next(currentU); + // this.currentUser.subscribe(r => console.log("currentUser: "+r.username)) + } + + getCurrentUserSubject() { + return this.currentUser; + } + + getCurrentUser() { + return this.currentUser.getValue() + } + + getApiKey() { + return this.apiKey; + } + +} |