summaryrefslogtreecommitdiff
path: root/src/main/java/design/controller/userinput/menus/SelectUser.java
diff options
context:
space:
mode:
authorWillem Dalton <144246261+WillemDalton@users.noreply.github.com>2025-10-08 22:12:30 -0400
committerGitHub <noreply@github.com>2025-10-08 22:12:30 -0400
commit924fc4730aed92a0dc909fd10d2d3bc02a29e845 (patch)
treec09b5932dc8bea16469439fcc0bcce1cb4cfb808 /src/main/java/design/controller/userinput/menus/SelectUser.java
parent88564fc1e48ec1efbbfc91e99339b781146a9a75 (diff)
parentbf6b01e5005618e6ccdfb4217311a8f94dd5a0dd (diff)
downloaddesignproject-design-6-924fc4730aed92a0dc909fd10d2d3bc02a29e845.tar.gz
designproject-design-6-924fc4730aed92a0dc909fd10d2d3bc02a29e845.tar.bz2
designproject-design-6-924fc4730aed92a0dc909fd10d2d3bc02a29e845.zip
Merge branch 'main' into course-search
Diffstat (limited to 'src/main/java/design/controller/userinput/menus/SelectUser.java')
-rw-r--r--src/main/java/design/controller/userinput/menus/SelectUser.java60
1 files changed, 49 insertions, 11 deletions
diff --git a/src/main/java/design/controller/userinput/menus/SelectUser.java b/src/main/java/design/controller/userinput/menus/SelectUser.java
index 2f1a867..ffae559 100644
--- a/src/main/java/design/controller/userinput/menus/SelectUser.java
+++ b/src/main/java/design/controller/userinput/menus/SelectUser.java
@@ -1,16 +1,25 @@
package design.controller.userinput.menus;
+import design.controller.userinput.Action;
import design.controller.userinput.Menu;
import design.controller.userinput.MenuOption;
+import design.model.Golfer;
import design.runtime.Session;
import design.persistence.PersonalDatabase;
+import java.io.IOException;
import java.util.ArrayList;
-import java.util.Arrays;
import java.util.List;
+import java.util.Scanner;
public class SelectUser extends Menu {
- PersonalDatabase personalDB = PersonalDatabase.INSTANCE;
+ 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;
+ }
@Override
public String getTitle() {
@@ -19,15 +28,44 @@ public class SelectUser extends Menu {
@Override
public List<MenuOption> getMenuOptions() {
- var l = new ArrayList<MenuOption>();
- // Sets user in Session too
- l.addAll(Arrays.stream(personalDB.getGolfers()).map(i -> new MenuOption(i.getUsername(), (a) -> {
- Session.setCurrentGolfer(i);
- System.out.printf("Loaded user: %s%n", i.getUsername());
- new UserSettings().present();
- })).toList());
- l.add(new MenuOption("<create>", (a) -> {
+ var opts = new ArrayList<MenuOption>();
+
+ for (Golfer i : personalDB.getGolfers()) {
+ MenuOption menuOption = new MenuOption(i.getUsername(), () -> {
+ 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();
+ }
+ });
+ opts.add(menuOption);
+ }
+
+ 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 l;
+
+ return opts;
}
}