package com.nightscout.core.upload; import com.nightscout.core.dexcom.records.GlucoseDataSet; import com.nightscout.core.drivers.AbstractUploaderDevice; import com.nightscout.core.preferences.NightscoutPreferences; import org.json.JSONException; import org.json.JSONObject; import java.io.IOException; import java.net.URI; public class RestLegacyUploader extends AbstractRestUploader { public RestLegacyUploader(NightscoutPreferences preferences, URI uri) { super(preferences, uri); } private JSONObject toJSONObject(GlucoseDataSet record) throws JSONException { JSONObject json = new JSONObject(); json.put("device", deviceStr); json.put("date", record.getDisplayTime().getMillis()); json.put("dateString", record.getDisplayTime().toString()); json.put("sgv", Integer.parseInt(String.valueOf(record.getBgMgdl()))); json.put("direction", record.getTrend().friendlyTrendName()); return json; } private JSONObject toJSONObject(AbstractUploaderDevice deviceStatus, int rcvrBat) throws JSONException { JSONObject json = new JSONObject(); json.put("uploaderBattery", deviceStatus.getBatteryLevel()); json.put("receiverBattery", rcvrBat); return json; } @Override protected boolean doUpload(GlucoseDataSet glucoseDataSet) throws IOException { try { return doPost("entries", toJSONObject(glucoseDataSet)); } catch (JSONException e) { log.error("Could not create JSON object for legacy rest glucose data set.", e); return false; } } // TODO(trhodeos): is devicestatus supported in legacy apis? @Override protected boolean doUpload(AbstractUploaderDevice deviceStatus, int rcvrBat) throws IOException { try { return doPost("devicestatus", toJSONObject(deviceStatus, rcvrBat)); } catch (JSONException e) { log.error("Could not create JSON object for legacy rest device status.", e); return false; } } }