]> git.ktnx.net Git - mobile-ledger.git/blobdiff - app/src/main/java/net/ktnx/mobileledger/async/SendTransactionTask.java
SendTransactionTask: log full request JSON in simulation mode (debug builds)
[mobile-ledger.git] / app / src / main / java / net / ktnx / mobileledger / async / SendTransactionTask.java
index b444e332e3b00580bb1f1b979bdbbb390d009cfe..496624bf52475a6c22e6e2a2388d9d48d44aa53b 100644 (file)
@@ -39,6 +39,8 @@ import java.io.InputStreamReader;
 import java.io.OutputStream;
 import java.net.HttpURLConnection;
 import java.nio.charset.StandardCharsets;
+import java.util.Date;
+import java.util.GregorianCalendar;
 import java.util.List;
 import java.util.Locale;
 import java.util.Map;
@@ -69,7 +71,19 @@ public class SendTransactionTask extends AsyncTask<LedgerTransaction, Void, Void
         simulate = false;
     }
     private boolean sendOK() throws IOException {
+        HttpURLConnection http = NetworkUtil.prepareConnection(mProfile, "add");
+        http.setRequestMethod("PUT");
+        http.setRequestProperty("Content-Type", "application/json");
+        http.setRequestProperty("Accept", "*/*");
+
+        ParsedLedgerTransaction jsonTransaction;
+        jsonTransaction = ltr.toParsedLedgerTransaction();
+        ObjectMapper mapper = new ObjectMapper();
+        ObjectWriter writer = mapper.writerFor(ParsedLedgerTransaction.class);
+        String body = writer.writeValueAsString(jsonTransaction);
+
         if (simulate) {
+            debug("network", "The request would be: " + body);
             try {
                 Thread.sleep(1500);
                 if (Math.random() > 0.3)
@@ -82,17 +96,6 @@ public class SendTransactionTask extends AsyncTask<LedgerTransaction, Void, Void
             return true;
         }
 
-        HttpURLConnection http = NetworkUtil.prepareConnection(mProfile, "add");
-        http.setRequestMethod("PUT");
-        http.setRequestProperty("Content-Type", "application/json");
-        http.setRequestProperty("Accept", "*/*");
-
-        ParsedLedgerTransaction jsonTransaction;
-        jsonTransaction = ltr.toParsedLedgerTransaction();
-        ObjectMapper mapper = new ObjectMapper();
-        ObjectWriter writer = mapper.writerFor(ParsedLedgerTransaction.class);
-        String body = writer.writeValueAsString(jsonTransaction);
-
         byte[] bodyBytes = body.getBytes(StandardCharsets.UTF_8);
         http.setDoOutput(true);
         http.setDoInput(true);
@@ -144,7 +147,13 @@ public class SendTransactionTask extends AsyncTask<LedgerTransaction, Void, Void
         params.addPair("_formid", "identify-add");
         if (token != null)
             params.addPair("_token", token);
-        params.addPair("date", Globals.formatLedgerDate(ltr.getDate()));
+
+        Date transactionDate = ltr.getDate();
+        if (transactionDate == null) {
+            transactionDate = new GregorianCalendar().getTime();
+        }
+
+        params.addPair("date", Globals.formatLedgerDate(transactionDate));
         params.addPair("description", ltr.getDescription());
         for (LedgerTransactionAccount acc : ltr.getAccounts()) {
             params.addPair("account", acc.getAccountName());