From e1693911e3c6d732a634705528c55ed54d120e1c Mon Sep 17 00:00:00 2001 From: Giulia <20015091@studenti.uniupo.it> Date: Thu, 14 Jun 2018 09:05:11 +0200 Subject: [PATCH] new passes on FITBIT --- src/main/java/Main.java | 11 ++++---- src/main/java/manage/AuthFITBIT.java | 29 ++++++++++++++++----- src/main/java/manage/FITBITData/Device.java | 24 +++++++++++++++++ 3 files changed, 53 insertions(+), 11 deletions(-) create mode 100644 src/main/java/manage/FITBITData/Device.java diff --git a/src/main/java/Main.java b/src/main/java/Main.java index c6d1d31..605b942 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -1,14 +1,15 @@ import manage.AuthFITBIT; -import manage.FITBITData.HeartRate; -import manage.FITBITData.Sleep; +import manage.FITBITData.*; public class Main { public static void main(String[] args) throws Exception { AuthFITBIT fitbit = new AuthFITBIT(); - HeartRate h = fitbit.run("https://api.fitbit.com/1/user/-/activities/heart/date/today/1d.json", HeartRate.class); // 1sec/time/00:00/00:01.json - Sleep s = fitbit.run("https://api.fitbit.com/1.2/user/-/sleep/date/today.json", Sleep.class); + // HeartRate h = fitbit.run("https://api.fitbit.com/1/user/-/activities/heart/date/today/1d.json", HeartRate.class, false); // 1sec/time/00:00/00:01.json + // Sleep s = fitbit.run("https://api.fitbit.com/1.2/user/-/sleep/date/today.json", Sleep.class, false); - System.out.println(h.dateTime + " " + h.average); + Device dev = fitbit.run("https://api.fitbit.com/1/user/-/devices.json", Device.class, true); + //System.out.println(dev); + //System.out.println(h.dateTime + " " + h.average); } } diff --git a/src/main/java/manage/AuthFITBIT.java b/src/main/java/manage/AuthFITBIT.java index a13ddcc..e4c722b 100644 --- a/src/main/java/manage/AuthFITBIT.java +++ b/src/main/java/manage/AuthFITBIT.java @@ -14,9 +14,16 @@ import com.google.api.client.json.JsonObjectParser; import com.google.api.client.json.jackson2.JacksonFactory; import com.google.api.client.util.store.DataStoreFactory; import com.google.api.client.util.store.FileDataStoreFactory; +import com.sun.xml.internal.xsom.impl.scd.Iterators; +import manage.FITBITData.Device; + import java.io.IOException; + +import java.util.ArrayList; import java.util.Arrays; +import java.util.HashMap; +import java.util.Map; public class AuthFITBIT { @@ -50,7 +57,7 @@ public class AuthFITBIT { private static FileDataStoreFactory DATA_STORE_FACTORY; /** OAuth 2 scope. */ - private static final String SCOPE[] = new String[]{"activity","heartrate","location","sleep"}; + private static final String SCOPE[] = new String[]{"activity","heartrate","location","sleep","settings"}; /** Global instance of the HTTP transport. */ private static final HttpTransport HTTP_TRANSPORT = new NetHttpTransport(); @@ -80,20 +87,30 @@ public class AuthFITBIT { return new AuthorizationCodeInstalledApp(flow, receiver).authorize( "user" ); } - public O run(String url, Class classe) throws IOException { + public O run(String url, Class classe, boolean isDev) throws IOException { FITBITUrl fitbitUrl = new FITBITUrl(url); // url.setFields("activity,heartrate,location,sleep"); fitbitUrl.setFields(""); + GenericJson json; HttpRequest request = requestFactory.buildGetRequest(fitbitUrl); HttpResponse response = request.execute(); - GenericJson json = response.parseAs(GenericJson.class); + if (isDev){ + Device dev = new Device(); + dev.getLastSyncTime(response.parseAs(Iterators.Array>.class)); + response.disconnect(); + + return mapper.readValue(map.toString(), classe); + } + else { + json = response.parseAs(GenericJson.class); + } response.disconnect(); - System.out.println("--------------------"); - System.out.println(classe.getSimpleName()); - System.out.println(json.toPrettyString()); + // System.out.println("--------------------"); + //System.out.println(classe.getSimpleName()); + //System.out.println(json.toPrettyString()); return mapper.readValue(json.toString(), classe); diff --git a/src/main/java/manage/FITBITData/Device.java b/src/main/java/manage/FITBITData/Device.java new file mode 100644 index 0000000..23db1e8 --- /dev/null +++ b/src/main/java/manage/FITBITData/Device.java @@ -0,0 +1,24 @@ +package manage.FITBITData; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; + +import java.util.Map; + +@JsonIgnoreProperties(ignoreUnknown = true) +public class Device { + + public String lastSyncTime; + + // @JsonProperty ("lastSyncTime") + public String getLastSyncTime(Map[] sync){ + lastSyncTime = null; + for(Map d: sync) { + String temp = d.get("lastSyncTime"); + if ((lastSyncTime == null) || (lastSyncTime.compareTo(temp) < 0)) + lastSyncTime = temp; + + } + return lastSyncTime; + } + +}