From 45f40a79768006ff705c5eefb564d81bdd817e17 Mon Sep 17 00:00:00 2001
From: Huffle <knaepen.selina@gmail.com>
Date: Mon, 26 May 2025 10:29:40 +0200
Subject: [PATCH] add possibility to finish a goal (#90)

closes #67

Reviewed-on: https://gitea.seeseepuff.be/seeseemelk/allowance_planner_2000/pulls/90
---
 .../src/app/pages/allowance/allowance.page.html              | 2 +-
 .../src/app/pages/allowance/allowance.page.ts                | 5 +++++
 .../src/app/services/allowance.service.ts                    | 4 ++++
 3 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/frontend/allowance-planner-v2/src/app/pages/allowance/allowance.page.html b/frontend/allowance-planner-v2/src/app/pages/allowance/allowance.page.html
index 4638229..94f9a09 100644
--- a/frontend/allowance-planner-v2/src/app/pages/allowance/allowance.page.html
+++ b/frontend/allowance-planner-v2/src/app/pages/allowance/allowance.page.html
@@ -61,7 +61,7 @@
             <div class="buttons">
               <button class="add-button">Add</button>
               <!-- <button class="move-button">Move</button> -->
-              <button class="spend-button" [disabled]="!canFinishGoal(goal)">Finish goal</button>
+              <button class="spend-button" [disabled]="!canFinishGoal(goal)" (click)="completeGoal(goal.id)">Finish goal</button>
             </div>
           </div>
           <div class="color" [style.--background]="hexToRgb(goal.colour)" [style.width.%]="getPercentage(goal)"></div>
diff --git a/frontend/allowance-planner-v2/src/app/pages/allowance/allowance.page.ts b/frontend/allowance-planner-v2/src/app/pages/allowance/allowance.page.ts
index 5508cb9..c0b0971 100644
--- a/frontend/allowance-planner-v2/src/app/pages/allowance/allowance.page.ts
+++ b/frontend/allowance-planner-v2/src/app/pages/allowance/allowance.page.ts
@@ -67,4 +67,9 @@ export class AllowancePage implements ViewWillEnter {
   updateAllowance(id: number) {
     this.router.navigate(['edit', id], { relativeTo: this.route });
   }
+
+  completeGoal(goalId: number) {
+    this.allowanceService.completeGoal(goalId, this.id);
+    this.getAllowance();
+  }
 }
diff --git a/frontend/allowance-planner-v2/src/app/services/allowance.service.ts b/frontend/allowance-planner-v2/src/app/services/allowance.service.ts
index 2e84126..61397e9 100644
--- a/frontend/allowance-planner-v2/src/app/services/allowance.service.ts
+++ b/frontend/allowance-planner-v2/src/app/services/allowance.service.ts
@@ -30,4 +30,8 @@ export class AllowanceService {
     deleteAllowance(allowanceId: number, userId: number) {
         this.http.delete(`${this.url}/user/${userId}/allowance/${allowanceId}`).subscribe();
     }
+
+    completeGoal(goalId: number, userId: number) {
+        this.http.post(`${this.url}/user/${userId}/allowance/${goalId}/complete`, {}).subscribe();
+    }
 }
\ No newline at end of file