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.RequestEligibilityCriteriaRepository;
import gov.va.vamf.scheduling.varutility.domain.*;
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 RequestEligibilityCriteriaService {

@Autowired
private RequestEligibilityCriteriaRepository requestEligibilityCriteriaRepository;

@Autowired
private CoreSettingsService coreSettingsService;

@Autowired
private CustomRequestSettingsService customRequestSettingsService;

public RequestEligibilityCriteria fetchRequestEligibiltyCriteria(String siteCode, List<ClinicalServices> requestServices, List<ClinicalServices> customRequestServices, UriInfo uriInfo) {

RequestEligibilityCriteria requestEligibilityCriteria = requestEligibilityCriteriaRepository.findById(siteCode);
if (requestEligibilityCriteria == null) {
requestEligibilityCriteria = new RequestEligibilityCriteria();
requestEligibilityCriteria.setId(siteCode);
requestEligibilityCriteria.setRequestSettings(coreSettingsService.createDefaultCoreSettings(requestServices));
requestEligibilityCriteria.setCustomRequestSettings(customRequestSettingsService.createDefaultCustomRequestSettings(customRequestServices));
} else {
CustomRequestSettings customRequestSettings = requestEligibilityCriteria.getCustomRequestSettings();
if (customRequestSettings == null || customRequestSettings.size() == 0) {
customRequestSettings = customRequestSettingsService.createDefaultCustomRequestSettings(customRequestServices);
}
requestEligibilityCriteria.setCustomRequestSettings(customRequestSettingsService.updateCriteriaCoreSettings(customRequestSettings, customRequestServices));
CoreSettings coreSettings = requestEligibilityCriteria.getRequestSettings();
requestEligibilityCriteria.setRequestSettings(coreSettingsService.updateCriteriaCoreSettings(coreSettings, requestServices));
LinkBuilder.fillLink(requestEligibilityCriteria, uriInfo.getRequestUri());
}
return requestEligibilityCriteria;
}

public RequestEligibilityCriteria saveRequestEligibilityCriteria (RequestEligibilityCriteria requestEligibilityCriteria) {
return requestEligibilityCriteriaRepository.save(requestEligibilityCriteria);
}

public RequestEligibilityCriteria updateRequestEligibilityCriteria (RequestEligibilityCriteria requestEligibilityCriteria) {
return requestEligibilityCriteriaRepository.save(requestEligibilityCriteria);
}
}