| | |
| | | package com.pollex.pam.web.rest; |
| | | |
| | | import com.pollex.pam.aop.logging.audit.AuditLoggingInject; |
| | | import com.pollex.pam.aop.logging.audit.AuditLoggingType; |
| | | import com.pollex.pam.appointment.process.AppointmentProcess; |
| | | import com.pollex.pam.domain.Appointment; |
| | | import com.pollex.pam.security.SecurityUtils; |
| | |
| | | import com.pollex.pam.service.AppointmentService; |
| | | import com.pollex.pam.service.PersonalNotificationService; |
| | | import com.pollex.pam.service.SatisfactionService; |
| | | |
| | | import static com.pollex.pam.aop.logging.audit.AuditLoggingType.*; |
| | | |
| | | @RestController |
| | | @RequestMapping("/api/appointment") |
| | |
| | | @Autowired |
| | | PersonalNotificationService personalNotificationService; |
| | | |
| | | @AuditLoggingInject(type = CUSTOMER_EDIT_APPOINTMENT) |
| | | @PutMapping("") |
| | | public ResponseEntity<Void> updateAppointment(@RequestBody AppointmentUpdateDTO dto) { |
| | | Appointment appointment = appointmentService.updateAppointment(dto); |
| | |
| | | return ResponseEntity.noContent().build(); |
| | | } |
| | | |
| | | @AuditLoggingInject(type = AuditLoggingType.CUSTOMER_CANCEL_APPOINTMENT) |
| | | @DeleteMapping("/{appointmentId}") |
| | | public ResponseEntity<Void> markAppointmentDeleted(@PathVariable Long appointmentId) { |
| | | appointmentService.markAppointmentDeleted(appointmentId); |
| | | return ResponseEntity.noContent().build(); |
| | | } |
| | | |
| | | @AuditLoggingInject(type = AuditLoggingType.CUSTOMER_CREATE_APPOINTMENT) |
| | | @PostMapping("/customer/create") |
| | | public AppointmentDTO clientCreateAppointment(@RequestBody AppointmentCreateDTO appointmentCreateDTO) { |
| | | Appointment appointment = appointmentService.customerCreateAppointment(appointmentCreateDTO); |
| | |
| | | return appointmentService.getAppointmentDetail(appointmentId); |
| | | } |
| | | |
| | | @AuditLoggingInject(type = CHECK_APPOINTMENT) |
| | | @GetMapping("/getDetail/{appointmentId}") |
| | | public AppointmentCustomerViewDTO getAppointmentDetail(@PathVariable Long appointmentId) { |
| | | return appointmentService.getAppointmentDetail(appointmentId); |
| | | } |
| | | |
| | | @AuditLoggingInject(type = CONSULTANT_READ_APPOINTMENT) |
| | | @PostMapping("/recordRead/{appointmentId}") |
| | | public ResponseEntity<Void> recordConsultantReadAppointment(@PathVariable Long appointmentId) { |
| | | appointmentService.recordConsultantReadTime(appointmentId); |
| | | return ResponseEntity.noContent().build(); |
| | | } |
| | | |
| | | @AuditLoggingInject(type = APPOINTMENT_CLOSE) |
| | | @PostMapping("/close") |
| | | public ResponseEntity<Void> closeAppointment(@RequestBody AppointmentCloseDTO closeDTO) { |
| | | appointmentService.closeAppointment(closeDTO); |