Skip to content
Snippets Groups Projects
Commit cdebbf4a authored by migudel's avatar migudel :speech_balloon:
Browse files

Agregado Rol usuario

parent 20b56498
No related branches found
No related tags found
2 merge requests!26Revert "Funciona register",!20Fix/monolith arquitecture
......@@ -3,10 +3,8 @@ package com.uva.roomBooking.controllers;
import java.time.LocalDate;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import org.springframework.http.HttpStatus;
import org.springframework.http.HttpStatusCode;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.DeleteMapping;
......@@ -51,9 +49,7 @@ public class UserController {
@PostMapping
public User addUser(@RequestBody User user) {
// TODO revisar como se desea manejar estado por defecto
user.setStatus(UserStatus.NO_BOOKINGS);
// Aunque se asegure a lo mejor no es la forma de manejo esperada
return userRepository.save(user);
}
......
......
package com.uva.roomBooking.models;
import java.time.LocalDate;
import java.util.List;
import com.fasterxml.jackson.annotation.JsonIgnore;
......@@ -19,6 +20,7 @@ import jakarta.persistence.Table;
@Entity
@Table(name = "users")
public class User {
// TODO extraer a dos clases hijas, una por cada tipo
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
......@@ -30,9 +32,16 @@ public class User {
@Basic(optional = false)
private String email;
@Basic(optional = false)
private String password;
@Basic(optional = false)
@Enumerated(EnumType.STRING)
private UserStatus status = UserStatus.NO_BOOKINGS;
private UserRol rol = UserRol.CONSUMER;
@Basic(optional = false)
@Enumerated(EnumType.STRING)
private UserStatus status;
@JsonIgnore
@OneToMany(mappedBy = "userId", fetch = FetchType.EAGER, cascade = CascadeType.ALL)
......@@ -41,9 +50,12 @@ public class User {
public User() {
}
public User(int id, String name, String email, UserStatus status, List<Booking> bookings) {
public User(int id, String name, String email, String password, UserRol rol, UserStatus status,
List<Booking> bookings) {
setId(id);
setName(name);
setEmail(email);
setRol(rol);
setStatus(status);
setBookings(bookings);
}
......@@ -72,8 +84,28 @@ public class User {
this.email = email;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public UserRol getRol() {
return this.rol;
}
public void setRol(UserRol rol) {
this.rol = rol;
}
public UserStatus getStatus() {
return this.status;
if (!getBookings().isEmpty())
return UserStatus.NO_BOOKINGS;
boolean activeBookings = getBookings().stream()
.anyMatch(booking -> !booking.getEndDate().isBefore(LocalDate.now())); // reserva >= ahora
return activeBookings ? UserStatus.WITH_ACTIVE_BOOKINGS : UserStatus.WITH_INACTIVE_BOOKINGS;
}
public void setStatus(UserStatus status) {
......
......
package com.uva.roomBooking.models;
public enum UserRol {
HOTEL_ADMIN, CONSUMER
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment