From 5d3c802e7238cadac0af29c291f499955a1d2bd0 Mon Sep 17 00:00:00 2001
From: Laurine <lenetlaurine@gmail.com>
Date: Mon, 2 Oct 2023 09:09:44 +0200
Subject: [PATCH] 4- Gestion des utilisateurs & 5- Refacto cli

---
 .../com/example/livecodingjavaspring/App.java | 11 +---
 .../com/example/livecodingjavaspring/Cli.java | 59 ++++++++++++-------
 .../example/livecodingjavaspring/UserDao.java | 20 +++++++
 3 files changed, 61 insertions(+), 29 deletions(-)
 create mode 100644 src/main/java/com/example/livecodingjavaspring/UserDao.java

diff --git a/src/main/java/com/example/livecodingjavaspring/App.java b/src/main/java/com/example/livecodingjavaspring/App.java
index 2715c6a..4920daa 100644
--- a/src/main/java/com/example/livecodingjavaspring/App.java
+++ b/src/main/java/com/example/livecodingjavaspring/App.java
@@ -5,15 +5,8 @@ import java.util.List;
 
 public class App {
     public static void main(String[] args) {
-        List<User> users = new ArrayList<>();
-        users.add(new User("Laurine", "LE NET", 24));
-        users.add(new User("Pilou", "BERTRAND", 24));
-        users.add(new User("Alain", "CONNU", 26));
-        users.add(new User("Aurélie", "BIENCEQUETAECRIT", 20));
-        users.add(new User("Barack", "AFFRITTE", 22));
-        users.add(new User("Camille", "ONETTE", 23));
-        users.add(new User("Jean", "TENRIEN", 22));
-        users.add(new User("Lara", "TATOUILLE", 24));
+        UserDao userDao = new UserDao();
+        List<User> users= userDao.createDatabase();
         Cli cli = new Cli(users);
         cli.run();
     }
diff --git a/src/main/java/com/example/livecodingjavaspring/Cli.java b/src/main/java/com/example/livecodingjavaspring/Cli.java
index 497eba0..82c0d63 100644
--- a/src/main/java/com/example/livecodingjavaspring/Cli.java
+++ b/src/main/java/com/example/livecodingjavaspring/Cli.java
@@ -3,38 +3,57 @@ package com.example.livecodingjavaspring;
 import java.util.List;
 import java.util.Scanner;
 
-import static java.lang.Integer.parseInt;
-
 public class Cli {
-    private List<User> users;
+    private final List<User> users;
 
     public Cli(List<User> users) {
         this.users = users;
     }
+
     public void run() {
         int choice = -1;
         while (choice != 0) {
             Scanner scanner = new Scanner(System.in);
-            System.out.println("Hello jeune Peufien ! dans ma super CLI");
-            System.out.println("Que veux-tu faire ?");
-            System.out.println("1- Lister les utilisateurs");
-            System.out.println("2- Ajouter un utilisateur");
+            printWelcome();
             choice = scanner.nextInt();
             switch (choice) {
-                case 1-> users.forEach(System.out::println);
-                case 2 -> {
-                    System.out.println("Prénom de l'utilisateur");
-                    String firstname = scanner.next();
-                    System.out.println("Nom de l'utilisateur");
-                    String lastname = scanner.next();
-                    System.out.println("Age de l'utilisateur");
-                    String age = scanner.next();
-                    users.add(new User(firstname, lastname, Integer.valueOf(age)));
-                    users.forEach(System.out::println);
-                }
-                case 0 -> System.exit(0);
-                default -> System.out.println("Mauvaise commande");
+                case 1 -> printUsers(users);
+                case 2 -> addUser(scanner);
+                case 0 -> exitCli();
+                default -> incorrectInput();
             }
         }
     }
+
+    private void printWelcome() {
+        System.out.println("Hello jeune Peufien ! dans ma super CLI");
+        System.out.println("Que veux-tu faire ?");
+        System.out.println("1- Lister les utilisateurs");
+        System.out.println("2- Ajouter un utilisateur");
+        System.out.println("0- Quitter l'application");
+    }
+
+    private void printUsers(List<User> users) {
+        users.forEach(System.out::println);
+    }
+
+    private void addUser(Scanner scanner) {
+        System.out.println("Prénom de l'utilisateur");
+        String firstname = scanner.next();
+        System.out.println("Nom de l'utilisateur");
+        String lastname = scanner.next();
+        System.out.println("Age de l'utilisateur");
+        String age = scanner.next();
+        users.add(new User(firstname, lastname, Integer.valueOf(age)));
+        users.forEach(System.out::println);
+    }
+
+    private void incorrectInput() {
+        System.out.println("Mauvaise commande");
+    }
+
+    private void exitCli() {
+        System.exit(0);
+    }
+
 }
diff --git a/src/main/java/com/example/livecodingjavaspring/UserDao.java b/src/main/java/com/example/livecodingjavaspring/UserDao.java
new file mode 100644
index 0000000..c5f3891
--- /dev/null
+++ b/src/main/java/com/example/livecodingjavaspring/UserDao.java
@@ -0,0 +1,20 @@
+package com.example.livecodingjavaspring;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class UserDao {
+
+    public List<User> createDatabase() {
+        List<User> users = new ArrayList<>();
+        users.add(new User("Laurine", "LE NET", 22));
+        users.add(new User("Pilou", "BERTRAND", 24));
+        users.add(new User("Alain", "CONNU", 26));
+        users.add(new User("Aurélie", "BIENCEQUETAECRIT", 20));
+        users.add(new User("Barack", "AFFRITTE", 22));
+        users.add(new User("Camille", "ONETTE", 23));
+        users.add(new User("Jean", "TENRIEN", 22));
+        users.add(new User("Lara", "TATOUILLE", 24));
+        return users;
+    }
+}
-- 
GitLab