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.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) {
|
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();
|
}
|
}
|