| | |
| | | package com.pollex.pam.web.rest; |
| | | |
| | | import com.pollex.pam.domain.Appointment; |
| | | import com.pollex.pam.service.SendMsgService; |
| | | import com.pollex.pam.service.dto.AppointmentUpdateDTO; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.web.bind.annotation.GetMapping; |
| | | import org.springframework.web.bind.annotation.PathVariable; |
| | | import org.springframework.web.bind.annotation.PostMapping; |
| | | import org.springframework.web.bind.annotation.RequestBody; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.RestController; |
| | | import org.springframework.http.ResponseEntity; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import com.pollex.pam.service.AppointmentService; |
| | | import com.pollex.pam.service.SatisfactionService; |
| | | import com.pollex.pam.service.dto.AppointmentCreateDTO; |
| | | import com.pollex.pam.service.dto.AppointmentCustomerViewDTO; |
| | | |
| | | @RestController |
| | | @RequestMapping("/api/appointment") |
| | | public class AppointmentResource { |
| | | |
| | | |
| | | @Autowired |
| | | AppointmentService appointmentService; |
| | | |
| | | |
| | | @Autowired |
| | | SatisfactionService satisfactionService; |
| | | |
| | | @Autowired |
| | | SendMsgService sendMsgService; |
| | | |
| | | @PutMapping("") |
| | | public ResponseEntity<Void> updateAppointment(@RequestBody AppointmentUpdateDTO appointment) { |
| | | appointmentService.updateAppointment(appointment); |
| | | return ResponseEntity.noContent().build(); |
| | | } |
| | | |
| | | @DeleteMapping("/{appointmentId}") |
| | | public ResponseEntity<Void> markAppointmentDeleted(@PathVariable Long appointmentId) { |
| | | appointmentService.markAppointmentDeleted(appointmentId); |
| | | return ResponseEntity.noContent().build(); |
| | | } |
| | | |
| | | @PostMapping("/customer/create") |
| | | public void clientCreateAppointment(@RequestBody AppointmentCreateDTO appointmentCreateDTO) { |
| | | appointmentService.customerCreateAppointment(appointmentCreateDTO); |
| | | } |
| | | |
| | | @PostMapping("/markAsContacted") |
| | | public void markAsContacted(@RequestBody Long appointmentId) { |
| | | Appointment appointment = appointmentService.customerCreateAppointment(appointmentCreateDTO); |
| | | sendMsgService.sendAppointmentNotify(appointment); |
| | | } |
| | | |
| | | @PostMapping("/markAsContacted/{appointmentId}") |
| | | public void markAsContacted(@PathVariable Long appointmentId) { |
| | | appointmentService.markAsContacted(appointmentId); |
| | | } |
| | | |
| | | |
| | | |
| | | @GetMapping("/getDetail/{appointmentId}") |
| | | public AppointmentCustomerViewDTO getAppointmentDetail(@PathVariable Long appointmentId) { |
| | | return appointmentService.getAppointmentDetail(appointmentId); |
| | | } |
| | | |
| | | @PostMapping("/recordRead/{appointmentId}") |
| | | public ResponseEntity<Void> recordConsultantReadAppointment(@PathVariable Long appointmentId) { |
| | | appointmentService.recordConsultantReadTime(appointmentId); |
| | | return ResponseEntity.noContent().build(); |
| | | } |
| | | } |