From e5ec39c7f1651ad6029508896ba0a9956917ff06 Mon Sep 17 00:00:00 2001 From: Hams-Mohamed Date: Tue, 28 Feb 2023 11:20:29 +0200 Subject: [PATCH] #116 create api to update user status --- .../main/java/com/rms/domain/security/User.java | 2 ++ .../com/rms/rest/controller/UserController.java | 7 +++++++ .../src/main/java/com/rms/rest/dto/UserDto.java | 4 +++- .../java/com/rms/rest/handler/UserHandler.java | 9 +++++++++ .../src/main/java/com/rms/service/UserService.java | 5 +++++ .../db/changelog/2023/02/27-01-changelog.xml | 14 ++++++++++++++ .../resources/db/changelog/db.changelog-master.xml | 1 + 7 files changed, 41 insertions(+), 1 deletion(-) create mode 100644 retail-managment-system/rms-api/src/main/resources/db/changelog/2023/02/27-01-changelog.xml diff --git a/retail-managment-system/rms-api/src/main/java/com/rms/domain/security/User.java b/retail-managment-system/rms-api/src/main/java/com/rms/domain/security/User.java index 2adf9783..502125b2 100644 --- a/retail-managment-system/rms-api/src/main/java/com/rms/domain/security/User.java +++ b/retail-managment-system/rms-api/src/main/java/com/rms/domain/security/User.java @@ -17,6 +17,8 @@ public class User extends JPAEntity { @Column(name = "password") private String password; + @Column(name = "enabled") + private Boolean enabled; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "employee_id") private Employee employee ; diff --git a/retail-managment-system/rms-api/src/main/java/com/rms/rest/controller/UserController.java b/retail-managment-system/rms-api/src/main/java/com/rms/rest/controller/UserController.java index 1591b696..55fd9028 100644 --- a/retail-managment-system/rms-api/src/main/java/com/rms/rest/controller/UserController.java +++ b/retail-managment-system/rms-api/src/main/java/com/rms/rest/controller/UserController.java @@ -42,6 +42,13 @@ public ResponseEntity update (@PathVariable Integer id , @RequestBody UserDto { return userHandler.update(id, dto); } + @PatchMapping("/{id}") + @Operation(summary = "update status withen true or false ") + public ResponseEntity updateStatus(@PathVariable Integer id, + @RequestParam(value = "status",defaultValue = "true") Boolean status) + { + return userHandler.updateStatus(id,status); + } @DeleteMapping("/{id}") @Operation(summary = "delete user By Id") diff --git a/retail-managment-system/rms-api/src/main/java/com/rms/rest/dto/UserDto.java b/retail-managment-system/rms-api/src/main/java/com/rms/rest/dto/UserDto.java index c3f98794..b3375273 100644 --- a/retail-managment-system/rms-api/src/main/java/com/rms/rest/dto/UserDto.java +++ b/retail-managment-system/rms-api/src/main/java/com/rms/rest/dto/UserDto.java @@ -8,6 +8,7 @@ import lombok.Data; import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; import javax.validation.constraints.Pattern; import javax.validation.constraints.Size; @@ -25,7 +26,8 @@ public class UserDto extends GenericDto { message ="Password must contain only letters , numbers and special characters" ) private String password; - + @NotNull(message = "enabled is mandatory", groups = {InsertValidation.class, UpdateValidation.class}) + private Boolean enabled; private EmployeeDto employee ; diff --git a/retail-managment-system/rms-api/src/main/java/com/rms/rest/handler/UserHandler.java b/retail-managment-system/rms-api/src/main/java/com/rms/rest/handler/UserHandler.java index 747e9167..dec62b1c 100644 --- a/retail-managment-system/rms-api/src/main/java/com/rms/rest/handler/UserHandler.java +++ b/retail-managment-system/rms-api/src/main/java/com/rms/rest/handler/UserHandler.java @@ -83,6 +83,15 @@ public ResponseEntity update (Integer id , UserDto userDto) return ResponseEntity.ok(dto); } + public ResponseEntityupdateStatus(int userId, boolean status) + { + User user = userService.getById(userId) + .orElseThrow(()->new ResourceNotFoundException(User.class.getSimpleName(),userId)); + user.setEnabled(status); + userService.save(user); + UserDto dto = mapper.toDto(user); + return ResponseEntity.ok(dto); + } public ResponseEntity delete (Integer id) { diff --git a/retail-managment-system/rms-api/src/main/java/com/rms/service/UserService.java b/retail-managment-system/rms-api/src/main/java/com/rms/service/UserService.java index 273d925a..8e27e74d 100644 --- a/retail-managment-system/rms-api/src/main/java/com/rms/service/UserService.java +++ b/retail-managment-system/rms-api/src/main/java/com/rms/service/UserService.java @@ -30,6 +30,11 @@ public User save (User user) return userRepository.save(user); } + public User update(User user) + { + return userRepository.save(user); + } + public Optional findUserName(String userName) { return userRepository.findByUserName(userName); } diff --git a/retail-managment-system/rms-api/src/main/resources/db/changelog/2023/02/27-01-changelog.xml b/retail-managment-system/rms-api/src/main/resources/db/changelog/2023/02/27-01-changelog.xml new file mode 100644 index 00000000..fa935871 --- /dev/null +++ b/retail-managment-system/rms-api/src/main/resources/db/changelog/2023/02/27-01-changelog.xml @@ -0,0 +1,14 @@ + + + + + + + + + \ No newline at end of file diff --git a/retail-managment-system/rms-api/src/main/resources/db/changelog/db.changelog-master.xml b/retail-managment-system/rms-api/src/main/resources/db/changelog/db.changelog-master.xml index ac45cd13..311a211a 100644 --- a/retail-managment-system/rms-api/src/main/resources/db/changelog/db.changelog-master.xml +++ b/retail-managment-system/rms-api/src/main/resources/db/changelog/db.changelog-master.xml @@ -12,5 +12,6 @@ + \ No newline at end of file