package com.pollex.pam.service; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import com.pollex.pam.domain.Appointment; import com.pollex.pam.domain.AppointmentMemo; import com.pollex.pam.repository.AppointmentMemoRepository; import com.pollex.pam.repository.AppointmentRepository; import com.pollex.pam.security.SecurityUtils; import com.pollex.pam.service.dto.AppointmentMemoCreateDTO; import com.pollex.pam.service.dto.AppointmentMemoUpdateDTO; import com.pollex.pam.service.mapper.AppointmentMemoMapper; import com.pollex.pam.web.rest.errors.AppointmentMemoNotFoundException; import com.pollex.pam.web.rest.errors.AppointmentNotFoundException; @Service @Transactional public class AppointmentMemoService { @Autowired AppointmentMemoRepository appointmentMemoRepository; @Autowired AppointmentMemoMapper appointmentMemoMapper; @Autowired AppointmentRepository appointmentRepository; public AppointmentMemo create(AppointmentMemoCreateDTO memoDTO) { AppointmentMemo memo = appointmentMemoMapper.toAppointmentMemo(memoDTO); return appointmentMemoRepository.save(memo); } public void checkPermission(Long appointmentId) { Appointment appointment = appointmentRepository.findById(appointmentId) .orElseThrow(AppointmentNotFoundException::new); if(!appointment.getAgentNo().equals(SecurityUtils.getAgentNo())) { throw new IllegalAccessError("not have permission"); } } public AppointmentMemo update(AppointmentMemoUpdateDTO memoDTO) { AppointmentMemo memo = appointmentMemoRepository .findById(memoDTO.getId()) .orElseThrow(AppointmentMemoNotFoundException::new); checkPermission(memo.getAppointmentId()); appointmentMemoMapper.copyToAppointmentMemo(memoDTO, memo); return appointmentMemoRepository.save(memo); } public void delete(Long memoId) { AppointmentMemo memo = appointmentMemoRepository .findById(memoId) .orElseThrow(AppointmentMemoNotFoundException::new); checkPermission(memo.getAppointmentId()); appointmentMemoRepository.delete(memo); } }