summaryrefslogtreecommitdiff
path: root/src/main/java/design/controller/userinput/menus/SelectUser.java
diff options
context:
space:
mode:
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;
}
}