Skip to content

Commit

Permalink
fixed xml format, fixed default date
Browse files Browse the repository at this point in the history
  • Loading branch information
cameroncaci committed Dec 9, 2023
1 parent d13411d commit 733a8e4
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 8 deletions.
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
</parent>
<groupId>com.milmove.trdmlambda</groupId>
<artifactId>trdm-lambda</artifactId>
<version>1.0.0.4</version>
<version>1.0.0.5</version>
<name>trdm java spring interface</name>
<description>Project for deploying a Java TRDM interfacer for TGET data.</description>
<properties>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,10 @@
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Timestamp;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.List;
import java.util.Set;
Expand Down Expand Up @@ -43,7 +46,8 @@ public class TransportationAccountingCodesHandler {
private final TransportationAccountingCodeParser tacParser;
private final Connection rdsConnection;
// TODO: Static table names
private static final Set<String> allowedTableNames = Set.of("transportation_accounting_codes", "lines_of_accounting"); // RDS
private static final Set<String> allowedTableNames = Set.of("transportation_accounting_codes",
"lines_of_accounting"); // RDS
private static final Set<String> allowedTrdmTableNames = Set.of("TRNSPRTN_ACNT", "LN_OF_ACCT"); // TRDM
private static final int yearsToReturnIfOurTableIsEmpty = 3;

Expand All @@ -63,7 +67,7 @@ public TransportationAccountingCodesHandler(

// This cron job will handle the entirety of ensuring the RDS db
// is up to date with proper TGET data.
public void tacCron() throws SQLException, DatatypeConfigurationException, TableRequestException, IOException {
public void tacCron() throws SQLException, DatatypeConfigurationException, TableRequestException, IOException, ParseException {
// Gather the last update from TRDM
LastTableUpdateResponse response = lastTableUpdate("TRNSPRTN_ACNT");
XMLGregorianCalendar ourLastUpdate = getOurLastTGETUpdate("transportation_accounting_codes");
Expand All @@ -84,7 +88,7 @@ private LastTableUpdateResponse lastTableUpdate(String physicalName) throws Tabl
}

private XMLGregorianCalendar getOurLastTGETUpdate(String tableName)
throws SQLException, DatatypeConfigurationException {
throws SQLException, DatatypeConfigurationException, ParseException {
if (!allowedTableNames.contains(tableName)) {
throw new IllegalArgumentException("Invalid table name");
}
Expand All @@ -95,13 +99,20 @@ private XMLGregorianCalendar getOurLastTGETUpdate(String tableName)

if (rs.next()) {
Timestamp lastUpdatedTimestamp = rs.getTimestamp("rds_last_updated");
return DatatypeFactory.newInstance()
.newXMLGregorianCalendar(lastUpdatedTimestamp.toString());

// Convert our last update pulled from the db into XML Gregorian Calendar friendly format
SimpleDateFormat xmlUnfriendlyLastUpdateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSSSSS");
SimpleDateFormat xmlFriendlyLastUpdateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");

Date date = xmlUnfriendlyLastUpdateFormat.parse(lastUpdatedTimestamp.toString());
String xmlGregorianCalendarString = xmlFriendlyLastUpdateFormat.format(date);

return DatatypeFactory.newInstance().newXMLGregorianCalendar(xmlGregorianCalendarString);
}

// If table was empty, return default years to retrieve as we have no TGET data
GregorianCalendar calendar = new GregorianCalendar();
calendar.add(Calendar.YEAR, yearsToReturnIfOurTableIsEmpty);
calendar.add(Calendar.YEAR, -yearsToReturnIfOurTableIsEmpty);
return DatatypeFactory.newInstance().newXMLGregorianCalendar(calendar);
}

Expand Down Expand Up @@ -132,7 +143,7 @@ private void updateTGETData(XMLGregorianCalendar ourLastUpdate, String trdmTable
logger.info("finished inserting TACs into DB");
break;
case "lines_of_accounting":
// TODO:
// TODO:
default:
throw new IllegalArgumentException("Invalid rds table name");
}
Expand Down

0 comments on commit 733a8e4

Please sign in to comment.