aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbenal01 <bja4245@rit.edu>2025-03-29 15:01:12 -0400
committerbenal01 <bja4245@rit.edu>2025-03-29 15:01:12 -0400
commite0a3f2c2c0fec40aa50c8889e343a1dbc7f9d7fb (patch)
tree7b8c9811964e566ed4bc930e929301990538b82e
parent61b5b762b150c82e7d48190bcfe3416bfea96059 (diff)
downloadJellySolutions-e0a3f2c2c0fec40aa50c8889e343a1dbc7f9d7fb.tar.gz
JellySolutions-e0a3f2c2c0fec40aa50c8889e343a1dbc7f9d7fb.tar.bz2
JellySolutions-e0a3f2c2c0fec40aa50c8889e343a1dbc7f9d7fb.zip
API functionality for urgency and location
-rw-r--r--ufund-api/src/main/java/com/ufund/api/ufundapi/controller/CupboardController.java5
-rw-r--r--ufund-api/src/main/java/com/ufund/api/ufundapi/model/Need.java32
-rw-r--r--ufund-api/src/main/java/com/ufund/api/ufundapi/service/CupboardService.java4
-rw-r--r--ufund-ui/src/app/components/need-list/need-list.component.html2
-rw-r--r--ufund-ui/src/app/components/need-page/need-page.component.html3
5 files changed, 38 insertions, 8 deletions
diff --git a/ufund-api/src/main/java/com/ufund/api/ufundapi/controller/CupboardController.java b/ufund-api/src/main/java/com/ufund/api/ufundapi/controller/CupboardController.java
index 55cf88d..f79e445 100644
--- a/ufund-api/src/main/java/com/ufund/api/ufundapi/controller/CupboardController.java
+++ b/ufund-api/src/main/java/com/ufund/api/ufundapi/controller/CupboardController.java
@@ -50,12 +50,13 @@ public class CupboardController {
public ResponseEntity<Need> createNeed(@RequestBody Map<String, Object> params) {
System.out.println(params);
String name = (String) params.get("name");
- System.out.println("attemtping cast maxgoual");
+ String location = (String) params.get("location");
double maxGoal = ((Number) params.get("maxGoal")).doubleValue();
+ boolean urgent = (Boolean) params.get("urgent");
Need.GoalType goalType = GoalType.valueOf((String) params.get("type"));
try {
- Need need = cupboardService.createNeed(name, maxGoal, goalType);
+ Need need = cupboardService.createNeed(name, location, maxGoal, goalType, urgent);
return new ResponseEntity<>(need, HttpStatus.OK);
} catch (DuplicateKeyException ex) {
return new ResponseEntity<>(HttpStatus.CONFLICT);
diff --git a/ufund-api/src/main/java/com/ufund/api/ufundapi/model/Need.java b/ufund-api/src/main/java/com/ufund/api/ufundapi/model/Need.java
index c0e9214..45f1f9a 100644
--- a/ufund-api/src/main/java/com/ufund/api/ufundapi/model/Need.java
+++ b/ufund-api/src/main/java/com/ufund/api/ufundapi/model/Need.java
@@ -10,38 +10,48 @@ public class Need {
}
@JsonProperty("name") private String name;
+ @JsonProperty("location") private String location;
@JsonProperty("id") private int id;
@JsonProperty("filterAttributes") private String[] filterAttributes;
@JsonProperty("type") final private GoalType type;
@JsonProperty("maxGoal") private double maxGoal;
+ @JsonProperty("urgent") private boolean urgent;
@JsonProperty("current") private double current;
/**
* Create a new need
*
* @param name The name of the need
+ * @param location The physical location of the need
* @param id The unique ID of the need
* @param maxGoal The maximum goal for this need
* @param type The type of need (monetary, physical)
+ * @param urgent The urgency of the need
*/
- public Need(@JsonProperty("name") String name, @JsonProperty("id") int id, @JsonProperty("maxGoal") double maxGoal, GoalType type) {
+ public Need(@JsonProperty("name") String name, @JsonProperty("location") String location, @JsonProperty("id") int id, @JsonProperty("maxGoal") double maxGoal, GoalType type, @JsonProperty("urgent") boolean urgent) {
this.id = id;
+ this.location = location;
this.name = name;
this.maxGoal = maxGoal;
this.type = type;
+ this.urgent = urgent;
}
/**
* Create a new need
*
* @param name The name of the need
+ * @param location The location of the need
* @param maxGoal The maximum goal for this need
* @param type The type of need (monetary, physical)
+ * @param urgency The urgency of the need
*/
- public Need(String name, GoalType type, double maxGoal) {
+ public Need(String name, String location, GoalType type, double maxGoal, boolean urgent) {
this.name = name;
+ this.location = location;
this.type = type;
this.maxGoal = maxGoal;
+ this.urgent = urgent;
}
/**
@@ -51,17 +61,23 @@ public class Need {
*/
public Need(Need other) {
this.name = other.name;
+ this.location = other.location;
this.id = other.id;
this.filterAttributes = other.filterAttributes;
this.type = other.type;
this.maxGoal = other.maxGoal;
this.current = other.current;
+ this.urgent = other.urgent;
}
public String getName() {
return name;
}
+ public String getLocation() {
+ return location;
+ }
+
public int getId() {
return id;
}
@@ -82,6 +98,10 @@ public class Need {
return current;
}
+ public boolean isUrgent() {
+ return urgent;
+ }
+
public void setCurrent(double current) {
this.current = current;
}
@@ -98,7 +118,15 @@ public class Need {
this.name = name;
}
+ public void setLocation(String location) {
+ this.location = location;
+ }
+
public void setID(int id){
this.id = id;
}
+
+ public void setUrgent(boolean urgent) {
+ this.urgent = urgent;
+ }
} \ No newline at end of file
diff --git a/ufund-api/src/main/java/com/ufund/api/ufundapi/service/CupboardService.java b/ufund-api/src/main/java/com/ufund/api/ufundapi/service/CupboardService.java
index 2398745..d09afb4 100644
--- a/ufund-api/src/main/java/com/ufund/api/ufundapi/service/CupboardService.java
+++ b/ufund-api/src/main/java/com/ufund/api/ufundapi/service/CupboardService.java
@@ -28,7 +28,7 @@ public class CupboardService {
* @throws IOException Thrown if there was any issue saving the data
* @throws DuplicateKeyException If there already exists a need with the same name
*/
- public Need createNeed(String name, double maxGoal, Need.GoalType goalType) throws IOException, DuplicateKeyException {
+ public Need createNeed(String name, String location, double maxGoal, Need.GoalType goalType, boolean urgent) throws IOException, DuplicateKeyException {
if (maxGoal <= 0) {
throw new IllegalArgumentException("Max Goal must be greater than zero");
@@ -40,7 +40,7 @@ public class CupboardService {
}
}
- Need need = new Need(name, goalType, maxGoal);
+ Need need = new Need(name, location, goalType, maxGoal, urgent);
return cupboardDAO.addNeed(need);
}
diff --git a/ufund-ui/src/app/components/need-list/need-list.component.html b/ufund-ui/src/app/components/need-list/need-list.component.html
index 5e9a540..ed151a3 100644
--- a/ufund-ui/src/app/components/need-list/need-list.component.html
+++ b/ufund-ui/src/app/components/need-list/need-list.component.html
@@ -28,7 +28,7 @@
<ul>
<li *ngFor="let need of searchResults" id="need-button-{{need.id}}">
<button [routerLink]="'/need/' + need.id" (mouseenter) ="changeText(need.id, '(details)')" (mouseleave)="changeText(need.id, '')">
- <p>{{need.name}}<span id="hover-status-label-{{need.id}}"> </span></p>
+ <p>{{need.name}} <span id="hover-status-label-{{need.id}}"> </span></p>
</button>
<button (click)="add(need)" *ngIf="isHelper()">Add To Basket</button>
diff --git a/ufund-ui/src/app/components/need-page/need-page.component.html b/ufund-ui/src/app/components/need-page/need-page.component.html
index 90fd459..004f9eb 100644
--- a/ufund-ui/src/app/components/need-page/need-page.component.html
+++ b/ufund-ui/src/app/components/need-page/need-page.component.html
@@ -16,7 +16,8 @@
</div>
<hr>
-
+<p>Location: {{need?.location}}</p>
<p>Goal: {{need?.maxGoal}}</p>
<p>Current: {{need?.current}}</p>
+<p>Urgent: {{need?.urgent}}</p>
<p>This goal is <strong>{{(((need?.current ?? 0)*100) / (need?.maxGoal ?? 0)).toFixed(0)}}%</strong> complete!</p> \ No newline at end of file