aboutsummaryrefslogtreecommitdiff
path: root/ufund-ui/src/app/components/need-page/need-page.component.ts
diff options
context:
space:
mode:
authorGunther6070 <haydenhartman10@yahoo.com>2025-04-01 07:45:28 -0400
committerGunther6070 <haydenhartman10@yahoo.com>2025-04-01 07:45:28 -0400
commit726b527af983025a95daae67864122761bcc4e78 (patch)
tree2046e58c146097aac21c9e352771420c31df6589 /ufund-ui/src/app/components/need-page/need-page.component.ts
parentb544f2617843af29875af81923d3bec539aca704 (diff)
parent0e9c0803e35a23ef2e873dc7ebf224a49a92f207 (diff)
downloadJellySolutions-726b527af983025a95daae67864122761bcc4e78.tar.gz
JellySolutions-726b527af983025a95daae67864122761bcc4e78.tar.bz2
JellySolutions-726b527af983025a95daae67864122761bcc4e78.zip
Merge branch 'css' of https://github.com/RIT-SWEN-261-02/team-project-2245-swen-261-02-2b into css
Diffstat (limited to 'ufund-ui/src/app/components/need-page/need-page.component.ts')
-rw-r--r--ufund-ui/src/app/components/need-page/need-page.component.ts62
1 files changed, 59 insertions, 3 deletions
diff --git a/ufund-ui/src/app/components/need-page/need-page.component.ts b/ufund-ui/src/app/components/need-page/need-page.component.ts
index e38554c..ad4cacf 100644
--- a/ufund-ui/src/app/components/need-page/need-page.component.ts
+++ b/ufund-ui/src/app/components/need-page/need-page.component.ts
@@ -1,8 +1,12 @@
import {Component, Input} from '@angular/core';
import {GoalType, Need} from '../../models/Need';
-import {ActivatedRoute} from "@angular/router";
+import {ActivatedRoute, Router} from "@angular/router";
import {CupboardService} from "../../services/cupboard.service";
-import {NgFor} from '@angular/common';
+import {userType} from '../../models/User';
+import {AuthService} from '../../services/auth.service';
+import {catchError, of} from 'rxjs';
+import {ToastsService, ToastType} from '../../services/toasts.service';
+import {UsersService} from '../../services/users.service';
@Component({
selector: 'app-need-page',
@@ -14,11 +18,15 @@ export class NeedPageComponent {
constructor(
private route: ActivatedRoute,
private cupboardService: CupboardService,
+ private authService: AuthService,
+ private usersService: UsersService,
+ private toastService: ToastsService,
+ private router: Router
) {}
public GoalType = GoalType;
- @Input() need?: Need;
+ @Input() need!: Need;
ngOnInit(): void {
const id = Number(this.route.snapshot.paramMap.get('id'));
@@ -28,4 +36,52 @@ export class NeedPageComponent {
back() {
window.history.back();
}
+
+ isManager() {
+ const type = this.authService.getCurrentUser()?.type;
+ return type === ("MANAGER" as unknown as userType);
+ }
+
+ isHelper() {
+ const type = this.authService.getCurrentUser()?.type;
+ return type === ("HELPER" as unknown as userType);
+ }
+
+ add(need: Need) {
+ const currentUser = this.authService.getCurrentUser();
+ //console.log("get current user in angular:", currentUser)
+ if (currentUser) {
+ if (!currentUser.basket.includes(need.id)) {
+ currentUser.basket.push(need.id);
+ this.usersService.updateUser(currentUser)
+ .pipe(catchError((err, _) => {
+ console.error(err);
+ return of();
+ }))
+ .subscribe(() => {
+ this.usersService.refreshBasket();
+ });
+ } else {
+ this.toastService.sendToast(ToastType.ERROR, "This need is already in your basket!")
+ }
+ }
+ }
+
+ delete(id : number) {
+ this.cupboardService.deleteNeed(id)
+ .pipe(catchError((ex, r) => {
+ this.toastService.sendToast(ToastType.ERROR, ex.error)
+ return of()
+ }))
+ .subscribe(() => {
+ // this.needs = this.needs.filter(n => n.id !== id)
+ this.toastService.sendToast(ToastType.INFO, "Need deleted")
+ this.router.navigate(['/'])
+ })
+ // this.refresh();
+ }
+
+ edit(need: Need) {
+
+ }
}