package com.school.project.controller; import com.school.project.dto.userRegistration.AdminRegistrationDTO; import com.school.project.dto.userRegistration.StudentRegistrationDTO; import com.school.project.dto.userRegistration.TeacherRegistrationDTO; import com.school.project.dto.userRegistration.UserRegistrationDTO; import com.school.project.service.userRegistration.admin.AdminRegistrationService; import com.school.project.service.userRegistration.student.StudentRegistrationService; import com.school.project.service.userRegistration.teacher.TeacherRegistrationService; import lombok.Getter; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import org.springframework.web.server.ResponseStatusException; @RestController @RequestMapping("/register") public class RegistrationController { @Autowired private StudentRegistrationService studentRegistrationService; @Autowired private TeacherRegistrationService teacherRegistrationService; @Autowired private AdminRegistrationService adminRegistrationService; @PostMapping("/student") public ResponseEntity<UserRegistrationDTO> registerStudent(@RequestBody StudentRegistrationDTO student) { try { UserRegistrationDTO userDTO = studentRegistrationService.registerStudent(student); return ResponseEntity.ok(userDTO); } catch (Exception e) { throw new ResponseStatusException(HttpStatus.BAD_REQUEST, "Data is not correct", e); } } @PostMapping("/teacher") public ResponseEntity<UserRegistrationDTO> registerTeacher(@RequestBody TeacherRegistrationDTO teacher) { try { UserRegistrationDTO userDTO = teacherRegistrationService.registerTeacher(teacher); return ResponseEntity.ok(userDTO); } catch (Exception e) { throw new ResponseStatusException(HttpStatus.BAD_REQUEST, "Data is not correct", e); } } @PostMapping("/admin") public ResponseEntity<UserRegistrationDTO> registerAdmin(@RequestBody AdminRegistrationDTO admin) { try { UserRegistrationDTO userDTO = adminRegistrationService.registerAdmin(admin); return ResponseEntity.ok(userDTO); } catch (Exception e) { throw new ResponseStatusException(HttpStatus.BAD_REQUEST, "Data is not correct", e); } } }