diff --git a/src/main/java/com/nkubito/ehospital/controllers/UserController.java b/src/main/java/com/nkubito/ehospital/controllers/UserController.java index 4ba5ada..62f521f 100644 --- a/src/main/java/com/nkubito/ehospital/controllers/UserController.java +++ b/src/main/java/com/nkubito/ehospital/controllers/UserController.java @@ -1,66 +1,67 @@ package com.nkubito.ehospital.controllers; +import com.nkubito.ehospital.models.Role; +import com.nkubito.ehospital.store.Users; +import com.nkubito.ehospital.utils.Response; +import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; -import com.nkubito.ehospital.store.Users; -import com.nkubito.ehospital.utils.Response; -import org.springframework.http.HttpStatus; import java.time.LocalDateTime; @RestController public class UserController { - @GetMapping(path = "/api/users") - public ResponseEntity getUsers() { - return ResponseEntity.ok( - Response.builder() - .timeStamp(LocalDateTime.now()) - .message("All users retreived successfully") - .status(HttpStatus.OK) - .statusCode(HttpStatus.OK.value()) - .data(Users.INSTANCE.retreiveUser()) - .build() - ); - } - - @GetMapping(path = "/api/users/physicians") - public ResponseEntity getAllPhysicians() { - return ResponseEntity.ok( - Response.builder() - .timeStamp(LocalDateTime.now()) - .message("Retreive all Physicians") - .status(HttpStatus.OK) - .statusCode(HttpStatus.OK.value()) - .data(Users.INSTANCE.getUserByRole("Physician")) - .build() - ); - } - - @GetMapping(path = "/api/users/patients") - public ResponseEntity getAllPatients() { - return ResponseEntity.ok( - Response.builder() - .timeStamp(LocalDateTime.now()) - .message("Retreive all Patients") - .status(HttpStatus.OK) - .statusCode(HttpStatus.OK.value()) - .data(Users.INSTANCE.getUserByRole("Patient")) - .build() - ); - } - - @GetMapping(path = "/api/users/pharmacists") - public ResponseEntity getAllPharmacists() { - return ResponseEntity.ok( - Response.builder() - .timeStamp(LocalDateTime.now()) - .message("Retreive all Pharmacists") - .status(HttpStatus.OK) - .statusCode(HttpStatus.OK.value()) - .data(Users.INSTANCE.getUserByRole("Pharmacist")) - .build() - ); - } - + @GetMapping(path = "/api/users") + public ResponseEntity getUsers() { + return ResponseEntity.ok( + Response.builder() + .timeStamp(LocalDateTime.now()) + .message("All users retreived successfully") + .status(HttpStatus.OK) + .statusCode(HttpStatus.OK.value()) + .data(Users.INSTANCE.retreiveUser()) + .build() + ); + } + + @GetMapping(path = "/api/users/physicians") + public ResponseEntity getAllPhysicians() { + return ResponseEntity.ok( + Response.builder() + .timeStamp(LocalDateTime.now()) + .message("Retreive all Physicians") + .status(HttpStatus.OK) + .statusCode(HttpStatus.OK.value()) + .data(Users.INSTANCE.getUserByRole(Role.Physician)) + .build() + ); + } + + @GetMapping(path = "/api/users/patients") + public ResponseEntity getAllPatients() { + return ResponseEntity.ok( + Response.builder() + .timeStamp(LocalDateTime.now()) + .message("Retreive all Patients") + .status(HttpStatus.OK) + .statusCode(HttpStatus.OK.value()) + .data(Users.INSTANCE.getUserByRole(Role.Patient)) + .build() + ); + } + + @GetMapping(path = "/api/users/pharmacists") + public ResponseEntity getAllPharmacists() { + return ResponseEntity.ok( + Response.builder() + .timeStamp(LocalDateTime.now()) + .message("Retreive all Pharmacists") + .status(HttpStatus.OK) + .statusCode(HttpStatus.OK.value()) + .data(Users.INSTANCE.getUserByRole(Role.Pharmacist)) + .build() + ); + } + } diff --git a/src/main/java/com/nkubito/ehospital/store/Users.java b/src/main/java/com/nkubito/ehospital/store/Users.java index f413163..2349c23 100644 --- a/src/main/java/com/nkubito/ehospital/store/Users.java +++ b/src/main/java/com/nkubito/ehospital/store/Users.java @@ -39,11 +39,15 @@ public String getKey(User user) { private boolean contains(User user) { return switch (user.getRole()) { - case Physician -> users.keySet().stream().anyMatch(u -> u.equals(user.getEmail())); - case Pharmacist -> users.keySet().stream().anyMatch(u -> u.equals(user.getPhoneNumber())); - case Patient -> users.keySet().stream().anyMatch(u -> u.equals(user.getUsername())); + case Physician -> + users.keySet().stream().anyMatch(u -> u.equals(user.getEmail())); + case Pharmacist -> + users.keySet().stream().anyMatch(u -> u.equals(user.getPhoneNumber())); + case Patient -> + users.keySet().stream().anyMatch(u -> u.equals(user.getUsername())); }; } + public List retreiveUser() { List userList = new ArrayList<>(); Map userMap = Users.INSTANCE.getUsers(); @@ -54,19 +58,8 @@ public List retreiveUser() { return userList; } - public List getUserByRole(String role) { - List filteredUsers = new ArrayList<>(); - Map userMap = Users.INSTANCE.getUsers(); - - for (Map.Entry entry : userMap.entrySet()) { - User user = entry.getValue(); - - if (user.getRole().toString().equalsIgnoreCase(role)) { - filteredUsers.add(user); - } - } - - return filteredUsers; + public List getUserByRole(Role role) { + return users.values().stream().filter(user -> user.getRole().equals(role)).toList(); } - + }