Skip to content

Commit a5ca7a6

Browse files
committed
Get routes directly from config instead of through library
1 parent 4e8807c commit a5ca7a6

File tree

6 files changed

+77
-109
lines changed

6 files changed

+77
-109
lines changed

kafka-connect-oura-source/src/main/java/org/radarbase/connect/rest/oura/OuraRestSourceConnectorConfig.java

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -45,9 +45,6 @@
4545
import org.apache.kafka.connect.errors.ConnectException;
4646
import org.radarbase.connect.rest.oura.user.OuraUserRepository;
4747
import org.radarbase.connect.rest.oura.user.OuraServiceUserRepository;
48-
import org.radarbase.oura.route.OuraConfig;
49-
import org.radarbase.oura.route.OuraRouteType;
50-
import java.util.EnumSet;
5148

5249
public class OuraRestSourceConnectorConfig extends AbstractConfig {
5350
public static final Pattern COLON_PATTERN = Pattern.compile(":");
@@ -530,25 +527,4 @@ public URL getOuraUserRepositoryTokenUrl() {
530527
public boolean getOuraRestModePeriodEnabled() { return getBoolean(OURA_REST_MODE_PERIOD_ENABLED_CONFIG); }
531528
public boolean getOuraSleepTimeRecommendationEnabled() { return getBoolean(OURA_SLEEP_TIME_RECOMMENDATION_ENABLED_CONFIG); }
532529

533-
/**
534-
* Convert this connector configuration into an Oura library configuration.
535-
*/
536-
public OuraConfig toOuraConfig() {
537-
EnumSet<OuraRouteType> enabled = EnumSet.noneOf(OuraRouteType.class);
538-
if (getOuraDailyActivityEnabled()) enabled.add(OuraRouteType.DAILY_ACTIVITY);
539-
if (getOuraDailyReadinessEnabled()) enabled.add(OuraRouteType.DAILY_READINESS);
540-
if (getOuraDailySleepEnabled()) enabled.add(OuraRouteType.DAILY_SLEEP);
541-
if (getOuraDailyOxygenSaturationEnabled()) enabled.add(OuraRouteType.DAILY_OXYGEN_SATURATION);
542-
if (getOuraHeartRateEnabled()) enabled.add(OuraRouteType.HEART_RATE);
543-
if (getOuraPersonalInfoEnabled()) enabled.add(OuraRouteType.PERSONAL_INFO);
544-
if (getOuraSessionEnabled()) enabled.add(OuraRouteType.SESSION);
545-
if (getOuraSleepEnabled()) enabled.add(OuraRouteType.SLEEP);
546-
if (getOuraTagEnabled()) enabled.add(OuraRouteType.TAG);
547-
if (getOuraWorkoutEnabled()) enabled.add(OuraRouteType.WORKOUT);
548-
if (getOuraRingConfigurationEnabled()) enabled.add(OuraRouteType.RING_CONFIGURATION);
549-
if (getOuraRestModePeriodEnabled()) enabled.add(OuraRouteType.REST_MODE_PERIOD);
550-
if (getOuraSleepTimeRecommendationEnabled()) enabled.add(OuraRouteType.SLEEP_TIME_RECOMMENDATION);
551-
return new OuraConfig(enabled);
552-
}
553-
554530
}

kafka-connect-oura-source/src/main/java/org/radarbase/connect/rest/oura/OuraSourceTask.java

Lines changed: 60 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,19 @@
4848
import org.radarbase.oura.request.RestRequest;
4949
import org.radarbase.oura.route.OuraRouteFactory;
5050
import org.radarbase.oura.route.Route;
51-
import org.radarbase.oura.route.OuraConfig;
51+
import org.radarbase.oura.route.OuraDailyActivityRoute;
52+
import org.radarbase.oura.route.OuraDailyReadinessRoute;
53+
import org.radarbase.oura.route.OuraDailySleepRoute;
54+
import org.radarbase.oura.route.OuraDailyOxygenSaturationRoute;
55+
import org.radarbase.oura.route.OuraHeartRateRoute;
56+
import org.radarbase.oura.route.OuraPersonalInfoRoute;
57+
import org.radarbase.oura.route.OuraSessionRoute;
58+
import org.radarbase.oura.route.OuraSleepRoute;
59+
import org.radarbase.oura.route.OuraTagRoute;
60+
import org.radarbase.oura.route.OuraWorkoutRoute;
61+
import org.radarbase.oura.route.OuraRingConfigurationRoute;
62+
import org.radarbase.oura.route.OuraRestModePeriodRoute;
63+
import org.radarbase.oura.route.OuraSleepTimeRecommendationRoute;
5264
import org.slf4j.Logger;
5365
import org.slf4j.LoggerFactory;
5466
import org.radarbase.oura.user.User;
@@ -76,11 +88,56 @@ public void initialize(OuraRestSourceConnectorConfig config, OffsetStorageReader
7688

7789
this.userRepository = ouraConfig.getUserRepository();
7890
this.offsetManager = new KafkaOffsetManager(offsetStorageReader);
79-
this.ouraRequestGenerator = new OuraRequestGenerator(this.userRepository, this.offsetManager, ouraConfig.toOuraConfig());
80-
this.routes = this.ouraRequestGenerator.getRoutes();
91+
this.routes = this.getRoutes(ouraConfig);
92+
this.ouraRequestGenerator = new OuraRequestGenerator(this.userRepository, this.offsetManager, this.routes);
8193
this.offsetManager.initialize(getPartitions());
8294
}
8395

96+
private List<Route> getRoutes(OuraRestSourceConnectorConfig config) {
97+
List<Route> routes = new ArrayList<>();
98+
99+
if (config.getOuraDailyActivityEnabled()) {
100+
routes.add(new OuraDailyActivityRoute(userRepository));
101+
}
102+
if (config.getOuraDailyReadinessEnabled()) {
103+
routes.add(new OuraDailyReadinessRoute(userRepository));
104+
}
105+
if (config.getOuraDailySleepEnabled()) {
106+
routes.add(new OuraDailySleepRoute(userRepository));
107+
}
108+
if (config.getOuraDailyOxygenSaturationEnabled()) {
109+
routes.add(new OuraDailyOxygenSaturationRoute(userRepository));
110+
}
111+
if (config.getOuraHeartRateEnabled()) {
112+
routes.add(new OuraHeartRateRoute(userRepository));
113+
}
114+
if (config.getOuraPersonalInfoEnabled()) {
115+
routes.add(new OuraPersonalInfoRoute(userRepository));
116+
}
117+
if (config.getOuraSessionEnabled()) {
118+
routes.add(new OuraSessionRoute(userRepository));
119+
}
120+
if (config.getOuraSleepEnabled()) {
121+
routes.add(new OuraSleepRoute(userRepository));
122+
}
123+
if (config.getOuraTagEnabled()) {
124+
routes.add(new OuraTagRoute(userRepository));
125+
}
126+
if (config.getOuraWorkoutEnabled()) {
127+
routes.add(new OuraWorkoutRoute(userRepository));
128+
}
129+
if (config.getOuraRingConfigurationEnabled()) {
130+
routes.add(new OuraRingConfigurationRoute(userRepository));
131+
}
132+
if (config.getOuraRestModePeriodEnabled()) {
133+
routes.add(new OuraRestModePeriodRoute(userRepository));
134+
}
135+
if (config.getOuraSleepTimeRecommendationEnabled()) {
136+
routes.add(new OuraSleepTimeRecommendationRoute(userRepository));
137+
}
138+
return routes;
139+
}
140+
84141
public List<Map<String, Object>> getPartitions() {
85142
try {
86143
return StreamsKt.asStream(userRepository.stream())

oura-library/src/main/kotlin/org/radarbase/oura/request/OuraRequestGenerator.kt

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule
66
import okhttp3.Response
77
import okhttp3.ResponseBody
88
import org.radarbase.oura.converter.TopicData
9-
import org.radarbase.oura.route.OuraConfig
109
import org.radarbase.oura.route.OuraRouteFactory
1110
import org.radarbase.oura.route.Route
1211
import org.radarbase.oura.user.User
@@ -22,8 +21,7 @@ class OuraRequestGenerator
2221
constructor(
2322
private val userRepository: UserRepository,
2423
private val ouraOffsetManager: OuraOffsetManager,
25-
private val config: OuraConfig,
26-
public val routes: List<Route> = OuraRouteFactory.getRoutes(userRepository, config),
24+
public val routes: List<Route> = OuraRouteFactory.getRoutes(userRepository),
2725
private val defaultQueryRange: Duration = Duration.ofDays(15),
2826
) : RequestGenerator {
2927
private val routeNextRequest: MutableMap<String, Instant> = mutableMapOf()

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

Lines changed: 0 additions & 10 deletions
This file was deleted.

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

Lines changed: 16 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -4,57 +4,21 @@ import org.radarbase.oura.user.UserRepository
44

55
object OuraRouteFactory {
66

7-
@JvmStatic
8-
fun getRoutes(userRepository: UserRepository): List<Route> =
9-
getRoutes(userRepository, OuraConfig())
10-
11-
@JvmStatic
12-
fun getRoutes(userRepository: UserRepository, config: OuraConfig): List<Route> {
13-
val routes = mutableListOf<Route>()
14-
15-
// Helper to add based on enum presence
16-
fun isEnabled(type: OuraRouteType): Boolean =
17-
type in config.enabledRoutes
18-
19-
if (isEnabled(OuraRouteType.DAILY_ACTIVITY)) {
20-
routes.add(OuraDailyActivityRoute(userRepository))
21-
}
22-
if (isEnabled(OuraRouteType.DAILY_READINESS)) {
23-
routes.add(OuraDailyReadinessRoute(userRepository))
24-
}
25-
if (isEnabled(OuraRouteType.DAILY_SLEEP)) {
26-
routes.add(OuraDailySleepRoute(userRepository))
27-
}
28-
if (isEnabled(OuraRouteType.DAILY_OXYGEN_SATURATION)) {
29-
routes.add(OuraDailyOxygenSaturationRoute(userRepository))
30-
}
31-
if (isEnabled(OuraRouteType.HEART_RATE)) {
32-
routes.add(OuraHeartRateRoute(userRepository))
33-
}
34-
if (isEnabled(OuraRouteType.PERSONAL_INFO)) {
35-
routes.add(OuraPersonalInfoRoute(userRepository))
36-
}
37-
if (isEnabled(OuraRouteType.SESSION)) {
38-
routes.add(OuraSessionRoute(userRepository))
39-
}
40-
if (isEnabled(OuraRouteType.SLEEP)) {
41-
routes.add(OuraSleepRoute(userRepository))
42-
}
43-
if (isEnabled(OuraRouteType.TAG)) {
44-
routes.add(OuraTagRoute(userRepository))
45-
}
46-
if (isEnabled(OuraRouteType.WORKOUT)) {
47-
routes.add(OuraWorkoutRoute(userRepository))
48-
}
49-
if (isEnabled(OuraRouteType.RING_CONFIGURATION)) {
50-
routes.add(OuraRingConfigurationRoute(userRepository))
51-
}
52-
if (isEnabled(OuraRouteType.REST_MODE_PERIOD)) {
53-
routes.add(OuraRestModePeriodRoute(userRepository))
54-
}
55-
if (isEnabled(OuraRouteType.SLEEP_TIME_RECOMMENDATION)) {
56-
routes.add(OuraSleepTimeRecommendationRoute(userRepository))
57-
}
58-
return routes
7+
fun getRoutes(userRepository: UserRepository): List<Route> {
8+
return listOf(
9+
OuraDailyActivityRoute(userRepository),
10+
OuraDailyReadinessRoute(userRepository),
11+
OuraDailySleepRoute(userRepository),
12+
OuraDailyOxygenSaturationRoute(userRepository),
13+
OuraHeartRateRoute(userRepository),
14+
OuraPersonalInfoRoute(userRepository),
15+
OuraSessionRoute(userRepository),
16+
OuraSleepRoute(userRepository),
17+
OuraTagRoute(userRepository),
18+
OuraWorkoutRoute(userRepository),
19+
OuraRingConfigurationRoute(userRepository),
20+
OuraRestModePeriodRoute(userRepository),
21+
OuraSleepTimeRecommendationRoute(userRepository),
22+
)
5923
}
6024
}

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

Lines changed: 0 additions & 17 deletions
This file was deleted.

0 commit comments

Comments
 (0)