add in uploadListener

pull/8/head
Medad Rufus Newman 2022-05-07 18:37:05 +01:00
rodzic 8946430b97
commit 3ddffb874d
1 zmienionych plików z 48 dodań i 0 usunięć

Wyświetl plik

@ -142,4 +142,52 @@ public final class AmateurSondehubUploader {
LOG.error("Caught Exception: {}", e);
}
}
/**
* Schedules new listener data to be sent to habitat.
*
* @param receiver the receiver data
* @param instant the current date/time
*/
public void scheduleListenerDataUpload(HabReceiver receiver, Instant instant) {
executor.execute(() -> uploadListener(receiver, instant));
}
/**
* Uploads listener data (information and telemetry)
*
* @param receiver the receiver/listener
* @param instant the current date/time
*/
private void uploadListener(HabReceiver receiver, Instant instant) {
LOG.info("Upload listener data for {}", receiver);
try {
// get two uuids
LOG.info("Getting UUIDs for listener data upload...");
UuidsList list = restClient.getUuids(2).execute().body();
List<String> uuids = list.getUuids();
if ((uuids != null) && (uuids.size() >= 2)) {
LOG.info("Got {} UUIDs", uuids.size());
// upload payload listener info
LOG.info("Upload listener info using UUID {}...", uuids.get(0));
ListenerInformationDoc info = new ListenerInformationDoc(instant, receiver);
UploadResult infoResult = restClient.uploadDocument(uuids.get(0), info.format()).execute().body();
LOG.info("Result listener info: {}", infoResult);
// upload payload telemetry
LOG.info("Upload listener telemetry using UUID {}...", uuids.get(1));
ListenerTelemetryDoc telem = new ListenerTelemetryDoc(instant, receiver);
UploadResult telemResult = restClient.uploadDocument(uuids.get(1), telem.format()).execute().body();
LOG.info("Result listener telemetry: {}", telemResult);
} else {
LOG.warn("Did not receive UUIDs for upload");
}
} catch (IOException e) {
LOG.warn("Caught IOException: {}", e.getMessage());
} catch (Exception e) {
LOG.error("Caught Exception: {}", e);
}
}
}