Skip to content

Commit 5a4ff75

Browse files
committed
Update Oura heart rate route to request daily
1 parent 1106a31 commit 5a4ff75

File tree

1 file changed

+41
-0
lines changed

1 file changed

+41
-0
lines changed

oura-library/src/main/kotlin/org/radarbase/oura/route/OuraHeartRateRoute.kt

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,15 @@
11
package org.radarbase.oura.route
22

33
import org.radarbase.oura.converter.OuraHeartRateConverter
4+
import org.radarbase.oura.user.User
45
import org.radarbase.oura.user.UserRepository
6+
import org.radarcns.connector.oura.OuraHeartRate
7+
import org.radarcns.connector.oura.OuraHeartRateSource
8+
import org.slf4j.LoggerFactory
9+
import java.time.Duration
10+
import java.time.Instant
11+
import java.time.LocalDateTime
12+
import org.radarbase.oura.request.RestRequest
513

614
class OuraHeartRateRoute(
715
private val userRepository: UserRepository,
@@ -12,4 +20,37 @@ class OuraHeartRateRoute(
1220
override fun toString(): String = "oura_heart_rate"
1321

1422
override var converters = listOf(OuraHeartRateConverter())
23+
24+
override var maxIntervalPerRequest = Duration.ofDays(1)
25+
26+
var maxRequestsPerInterval = 1000
27+
28+
override fun generateRequests(
29+
user: User,
30+
start: Instant,
31+
end: Instant,
32+
): Sequence<RestRequest> {
33+
return generateRequests(user, start, end, maxRequestsPerInterval)
34+
}
35+
36+
override fun generateRequests(
37+
user: User,
38+
start: Instant,
39+
end: Instant,
40+
max: Int,
41+
): Sequence<RestRequest> {
42+
return generateSequence(start) { it + maxIntervalPerRequest }
43+
.takeWhile { it < end }
44+
.take(maxRequestsPerInterval)
45+
.map { startRange ->
46+
val endRange = (startRange + maxIntervalPerRequest).coerceAtMost(end)
47+
val request = createRequest(
48+
user,
49+
"$OURA_API_BASE_URL/${subPath()}",
50+
"?start_datetime=${startRange.toLocalDate()}" +
51+
"&end_datetime=${endRange.toLocalDate()}",
52+
)
53+
RestRequest(request, user, this, startRange, endRange)
54+
}
55+
}
1556
}

0 commit comments

Comments
 (0)