From 5d3b51d45a6f193c10feb1b05d1bf6b29a9762d1 Mon Sep 17 00:00:00 2001
From: Hugo <hugo.cubino@estudiantes.uva.es>
Date: Sat, 16 Nov 2024 18:43:56 +0100
Subject: [PATCH] =?UTF-8?q?A=C3=B1adido=20el=20endpoint=20nuevo?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../com/uva/users/Controllers/UserController.java  |  9 +++++++++
 .../src/main/java/com/uva/users/Models/User.java   | 14 +++++++++++++-
 .../com/uva/users/Repositories/UserRepository.java |  4 +++-
 3 files changed, 25 insertions(+), 2 deletions(-)

diff --git a/java/services/users/src/main/java/com/uva/users/Controllers/UserController.java b/java/services/users/src/main/java/com/uva/users/Controllers/UserController.java
index 667ef87..30274d8 100644
--- a/java/services/users/src/main/java/com/uva/users/Controllers/UserController.java
+++ b/java/services/users/src/main/java/com/uva/users/Controllers/UserController.java
@@ -16,6 +16,7 @@ import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.PutMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.client.RestTemplate;
 import org.springframework.core.ParameterizedTypeReference;
@@ -124,4 +125,12 @@ public class UserController {
     );
     return response.getBody();
   }
+
+  @GetMapping(params = "email")
+  public ResponseEntity<User> getUserByEmail(@RequestParam String email) {
+    return userRepository.findByEmail(email)
+        .map(ResponseEntity::ok)
+        .orElse(ResponseEntity.noContent().build());
+}
+
 }
diff --git a/java/services/users/src/main/java/com/uva/users/Models/User.java b/java/services/users/src/main/java/com/uva/users/Models/User.java
index 43a153a..455ef02 100644
--- a/java/services/users/src/main/java/com/uva/users/Models/User.java
+++ b/java/services/users/src/main/java/com/uva/users/Models/User.java
@@ -26,14 +26,18 @@ public class User {
   @Enumerated(EnumType.STRING)
   private UserStatus status = UserStatus.NO_BOOKINGS;
 
+  @Basic (optional = false)
+  private String password;
+
   public User() {
   }
 
-  public User(int id, String name, String email, UserStatus status) {
+  public User(int id, String name, String email, UserStatus status, String password) {
     setId(id);
     setName(name);
     setEmail(email);
     setStatus(status);
+    setPassword(password);
   }
 
   // Getters y setters
@@ -68,4 +72,12 @@ public class User {
   public void setStatus(UserStatus status) {
     this.status = status;
   }
+
+  public String getPassword() {
+    return password;
+  }
+
+  public void setPassword(String password) {
+    this.password = password;
+  }
 }
diff --git a/java/services/users/src/main/java/com/uva/users/Repositories/UserRepository.java b/java/services/users/src/main/java/com/uva/users/Repositories/UserRepository.java
index be75355..730510d 100644
--- a/java/services/users/src/main/java/com/uva/users/Repositories/UserRepository.java
+++ b/java/services/users/src/main/java/com/uva/users/Repositories/UserRepository.java
@@ -1,9 +1,11 @@
 package com.uva.users.Repositories;
 
+import java.util.Optional;
+
 import org.springframework.data.jpa.repository.JpaRepository;
 
 import com.uva.users.Models.User;
 
 public interface UserRepository extends JpaRepository<User, Integer> {
-
+    Optional<User> findByEmail(String email);
 }
-- 
GitLab