ohctechv3/.svn/pristine/0b/0b6cd5197614a65fddc8505002d55ca97f324b16.svn-base
2024-10-28 15:03:36 +05:30

64 lines
2.2 KiB
Plaintext

package com.healthcare.ohctech.service.impl;
import com.healthcare.ohctech.dto.ComplaintDto;
import com.healthcare.ohctech.entity.Complaint;
import com.healthcare.ohctech.repository.ComplaintRepo;
import com.healthcare.ohctech.service.ComplaintService;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;
@Service
public class ComplaintServiceImpl implements ComplaintService {
private final ComplaintRepo complaintRepo;
public ComplaintServiceImpl(ComplaintRepo complaintRepo) {
this.complaintRepo = complaintRepo;
}
@Override
public Complaint getComplaintById(Long complaintId) {
return complaintRepo.findById(complaintId)
.orElseThrow(() -> new RuntimeException("Complaint not found for ID: " + complaintId));
}
@Override
public Page<Complaint> getAllComplaints(Pageable pageable) {
return complaintRepo.findAll(pageable);
}
@Override
public void addComplaint(ComplaintDto complaintDto, Long userId) {
Complaint complaint = convertToEntity(new Complaint(), complaintDto);
complaint.setModifiedBy(userId);
complaintRepo.save(complaint);
}
@Override
public void updateComplaint(ComplaintDto complaintDto, Long userId) {
Long complaintId = complaintDto.id();
Complaint complaint = complaintRepo.findById(complaintId)
.orElseThrow(() -> new RuntimeException("Complaint not found for ID: " + complaintId));
convertToEntity(complaint, complaintDto);
complaint.setModifiedBy(userId);
complaintRepo.save(complaint);
}
@Override
public void deleteComplaint(Long complaintId) {
Complaint complaint = complaintRepo.findById(complaintId)
.orElseThrow(() -> new RuntimeException("Complaint not found for ID: " + complaintId));
complaintRepo.delete(complaint);
}
private Complaint convertToEntity(Complaint complaint, ComplaintDto complaintDto) {
complaint.setComplaint(complaintDto.complaint());
complaint.setComplaintDesc(complaintDto.complaintDesc());
complaint.setIsActive(complaintDto.isActive());
return complaint;
}
}