package com.pollex.pam.web.rest; import com.pollex.pam.business.aop.logging.audit.AuditLoggingInject; import org.springframework.beans.factory.annotation.Autowired; 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 com.pollex.pam.business.domain.Appointment; import com.pollex.pam.business.security.SecurityUtils; import com.pollex.pam.business.service.AppointmentService; import com.pollex.pam.business.service.NoticeService; import com.pollex.pam.business.service.dto.AppointmentNoticeSendDTO; import static com.pollex.pam.business.aop.logging.audit.AuditLoggingType.CONSULTANT_SEND_INTERVIEW_NOTICE; @RestController @RequestMapping("/api/notice") public class NoticeResource { @Autowired NoticeService noticeService; @Autowired AppointmentService appointmentService; @AuditLoggingInject(type = CONSULTANT_SEND_INTERVIEW_NOTICE) @PostMapping("/send") public void sendNotice(@RequestBody AppointmentNoticeSendDTO dto) { Appointment appointment = appointmentService.findById(dto.getAppointmentId()); if(!appointment.getAgentNo().equals(SecurityUtils.getAgentNo())) { throw new IllegalAccessError("The user do not have access permission"); } noticeService.sendNotice(dto); } }