diff options
author | Akash Keshav <112591754+domesticchores@users.noreply.github.com> | 2025-03-18 12:42:37 -0400 |
---|---|---|
committer | Akash Keshav <112591754+domesticchores@users.noreply.github.com> | 2025-03-18 12:42:37 -0400 |
commit | 98431cd75078fd671270039ad9fa4d42759dc502 (patch) | |
tree | 24316d810e3f34b676b298220a0c2c7af36edc80 /ufund-ui/src/app/services/users.service.ts | |
parent | 0b41684e57c79374aee3a564307cd4fdef603e7c (diff) | |
download | JellySolutions-98431cd75078fd671270039ad9fa4d42759dc502.tar.gz JellySolutions-98431cd75078fd671270039ad9fa4d42759dc502.tar.bz2 JellySolutions-98431cd75078fd671270039ad9fa4d42759dc502.zip |
reworked funding basket to accept need-list component. -ak
Diffstat (limited to 'ufund-ui/src/app/services/users.service.ts')
-rw-r--r-- | ufund-ui/src/app/services/users.service.ts | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/ufund-ui/src/app/services/users.service.ts b/ufund-ui/src/app/services/users.service.ts index 2a95202..a0d316c 100644 --- a/ufund-ui/src/app/services/users.service.ts +++ b/ufund-ui/src/app/services/users.service.ts @@ -2,6 +2,8 @@ import { Injectable } from '@angular/core'; import {HttpClient, HttpHeaders} from '@angular/common/http'; import {BehaviorSubject, firstValueFrom, Observable} from 'rxjs'; import {User} from '../models/User'; +import { Need } from '../models/Need'; +import { CupboardService } from './cupboard.service'; @Injectable({ providedIn: 'root' @@ -10,6 +12,7 @@ export class UsersService { private currentUser : BehaviorSubject<User | null> = new BehaviorSubject<User | null>(null); private apiKey: string = ""; + private basket = new BehaviorSubject<Need[]>([]); private url = "http://localhost:8080/users" private authUrl = "http://localhost:8080/auth" @@ -29,7 +32,8 @@ export class UsersService { }; constructor( - private http: HttpClient + private http: HttpClient, + private cupboardService: CupboardService, ) {} async createUser(username:string, password:string) { @@ -73,4 +77,18 @@ export class UsersService { this.currentUser.next(currentU); // this.currentUser.subscribe(r => console.log("currentUser: "+r.username)) } + + refreshBasket() { + let promiseArr = this.getCurrentUser()!.basket.map(async needID => { + return await firstValueFrom(this.cupboardService.getNeed(needID)); + }) + Promise.all(promiseArr).then(r => this.basket.next(r)); + } + + removeNeed(id: number) { + let newArr = this.basket.getValue().filter(v => v.id != id); + this.basket.next(newArr); + this.getCurrentUser()!.basket = newArr.map(need => need.id); + this.updateUser(this.getCurrentUser()!); + } } |