Skip to content
Snippets Groups Projects
Commit 0e332d3d authored by Volker Richert's avatar Volker Richert
Browse files

split collection upload of device status into single posts

parent 36887c56
No related branches found
No related tags found
No related merge requests found
...@@ -30,6 +30,7 @@ import java.util.regex.Pattern; ...@@ -30,6 +30,7 @@ import java.util.regex.Pattern;
import info.nightscout.android.R; import info.nightscout.android.R;
import info.nightscout.android.medtronic.MainActivity; import info.nightscout.android.medtronic.MainActivity;
import info.nightscout.android.medtronic.service.MedtronicCnlIntentService;
import info.nightscout.android.model.medtronicNg.PumpStatusEvent; import info.nightscout.android.model.medtronicNg.PumpStatusEvent;
import info.nightscout.android.upload.nightscout.serializer.EntriesSerializer; import info.nightscout.android.upload.nightscout.serializer.EntriesSerializer;
import io.realm.Realm; import io.realm.Realm;
...@@ -74,18 +75,22 @@ public class NightscoutUploadIntentService extends IntentService { ...@@ -74,18 +75,22 @@ public class NightscoutUploadIntentService extends IntentService {
.notEqualTo("sgv", 0) .notEqualTo("sgv", 0)
.findAll(); .findAll();
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(mContext); if (records.size() > 0) {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(mContext);
Boolean enableRESTUpload = prefs.getBoolean("EnableRESTUpload", false); Boolean enableRESTUpload = prefs.getBoolean("EnableRESTUpload", false);
try { try {
if (enableRESTUpload) { if (enableRESTUpload) {
long start = System.currentTimeMillis(); long start = System.currentTimeMillis();
Log.i(TAG, String.format("Starting upload of %s record using a REST API", records.size())); Log.i(TAG, String.format("Starting upload of %s record using a REST API", records.size()));
doRESTUpload(prefs, records); doRESTUpload(prefs, records);
Log.i(TAG, String.format("Finished upload of %s record using a REST API in %s ms", records.size(), System.currentTimeMillis() - start)); Log.i(TAG, String.format("Finished upload of %s record using a REST API in %s ms", records.size(), System.currentTimeMillis() - start));
}
} catch (Exception e) {
Log.e(TAG, "ERROR uploading data!!!!!", e);
} }
} catch (Exception e) { } else {
Log.e(TAG, "ERROR uploading data!!!!!", e); Log.i(TAG, "No records has to be uploaded");
} }
NightscoutUploadReceiver.completeWakefulIntent(intent); NightscoutUploadReceiver.completeWakefulIntent(intent);
...@@ -159,14 +164,16 @@ public class NightscoutUploadIntentService extends IntentService { ...@@ -159,14 +164,16 @@ public class NightscoutUploadIntentService extends IntentService {
JSONArray entriesBody = new JSONArray(); JSONArray entriesBody = new JSONArray();
for (PumpStatusEvent record : records) { for (PumpStatusEvent record : records) {
addDeviceStatus(devicestatusBody, record); addDeviceStatus(devicestatusBody, record);
addSgvEntry(entriesBody, record); addSgvEntry(entriesBody, record);
addMbgEntry(entriesBody, record); addMbgEntry(entriesBody, record);
} }
uploadToNightscout(new URL(baseURL + "/entries"), secret, entriesBody); uploadToNightscout(new URL(baseURL + "/entries"), secret, entriesBody);
uploadToNightscout(new URL(baseURL + "/devicestatus"), secret, devicestatusBody);
for(int i = 0; i < devicestatusBody.length(); i++) {
uploadToNightscout(new URL(baseURL + "/devicestatus"), secret, devicestatusBody.getJSONObject(i));
}
// Yay! We uploaded. Tell Realm // Yay! We uploaded. Tell Realm
// FIXME - check the upload succeeded! // FIXME - check the upload succeeded!
...@@ -183,7 +190,15 @@ public class NightscoutUploadIntentService extends IntentService { ...@@ -183,7 +190,15 @@ public class NightscoutUploadIntentService extends IntentService {
} }
} }
private boolean uploadToNightscout(URL endpoint, String secret, JSONObject httpBody) throws Exception {
return uploadToNightscout(endpoint, secret, httpBody.toString());
}
private boolean uploadToNightscout(URL endpoint, String secret, JSONArray httpBody) throws Exception { private boolean uploadToNightscout(URL endpoint, String secret, JSONArray httpBody) throws Exception {
return uploadToNightscout(endpoint, secret, httpBody.toString());
}
private boolean uploadToNightscout(URL endpoint, String secret, String httpBody) throws Exception {
Log.i(TAG, "postURL: " + endpoint.toString()); Log.i(TAG, "postURL: " + endpoint.toString());
HttpPost post = new HttpPost(endpoint.toString()); HttpPost post = new HttpPost(endpoint.toString());
...@@ -209,12 +224,10 @@ public class NightscoutUploadIntentService extends IntentService { ...@@ -209,12 +224,10 @@ public class NightscoutUploadIntentService extends IntentService {
DefaultHttpClient httpclient = new DefaultHttpClient(params); DefaultHttpClient httpclient = new DefaultHttpClient(params);
String jsonString = httpBody.toString(); Log.i(TAG, "Upload JSON: " + httpBody);
Log.i(TAG, "Upload JSON: " + jsonString);
try { try {
StringEntity se = new StringEntity(jsonString); StringEntity se = new StringEntity(httpBody);
post.setEntity(se); post.setEntity(se);
post.setHeader("Accept", "application/json"); post.setHeader("Accept", "application/json");
post.setHeader("Content-type", "application/json"); post.setHeader("Content-type", "application/json");
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment