OSSEZ-47 Tasklet to add new API Process

This commit is contained in:
YuCheng Hu 2020-04-23 09:30:50 -04:00
parent ebc0a9bead
commit 9894f94002
1 changed files with 34 additions and 6 deletions

View File

@ -1,8 +1,10 @@
package com.ossez.covid19.service.batch.tasklet; package com.ossez.covid19.service.batch.tasklet;
import com.google.inject.internal.cglib.core.$ProcessArrayCallback;
import com.ossez.covid19.common.Factory; import com.ossez.covid19.common.Factory;
import com.ossez.covid19.common.dao.factories.Covid19Factory; import com.ossez.covid19.common.dao.factories.Covid19Factory;
import com.ossez.covid19.common.models.Covid19Current; import com.ossez.covid19.common.models.Covid19Current;
import com.ossez.covid19.common.models.Covid19DailyUS;
import com.ossez.covid19.common.models.Covid19States; import com.ossez.covid19.common.models.Covid19States;
import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.ObjectUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
@ -16,6 +18,8 @@ import org.springframework.http.HttpMethod;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.web.client.RestTemplate; import org.springframework.web.client.RestTemplate;
import java.util.UUID;
/** /**
* *
*/ */
@ -50,7 +54,7 @@ public class Covid19Tasklet implements Tasklet {
Covid19Current covid19CurrentDB = Covid19Factory.getByState(covid19Current); Covid19Current covid19CurrentDB = Covid19Factory.getByState(covid19Current);
// NULL CHECK TO GET ID SET // NULL CHECK TO GET ID SET
if(ObjectUtils.isNotEmpty(covid19CurrentDB)) { if (ObjectUtils.isNotEmpty(covid19CurrentDB)) {
covid19Current.setId(covid19CurrentDB.getId()); covid19Current.setId(covid19CurrentDB.getId());
} }
@ -66,17 +70,41 @@ public class Covid19Tasklet implements Tasklet {
Covid19States[].class).getBody(); Covid19States[].class).getBody();
for (Covid19States covid19States : Covid19StatesList) { for (Covid19States covid19States : Covid19StatesList) {
// Covid19Current covid19CurrentDB = Covid19Factory.getByState(covid19States); Covid19States covid19StatesDB = Covid19Factory.getCovid19StatesByHash(covid19States.getHash());
// NULL CHECK TO GET ID SET // NULL CHECK TO GET ID SET
// if(ObjectUtils.isNotEmpty(covid19CurrentDB)) { if (ObjectUtils.isEmpty(covid19StatesDB)) {
// covid19Current.setId(covid19CurrentDB.getId()); covid19States.setUuid(UUID.randomUUID().toString());
// } Covid19Factory.save(covid19States);
}
Covid19Factory.save(covid19States);
} }
processDailyUS("https://covidtracking.com/api/v1/us/daily.json");
return RepeatStatus.FINISHED; return RepeatStatus.FINISHED;
} }
/**
* @param apiURL
*/
private void processDailyUS(String apiURL) {
//GET STATES
RestTemplate restTemplate = new RestTemplate();
Covid19DailyUS[] Covid19DailyUSList = restTemplate.exchange(apiURL, HttpMethod.GET, null, Covid19DailyUS[].class).getBody();
for (Covid19DailyUS covid19DailyUS : Covid19DailyUSList) {
Covid19DailyUS covid19DailyUSDB = Covid19Factory.getCovid19DailyUSByHash(covid19DailyUS.getHash());
// NULL CHECK TO GET ID SET
if (ObjectUtils.isEmpty(covid19DailyUSDB)) {
covid19DailyUS.setUuid(UUID.randomUUID().toString());
Covid19Factory.save(covid19DailyUS);
}
}
}
} }