summaryrefslogtreecommitdiff
path: root/src/main/java/design/controller/userinput/menus/SelectUser.java
diff options
context:
space:
mode:
authorJacob Shimp <jrs9538@g.rit.edu>2025-10-08 19:31:45 -0400
committerJacob Shimp <jrs9538@g.rit.edu>2025-10-08 19:31:45 -0400
commit4a720e851d188688571e2f5c7f46b6389e9a429f (patch)
tree8516b582587b245226f2db1603ad2ca0fd694cf2 /src/main/java/design/controller/userinput/menus/SelectUser.java
parent030786488b2956b7da6b0a7fd460923d7b13a25f (diff)
parentbf6b01e5005618e6ccdfb4217311a8f94dd5a0dd (diff)
downloaddesignproject-design-6-4a720e851d188688571e2f5c7f46b6389e9a429f.tar.gz
designproject-design-6-4a720e851d188688571e2f5c7f46b6389e9a429f.tar.bz2
designproject-design-6-4a720e851d188688571e2f5c7f46b6389e9a429f.zip
pull from main
Diffstat (limited to 'src/main/java/design/controller/userinput/menus/SelectUser.java')
-rw-r--r--src/main/java/design/controller/userinput/menus/SelectUser.java46
1 files changed, 38 insertions, 8 deletions
diff --git a/src/main/java/design/controller/userinput/menus/SelectUser.java b/src/main/java/design/controller/userinput/menus/SelectUser.java
index 82e2338..ffae559 100644
--- a/src/main/java/design/controller/userinput/menus/SelectUser.java
+++ b/src/main/java/design/controller/userinput/menus/SelectUser.java
@@ -7,12 +7,15 @@ import design.model.Golfer;
import design.runtime.Session;
import design.persistence.PersonalDatabase;
+import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
+import java.util.Scanner;
public class SelectUser extends Menu {
private final PersonalDatabase personalDB = PersonalDatabase.INSTANCE;
private final Action doAfter;
+ private final Scanner scanner = new Scanner(System.in);
public SelectUser(Action doAfter) {
this.doAfter = doAfter;
@@ -25,17 +28,44 @@ public class SelectUser extends Menu {
@Override
public List<MenuOption> getMenuOptions() {
- var l = new ArrayList<MenuOption>();
+ var opts = new ArrayList<MenuOption>();
+
for (Golfer i : personalDB.getGolfers()) {
MenuOption menuOption = new MenuOption(i.getUsername(), () -> {
- // Sets user in Session too
- Session.setCurrentGolfer(i);
- System.out.printf("Loaded user: %s%n", i.getUsername());
- doAfter.onCommand();
+ System.out.print("Enter password: ");
+ var password = scanner.nextLine();
+ if (i.checkPassword(password)) {
+ // Sets user in Session too
+ Session.setCurrentGolfer(i);
+ System.out.printf("Loaded user: %s%n", i.getUsername());
+ doAfter.onAction();
+ } else {
+ System.out.println("Incorrect password. ");
+ this.present();
+ }
});
- l.add(menuOption);
+ opts.add(menuOption);
}
- l.add(new MenuOption("<create>", () -> {}));
- return l;
+
+ opts.add(new MenuOption("<create>", () -> {
+
+ System.out.print("Enter username: ");
+ var username = scanner.nextLine();
+
+ System.out.print("Enter full name: ");
+ var fullName = scanner.nextLine();
+
+ System.out.print("Enter password: ");
+ var password = scanner.nextLine();
+
+ try {
+ personalDB.addGolfer(new Golfer(fullName, username, password));
+ } catch (IOException ex) {
+ throw new RuntimeException(ex);
+ }
+ this.present();
+ }));
+
+ return opts;
}
}