aboutsummaryrefslogtreecommitdiff
path: root/ufund-ui/src/app/components/need-page/need-page.component.ts
diff options
context:
space:
mode:
authorsowgro <tpoke.ferrari@gmail.com>2025-03-31 23:37:00 -0400
committersowgro <tpoke.ferrari@gmail.com>2025-03-31 23:37:00 -0400
commit896e1219526a19400c7143b274193f8b818d6156 (patch)
treeae794d7dff944dbdb61a558804c8530f2d7013af /ufund-ui/src/app/components/need-page/need-page.component.ts
parent469678629e456a792e5f0c328e7c6786064279cb (diff)
downloadJellySolutions-896e1219526a19400c7143b274193f8b818d6156.tar.gz
JellySolutions-896e1219526a19400c7143b274193f8b818d6156.tar.bz2
JellySolutions-896e1219526a19400c7143b274193f8b818d6156.zip
Commit half working changes to move to my laptop
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) {
+
+ }
}