From 804a669e6759768892cb97af3f66ab6c3f6d6a8f Mon Sep 17 00:00:00 2001
From: Laurine <lenetlaurine@gmail.com>
Date: Fri, 6 Oct 2023 09:43:49 +0200
Subject: [PATCH] 8-2 Bdd add users

---
 .../com/example/livecodingjavaspring/User.java  |  3 +++
 .../example/livecodingjavaspring/UserDao.java   | 17 ++++++++++++++---
 .../UserLibraryController.java                  |  4 ++--
 3 files changed, 19 insertions(+), 5 deletions(-)

diff --git a/src/main/java/com/example/livecodingjavaspring/User.java b/src/main/java/com/example/livecodingjavaspring/User.java
index 630fccd..cc9fa8b 100644
--- a/src/main/java/com/example/livecodingjavaspring/User.java
+++ b/src/main/java/com/example/livecodingjavaspring/User.java
@@ -3,9 +3,12 @@ package com.example.livecodingjavaspring;
 import lombok.Builder;
 import lombok.Data;
 
+import java.util.Random;
+
 @Data
 @Builder
 public class User {
+    private final int id = new Random().nextInt(1000);
     private String firstName;
     private String lastName;
     private Integer age;
diff --git a/src/main/java/com/example/livecodingjavaspring/UserDao.java b/src/main/java/com/example/livecodingjavaspring/UserDao.java
index 599d882..8c085e7 100644
--- a/src/main/java/com/example/livecodingjavaspring/UserDao.java
+++ b/src/main/java/com/example/livecodingjavaspring/UserDao.java
@@ -9,6 +9,8 @@ import java.util.List;
 @Service
 public class UserDao {
     private static final String FETCH_ALL_USERS_QUERY = "SELECT * FROM users";
+    private static final String ADD_USER_QUERY = "INSERT INTO users (id, first_name, last_name, age) VALUES (?, ?, ?, ?)";
+
 
     public List<User> getUsers() {
         List<User> users = new ArrayList<>();
@@ -30,8 +32,17 @@ public class UserDao {
 
     }
 
-    public List<User> addUser(List<User> users, User user) {
-        users.add(user);
-        return users;
+    public int addUser(User user) {
+        try (Connection connection = DriverManager.getConnection("jdbc:postgresql://localhost/db-name", "user", "pwd");
+             PreparedStatement preparedStatement = connection.prepareStatement(ADD_USER_QUERY)) {
+            preparedStatement.setInt(1, user.getId());
+            preparedStatement.setString(2, user.getFirstName());
+            preparedStatement.setString(3, user.getLastName());
+            preparedStatement.setInt(4, user.getAge());
+            return preparedStatement.executeUpdate();
+        } catch (SQLException e) {
+            throw new RuntimeException(e);
+        }
+
     }
 }
diff --git a/src/main/java/com/example/livecodingjavaspring/UserLibraryController.java b/src/main/java/com/example/livecodingjavaspring/UserLibraryController.java
index 5476ebd..e528c9f 100644
--- a/src/main/java/com/example/livecodingjavaspring/UserLibraryController.java
+++ b/src/main/java/com/example/livecodingjavaspring/UserLibraryController.java
@@ -22,8 +22,8 @@ public class UserLibraryController {
 
     @PostMapping("")
     public List<User> addUser(@RequestBody User user) {
-        List<User> users= userDao.getUsers();
-        return userDao.addUser(users, user);
+        userDao.addUser(user);
+        return userDao.getUsers();
     }
 
 }
-- 
GitLab