Summary Table

Categories Total Count
PII 0
URL 0
DNS 0
EKL 0
IP 0
PORT 0
VsID 0
CF 0
AI 0
VPD 0
PL 0
Other 0

File Content

package gov.va.vamf.scheduling.varutility.service;

import gov.va.vamf.scheduling.varutility.datalayer.DirectBookingEligibilityCriteriaRepository;
import gov.va.vamf.scheduling.varutility.domain.ClinicalServices;
import gov.va.vamf.scheduling.varutility.domain.CoreSettings;
import gov.va.vamf.scheduling.varutility.domain.DirectBookingEligibilityCriteria;
import gov.va.vamf.scheduling.varutility.linkbuilder.LinkBuilder;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import javax.ws.rs.core.UriInfo;
import java.util.List;

@Service
public class DirectBookingEligibilityCriteriaService {

@Autowired
private DirectBookingEligibilityCriteriaRepository directBookingEligibilityCriteriaRepository;

@Autowired
private CoreSettingsService coreSettingsService;


public DirectBookingEligibilityCriteria fetchPatientHistoryOptions(String siteCode, List<ClinicalServices> clinicalServices, UriInfo uriInfo) {
DirectBookingEligibilityCriteria criteria = directBookingEligibilityCriteriaRepository.findById(siteCode);
if(criteria == null) {
criteria = new DirectBookingEligibilityCriteria();
criteria.setId(siteCode);
criteria.setCoreSettings(coreSettingsService.createDefaultCoreSettings(clinicalServices));
} else {
CoreSettings coreSettings = criteria.getCoreSettings();
criteria.setCoreSettings(coreSettingsService.updateCriteriaCoreSettings(coreSettings, clinicalServices));
LinkBuilder.fillLink(criteria, uriInfo.getRequestUri());
}
return criteria;
}

public DirectBookingEligibilityCriteria savePatientHistoryOptions(DirectBookingEligibilityCriteria criteria) {
return directBookingEligibilityCriteriaRepository.save(criteria);
}

public DirectBookingEligibilityCriteria updatePatientHistoryOptions(DirectBookingEligibilityCriteria criteria) {
return directBookingEligibilityCriteriaRepository.save(criteria);
}
}