- Timestamp:
- 05/23/26 19:27:12 (4 months ago)
- Branches:
- master
- Children:
- ccb5a6b
- Parents:
- 43e476a
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
backend/src/main/java/medora/controller/DoctorController.java
r43e476a r946877f 1 1 package medora.controller; 2 2 3 import medora.dto.*; 4 import medora.models.domain.Departments; 3 import medora.dto.DoctorDTO; 4 import medora.dto.CreateDoctorRequest; 5 import medora.dto.DoctorLevelDTO; 6 import medora.dto.DoctorSpecializationDTO; 7 import medora.dto.DepartmentDTO; 8 import medora.models.domain.Doctors; 5 9 import medora.models.domain.DoctorLevel; 6 10 import medora.models.domain.DoctorSpecialization; 7 import medora.models.domain.D octors;11 import medora.models.domain.Departments; 8 12 import medora.service.DoctorService; 13 import medora.util.SecurityUtil; 9 14 import org.slf4j.Logger; 10 15 import org.slf4j.LoggerFactory; … … 12 17 import org.springframework.http.ResponseEntity; 13 18 import org.springframework.web.bind.annotation.*; 19 import jakarta.servlet.http.HttpServletRequest; 14 20 15 21 import java.util.List; … … 24 30 25 31 private final DoctorService doctorService; 26 27 public DoctorController(DoctorService doctorService) { 32 private final SecurityUtil securityUtil; 33 34 public DoctorController(DoctorService doctorService, SecurityUtil securityUtil) { 28 35 this.doctorService = doctorService; 36 this.securityUtil = securityUtil; 29 37 } 30 38 31 39 @PostMapping 32 public ResponseEntity<?> createDoctor(@RequestBody CreateDoctorRequest request) { 33 try { 40 public ResponseEntity<?> createDoctor(@RequestBody CreateDoctorRequest request, HttpServletRequest httpRequest) { 41 try { 42 String role = securityUtil.getRoleFromRequest(httpRequest); 43 if (role == null) { 44 return ResponseEntity.status(HttpStatus.UNAUTHORIZED) 45 .body(Map.of("error", "Unauthorized")); 46 } 47 48 // Only ADMIN can create doctors 49 if (!role.equals("ADMIN")) { 50 return ResponseEntity.status(HttpStatus.FORBIDDEN) 51 .body(Map.of("error", "Only administrators can create doctors")); 52 } 34 53 if (request.getFirstName() == null || request.getFirstName().isBlank()) { 35 54 return ResponseEntity.badRequest() … … 193 212 @PutMapping("/{doctorId}") 194 213 public ResponseEntity<?> updateDoctor(@PathVariable Long doctorId, 195 @RequestBody CreateDoctorRequest request) { 196 try { 214 @RequestBody CreateDoctorRequest request, 215 HttpServletRequest httpRequest) { 216 try { 217 String role = securityUtil.getRoleFromRequest(httpRequest); 218 if (role == null) { 219 return ResponseEntity.status(HttpStatus.UNAUTHORIZED) 220 .body(Map.of("error", "Unauthorized")); 221 } 222 223 // Only ADMIN can update doctors 224 if (!role.equals("ADMIN")) { 225 return ResponseEntity.status(HttpStatus.FORBIDDEN) 226 .body(Map.of("error", "Only administrators can update doctors")); 227 } 228 197 229 logger.info("Updating doctor with ID: {}", doctorId); 198 230
Note:
See TracChangeset
for help on using the changeset viewer.
