diff --git a/.fern/metadata.json b/.fern/metadata.json index 2a53e5bf..972db505 100644 --- a/.fern/metadata.json +++ b/.fern/metadata.json @@ -1,12 +1,12 @@ { - "cliVersion": "3.35.1", + "cliVersion": "3.48.2", "generatorName": "fernapi/fern-java-sdk", - "generatorVersion": "3.27.6", + "generatorVersion": "3.33.2", "generatorConfig": { "publish-to": "central", "base-api-exception-class-name": "ApiError", "client-class-name": "Vital", "enable-forward-compatible-enums": false }, - "sdkVersion": "1.2.585" + "sdkVersion": "1.2.600" } \ No newline at end of file diff --git a/build.gradle b/build.gradle index f38f68d1..20c8f772 100644 --- a/build.gradle +++ b/build.gradle @@ -47,7 +47,7 @@ java { group = 'io.tryvital' -version = '1.2.585' +version = '1.2.600' jar { dependsOn(":generatePomFileForMavenPublication") @@ -78,7 +78,7 @@ publishing { maven(MavenPublication) { groupId = 'io.tryvital' artifactId = 'vital-java' - version = '1.2.585' + version = '1.2.600' from components.java pom { name = 'vital' diff --git a/reference.md b/reference.md index ce79a195..683b39da 100644 --- a/reference.md +++ b/reference.md @@ -493,7 +493,7 @@ This has no effect on programmatic Vital Link API usage. -
client.link.isTokenValid(request) -> Map<String, Object> +
client.link.isTokenValid(request) -> Map&lt;String, Object&gt;
@@ -606,7 +606,7 @@ client.link().codeCreate(
-
client.link.startConnect(request) -> Map<String, Object> +
client.link.startConnect(request) -> Map&lt;String, Object&gt;
@@ -675,7 +675,7 @@ client.link().startConnect(
-
client.link.tokenState() -> Map<String, Object> +
client.link.tokenState() -> Map&lt;String, Object&gt;
@@ -1256,7 +1256,7 @@ client.link().connectEmailAuthProvider(
-
client.link.getAllProviders() -> List<SourceLink> +
client.link.getAllProviders() -> List&lt;SourceLink&gt;
@@ -1315,7 +1315,7 @@ client.link().getAllProviders(
-
client.link.connectManualProvider(provider, request) -> Map<String, Boolean> +
client.link.connectManualProvider(provider, request) -> Map&lt;String, Boolean&gt;
@@ -7362,7 +7362,7 @@ client.vitals().bloodPressureGrouped(
-
client.vitals.vo2Max(userId) -> List<ClientFacingVo2MaxTimeseries> +
client.vitals.vo2Max(userId) -> List&lt;ClientFacingVo2MaxTimeseries&gt;
@@ -7434,7 +7434,7 @@ client.vitals().vo2Max(
-
client.vitals.stressLevel(userId) -> List<ClientFacingStressLevelTimeseries> +
client.vitals.stressLevel(userId) -> List&lt;ClientFacingStressLevelTimeseries&gt;
@@ -7506,7 +7506,7 @@ client.vitals().stressLevel(
-
client.vitals.mindfulnessMinutes(userId) -> List<ClientFacingMindfulnessMinutesTimeseries> +
client.vitals.mindfulnessMinutes(userId) -> List&lt;ClientFacingMindfulnessMinutesTimeseries&gt;
@@ -7578,7 +7578,7 @@ client.vitals().mindfulnessMinutes(
-
client.vitals.caffeine(userId) -> List<ClientFacingCaffeineTimeseries> +
client.vitals.caffeine(userId) -> List&lt;ClientFacingCaffeineTimeseries&gt;
@@ -7650,7 +7650,7 @@ client.vitals().caffeine(
-
client.vitals.water(userId) -> List<ClientFacingWaterTimeseries> +
client.vitals.water(userId) -> List&lt;ClientFacingWaterTimeseries&gt;
@@ -7722,7 +7722,7 @@ client.vitals().water(
-
client.vitals.steps(userId) -> List<ClientFacingStepsTimeseries> +
client.vitals.steps(userId) -> List&lt;ClientFacingStepsTimeseries&gt;
@@ -7794,7 +7794,7 @@ client.vitals().steps(
-
client.vitals.floorsClimbed(userId) -> List<ClientFacingFloorsClimbedTimeseries> +
client.vitals.floorsClimbed(userId) -> List&lt;ClientFacingFloorsClimbedTimeseries&gt;
@@ -7866,7 +7866,7 @@ client.vitals().floorsClimbed(
-
client.vitals.distance(userId) -> List<ClientFacingDistanceTimeseries> +
client.vitals.distance(userId) -> List&lt;ClientFacingDistanceTimeseries&gt;
@@ -7938,7 +7938,7 @@ client.vitals().distance(
-
client.vitals.caloriesBasal(userId) -> List<ClientFacingCaloriesBasalTimeseries> +
client.vitals.caloriesBasal(userId) -> List&lt;ClientFacingCaloriesBasalTimeseries&gt;
@@ -8010,7 +8010,7 @@ client.vitals().caloriesBasal(
-
client.vitals.caloriesActive(userId) -> List<ClientFacingCaloriesActiveTimeseries> +
client.vitals.caloriesActive(userId) -> List&lt;ClientFacingCaloriesActiveTimeseries&gt;
@@ -8082,7 +8082,7 @@ client.vitals().caloriesActive(
-
client.vitals.respiratoryRate(userId) -> List<ClientFacingRespiratoryRateTimeseries> +
client.vitals.respiratoryRate(userId) -> List&lt;ClientFacingRespiratoryRateTimeseries&gt;
@@ -8154,7 +8154,7 @@ client.vitals().respiratoryRate(
-
client.vitals.ige(userId) -> List<ClientFacingIgeTimeseries> +
client.vitals.ige(userId) -> List&lt;ClientFacingIgeTimeseries&gt;
@@ -8226,7 +8226,7 @@ client.vitals().ige(
-
client.vitals.igg(userId) -> List<ClientFacingIggTimeseries> +
client.vitals.igg(userId) -> List&lt;ClientFacingIggTimeseries&gt;
@@ -8298,7 +8298,7 @@ client.vitals().igg(
-
client.vitals.hypnogram(userId) -> List<ClientFacingHypnogramTimeseries> +
client.vitals.hypnogram(userId) -> List&lt;ClientFacingHypnogramTimeseries&gt;
@@ -8370,7 +8370,7 @@ client.vitals().hypnogram(
-
client.vitals.hrv(userId) -> List<ClientFacingHrvTimeseries> +
client.vitals.hrv(userId) -> List&lt;ClientFacingHrvTimeseries&gt;
@@ -8442,7 +8442,7 @@ client.vitals().hrv(
-
client.vitals.heartrate(userId) -> List<ClientFacingHeartRateTimeseries> +
client.vitals.heartrate(userId) -> List&lt;ClientFacingHeartRateTimeseries&gt;
@@ -8514,7 +8514,7 @@ client.vitals().heartrate(
-
client.vitals.glucose(userId) -> List<ClientFacingGlucoseTimeseries> +
client.vitals.glucose(userId) -> List&lt;ClientFacingGlucoseTimeseries&gt;
@@ -8586,7 +8586,7 @@ client.vitals().glucose(
-
client.vitals.cholesterolTriglycerides(userId) -> List<ClientFacingCholesterolTimeseries> +
client.vitals.cholesterolTriglycerides(userId) -> List&lt;ClientFacingCholesterolTimeseries&gt;
@@ -8658,7 +8658,7 @@ client.vitals().cholesterolTriglycerides(
-
client.vitals.cholesterolTotal(userId) -> List<ClientFacingCholesterolTimeseries> +
client.vitals.cholesterolTotal(userId) -> List&lt;ClientFacingCholesterolTimeseries&gt;
@@ -8730,7 +8730,7 @@ client.vitals().cholesterolTotal(
-
client.vitals.cholesterolLdl(userId) -> List<ClientFacingCholesterolTimeseries> +
client.vitals.cholesterolLdl(userId) -> List&lt;ClientFacingCholesterolTimeseries&gt;
@@ -8802,7 +8802,7 @@ client.vitals().cholesterolLdl(
-
client.vitals.cholesterolHdl(userId) -> List<ClientFacingCholesterolTimeseries> +
client.vitals.cholesterolHdl(userId) -> List&lt;ClientFacingCholesterolTimeseries&gt;
@@ -8874,7 +8874,7 @@ client.vitals().cholesterolHdl(
-
client.vitals.cholesterol(userId) -> List<ClientFacingCholesterolTimeseries> +
client.vitals.cholesterol(userId) -> List&lt;ClientFacingCholesterolTimeseries&gt;
@@ -8946,7 +8946,7 @@ client.vitals().cholesterol(
-
client.vitals.bodyWeight(userId) -> List<ClientFacingBodyWeightTimeseries> +
client.vitals.bodyWeight(userId) -> List&lt;ClientFacingBodyWeightTimeseries&gt;
@@ -9018,7 +9018,7 @@ client.vitals().bodyWeight(
-
client.vitals.bodyFat(userId) -> List<ClientFacingBodyFatTimeseries> +
client.vitals.bodyFat(userId) -> List&lt;ClientFacingBodyFatTimeseries&gt;
@@ -9090,7 +9090,7 @@ client.vitals().bodyFat(
-
client.vitals.bloodOxygen(userId) -> List<ClientFacingBloodOxygenTimeseries> +
client.vitals.bloodOxygen(userId) -> List&lt;ClientFacingBloodOxygenTimeseries&gt;
@@ -9162,7 +9162,7 @@ client.vitals().bloodOxygen(
-
client.vitals.electrocardiogramVoltage(userId) -> List<ClientFacingElectrocardiogramVoltageTimeseries> +
client.vitals.electrocardiogramVoltage(userId) -> List&lt;ClientFacingElectrocardiogramVoltageTimeseries&gt;
@@ -9234,7 +9234,7 @@ client.vitals().electrocardiogramVoltage(
-
client.vitals.bloodPressure(userId) -> List<ClientFacingBloodPressureTimeseries> +
client.vitals.bloodPressure(userId) -> List&lt;ClientFacingBloodPressureTimeseries&gt;
@@ -9510,7 +9510,7 @@ client.user().getTeamMetrics();
-
client.user.getConnectedProviders(userId) -> Map<String, List<ClientFacingProviderWithStatus>> +
client.user.getConnectedProviders(userId) -> Map&lt;String, List&lt;ClientFacingProviderWithStatus&gt;&gt;
@@ -10334,7 +10334,7 @@ client.user().refresh(
-
client.user.getDevices(userId) -> List<ClientFacingDevice> +
client.user.getDevices(userId) -> List&lt;ClientFacingDevice&gt;
@@ -10533,7 +10533,7 @@ authentication, e.g., when they open a short link on a new device. ℹ️ This e
## Team -
client.team.getLinkConfig() -> Map<String, Object> +
client.team.getLinkConfig() -> Map&lt;String, Object&gt;
@@ -10646,7 +10646,7 @@ client.team().get("team_id");
-
client.team.getUserById() -> List<ClientFacingUser> +
client.team.getUserById() -> List&lt;ClientFacingUser&gt;
@@ -10705,7 +10705,7 @@ client.team().getUserById(
-
client.team.getSvixUrl() -> Map<String, Object> +
client.team.getSvixUrl() -> Map&lt;String, Object&gt;
@@ -10730,7 +10730,7 @@ client.team().getSvixUrl();
-
client.team.getSourcePriorities() -> List<Map<String, Object>> +
client.team.getSourcePriorities() -> List&lt;Map&lt;String, Object&gt;&gt;
@@ -10789,7 +10789,7 @@ client.team().getSourcePriorities(
-
client.team.updateSourcePriorities() -> List<Map<String, Object>> +
client.team.updateSourcePriorities() -> List&lt;Map&lt;String, Object&gt;&gt;
@@ -10828,7 +10828,7 @@ client.team().updateSourcePriorities();
-
client.team.getPhysicians(teamId) -> List<ClientFacingPhysician> +
client.team.getPhysicians(teamId) -> List&lt;ClientFacingPhysician&gt;
@@ -10869,7 +10869,7 @@ client.team().getPhysicians("team_id");
## Providers -
client.providers.getAll() -> List<ClientFacingProviderDetailed> +
client.providers.getAll() -> List&lt;ClientFacingProviderDetailed&gt;
@@ -11092,7 +11092,7 @@ client.introspect().getUserHistoricalPulls(
## LabTests -
client.labTests.get() -> List<ClientFacingLabTest> +
client.labTests.get() -> List&lt;ClientFacingLabTest&gt;
@@ -11756,7 +11756,7 @@ client.labTests().getMarkersByLabAndProviderId(
-
client.labTests.getLabs() -> List<ClientFacingLab> +
client.labTests.getLabs() -> List&lt;ClientFacingLab&gt;
@@ -12564,7 +12564,7 @@ client.labTests().cancelPhlebotomyAppointment(
-
client.labTests.getPhlebotomyAppointmentCancellationReason() -> List<ClientFacingAppointmentCancellationReason> +
client.labTests.getPhlebotomyAppointmentCancellationReason() -> List&lt;ClientFacingAppointmentCancellationReason&gt;
@@ -13156,6 +13156,7 @@ client.labTests().getPscAppointmentAvailability( .startDate("start_date") .zipCode("zip_code") .radius(AllowedRadius.TEN) + .allowStale(true) .build() ); ``` @@ -13206,6 +13207,14 @@ client.labTests().getPscAppointmentAvailability( **radius:** `Optional` — Radius in which to search. (meters) +
+
+ +
+
+ +**allowStale:** `Optional` — [Closed Beta] Serve last known good information when the PSC system is temporarily unavailable. +
@@ -13231,9 +13240,15 @@ client.labTests().getPscAppointmentAvailability( ```java client.labTests().bookPscAppointment( "order_id", - AppointmentBookingRequest + LabTestsBookPscAppointmentRequest .builder() - .bookingKey("booking_key") + .body( + AppointmentBookingRequest + .builder() + .bookingKey("booking_key") + .build() + ) + .idempotencyKey("x-idempotency-key") .build() ); ``` @@ -13258,6 +13273,14 @@ client.labTests().bookPscAppointment(
+**idempotencyKey:** `Optional` — [!] This feature (Idempotency Key) is under closed beta. Idempotency Key support for booking PSC appointment. + +
+
+ +
+
+ **request:** `AppointmentBookingRequest`
@@ -13386,7 +13409,7 @@ client.labTests().cancelPscAppointment(
-
client.labTests.getPscAppointmentCancellationReason() -> List<ClientFacingAppointmentCancellationReason> +
client.labTests.getPscAppointmentCancellationReason() -> List&lt;ClientFacingAppointmentCancellationReason&gt;
@@ -14570,7 +14593,7 @@ client.order().resendEvents(
## Insurance -
client.insurance.searchGetPayorInfo() -> List<ClientFacingPayorSearchResponse> +
client.insurance.searchGetPayorInfo() -> List&lt;ClientFacingPayorSearchResponse&gt;
@@ -14633,7 +14656,7 @@ client.insurance().searchGetPayorInfo(
-
client.insurance.searchPayorInfo(request) -> List<ClientFacingPayorSearchResponseDeprecated> +
client.insurance.searchPayorInfo(request) -> List&lt;ClientFacingPayorSearchResponseDeprecated&gt;
@@ -14693,7 +14716,7 @@ client.insurance().searchPayorInfo(
-
client.insurance.searchDiagnosis() -> List<ClientFacingDiagnosisInformation> +
client.insurance.searchDiagnosis() -> List&lt;ClientFacingDiagnosisInformation&gt;
diff --git a/src/main/java/com/vital/api/core/ClientOptions.java b/src/main/java/com/vital/api/core/ClientOptions.java index eea0dda1..3f419f88 100644 --- a/src/main/java/com/vital/api/core/ClientOptions.java +++ b/src/main/java/com/vital/api/core/ClientOptions.java @@ -35,10 +35,10 @@ private ClientOptions( this.headers.putAll(headers); this.headers.putAll(new HashMap() { { - put("User-Agent", "io.tryvital:vital-java/1.2.585"); + put("User-Agent", "io.tryvital:vital-java/1.2.600"); put("X-Fern-Language", "JAVA"); put("X-Fern-SDK-Name", "com.vital.fern:api-sdk"); - put("X-Fern-SDK-Version", "1.2.585"); + put("X-Fern-SDK-Version", "1.2.600"); } }); this.headerSuppliers = headerSuppliers; diff --git a/src/main/java/com/vital/api/core/RequestOptions.java b/src/main/java/com/vital/api/core/RequestOptions.java index ec6fb060..3f41143b 100644 --- a/src/main/java/com/vital/api/core/RequestOptions.java +++ b/src/main/java/com/vital/api/core/RequestOptions.java @@ -20,17 +20,25 @@ public final class RequestOptions { private final Map> headerSuppliers; + private final Map queryParameters; + + private final Map> queryParameterSuppliers; + private RequestOptions( String apiKey, Optional timeout, TimeUnit timeoutTimeUnit, Map headers, - Map> headerSuppliers) { + Map> headerSuppliers, + Map queryParameters, + Map> queryParameterSuppliers) { this.apiKey = apiKey; this.timeout = timeout; this.timeoutTimeUnit = timeoutTimeUnit; this.headers = headers; this.headerSuppliers = headerSuppliers; + this.queryParameters = queryParameters; + this.queryParameterSuppliers = queryParameterSuppliers; } public Optional getTimeout() { @@ -53,6 +61,14 @@ public Map getHeaders() { return headers; } + public Map getQueryParameters() { + Map queryParameters = new HashMap<>(this.queryParameters); + this.queryParameterSuppliers.forEach((key, supplier) -> { + queryParameters.put(key, supplier.get()); + }); + return queryParameters; + } + public static Builder builder() { return new Builder(); } @@ -68,6 +84,10 @@ public static class Builder { private final Map> headerSuppliers = new HashMap<>(); + private final Map queryParameters = new HashMap<>(); + + private final Map> queryParameterSuppliers = new HashMap<>(); + public Builder apiKey(String apiKey) { this.apiKey = apiKey; return this; @@ -94,8 +114,25 @@ public Builder addHeader(String key, Supplier value) { return this; } + public Builder addQueryParameter(String key, String value) { + this.queryParameters.put(key, value); + return this; + } + + public Builder addQueryParameter(String key, Supplier value) { + this.queryParameterSuppliers.put(key, value); + return this; + } + public RequestOptions build() { - return new RequestOptions(apiKey, timeout, timeoutTimeUnit, headers, headerSuppliers); + return new RequestOptions( + apiKey, + timeout, + timeoutTimeUnit, + headers, + headerSuppliers, + queryParameters, + queryParameterSuppliers); } } } diff --git a/src/main/java/com/vital/api/resources/activity/AsyncRawActivityClient.java b/src/main/java/com/vital/api/resources/activity/AsyncRawActivityClient.java index 29555ef8..4b9134e4 100644 --- a/src/main/java/com/vital/api/resources/activity/AsyncRawActivityClient.java +++ b/src/main/java/com/vital/api/resources/activity/AsyncRawActivityClient.java @@ -61,6 +61,11 @@ public CompletableFuture> get( QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -136,6 +141,11 @@ public CompletableFuture> getRaw( QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) diff --git a/src/main/java/com/vital/api/resources/activity/RawActivityClient.java b/src/main/java/com/vital/api/resources/activity/RawActivityClient.java index e4acb66d..e6756af1 100644 --- a/src/main/java/com/vital/api/resources/activity/RawActivityClient.java +++ b/src/main/java/com/vital/api/resources/activity/RawActivityClient.java @@ -57,6 +57,11 @@ public VitalHttpResponse get( QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -117,6 +122,11 @@ public VitalHttpResponse getRaw( QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) diff --git a/src/main/java/com/vital/api/resources/aggregate/AsyncRawAggregateClient.java b/src/main/java/com/vital/api/resources/aggregate/AsyncRawAggregateClient.java index fa1cc7c2..d0d64011 100644 --- a/src/main/java/com/vital/api/resources/aggregate/AsyncRawAggregateClient.java +++ b/src/main/java/com/vital/api/resources/aggregate/AsyncRawAggregateClient.java @@ -45,12 +45,16 @@ public CompletableFuture> queryOne(String public CompletableFuture> queryOne( String userId, QueryBatch request, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() .addPathSegments("aggregate/v1/user") .addPathSegment(userId) - .addPathSegments("query") - .build(); + .addPathSegments("query"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } RequestBody body; try { body = RequestBody.create( @@ -59,7 +63,7 @@ public CompletableFuture> queryOne( throw new RuntimeException(e); } Request.Builder _requestBuilder = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("POST", body) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Content-Type", "application/json") @@ -116,16 +120,20 @@ public CompletableFuture> getResultTableFor public CompletableFuture> getResultTableForContinuousQuery( String userId, String queryIdOrSlug, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() .addPathSegments("aggregate/v1/user") .addPathSegment(userId) .addPathSegments("continuous_query") .addPathSegment(queryIdOrSlug) - .addPathSegments("result_table") - .build(); + .addPathSegments("result_table"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("GET", null) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Accept", "application/json") @@ -215,6 +223,11 @@ public CompletableFuture> QueryStringMapper.addQueryParameter( httpUrl, "limit", request.getLimit().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) diff --git a/src/main/java/com/vital/api/resources/aggregate/RawAggregateClient.java b/src/main/java/com/vital/api/resources/aggregate/RawAggregateClient.java index 54b17592..5d7ddd95 100644 --- a/src/main/java/com/vital/api/resources/aggregate/RawAggregateClient.java +++ b/src/main/java/com/vital/api/resources/aggregate/RawAggregateClient.java @@ -41,12 +41,16 @@ public VitalHttpResponse queryOne(String userId, QueryBatch public VitalHttpResponse queryOne( String userId, QueryBatch request, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() .addPathSegments("aggregate/v1/user") .addPathSegment(userId) - .addPathSegments("query") - .build(); + .addPathSegments("query"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } RequestBody body; try { body = RequestBody.create( @@ -55,7 +59,7 @@ public VitalHttpResponse queryOne( throw new RuntimeException(e); } Request.Builder _requestBuilder = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("POST", body) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Content-Type", "application/json") @@ -95,16 +99,20 @@ public VitalHttpResponse getResultTableForContinuousQuery(Str public VitalHttpResponse getResultTableForContinuousQuery( String userId, String queryIdOrSlug, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() .addPathSegments("aggregate/v1/user") .addPathSegment(userId) .addPathSegments("continuous_query") .addPathSegment(queryIdOrSlug) - .addPathSegments("result_table") - .build(); + .addPathSegments("result_table"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("GET", null) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Accept", "application/json") @@ -178,6 +186,11 @@ public VitalHttpResponse getTaskHistoryForCo QueryStringMapper.addQueryParameter( httpUrl, "limit", request.getLimit().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) diff --git a/src/main/java/com/vital/api/resources/body/AsyncRawBodyClient.java b/src/main/java/com/vital/api/resources/body/AsyncRawBodyClient.java index 2b86ee0a..79abb441 100644 --- a/src/main/java/com/vital/api/resources/body/AsyncRawBodyClient.java +++ b/src/main/java/com/vital/api/resources/body/AsyncRawBodyClient.java @@ -61,6 +61,11 @@ public CompletableFuture> get( QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -136,6 +141,11 @@ public CompletableFuture> getRaw( QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) diff --git a/src/main/java/com/vital/api/resources/body/RawBodyClient.java b/src/main/java/com/vital/api/resources/body/RawBodyClient.java index 9dff3c17..d1a71e72 100644 --- a/src/main/java/com/vital/api/resources/body/RawBodyClient.java +++ b/src/main/java/com/vital/api/resources/body/RawBodyClient.java @@ -57,6 +57,11 @@ public VitalHttpResponse get( QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -115,6 +120,11 @@ public VitalHttpResponse getRaw(String userId, BodyGetRawRequest reques QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) diff --git a/src/main/java/com/vital/api/resources/devices/AsyncRawDevicesClient.java b/src/main/java/com/vital/api/resources/devices/AsyncRawDevicesClient.java index 786258f5..a72d0e4e 100644 --- a/src/main/java/com/vital/api/resources/devices/AsyncRawDevicesClient.java +++ b/src/main/java/com/vital/api/resources/devices/AsyncRawDevicesClient.java @@ -69,6 +69,11 @@ public CompletableFuture> getRaw( QueryStringMapper.addQueryParameter( httpUrl, "provider", request.getProvider().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) diff --git a/src/main/java/com/vital/api/resources/devices/RawDevicesClient.java b/src/main/java/com/vital/api/resources/devices/RawDevicesClient.java index bbf70497..73cd7f81 100644 --- a/src/main/java/com/vital/api/resources/devices/RawDevicesClient.java +++ b/src/main/java/com/vital/api/resources/devices/RawDevicesClient.java @@ -65,6 +65,11 @@ public VitalHttpResponse getRaw( QueryStringMapper.addQueryParameter( httpUrl, "provider", request.getProvider().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) diff --git a/src/main/java/com/vital/api/resources/electrocardiogram/AsyncRawElectrocardiogramClient.java b/src/main/java/com/vital/api/resources/electrocardiogram/AsyncRawElectrocardiogramClient.java index 6e0a26d7..72d81049 100644 --- a/src/main/java/com/vital/api/resources/electrocardiogram/AsyncRawElectrocardiogramClient.java +++ b/src/main/java/com/vital/api/resources/electrocardiogram/AsyncRawElectrocardiogramClient.java @@ -60,6 +60,11 @@ public CompletableFuture { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) diff --git a/src/main/java/com/vital/api/resources/electrocardiogram/RawElectrocardiogramClient.java b/src/main/java/com/vital/api/resources/electrocardiogram/RawElectrocardiogramClient.java index d352a81f..3942c4f6 100644 --- a/src/main/java/com/vital/api/resources/electrocardiogram/RawElectrocardiogramClient.java +++ b/src/main/java/com/vital/api/resources/electrocardiogram/RawElectrocardiogramClient.java @@ -56,6 +56,11 @@ public VitalHttpResponse get( QueryStringMapper.addQueryParameter( httpUrl, "provider", request.getProvider().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) diff --git a/src/main/java/com/vital/api/resources/insurance/AsyncRawInsuranceClient.java b/src/main/java/com/vital/api/resources/insurance/AsyncRawInsuranceClient.java index 1a83321a..7b9bcea8 100644 --- a/src/main/java/com/vital/api/resources/insurance/AsyncRawInsuranceClient.java +++ b/src/main/java/com/vital/api/resources/insurance/AsyncRawInsuranceClient.java @@ -73,6 +73,11 @@ public CompletableFuture QueryStringMapper.addQueryParameter( httpUrl, "provider_payor_id", request.getProviderPayorId().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -140,10 +145,14 @@ public CompletableFuture>> searchPayorInfo( PayorSearchRequest request, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() - .addPathSegments("v3/insurance/search/payor") - .build(); + .addPathSegments("v3/insurance/search/payor"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } RequestBody body; try { body = RequestBody.create( @@ -152,7 +161,7 @@ public CompletableFuture { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) diff --git a/src/main/java/com/vital/api/resources/insurance/RawInsuranceClient.java b/src/main/java/com/vital/api/resources/insurance/RawInsuranceClient.java index 82d01806..6a48afba 100644 --- a/src/main/java/com/vital/api/resources/insurance/RawInsuranceClient.java +++ b/src/main/java/com/vital/api/resources/insurance/RawInsuranceClient.java @@ -68,6 +68,11 @@ public VitalHttpResponse> searchGetPayorIn QueryStringMapper.addQueryParameter( httpUrl, "provider_payor_id", request.getProviderPayorId().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -119,10 +124,14 @@ public VitalHttpResponse> search public VitalHttpResponse> searchPayorInfo( PayorSearchRequest request, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() - .addPathSegments("v3/insurance/search/payor") - .build(); + .addPathSegments("v3/insurance/search/payor"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } RequestBody body; try { body = RequestBody.create( @@ -131,7 +140,7 @@ public VitalHttpResponse> search throw new VitalException("Failed to serialize request", e); } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("POST", body) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Content-Type", "application/json") @@ -178,6 +187,11 @@ public VitalHttpResponse> searchDiagnosis .newBuilder() .addPathSegments("v3/insurance/search/diagnosis"); QueryStringMapper.addQueryParameter(httpUrl, "diagnosis_query", request.getDiagnosisQuery(), false); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) diff --git a/src/main/java/com/vital/api/resources/introspect/AsyncRawIntrospectClient.java b/src/main/java/com/vital/api/resources/introspect/AsyncRawIntrospectClient.java index 0ce2908b..e67ca0c1 100644 --- a/src/main/java/com/vital/api/resources/introspect/AsyncRawIntrospectClient.java +++ b/src/main/java/com/vital/api/resources/introspect/AsyncRawIntrospectClient.java @@ -74,6 +74,11 @@ public CompletableFuture> getUserResour QueryStringMapper.addQueryParameter( httpUrl, "next_cursor", request.getNextCursor().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -164,6 +169,11 @@ public CompletableFuture> getUser QueryStringMapper.addQueryParameter( httpUrl, "next_cursor", request.getNextCursor().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) diff --git a/src/main/java/com/vital/api/resources/introspect/RawIntrospectClient.java b/src/main/java/com/vital/api/resources/introspect/RawIntrospectClient.java index 7f69d591..d871d3cd 100644 --- a/src/main/java/com/vital/api/resources/introspect/RawIntrospectClient.java +++ b/src/main/java/com/vital/api/resources/introspect/RawIntrospectClient.java @@ -69,6 +69,11 @@ public VitalHttpResponse getUserResources( QueryStringMapper.addQueryParameter( httpUrl, "next_cursor", request.getNextCursor().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -142,6 +147,11 @@ public VitalHttpResponse getUserHistoricalPulls( QueryStringMapper.addQueryParameter( httpUrl, "next_cursor", request.getNextCursor().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) diff --git a/src/main/java/com/vital/api/resources/labreport/AsyncRawLabReportClient.java b/src/main/java/com/vital/api/resources/labreport/AsyncRawLabReportClient.java index f95c15bf..a8cf6294 100644 --- a/src/main/java/com/vital/api/resources/labreport/AsyncRawLabReportClient.java +++ b/src/main/java/com/vital/api/resources/labreport/AsyncRawLabReportClient.java @@ -55,10 +55,14 @@ public CompletableFuture> parserCreateJob( */ public CompletableFuture> parserCreateJob( File file, BodyCreateLabReportParserJob request, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() - .addPathSegments("lab_report/v1/parser/job") - .build(); + .addPathSegments("lab_report/v1/parser/job"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } MultipartBody.Builder multipartBodyBuilder = new MultipartBody.Builder().setType(MultipartBody.FORM); try { String fileMimeType = Files.probeContentType(file.toPath()); @@ -77,7 +81,7 @@ public CompletableFuture> parserCreateJob( throw new RuntimeException(e); } Request.Builder _requestBuilder = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("POST", multipartBodyBuilder.build()) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Accept", "application/json"); @@ -125,16 +129,15 @@ public void onFailure(@NotNull Call call, @NotNull IOException e) { } public CompletableFuture> parserCreateJob(InputStream stream, String filename) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() - .addPathSegments("lab_report/v1/parser/job") - .build(); + .addPathSegments("lab_report/v1/parser/job"); FileStream fs = new FileStream(stream, filename, null); MultipartBody.Builder multipartBodyBuilder = new MultipartBody.Builder().setType(MultipartBody.FORM); multipartBodyBuilder.addFormDataPart("file", filename, fs.toRequestBody()); RequestBody body = multipartBodyBuilder.build(); Request.Builder _requestBuilder = new Request.Builder(); - _requestBuilder.url(httpUrl); + _requestBuilder.url(httpUrl.build()); _requestBuilder.method("POST", body); _requestBuilder.headers(Headers.of(this.clientOptions.headers(null))); Request okhttpRequest = _requestBuilder.build(); @@ -179,16 +182,15 @@ public void onFailure(@NotNull Call call, @NotNull IOException e) { public CompletableFuture> parserCreateJob( InputStream stream, String filename, MediaType mediaType) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() - .addPathSegments("lab_report/v1/parser/job") - .build(); + .addPathSegments("lab_report/v1/parser/job"); FileStream fs = new FileStream(stream, filename, mediaType); MultipartBody.Builder multipartBodyBuilder = new MultipartBody.Builder().setType(MultipartBody.FORM); multipartBodyBuilder.addFormDataPart("file", filename, fs.toRequestBody()); RequestBody body = multipartBodyBuilder.build(); Request.Builder _requestBuilder = new Request.Builder(); - _requestBuilder.url(httpUrl); + _requestBuilder.url(httpUrl.build()); _requestBuilder.method("POST", body); _requestBuilder.headers(Headers.of(this.clientOptions.headers(null))); Request okhttpRequest = _requestBuilder.build(); @@ -233,16 +235,20 @@ public void onFailure(@NotNull Call call, @NotNull IOException e) { public CompletableFuture> parserCreateJob( InputStream stream, String filename, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() - .addPathSegments("lab_report/v1/parser/job") - .build(); + .addPathSegments("lab_report/v1/parser/job"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } FileStream fs = new FileStream(stream, filename, null); MultipartBody.Builder multipartBodyBuilder = new MultipartBody.Builder().setType(MultipartBody.FORM); multipartBodyBuilder.addFormDataPart("file", filename, fs.toRequestBody()); RequestBody body = multipartBodyBuilder.build(); Request.Builder _requestBuilder = new Request.Builder(); - _requestBuilder.url(httpUrl); + _requestBuilder.url(httpUrl.build()); _requestBuilder.method("POST", body); _requestBuilder.headers(Headers.of(this.clientOptions.headers(requestOptions))); Request okhttpRequest = _requestBuilder.build(); @@ -290,16 +296,20 @@ public void onFailure(@NotNull Call call, @NotNull IOException e) { public CompletableFuture> parserCreateJob( InputStream stream, String filename, MediaType mediaType, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() - .addPathSegments("lab_report/v1/parser/job") - .build(); + .addPathSegments("lab_report/v1/parser/job"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } FileStream fs = new FileStream(stream, filename, mediaType); MultipartBody.Builder multipartBodyBuilder = new MultipartBody.Builder().setType(MultipartBody.FORM); multipartBodyBuilder.addFormDataPart("file", filename, fs.toRequestBody()); RequestBody body = multipartBodyBuilder.build(); Request.Builder _requestBuilder = new Request.Builder(); - _requestBuilder.url(httpUrl); + _requestBuilder.url(httpUrl.build()); _requestBuilder.method("POST", body); _requestBuilder.headers(Headers.of(this.clientOptions.headers(requestOptions))); Request okhttpRequest = _requestBuilder.build(); @@ -360,13 +370,17 @@ public CompletableFuture> parserGetJob(String jobI * ParseLabResultJobResponse with job status and parsed data (if complete)

*/ public CompletableFuture> parserGetJob(String jobId, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() .addPathSegments("lab_report/v1/parser/job") - .addPathSegment(jobId) - .build(); + .addPathSegment(jobId); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("GET", null) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Accept", "application/json") diff --git a/src/main/java/com/vital/api/resources/labreport/RawLabReportClient.java b/src/main/java/com/vital/api/resources/labreport/RawLabReportClient.java index 5d84385c..e69306cb 100644 --- a/src/main/java/com/vital/api/resources/labreport/RawLabReportClient.java +++ b/src/main/java/com/vital/api/resources/labreport/RawLabReportClient.java @@ -50,10 +50,14 @@ public VitalHttpResponse parserCreateJob(File file, BodyCreateLabRep */ public VitalHttpResponse parserCreateJob( File file, BodyCreateLabReportParserJob request, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() - .addPathSegments("lab_report/v1/parser/job") - .build(); + .addPathSegments("lab_report/v1/parser/job"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } MultipartBody.Builder multipartBodyBuilder = new MultipartBody.Builder().setType(MultipartBody.FORM); try { String fileMimeType = Files.probeContentType(file.toPath()); @@ -72,7 +76,7 @@ public VitalHttpResponse parserCreateJob( throw new RuntimeException(e); } Request.Builder _requestBuilder = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("POST", multipartBodyBuilder.build()) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Accept", "application/json"); @@ -105,16 +109,15 @@ public VitalHttpResponse parserCreateJob( } public VitalHttpResponse parserCreateJob(InputStream stream, String filename) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() - .addPathSegments("lab_report/v1/parser/job") - .build(); + .addPathSegments("lab_report/v1/parser/job"); FileStream fs = new FileStream(stream, filename, null); MultipartBody.Builder multipartBodyBuilder = new MultipartBody.Builder().setType(MultipartBody.FORM); multipartBodyBuilder.addFormDataPart("file", filename, fs.toRequestBody()); RequestBody body = multipartBodyBuilder.build(); Request.Builder _requestBuilder = new Request.Builder(); - _requestBuilder.url(httpUrl); + _requestBuilder.url(httpUrl.build()); _requestBuilder.method("POST", body); _requestBuilder.headers(Headers.of(this.clientOptions.headers(null))); Request okhttpRequest = _requestBuilder.build(); @@ -143,16 +146,15 @@ public VitalHttpResponse parserCreateJob(InputStream stream, String } public VitalHttpResponse parserCreateJob(InputStream stream, String filename, MediaType mediaType) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() - .addPathSegments("lab_report/v1/parser/job") - .build(); + .addPathSegments("lab_report/v1/parser/job"); FileStream fs = new FileStream(stream, filename, mediaType); MultipartBody.Builder multipartBodyBuilder = new MultipartBody.Builder().setType(MultipartBody.FORM); multipartBodyBuilder.addFormDataPart("file", filename, fs.toRequestBody()); RequestBody body = multipartBodyBuilder.build(); Request.Builder _requestBuilder = new Request.Builder(); - _requestBuilder.url(httpUrl); + _requestBuilder.url(httpUrl.build()); _requestBuilder.method("POST", body); _requestBuilder.headers(Headers.of(this.clientOptions.headers(null))); Request okhttpRequest = _requestBuilder.build(); @@ -182,16 +184,20 @@ public VitalHttpResponse parserCreateJob(InputStream stream, String public VitalHttpResponse parserCreateJob( InputStream stream, String filename, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() - .addPathSegments("lab_report/v1/parser/job") - .build(); + .addPathSegments("lab_report/v1/parser/job"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } FileStream fs = new FileStream(stream, filename, null); MultipartBody.Builder multipartBodyBuilder = new MultipartBody.Builder().setType(MultipartBody.FORM); multipartBodyBuilder.addFormDataPart("file", filename, fs.toRequestBody()); RequestBody body = multipartBodyBuilder.build(); Request.Builder _requestBuilder = new Request.Builder(); - _requestBuilder.url(httpUrl); + _requestBuilder.url(httpUrl.build()); _requestBuilder.method("POST", body); _requestBuilder.headers(Headers.of(this.clientOptions.headers(requestOptions))); Request okhttpRequest = _requestBuilder.build(); @@ -224,16 +230,20 @@ public VitalHttpResponse parserCreateJob( public VitalHttpResponse parserCreateJob( InputStream stream, String filename, MediaType mediaType, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() - .addPathSegments("lab_report/v1/parser/job") - .build(); + .addPathSegments("lab_report/v1/parser/job"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } FileStream fs = new FileStream(stream, filename, mediaType); MultipartBody.Builder multipartBodyBuilder = new MultipartBody.Builder().setType(MultipartBody.FORM); multipartBodyBuilder.addFormDataPart("file", filename, fs.toRequestBody()); RequestBody body = multipartBodyBuilder.build(); Request.Builder _requestBuilder = new Request.Builder(); - _requestBuilder.url(httpUrl); + _requestBuilder.url(httpUrl.build()); _requestBuilder.method("POST", body); _requestBuilder.headers(Headers.of(this.clientOptions.headers(requestOptions))); Request okhttpRequest = _requestBuilder.build(); @@ -279,13 +289,17 @@ public VitalHttpResponse parserGetJob(String jobId) { * ParseLabResultJobResponse with job status and parsed data (if complete)

*/ public VitalHttpResponse parserGetJob(String jobId, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() .addPathSegments("lab_report/v1/parser/job") - .addPathSegment(jobId) - .build(); + .addPathSegment(jobId); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("GET", null) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Accept", "application/json") diff --git a/src/main/java/com/vital/api/resources/labtests/AsyncLabTestsClient.java b/src/main/java/com/vital/api/resources/labtests/AsyncLabTestsClient.java index 6e3494fe..03c6f0c9 100644 --- a/src/main/java/com/vital/api/resources/labtests/AsyncLabTestsClient.java +++ b/src/main/java/com/vital/api/resources/labtests/AsyncLabTestsClient.java @@ -9,6 +9,7 @@ import com.vital.api.resources.labtests.requests.CreateLabTestRequest; import com.vital.api.resources.labtests.requests.CreateOrderRequestCompatible; import com.vital.api.resources.labtests.requests.ImportOrderBody; +import com.vital.api.resources.labtests.requests.LabTestsBookPscAppointmentRequest; import com.vital.api.resources.labtests.requests.LabTestsGetAreaInfoRequest; import com.vital.api.resources.labtests.requests.LabTestsGetByIdRequest; import com.vital.api.resources.labtests.requests.LabTestsGetLabelsPdfRequest; @@ -43,8 +44,10 @@ import com.vital.api.types.LabResultsMetadata; import com.vital.api.types.LabResultsRaw; import com.vital.api.types.LabTestResourcesResponse; +import com.vital.api.types.OrderSetRequest; import com.vital.api.types.PostOrderResponse; import com.vital.api.types.PscInfo; +import com.vital.api.types.UsAddress; import com.vital.api.types.ValidateIcdCodesResponse; import java.io.InputStream; import java.util.List; @@ -178,6 +181,15 @@ public CompletableFuture getMarkers( return this.rawClient.getMarkers(request, requestOptions).thenApply(response -> response.body()); } + public CompletableFuture getMarkersForOrderSet(OrderSetRequest body) { + return this.rawClient.getMarkersForOrderSet(body).thenApply(response -> response.body()); + } + + public CompletableFuture getMarkersForOrderSet( + OrderSetRequest body, RequestOptions requestOptions) { + return this.rawClient.getMarkersForOrderSet(body, requestOptions).thenApply(response -> response.body()); + } + public CompletableFuture getMarkersForOrderSet(LabTestsGetMarkersForOrderSetRequest request) { return this.rawClient.getMarkersForOrderSet(request).thenApply(response -> response.body()); } @@ -330,6 +342,25 @@ public CompletableFuture getOrders( return this.rawClient.getOrders(request, requestOptions).thenApply(response -> response.body()); } + /** + * Return the available time slots to book an appointment with a phlebotomist + * for the given address and order. + */ + public CompletableFuture getPhlebotomyAppointmentAvailability(UsAddress body) { + return this.rawClient.getPhlebotomyAppointmentAvailability(body).thenApply(response -> response.body()); + } + + /** + * Return the available time slots to book an appointment with a phlebotomist + * for the given address and order. + */ + public CompletableFuture getPhlebotomyAppointmentAvailability( + UsAddress body, RequestOptions requestOptions) { + return this.rawClient + .getPhlebotomyAppointmentAvailability(body, requestOptions) + .thenApply(response -> response.body()); + } + /** * Return the available time slots to book an appointment with a phlebotomist * for the given address and order. @@ -578,12 +609,22 @@ public CompletableFuture getPscAppointmentAvailabi } public CompletableFuture bookPscAppointment( - String orderId, AppointmentBookingRequest request) { + String orderId, AppointmentBookingRequest body) { + return this.rawClient.bookPscAppointment(orderId, body).thenApply(response -> response.body()); + } + + public CompletableFuture bookPscAppointment( + String orderId, AppointmentBookingRequest body, RequestOptions requestOptions) { + return this.rawClient.bookPscAppointment(orderId, body, requestOptions).thenApply(response -> response.body()); + } + + public CompletableFuture bookPscAppointment( + String orderId, LabTestsBookPscAppointmentRequest request) { return this.rawClient.bookPscAppointment(orderId, request).thenApply(response -> response.body()); } public CompletableFuture bookPscAppointment( - String orderId, AppointmentBookingRequest request, RequestOptions requestOptions) { + String orderId, LabTestsBookPscAppointmentRequest request, RequestOptions requestOptions) { return this.rawClient .bookPscAppointment(orderId, request, requestOptions) .thenApply(response -> response.body()); diff --git a/src/main/java/com/vital/api/resources/labtests/AsyncRawLabTestsClient.java b/src/main/java/com/vital/api/resources/labtests/AsyncRawLabTestsClient.java index 0b968e29..d9094e83 100644 --- a/src/main/java/com/vital/api/resources/labtests/AsyncRawLabTestsClient.java +++ b/src/main/java/com/vital/api/resources/labtests/AsyncRawLabTestsClient.java @@ -20,6 +20,7 @@ import com.vital.api.resources.labtests.requests.CreateLabTestRequest; import com.vital.api.resources.labtests.requests.CreateOrderRequestCompatible; import com.vital.api.resources.labtests.requests.ImportOrderBody; +import com.vital.api.resources.labtests.requests.LabTestsBookPscAppointmentRequest; import com.vital.api.resources.labtests.requests.LabTestsGetAreaInfoRequest; import com.vital.api.resources.labtests.requests.LabTestsGetByIdRequest; import com.vital.api.resources.labtests.requests.LabTestsGetLabelsPdfRequest; @@ -56,8 +57,10 @@ import com.vital.api.types.LabResultsRaw; import com.vital.api.types.LabTestResourcesResponse; import com.vital.api.types.NotFoundErrorBody; +import com.vital.api.types.OrderSetRequest; import com.vital.api.types.PostOrderResponse; import com.vital.api.types.PscInfo; +import com.vital.api.types.UsAddress; import com.vital.api.types.ValidateIcdCodesResponse; import java.io.IOException; import java.io.InputStream; @@ -146,6 +149,11 @@ public CompletableFuture>> get( QueryStringMapper.addQueryParameter( httpUrl, "provider_ids", request.getProviderIds().get(), true); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -202,10 +210,14 @@ public CompletableFuture> create(CreateLa public CompletableFuture> create( CreateLabTestRequest request, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() - .addPathSegments("v3/lab_tests") - .build(); + .addPathSegments("v3/lab_tests"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } RequestBody body; try { body = RequestBody.create( @@ -214,7 +226,7 @@ public CompletableFuture> create( throw new VitalException("Failed to serialize request", e); } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("POST", body) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Content-Type", "application/json") @@ -299,6 +311,11 @@ public CompletableFuture> getById( QueryStringMapper.addQueryParameter( httpUrl, "lab_account_id", request.getLabAccountId().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -364,11 +381,15 @@ public CompletableFuture> updateLabTest( public CompletableFuture> updateLabTest( String labTestId, UpdateLabTestRequest request, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() .addPathSegments("v3/lab_tests") - .addPathSegment(labTestId) - .build(); + .addPathSegment(labTestId); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } RequestBody body; try { body = RequestBody.create( @@ -377,7 +398,7 @@ public CompletableFuture> updateLabTest( throw new VitalException("Failed to serialize request", e); } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("PATCH", body) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Content-Type", "application/json") @@ -479,6 +500,11 @@ public CompletableFuture> getMarkers( QueryStringMapper.addQueryParameter( httpUrl, "lab_id", request.getLabId().get(), true); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -528,6 +554,17 @@ public void onFailure(@NotNull Call call, @NotNull IOException e) { return future; } + public CompletableFuture> getMarkersForOrderSet(OrderSetRequest body) { + return getMarkersForOrderSet( + LabTestsGetMarkersForOrderSetRequest.builder().body(body).build()); + } + + public CompletableFuture> getMarkersForOrderSet( + OrderSetRequest body, RequestOptions requestOptions) { + return getMarkersForOrderSet( + LabTestsGetMarkersForOrderSetRequest.builder().body(body).build(), requestOptions); + } + public CompletableFuture> getMarkersForOrderSet( LabTestsGetMarkersForOrderSetRequest request) { return getMarkersForOrderSet(request, null); @@ -546,6 +583,11 @@ public CompletableFuture> getMarkersForOrd QueryStringMapper.addQueryParameter( httpUrl, "size", request.getSize().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } RequestBody body; try { body = RequestBody.create( @@ -638,6 +680,11 @@ public CompletableFuture> getMarkersForLab QueryStringMapper.addQueryParameter( httpUrl, "size", request.getSize().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -736,6 +783,11 @@ public CompletableFuture> getMarkersByLabA QueryStringMapper.addQueryParameter( httpUrl, "lab_account_id", request.getLabAccountId().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -796,12 +848,16 @@ public CompletableFuture>> getLabs() { * GET all the labs. */ public CompletableFuture>> getLabs(RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() - .addPathSegments("v3/lab_tests/labs") - .build(); + .addPathSegments("v3/lab_tests/labs"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("GET", null) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Accept", "application/json") @@ -914,6 +970,11 @@ public CompletableFuture> getPaginat QueryStringMapper.addQueryParameter( httpUrl, "provider_ids", request.getProviderIds().get(), true); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -969,14 +1030,18 @@ public CompletableFuture> getLabTestCollectionIns public CompletableFuture> getLabTestCollectionInstructionPdf( String labTestId, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() .addPathSegments("v3/lab_test") .addPathSegment(labTestId) - .addPathSegments("collection_instruction_pdf") - .build(); + .addPathSegments("collection_instruction_pdf"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("GET", null) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Accept", "application/json") @@ -1130,6 +1195,11 @@ public CompletableFuture> getOrders( QueryStringMapper.addQueryParameter( httpUrl, "order_ids", request.getOrderIds().get(), true); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -1179,6 +1249,30 @@ public void onFailure(@NotNull Call call, @NotNull IOException e) { return future; } + /** + * Return the available time slots to book an appointment with a phlebotomist + * for the given address and order. + */ + public CompletableFuture> getPhlebotomyAppointmentAvailability( + UsAddress body) { + return getPhlebotomyAppointmentAvailability(LabTestsGetPhlebotomyAppointmentAvailabilityRequest.builder() + .body(body) + .build()); + } + + /** + * Return the available time slots to book an appointment with a phlebotomist + * for the given address and order. + */ + public CompletableFuture> getPhlebotomyAppointmentAvailability( + UsAddress body, RequestOptions requestOptions) { + return getPhlebotomyAppointmentAvailability( + LabTestsGetPhlebotomyAppointmentAvailabilityRequest.builder() + .body(body) + .build(), + requestOptions); + } + /** * Return the available time slots to book an appointment with a phlebotomist * for the given address and order. @@ -1201,6 +1295,11 @@ public CompletableFuture> getPhl QueryStringMapper.addQueryParameter( httpUrl, "start_date", request.getStartDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } RequestBody body; try { body = RequestBody.create( @@ -1272,13 +1371,17 @@ public CompletableFuture> bookPhlebot */ public CompletableFuture> bookPhlebotomyAppointment( String orderId, AppointmentBookingRequest request, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() .addPathSegments("v3/order") .addPathSegment(orderId) .addPathSegments("phlebotomy/appointment") - .addPathSegments("book") - .build(); + .addPathSegments("book"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } RequestBody body; try { body = RequestBody.create( @@ -1287,7 +1390,7 @@ public CompletableFuture> bookPhlebot throw new VitalException("Failed to serialize request", e); } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("POST", body) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Content-Type", "application/json") @@ -1349,13 +1452,17 @@ public CompletableFuture> requestPhle */ public CompletableFuture> requestPhlebotomyAppointment( String orderId, RequestAppointmentRequest request, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() .addPathSegments("v3/order") .addPathSegment(orderId) .addPathSegments("phlebotomy/appointment") - .addPathSegments("request") - .build(); + .addPathSegments("request"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } RequestBody body; try { body = RequestBody.create( @@ -1364,7 +1471,7 @@ public CompletableFuture> requestPhle throw new VitalException("Failed to serialize request", e); } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("POST", body) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Content-Type", "application/json") @@ -1426,13 +1533,17 @@ public CompletableFuture> rescheduleP */ public CompletableFuture> reschedulePhlebotomyAppointment( String orderId, AppointmentRescheduleRequest request, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() .addPathSegments("v3/order") .addPathSegment(orderId) .addPathSegments("phlebotomy/appointment") - .addPathSegments("reschedule") - .build(); + .addPathSegments("reschedule"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } RequestBody body; try { body = RequestBody.create( @@ -1441,7 +1552,7 @@ public CompletableFuture> rescheduleP throw new VitalException("Failed to serialize request", e); } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("PATCH", body) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Content-Type", "application/json") @@ -1505,13 +1616,17 @@ public CompletableFuture> cancelPhleb String orderId, ApiApiV1EndpointsVitalApiLabTestingOrdersHelpersAppointmentCancelRequest request, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() .addPathSegments("v3/order") .addPathSegment(orderId) .addPathSegments("phlebotomy/appointment") - .addPathSegments("cancel") - .build(); + .addPathSegments("cancel"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } RequestBody body; try { body = RequestBody.create( @@ -1520,7 +1635,7 @@ public CompletableFuture> cancelPhleb throw new VitalException("Failed to serialize request", e); } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("PATCH", body) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Content-Type", "application/json") @@ -1582,12 +1697,16 @@ public void onFailure(@NotNull Call call, @NotNull IOException e) { */ public CompletableFuture>> getPhlebotomyAppointmentCancellationReason(RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() - .addPathSegments("v3/order/phlebotomy/appointment/cancellation-reasons") - .build(); + .addPathSegments("v3/order/phlebotomy/appointment/cancellation-reasons"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("GET", null) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Accept", "application/json") @@ -1640,15 +1759,19 @@ public CompletableFuture> getPhleboto */ public CompletableFuture> getPhlebotomyAppointment( String orderId, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() .addPathSegments("v3/order") .addPathSegment(orderId) .addPathSegments("phlebotomy") - .addPathSegments("appointment") - .build(); + .addPathSegments("appointment"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("GET", null) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Accept", "application/json") @@ -1737,6 +1860,11 @@ public CompletableFuture> getAreaInfo( QueryStringMapper.addQueryParameter( httpUrl, "labs", request.getLabs().get(), true); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -1808,6 +1936,11 @@ public CompletableFuture> getPscInfo( QueryStringMapper.addQueryParameter( httpUrl, "capabilities", request.getCapabilities().get(), true); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -1886,6 +2019,11 @@ public CompletableFuture> getOrderPscInfo( QueryStringMapper.addQueryParameter( httpUrl, "capabilities", request.getCapabilities().get(), true); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -1946,15 +2084,19 @@ public CompletableFuture> getResultPdf(String ord */ public CompletableFuture> getResultPdf( String orderId, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() .addPathSegments("v3/order") .addPathSegment(orderId) .addPathSegments("result") - .addPathSegments("pdf") - .build(); + .addPathSegments("pdf"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("GET", null) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Accept", "application/json") @@ -2015,15 +2157,19 @@ public CompletableFuture> getResultMetadat */ public CompletableFuture> getResultMetadata( String orderId, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() .addPathSegments("v3/order") .addPathSegment(orderId) .addPathSegments("result") - .addPathSegments("metadata") - .build(); + .addPathSegments("metadata"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("GET", null) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Accept", "application/json") @@ -2083,14 +2229,18 @@ public CompletableFuture> getResultRaw(String o */ public CompletableFuture> getResultRaw( String orderId, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() .addPathSegments("v3/order") .addPathSegment(orderId) - .addPathSegments("result") - .build(); + .addPathSegments("result"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("GET", null) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Accept", "application/json") @@ -2162,6 +2312,11 @@ public CompletableFuture> getLabelsPdf( httpUrl, "number_of_labels", request.getNumberOfLabels().get(), false); } QueryStringMapper.addQueryParameter(httpUrl, "collection_date", request.getCollectionDate(), false); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -2233,10 +2388,19 @@ public CompletableFuture> getPsc QueryStringMapper.addQueryParameter( httpUrl, "radius", request.getRadius().get(), false); } + if (request.getAllowStale().isPresent()) { + QueryStringMapper.addQueryParameter( + httpUrl, "allow_stale", request.getAllowStale().get(), false); + } if (request.getSiteCodes().isPresent()) { QueryStringMapper.addQueryParameter( httpUrl, "site_codes", request.getSiteCodes().get(), true); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("POST", RequestBody.create("", null)) @@ -2296,33 +2460,53 @@ public void onFailure(@NotNull Call call, @NotNull IOException e) { } public CompletableFuture> bookPscAppointment( - String orderId, AppointmentBookingRequest request) { + String orderId, AppointmentBookingRequest body) { + return bookPscAppointment( + orderId, LabTestsBookPscAppointmentRequest.builder().body(body).build()); + } + + public CompletableFuture> bookPscAppointment( + String orderId, AppointmentBookingRequest body, RequestOptions requestOptions) { + return bookPscAppointment( + orderId, LabTestsBookPscAppointmentRequest.builder().body(body).build(), requestOptions); + } + + public CompletableFuture> bookPscAppointment( + String orderId, LabTestsBookPscAppointmentRequest request) { return bookPscAppointment(orderId, request, null); } public CompletableFuture> bookPscAppointment( - String orderId, AppointmentBookingRequest request, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + String orderId, LabTestsBookPscAppointmentRequest request, RequestOptions requestOptions) { + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() .addPathSegments("v3/order") .addPathSegment(orderId) .addPathSegments("psc/appointment") - .addPathSegments("book") - .build(); + .addPathSegments("book"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } RequestBody body; try { body = RequestBody.create( - ObjectMappers.JSON_MAPPER.writeValueAsBytes(request), MediaTypes.APPLICATION_JSON); - } catch (JsonProcessingException e) { - throw new VitalException("Failed to serialize request", e); + ObjectMappers.JSON_MAPPER.writeValueAsBytes(request.getBody()), MediaTypes.APPLICATION_JSON); + } catch (Exception e) { + throw new RuntimeException(e); } - Request okhttpRequest = new Request.Builder() - .url(httpUrl) + Request.Builder _requestBuilder = new Request.Builder() + .url(httpUrl.build()) .method("POST", body) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Content-Type", "application/json") - .addHeader("Accept", "application/json") - .build(); + .addHeader("Accept", "application/json"); + if (request.getIdempotencyKey().isPresent()) { + _requestBuilder.addHeader( + "x-idempotency-key", request.getIdempotencyKey().get()); + } + Request okhttpRequest = _requestBuilder.build(); OkHttpClient client = clientOptions.httpClient(); if (requestOptions != null && requestOptions.getTimeout().isPresent()) { client = clientOptions.httpClientWithTimeout(requestOptions); @@ -2373,13 +2557,17 @@ public CompletableFuture> rescheduleP public CompletableFuture> reschedulePscAppointment( String orderId, AppointmentRescheduleRequest request, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() .addPathSegments("v3/order") .addPathSegment(orderId) .addPathSegments("psc/appointment") - .addPathSegments("reschedule") - .build(); + .addPathSegments("reschedule"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } RequestBody body; try { body = RequestBody.create( @@ -2388,7 +2576,7 @@ public CompletableFuture> rescheduleP throw new VitalException("Failed to serialize request", e); } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("PATCH", body) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Content-Type", "application/json") @@ -2446,13 +2634,17 @@ public CompletableFuture> cancelPscAp String orderId, VitalCoreClientsLabTestGetlabsSchemaAppointmentCancelRequest request, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() .addPathSegments("v3/order") .addPathSegment(orderId) .addPathSegments("psc/appointment") - .addPathSegments("cancel") - .build(); + .addPathSegments("cancel"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } RequestBody body; try { body = RequestBody.create( @@ -2461,7 +2653,7 @@ public CompletableFuture> cancelPscAp throw new VitalException("Failed to serialize request", e); } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("PATCH", body) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Content-Type", "application/json") @@ -2517,12 +2709,16 @@ public void onFailure(@NotNull Call call, @NotNull IOException e) { public CompletableFuture>> getPscAppointmentCancellationReason(RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() - .addPathSegments("v3/order/psc/appointment/cancellation-reasons") - .build(); + .addPathSegments("v3/order/psc/appointment/cancellation-reasons"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("GET", null) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Accept", "application/json") @@ -2575,15 +2771,19 @@ public CompletableFuture> getPscAppoi */ public CompletableFuture> getPscAppointment( String orderId, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() .addPathSegments("v3/order") .addPathSegment(orderId) .addPathSegments("psc") - .addPathSegments("appointment") - .build(); + .addPathSegments("appointment"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("GET", null) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Accept", "application/json") @@ -2643,14 +2843,18 @@ public CompletableFuture> getOrderCollectionInstr */ public CompletableFuture> getOrderCollectionInstructionPdf( String orderId, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() .addPathSegments("v3/order") .addPathSegment(orderId) - .addPathSegments("collection_instruction_pdf") - .build(); + .addPathSegments("collection_instruction_pdf"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("GET", null) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Accept", "application/json") @@ -2709,15 +2913,19 @@ public CompletableFuture> getOrderRequistionPdf(S */ public CompletableFuture> getOrderRequistionPdf( String orderId, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() .addPathSegments("v3/order") .addPathSegment(orderId) .addPathSegments("requisition") - .addPathSegments("pdf") - .build(); + .addPathSegments("pdf"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("GET", null) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Accept", "application/json") @@ -2776,14 +2984,18 @@ public CompletableFuture> getOrderAbnPdf(String o */ public CompletableFuture> getOrderAbnPdf( String orderId, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() .addPathSegments("v3/order") .addPathSegment(orderId) - .addPathSegments("abn_pdf") - .build(); + .addPathSegments("abn_pdf"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("GET", null) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Accept", "application/json") @@ -2842,13 +3054,17 @@ public CompletableFuture> getOrder(String o */ public CompletableFuture> getOrder( String orderId, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() .addPathSegments("v3/order") - .addPathSegment(orderId) - .build(); + .addPathSegment(orderId); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("GET", null) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Accept", "application/json") @@ -2902,10 +3118,14 @@ public CompletableFuture> createOrder(Creat public CompletableFuture> createOrder( CreateOrderRequestCompatible request, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() - .addPathSegments("v3/order") - .build(); + .addPathSegments("v3/order"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } RequestBody body; try { body = RequestBody.create( @@ -2914,7 +3134,7 @@ public CompletableFuture> createOrder( throw new RuntimeException(e); } Request.Builder _requestBuilder = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("POST", body) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Content-Type", "application/json") @@ -2977,10 +3197,14 @@ public CompletableFuture> importOrder(Impor public CompletableFuture> importOrder( ImportOrderBody request, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() - .addPathSegments("v3/order/import") - .build(); + .addPathSegments("v3/order/import"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } RequestBody body; try { body = RequestBody.create( @@ -2989,7 +3213,7 @@ public CompletableFuture> importOrder( throw new VitalException("Failed to serialize request", e); } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("POST", body) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Content-Type", "application/json") @@ -3050,14 +3274,18 @@ public CompletableFuture> cancelOrder(Strin */ public CompletableFuture> cancelOrder( String orderId, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() .addPathSegments("v3/order") .addPathSegment(orderId) - .addPathSegments("cancel") - .build(); + .addPathSegments("cancel"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("POST", RequestBody.create("", null)) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Accept", "application/json") @@ -3148,6 +3376,11 @@ public CompletableFuture> simulateOrderProcess( QueryStringMapper.addQueryParameter( httpUrl, "delay", request.getDelay().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } RequestBody body; try { body = RequestBody.create("", null); @@ -3220,14 +3453,18 @@ public CompletableFuture> updateOnSiteColle */ public CompletableFuture> updateOnSiteCollectionOrderDrawCompleted( String orderId, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() .addPathSegments("v3/order") .addPathSegment(orderId) - .addPathSegments("draw_completed") - .build(); + .addPathSegments("draw_completed"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("PATCH", null) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Accept", "application/json") @@ -3282,10 +3519,14 @@ public CompletableFuture> validateIc public CompletableFuture> validateIcdCodes( ValidateIcdCodesBody request, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() - .addPathSegments("v3/insurance/validate_icd_codes") - .build(); + .addPathSegments("v3/insurance/validate_icd_codes"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } RequestBody body; try { body = RequestBody.create( @@ -3294,7 +3535,7 @@ public CompletableFuture> validateIc throw new VitalException("Failed to serialize request", e); } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("POST", body) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Content-Type", "application/json") diff --git a/src/main/java/com/vital/api/resources/labtests/LabTestsClient.java b/src/main/java/com/vital/api/resources/labtests/LabTestsClient.java index 0b41419a..4d136a3d 100644 --- a/src/main/java/com/vital/api/resources/labtests/LabTestsClient.java +++ b/src/main/java/com/vital/api/resources/labtests/LabTestsClient.java @@ -9,6 +9,7 @@ import com.vital.api.resources.labtests.requests.CreateLabTestRequest; import com.vital.api.resources.labtests.requests.CreateOrderRequestCompatible; import com.vital.api.resources.labtests.requests.ImportOrderBody; +import com.vital.api.resources.labtests.requests.LabTestsBookPscAppointmentRequest; import com.vital.api.resources.labtests.requests.LabTestsGetAreaInfoRequest; import com.vital.api.resources.labtests.requests.LabTestsGetByIdRequest; import com.vital.api.resources.labtests.requests.LabTestsGetLabelsPdfRequest; @@ -43,8 +44,10 @@ import com.vital.api.types.LabResultsMetadata; import com.vital.api.types.LabResultsRaw; import com.vital.api.types.LabTestResourcesResponse; +import com.vital.api.types.OrderSetRequest; import com.vital.api.types.PostOrderResponse; import com.vital.api.types.PscInfo; +import com.vital.api.types.UsAddress; import com.vital.api.types.ValidateIcdCodesResponse; import java.io.InputStream; import java.util.List; @@ -176,6 +179,14 @@ public GetMarkersResponse getMarkers(LabTestsGetMarkersRequest request, RequestO return this.rawClient.getMarkers(request, requestOptions).body(); } + public GetMarkersResponse getMarkersForOrderSet(OrderSetRequest body) { + return this.rawClient.getMarkersForOrderSet(body).body(); + } + + public GetMarkersResponse getMarkersForOrderSet(OrderSetRequest body, RequestOptions requestOptions) { + return this.rawClient.getMarkersForOrderSet(body, requestOptions).body(); + } + public GetMarkersResponse getMarkersForOrderSet(LabTestsGetMarkersForOrderSetRequest request) { return this.rawClient.getMarkersForOrderSet(request).body(); } @@ -324,6 +335,25 @@ public GetOrdersResponse getOrders(LabTestsGetOrdersRequest request, RequestOpti return this.rawClient.getOrders(request, requestOptions).body(); } + /** + * Return the available time slots to book an appointment with a phlebotomist + * for the given address and order. + */ + public AppointmentAvailabilitySlots getPhlebotomyAppointmentAvailability(UsAddress body) { + return this.rawClient.getPhlebotomyAppointmentAvailability(body).body(); + } + + /** + * Return the available time slots to book an appointment with a phlebotomist + * for the given address and order. + */ + public AppointmentAvailabilitySlots getPhlebotomyAppointmentAvailability( + UsAddress body, RequestOptions requestOptions) { + return this.rawClient + .getPhlebotomyAppointmentAvailability(body, requestOptions) + .body(); + } + /** * Return the available time slots to book an appointment with a phlebotomist * for the given address and order. @@ -567,12 +597,21 @@ public AppointmentAvailabilitySlots getPscAppointmentAvailability( .body(); } - public ClientFacingAppointment bookPscAppointment(String orderId, AppointmentBookingRequest request) { + public ClientFacingAppointment bookPscAppointment(String orderId, AppointmentBookingRequest body) { + return this.rawClient.bookPscAppointment(orderId, body).body(); + } + + public ClientFacingAppointment bookPscAppointment( + String orderId, AppointmentBookingRequest body, RequestOptions requestOptions) { + return this.rawClient.bookPscAppointment(orderId, body, requestOptions).body(); + } + + public ClientFacingAppointment bookPscAppointment(String orderId, LabTestsBookPscAppointmentRequest request) { return this.rawClient.bookPscAppointment(orderId, request).body(); } public ClientFacingAppointment bookPscAppointment( - String orderId, AppointmentBookingRequest request, RequestOptions requestOptions) { + String orderId, LabTestsBookPscAppointmentRequest request, RequestOptions requestOptions) { return this.rawClient .bookPscAppointment(orderId, request, requestOptions) .body(); diff --git a/src/main/java/com/vital/api/resources/labtests/RawLabTestsClient.java b/src/main/java/com/vital/api/resources/labtests/RawLabTestsClient.java index 21a07802..12cc6d3b 100644 --- a/src/main/java/com/vital/api/resources/labtests/RawLabTestsClient.java +++ b/src/main/java/com/vital/api/resources/labtests/RawLabTestsClient.java @@ -20,6 +20,7 @@ import com.vital.api.resources.labtests.requests.CreateLabTestRequest; import com.vital.api.resources.labtests.requests.CreateOrderRequestCompatible; import com.vital.api.resources.labtests.requests.ImportOrderBody; +import com.vital.api.resources.labtests.requests.LabTestsBookPscAppointmentRequest; import com.vital.api.resources.labtests.requests.LabTestsGetAreaInfoRequest; import com.vital.api.resources.labtests.requests.LabTestsGetByIdRequest; import com.vital.api.resources.labtests.requests.LabTestsGetLabelsPdfRequest; @@ -56,8 +57,10 @@ import com.vital.api.types.LabResultsRaw; import com.vital.api.types.LabTestResourcesResponse; import com.vital.api.types.NotFoundErrorBody; +import com.vital.api.types.OrderSetRequest; import com.vital.api.types.PostOrderResponse; import com.vital.api.types.PscInfo; +import com.vital.api.types.UsAddress; import com.vital.api.types.ValidateIcdCodesResponse; import java.io.IOException; import java.io.InputStream; @@ -141,6 +144,11 @@ public VitalHttpResponse> get(LabTestsGetRequest reque QueryStringMapper.addQueryParameter( httpUrl, "provider_ids", request.getProviderIds().get(), true); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -181,10 +189,14 @@ public VitalHttpResponse create(CreateLabTestRequest reques } public VitalHttpResponse create(CreateLabTestRequest request, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() - .addPathSegments("v3/lab_tests") - .build(); + .addPathSegments("v3/lab_tests"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } RequestBody body; try { body = RequestBody.create( @@ -193,7 +205,7 @@ public VitalHttpResponse create(CreateLabTestRequest reques throw new VitalException("Failed to serialize request", e); } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("POST", body) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Content-Type", "application/json") @@ -260,6 +272,11 @@ public VitalHttpResponse getById( QueryStringMapper.addQueryParameter( httpUrl, "lab_account_id", request.getLabAccountId().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -307,11 +324,15 @@ public VitalHttpResponse updateLabTest(String labTestId, Up public VitalHttpResponse updateLabTest( String labTestId, UpdateLabTestRequest request, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() .addPathSegments("v3/lab_tests") - .addPathSegment(labTestId) - .build(); + .addPathSegment(labTestId); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } RequestBody body; try { body = RequestBody.create( @@ -320,7 +341,7 @@ public VitalHttpResponse updateLabTest( throw new VitalException("Failed to serialize request", e); } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("PATCH", body) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Content-Type", "application/json") @@ -406,6 +427,11 @@ public VitalHttpResponse getMarkers( QueryStringMapper.addQueryParameter( httpUrl, "lab_id", request.getLabId().get(), true); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -439,6 +465,17 @@ public VitalHttpResponse getMarkers( } } + public VitalHttpResponse getMarkersForOrderSet(OrderSetRequest body) { + return getMarkersForOrderSet( + LabTestsGetMarkersForOrderSetRequest.builder().body(body).build()); + } + + public VitalHttpResponse getMarkersForOrderSet( + OrderSetRequest body, RequestOptions requestOptions) { + return getMarkersForOrderSet( + LabTestsGetMarkersForOrderSetRequest.builder().body(body).build(), requestOptions); + } + public VitalHttpResponse getMarkersForOrderSet(LabTestsGetMarkersForOrderSetRequest request) { return getMarkersForOrderSet(request, null); } @@ -456,6 +493,11 @@ public VitalHttpResponse getMarkersForOrderSet( QueryStringMapper.addQueryParameter( httpUrl, "size", request.getSize().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } RequestBody body; try { body = RequestBody.create( @@ -531,6 +573,11 @@ public VitalHttpResponse getMarkersForLabTest( QueryStringMapper.addQueryParameter( httpUrl, "size", request.getSize().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -612,6 +659,11 @@ public VitalHttpResponse getMarkersByLabAndProviderId( QueryStringMapper.addQueryParameter( httpUrl, "lab_account_id", request.getLabAccountId().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -656,12 +708,16 @@ public VitalHttpResponse> getLabs() { * GET all the labs. */ public VitalHttpResponse> getLabs(RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() - .addPathSegments("v3/lab_tests/labs") - .build(); + .addPathSegments("v3/lab_tests/labs"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("GET", null) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Accept", "application/json") @@ -759,6 +815,11 @@ public VitalHttpResponse getPaginated( QueryStringMapper.addQueryParameter( httpUrl, "provider_ids", request.getProviderIds().get(), true); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -799,14 +860,18 @@ public VitalHttpResponse getLabTestCollectionInstructionPdf(String public VitalHttpResponse getLabTestCollectionInstructionPdf( String labTestId, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() .addPathSegments("v3/lab_test") .addPathSegment(labTestId) - .addPathSegments("collection_instruction_pdf") - .build(); + .addPathSegments("collection_instruction_pdf"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("GET", null) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Accept", "application/json") @@ -945,6 +1010,11 @@ public VitalHttpResponse getOrders( QueryStringMapper.addQueryParameter( httpUrl, "order_ids", request.getOrderIds().get(), true); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -978,6 +1048,29 @@ public VitalHttpResponse getOrders( } } + /** + * Return the available time slots to book an appointment with a phlebotomist + * for the given address and order. + */ + public VitalHttpResponse getPhlebotomyAppointmentAvailability(UsAddress body) { + return getPhlebotomyAppointmentAvailability(LabTestsGetPhlebotomyAppointmentAvailabilityRequest.builder() + .body(body) + .build()); + } + + /** + * Return the available time slots to book an appointment with a phlebotomist + * for the given address and order. + */ + public VitalHttpResponse getPhlebotomyAppointmentAvailability( + UsAddress body, RequestOptions requestOptions) { + return getPhlebotomyAppointmentAvailability( + LabTestsGetPhlebotomyAppointmentAvailabilityRequest.builder() + .body(body) + .build(), + requestOptions); + } + /** * Return the available time slots to book an appointment with a phlebotomist * for the given address and order. @@ -1000,6 +1093,11 @@ public VitalHttpResponse getPhlebotomyAppointmentA QueryStringMapper.addQueryParameter( httpUrl, "start_date", request.getStartDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } RequestBody body; try { body = RequestBody.create( @@ -1055,13 +1153,17 @@ public VitalHttpResponse bookPhlebotomyAppointment( */ public VitalHttpResponse bookPhlebotomyAppointment( String orderId, AppointmentBookingRequest request, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() .addPathSegments("v3/order") .addPathSegment(orderId) .addPathSegments("phlebotomy/appointment") - .addPathSegments("book") - .build(); + .addPathSegments("book"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } RequestBody body; try { body = RequestBody.create( @@ -1070,7 +1172,7 @@ public VitalHttpResponse bookPhlebotomyAppointment( throw new VitalException("Failed to serialize request", e); } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("POST", body) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Content-Type", "application/json") @@ -1117,13 +1219,17 @@ public VitalHttpResponse requestPhlebotomyAppointment( */ public VitalHttpResponse requestPhlebotomyAppointment( String orderId, RequestAppointmentRequest request, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() .addPathSegments("v3/order") .addPathSegment(orderId) .addPathSegments("phlebotomy/appointment") - .addPathSegments("request") - .build(); + .addPathSegments("request"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } RequestBody body; try { body = RequestBody.create( @@ -1132,7 +1238,7 @@ public VitalHttpResponse requestPhlebotomyAppointment( throw new VitalException("Failed to serialize request", e); } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("POST", body) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Content-Type", "application/json") @@ -1179,13 +1285,17 @@ public VitalHttpResponse reschedulePhlebotomyAppointmen */ public VitalHttpResponse reschedulePhlebotomyAppointment( String orderId, AppointmentRescheduleRequest request, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() .addPathSegments("v3/order") .addPathSegment(orderId) .addPathSegments("phlebotomy/appointment") - .addPathSegments("reschedule") - .build(); + .addPathSegments("reschedule"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } RequestBody body; try { body = RequestBody.create( @@ -1194,7 +1304,7 @@ public VitalHttpResponse reschedulePhlebotomyAppointmen throw new VitalException("Failed to serialize request", e); } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("PATCH", body) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Content-Type", "application/json") @@ -1243,13 +1353,17 @@ public VitalHttpResponse cancelPhlebotomyAppointment( String orderId, ApiApiV1EndpointsVitalApiLabTestingOrdersHelpersAppointmentCancelRequest request, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() .addPathSegments("v3/order") .addPathSegment(orderId) .addPathSegments("phlebotomy/appointment") - .addPathSegments("cancel") - .build(); + .addPathSegments("cancel"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } RequestBody body; try { body = RequestBody.create( @@ -1258,7 +1372,7 @@ public VitalHttpResponse cancelPhlebotomyAppointment( throw new VitalException("Failed to serialize request", e); } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("PATCH", body) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Content-Type", "application/json") @@ -1305,12 +1419,16 @@ public VitalHttpResponse cancelPhlebotomyAppointment( */ public VitalHttpResponse> getPhlebotomyAppointmentCancellationReason(RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() - .addPathSegments("v3/order/phlebotomy/appointment/cancellation-reasons") - .build(); + .addPathSegments("v3/order/phlebotomy/appointment/cancellation-reasons"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("GET", null) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Accept", "application/json") @@ -1348,15 +1466,19 @@ public VitalHttpResponse getPhlebotomyAppointment(Strin */ public VitalHttpResponse getPhlebotomyAppointment( String orderId, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() .addPathSegments("v3/order") .addPathSegment(orderId) .addPathSegments("phlebotomy") - .addPathSegments("appointment") - .build(); + .addPathSegments("appointment"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("GET", null) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Accept", "application/json") @@ -1429,6 +1551,11 @@ public VitalHttpResponse getAreaInfo(LabTestsGetAreaInfoRequest reques QueryStringMapper.addQueryParameter( httpUrl, "labs", request.getLabs().get(), true); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -1484,6 +1611,11 @@ public VitalHttpResponse getPscInfo(LabTestsGetPscInfoRequest request, QueryStringMapper.addQueryParameter( httpUrl, "capabilities", request.getCapabilities().get(), true); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -1545,6 +1677,11 @@ public VitalHttpResponse getOrderPscInfo( QueryStringMapper.addQueryParameter( httpUrl, "capabilities", request.getCapabilities().get(), true); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -1589,15 +1726,19 @@ public VitalHttpResponse getResultPdf(String orderId) { * This endpoint returns the lab results for the order. */ public VitalHttpResponse getResultPdf(String orderId, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() .addPathSegments("v3/order") .addPathSegment(orderId) .addPathSegments("result") - .addPathSegments("pdf") - .build(); + .addPathSegments("pdf"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("GET", null) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Accept", "application/json") @@ -1642,15 +1783,19 @@ public VitalHttpResponse getResultMetadata(String orderId) { * provider and sample dates. */ public VitalHttpResponse getResultMetadata(String orderId, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() .addPathSegments("v3/order") .addPathSegment(orderId) .addPathSegments("result") - .addPathSegments("metadata") - .build(); + .addPathSegments("metadata"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("GET", null) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Accept", "application/json") @@ -1693,14 +1838,18 @@ public VitalHttpResponse getResultRaw(String orderId) { * Return both metadata and raw json test data */ public VitalHttpResponse getResultRaw(String orderId, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() .addPathSegments("v3/order") .addPathSegment(orderId) - .addPathSegments("result") - .build(); + .addPathSegments("result"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("GET", null) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Accept", "application/json") @@ -1755,6 +1904,11 @@ public VitalHttpResponse getLabelsPdf( httpUrl, "number_of_labels", request.getNumberOfLabels().get(), false); } QueryStringMapper.addQueryParameter(httpUrl, "collection_date", request.getCollectionDate(), false); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -1811,10 +1965,19 @@ public VitalHttpResponse getPscAppointmentAvailabi QueryStringMapper.addQueryParameter( httpUrl, "radius", request.getRadius().get(), false); } + if (request.getAllowStale().isPresent()) { + QueryStringMapper.addQueryParameter( + httpUrl, "allow_stale", request.getAllowStale().get(), false); + } if (request.getSiteCodes().isPresent()) { QueryStringMapper.addQueryParameter( httpUrl, "site_codes", request.getSiteCodes().get(), true); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("POST", RequestBody.create("", null)) @@ -1855,33 +2018,53 @@ public VitalHttpResponse getPscAppointmentAvailabi } public VitalHttpResponse bookPscAppointment( - String orderId, AppointmentBookingRequest request) { + String orderId, AppointmentBookingRequest body) { + return bookPscAppointment( + orderId, LabTestsBookPscAppointmentRequest.builder().body(body).build()); + } + + public VitalHttpResponse bookPscAppointment( + String orderId, AppointmentBookingRequest body, RequestOptions requestOptions) { + return bookPscAppointment( + orderId, LabTestsBookPscAppointmentRequest.builder().body(body).build(), requestOptions); + } + + public VitalHttpResponse bookPscAppointment( + String orderId, LabTestsBookPscAppointmentRequest request) { return bookPscAppointment(orderId, request, null); } public VitalHttpResponse bookPscAppointment( - String orderId, AppointmentBookingRequest request, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + String orderId, LabTestsBookPscAppointmentRequest request, RequestOptions requestOptions) { + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() .addPathSegments("v3/order") .addPathSegment(orderId) .addPathSegments("psc/appointment") - .addPathSegments("book") - .build(); + .addPathSegments("book"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } RequestBody body; try { body = RequestBody.create( - ObjectMappers.JSON_MAPPER.writeValueAsBytes(request), MediaTypes.APPLICATION_JSON); - } catch (JsonProcessingException e) { - throw new VitalException("Failed to serialize request", e); + ObjectMappers.JSON_MAPPER.writeValueAsBytes(request.getBody()), MediaTypes.APPLICATION_JSON); + } catch (Exception e) { + throw new RuntimeException(e); } - Request okhttpRequest = new Request.Builder() - .url(httpUrl) + Request.Builder _requestBuilder = new Request.Builder() + .url(httpUrl.build()) .method("POST", body) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Content-Type", "application/json") - .addHeader("Accept", "application/json") - .build(); + .addHeader("Accept", "application/json"); + if (request.getIdempotencyKey().isPresent()) { + _requestBuilder.addHeader( + "x-idempotency-key", request.getIdempotencyKey().get()); + } + Request okhttpRequest = _requestBuilder.build(); OkHttpClient client = clientOptions.httpClient(); if (requestOptions != null && requestOptions.getTimeout().isPresent()) { client = clientOptions.httpClientWithTimeout(requestOptions); @@ -1917,13 +2100,17 @@ public VitalHttpResponse reschedulePscAppointment( public VitalHttpResponse reschedulePscAppointment( String orderId, AppointmentRescheduleRequest request, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() .addPathSegments("v3/order") .addPathSegment(orderId) .addPathSegments("psc/appointment") - .addPathSegments("reschedule") - .build(); + .addPathSegments("reschedule"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } RequestBody body; try { body = RequestBody.create( @@ -1932,7 +2119,7 @@ public VitalHttpResponse reschedulePscAppointment( throw new VitalException("Failed to serialize request", e); } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("PATCH", body) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Content-Type", "application/json") @@ -1975,13 +2162,17 @@ public VitalHttpResponse cancelPscAppointment( String orderId, VitalCoreClientsLabTestGetlabsSchemaAppointmentCancelRequest request, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() .addPathSegments("v3/order") .addPathSegment(orderId) .addPathSegments("psc/appointment") - .addPathSegments("cancel") - .build(); + .addPathSegments("cancel"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } RequestBody body; try { body = RequestBody.create( @@ -1990,7 +2181,7 @@ public VitalHttpResponse cancelPscAppointment( throw new VitalException("Failed to serialize request", e); } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("PATCH", body) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Content-Type", "application/json") @@ -2030,12 +2221,16 @@ public VitalHttpResponse> getPsc public VitalHttpResponse> getPscAppointmentCancellationReason( RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() - .addPathSegments("v3/order/psc/appointment/cancellation-reasons") - .build(); + .addPathSegments("v3/order/psc/appointment/cancellation-reasons"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("GET", null) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Accept", "application/json") @@ -2072,15 +2267,19 @@ public VitalHttpResponse getPscAppointment(String order * Get the appointment associated with an order. */ public VitalHttpResponse getPscAppointment(String orderId, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() .addPathSegments("v3/order") .addPathSegment(orderId) .addPathSegments("psc") - .addPathSegments("appointment") - .build(); + .addPathSegments("appointment"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("GET", null) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Accept", "application/json") @@ -2125,14 +2324,18 @@ public VitalHttpResponse getOrderCollectionInstructionPdf(String or */ public VitalHttpResponse getOrderCollectionInstructionPdf( String orderId, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() .addPathSegments("v3/order") .addPathSegment(orderId) - .addPathSegments("collection_instruction_pdf") - .build(); + .addPathSegments("collection_instruction_pdf"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("GET", null) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Accept", "application/json") @@ -2175,15 +2378,19 @@ public VitalHttpResponse getOrderRequistionPdf(String orderId) { * GET requisition pdf for an order */ public VitalHttpResponse getOrderRequistionPdf(String orderId, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() .addPathSegments("v3/order") .addPathSegment(orderId) .addPathSegments("requisition") - .addPathSegments("pdf") - .build(); + .addPathSegments("pdf"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("GET", null) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Accept", "application/json") @@ -2226,14 +2433,18 @@ public VitalHttpResponse getOrderAbnPdf(String orderId) { * GET ABN pdf for an order */ public VitalHttpResponse getOrderAbnPdf(String orderId, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() .addPathSegments("v3/order") .addPathSegment(orderId) - .addPathSegments("abn_pdf") - .build(); + .addPathSegments("abn_pdf"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("GET", null) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Accept", "application/json") @@ -2276,13 +2487,17 @@ public VitalHttpResponse getOrder(String orderId) { * GET individual order by ID. */ public VitalHttpResponse getOrder(String orderId, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() .addPathSegments("v3/order") - .addPathSegment(orderId) - .build(); + .addPathSegment(orderId); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("GET", null) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Accept", "application/json") @@ -2320,10 +2535,14 @@ public VitalHttpResponse createOrder(CreateOrderRequestCompat public VitalHttpResponse createOrder( CreateOrderRequestCompatible request, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() - .addPathSegments("v3/order") - .build(); + .addPathSegments("v3/order"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } RequestBody body; try { body = RequestBody.create( @@ -2332,7 +2551,7 @@ public VitalHttpResponse createOrder( throw new RuntimeException(e); } Request.Builder _requestBuilder = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("POST", body) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Content-Type", "application/json") @@ -2378,10 +2597,14 @@ public VitalHttpResponse importOrder(ImportOrderBody request) } public VitalHttpResponse importOrder(ImportOrderBody request, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() - .addPathSegments("v3/order/import") - .build(); + .addPathSegments("v3/order/import"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } RequestBody body; try { body = RequestBody.create( @@ -2390,7 +2613,7 @@ public VitalHttpResponse importOrder(ImportOrderBody request, throw new VitalException("Failed to serialize request", e); } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("POST", body) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Content-Type", "application/json") @@ -2434,14 +2657,18 @@ public VitalHttpResponse cancelOrder(String orderId) { * POST cancel order */ public VitalHttpResponse cancelOrder(String orderId, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() .addPathSegments("v3/order") .addPathSegment(orderId) - .addPathSegments("cancel") - .build(); + .addPathSegments("cancel"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("POST", RequestBody.create("", null)) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Accept", "application/json") @@ -2514,6 +2741,11 @@ public VitalHttpResponse simulateOrderProcess( QueryStringMapper.addQueryParameter( httpUrl, "delay", request.getDelay().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } RequestBody body; try { body = RequestBody.create("", null); @@ -2570,14 +2802,18 @@ public VitalHttpResponse updateOnSiteCollectionOrderDrawCompl */ public VitalHttpResponse updateOnSiteCollectionOrderDrawCompleted( String orderId, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() .addPathSegments("v3/order") .addPathSegment(orderId) - .addPathSegments("draw_completed") - .build(); + .addPathSegments("draw_completed"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("PATCH", null) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Accept", "application/json") @@ -2615,10 +2851,14 @@ public VitalHttpResponse validateIcdCodes(ValidateIcdC public VitalHttpResponse validateIcdCodes( ValidateIcdCodesBody request, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() - .addPathSegments("v3/insurance/validate_icd_codes") - .build(); + .addPathSegments("v3/insurance/validate_icd_codes"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } RequestBody body; try { body = RequestBody.create( @@ -2627,7 +2867,7 @@ public VitalHttpResponse validateIcdCodes( throw new VitalException("Failed to serialize request", e); } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("POST", body) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Content-Type", "application/json") diff --git a/src/main/java/com/vital/api/resources/labtests/requests/LabTestsBookPscAppointmentRequest.java b/src/main/java/com/vital/api/resources/labtests/requests/LabTestsBookPscAppointmentRequest.java new file mode 100644 index 00000000..c80ca240 --- /dev/null +++ b/src/main/java/com/vital/api/resources/labtests/requests/LabTestsBookPscAppointmentRequest.java @@ -0,0 +1,146 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ +package com.vital.api.resources.labtests.requests; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonSetter; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.vital.api.core.ObjectMappers; +import com.vital.api.types.AppointmentBookingRequest; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import org.jetbrains.annotations.NotNull; + +@JsonInclude(JsonInclude.Include.NON_ABSENT) +@JsonDeserialize(builder = LabTestsBookPscAppointmentRequest.Builder.class) +public final class LabTestsBookPscAppointmentRequest { + private final Optional idempotencyKey; + + private final AppointmentBookingRequest body; + + private final Map additionalProperties; + + private LabTestsBookPscAppointmentRequest( + Optional idempotencyKey, AppointmentBookingRequest body, Map additionalProperties) { + this.idempotencyKey = idempotencyKey; + this.body = body; + this.additionalProperties = additionalProperties; + } + + /** + * @return [!] This feature (Idempotency Key) is under closed beta. Idempotency Key support for booking PSC appointment. + */ + @JsonIgnore + public Optional getIdempotencyKey() { + return idempotencyKey; + } + + @JsonProperty("body") + public AppointmentBookingRequest getBody() { + return body; + } + + @java.lang.Override + public boolean equals(Object other) { + if (this == other) return true; + return other instanceof LabTestsBookPscAppointmentRequest && equalTo((LabTestsBookPscAppointmentRequest) other); + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + private boolean equalTo(LabTestsBookPscAppointmentRequest other) { + return idempotencyKey.equals(other.idempotencyKey) && body.equals(other.body); + } + + @java.lang.Override + public int hashCode() { + return Objects.hash(this.idempotencyKey, this.body); + } + + @java.lang.Override + public String toString() { + return ObjectMappers.stringify(this); + } + + public static BodyStage builder() { + return new Builder(); + } + + public interface BodyStage { + _FinalStage body(@NotNull AppointmentBookingRequest body); + + Builder from(LabTestsBookPscAppointmentRequest other); + } + + public interface _FinalStage { + LabTestsBookPscAppointmentRequest build(); + + /** + *

[!] This feature (Idempotency Key) is under closed beta. Idempotency Key support for booking PSC appointment.

+ */ + _FinalStage idempotencyKey(Optional idempotencyKey); + + _FinalStage idempotencyKey(String idempotencyKey); + } + + @JsonIgnoreProperties(ignoreUnknown = true) + public static final class Builder implements BodyStage, _FinalStage { + private AppointmentBookingRequest body; + + private Optional idempotencyKey = Optional.empty(); + + @JsonAnySetter + private Map additionalProperties = new HashMap<>(); + + private Builder() {} + + @java.lang.Override + public Builder from(LabTestsBookPscAppointmentRequest other) { + idempotencyKey(other.getIdempotencyKey()); + body(other.getBody()); + return this; + } + + @java.lang.Override + @JsonSetter("body") + public _FinalStage body(@NotNull AppointmentBookingRequest body) { + this.body = Objects.requireNonNull(body, "body must not be null"); + return this; + } + + /** + *

[!] This feature (Idempotency Key) is under closed beta. Idempotency Key support for booking PSC appointment.

+ * @return Reference to {@code this} so that method calls can be chained together. + */ + @java.lang.Override + public _FinalStage idempotencyKey(String idempotencyKey) { + this.idempotencyKey = Optional.ofNullable(idempotencyKey); + return this; + } + + /** + *

[!] This feature (Idempotency Key) is under closed beta. Idempotency Key support for booking PSC appointment.

+ */ + @java.lang.Override + public _FinalStage idempotencyKey(Optional idempotencyKey) { + this.idempotencyKey = idempotencyKey; + return this; + } + + @java.lang.Override + public LabTestsBookPscAppointmentRequest build() { + return new LabTestsBookPscAppointmentRequest(idempotencyKey, body, additionalProperties); + } + } +} diff --git a/src/main/java/com/vital/api/resources/labtests/requests/LabTestsGetPscAppointmentAvailabilityRequest.java b/src/main/java/com/vital/api/resources/labtests/requests/LabTestsGetPscAppointmentAvailabilityRequest.java index 6aed303b..f70f9006 100644 --- a/src/main/java/com/vital/api/resources/labtests/requests/LabTestsGetPscAppointmentAvailabilityRequest.java +++ b/src/main/java/com/vital/api/resources/labtests/requests/LabTestsGetPscAppointmentAvailabilityRequest.java @@ -34,6 +34,8 @@ public final class LabTestsGetPscAppointmentAvailabilityRequest { private final Optional radius; + private final Optional allowStale; + private final Map additionalProperties; private LabTestsGetPscAppointmentAvailabilityRequest( @@ -42,12 +44,14 @@ private LabTestsGetPscAppointmentAvailabilityRequest( Optional startDate, Optional zipCode, Optional radius, + Optional allowStale, Map additionalProperties) { this.siteCodes = siteCodes; this.lab = lab; this.startDate = startDate; this.zipCode = zipCode; this.radius = radius; + this.allowStale = allowStale; this.additionalProperties = additionalProperties; } @@ -91,6 +95,14 @@ public Optional getRadius() { return radius; } + /** + * @return [Closed Beta] Serve last known good information when the PSC system is temporarily unavailable. + */ + @JsonProperty("allow_stale") + public Optional getAllowStale() { + return allowStale; + } + @java.lang.Override public boolean equals(Object other) { if (this == other) return true; @@ -108,12 +120,13 @@ private boolean equalTo(LabTestsGetPscAppointmentAvailabilityRequest other) { && lab.equals(other.lab) && startDate.equals(other.startDate) && zipCode.equals(other.zipCode) - && radius.equals(other.radius); + && radius.equals(other.radius) + && allowStale.equals(other.allowStale); } @java.lang.Override public int hashCode() { - return Objects.hash(this.siteCodes, this.lab, this.startDate, this.zipCode, this.radius); + return Objects.hash(this.siteCodes, this.lab, this.startDate, this.zipCode, this.radius, this.allowStale); } @java.lang.Override @@ -166,12 +179,21 @@ public interface _FinalStage { _FinalStage radius(Optional radius); _FinalStage radius(AllowedRadius radius); + + /** + *

[Closed Beta] Serve last known good information when the PSC system is temporarily unavailable.

+ */ + _FinalStage allowStale(Optional allowStale); + + _FinalStage allowStale(Boolean allowStale); } @JsonIgnoreProperties(ignoreUnknown = true) public static final class Builder implements LabStage, _FinalStage { private String lab; + private Optional allowStale = Optional.empty(); + private Optional radius = Optional.empty(); private Optional zipCode = Optional.empty(); @@ -192,6 +214,7 @@ public Builder from(LabTestsGetPscAppointmentAvailabilityRequest other) { startDate(other.getStartDate()); zipCode(other.getZipCode()); radius(other.getRadius()); + allowStale(other.getAllowStale()); return this; } @@ -207,6 +230,26 @@ public _FinalStage lab(@NotNull String lab) { return this; } + /** + *

[Closed Beta] Serve last known good information when the PSC system is temporarily unavailable.

+ * @return Reference to {@code this} so that method calls can be chained together. + */ + @java.lang.Override + public _FinalStage allowStale(Boolean allowStale) { + this.allowStale = Optional.ofNullable(allowStale); + return this; + } + + /** + *

[Closed Beta] Serve last known good information when the PSC system is temporarily unavailable.

+ */ + @java.lang.Override + @JsonSetter(value = "allow_stale", nulls = Nulls.SKIP) + public _FinalStage allowStale(Optional allowStale) { + this.allowStale = allowStale; + return this; + } + /** *

Radius in which to search. (meters)

* @return Reference to {@code this} so that method calls can be chained together. @@ -296,7 +339,7 @@ public _FinalStage siteCodes(Optional> siteCodes) { @java.lang.Override public LabTestsGetPscAppointmentAvailabilityRequest build() { return new LabTestsGetPscAppointmentAvailabilityRequest( - siteCodes, lab, startDate, zipCode, radius, additionalProperties); + siteCodes, lab, startDate, zipCode, radius, allowStale, additionalProperties); } } } diff --git a/src/main/java/com/vital/api/resources/link/AsyncRawLinkClient.java b/src/main/java/com/vital/api/resources/link/AsyncRawLinkClient.java index cd05a895..7b177267 100644 --- a/src/main/java/com/vital/api/resources/link/AsyncRawLinkClient.java +++ b/src/main/java/com/vital/api/resources/link/AsyncRawLinkClient.java @@ -97,6 +97,11 @@ public CompletableFuture> listBulkOps( QueryStringMapper.addQueryParameter( httpUrl, "team_id", request.getTeamId().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -160,6 +165,11 @@ public CompletableFuture> bulkI QueryStringMapper.addQueryParameter( httpUrl, "team_id", request.getTeamId().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } RequestBody body; try { body = RequestBody.create( @@ -232,6 +242,11 @@ public CompletableFuture> bulkTriggerHistoricalPull( QueryStringMapper.addQueryParameter( httpUrl, "team_id", request.getTeamId().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } RequestBody body; try { body = RequestBody.create( @@ -302,6 +317,11 @@ public CompletableFuture> bulkE QueryStringMapper.addQueryParameter( httpUrl, "team_id", request.getTeamId().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } RequestBody body; try { body = RequestBody.create( @@ -373,6 +393,11 @@ public CompletableFuture> bulkPause( QueryStringMapper.addQueryParameter( httpUrl, "team_id", request.getTeamId().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } RequestBody body; try { body = RequestBody.create( @@ -451,10 +476,14 @@ public CompletableFuture> token(Lin */ public CompletableFuture> token( LinkTokenExchange request, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() - .addPathSegments("v2/link/token") - .build(); + .addPathSegments("v2/link/token"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } RequestBody body; try { body = RequestBody.create( @@ -463,7 +492,7 @@ public CompletableFuture> token( throw new VitalException("Failed to serialize request", e); } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("POST", body) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Content-Type", "application/json") @@ -519,10 +548,14 @@ public CompletableFuture>> isTokenValid(Li public CompletableFuture>> isTokenValid( LinkTokenValidationRequest request, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() - .addPathSegments("v2/link/token/isValid") - .build(); + .addPathSegments("v2/link/token/isValid"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } RequestBody body; try { body = RequestBody.create( @@ -531,7 +564,7 @@ public CompletableFuture>> isTokenValid( throw new VitalException("Failed to serialize request", e); } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("POST", body) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Content-Type", "application/json") @@ -601,6 +634,11 @@ public CompletableFuture> codeCreat QueryStringMapper.addQueryParameter( httpUrl, "expires_at", request.getExpiresAt().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("POST", RequestBody.create("", null)) @@ -665,10 +703,14 @@ public CompletableFuture>> startConnect(Be */ public CompletableFuture>> startConnect( BeginLinkTokenRequest request, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() - .addPathSegments("v2/link/start") - .build(); + .addPathSegments("v2/link/start"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } RequestBody body; try { body = RequestBody.create( @@ -677,7 +719,7 @@ public CompletableFuture>> startConnect( throw new VitalException("Failed to serialize request", e); } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("POST", body) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Content-Type", "application/json") @@ -757,12 +799,16 @@ public CompletableFuture>> tokenState(Link */ public CompletableFuture>> tokenState( LinkTokenStateRequest request, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() - .addPathSegments("v2/link/state") - .build(); + .addPathSegments("v2/link/state"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("GET", null) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Accept", "application/json"); @@ -827,10 +873,14 @@ public CompletableFuture> emailAuth(EmailAuthLink requ */ public CompletableFuture> emailAuth( EmailAuthLink request, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() - .addPathSegments("v2/link/auth/email") - .build(); + .addPathSegments("v2/link/auth/email"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } RequestBody body; try { body = RequestBody.create( @@ -839,7 +889,7 @@ public CompletableFuture> emailAuth( throw new RuntimeException(e); } Request.Builder _requestBuilder = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("POST", body) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Content-Type", "application/json") @@ -903,10 +953,14 @@ public CompletableFuture> passwordAuth(PasswordAuthLin */ public CompletableFuture> passwordAuth( PasswordAuthLink request, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() - .addPathSegments("v2/link/auth") - .build(); + .addPathSegments("v2/link/auth"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } RequestBody body; try { body = RequestBody.create( @@ -915,7 +969,7 @@ public CompletableFuture> passwordAuth( throw new RuntimeException(e); } Request.Builder _requestBuilder = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("POST", body) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Content-Type", "application/json") @@ -997,13 +1051,17 @@ public CompletableFuture> generateOauthLink( */ public CompletableFuture> generateOauthLink( OAuthProviders oauthProvider, LinkGenerateOauthLinkRequest request, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() .addPathSegments("v2/link/provider/oauth") - .addPathSegment(oauthProvider.toString()) - .build(); + .addPathSegment(oauthProvider.toString()); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("GET", null) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Accept", "application/json"); @@ -1067,11 +1125,15 @@ public CompletableFuture> connectPasswor */ public CompletableFuture> connectPasswordProvider( PasswordProviders provider, IndividualProviderData request, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() .addPathSegments("v2/link/provider/password") - .addPathSegment(provider.toString()) - .build(); + .addPathSegment(provider.toString()); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } RequestBody body; try { body = RequestBody.create( @@ -1080,7 +1142,7 @@ public CompletableFuture> connectPasswor throw new RuntimeException(e); } Request.Builder _requestBuilder = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("POST", body) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Content-Type", "application/json") @@ -1146,12 +1208,16 @@ public CompletableFuture> completePasswo */ public CompletableFuture> completePasswordProviderMfa( PasswordProviders provider, CompletePasswordProviderMfaBody request, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() .addPathSegments("v2/link/provider/password") .addPathSegment(provider.toString()) - .addPathSegments("complete_mfa") - .build(); + .addPathSegments("complete_mfa"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } RequestBody body; try { body = RequestBody.create( @@ -1160,7 +1226,7 @@ public CompletableFuture> completePasswo throw new RuntimeException(e); } Request.Builder _requestBuilder = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("POST", body) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Content-Type", "application/json") @@ -1226,11 +1292,15 @@ public CompletableFuture> connectEmailAuthProvider( */ public CompletableFuture> connectEmailAuthProvider( String provider, EmailProviderAuthLink request, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() .addPathSegments("v2/link/provider/email") - .addPathSegment(provider) - .build(); + .addPathSegment(provider); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } RequestBody body; try { body = RequestBody.create( @@ -1239,7 +1309,7 @@ public CompletableFuture> connectEmailAuthProvider( throw new RuntimeException(e); } Request.Builder _requestBuilder = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("POST", body) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Content-Type", "application/json") @@ -1317,12 +1387,16 @@ public CompletableFuture>> getAllProviders(Li */ public CompletableFuture>> getAllProviders( LinkGetAllProvidersRequest request, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() - .addPathSegments("v2/link/providers") - .build(); + .addPathSegments("v2/link/providers"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("GET", null) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Accept", "application/json"); @@ -1382,11 +1456,15 @@ public CompletableFuture>> connectManualP public CompletableFuture>> connectManualProvider( ManualProviders provider, ManualConnectionData request, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() .addPathSegments("v2/link/provider/manual") - .addPathSegment(provider.toString()) - .build(); + .addPathSegment(provider.toString()); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } RequestBody body; try { body = RequestBody.create( @@ -1395,7 +1473,7 @@ public CompletableFuture>> connectManualP throw new VitalException("Failed to serialize request", e); } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("POST", body) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Content-Type", "application/json") @@ -1458,10 +1536,14 @@ public CompletableFuture> connectDemoPro */ public CompletableFuture> connectDemoProvider( DemoConnectionCreationPayload request, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() - .addPathSegments("v2/link/connect/demo") - .build(); + .addPathSegments("v2/link/connect/demo"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } RequestBody body; try { body = RequestBody.create( @@ -1470,7 +1552,7 @@ public CompletableFuture> connectDemoPro throw new VitalException("Failed to serialize request", e); } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("POST", body) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Content-Type", "application/json") diff --git a/src/main/java/com/vital/api/resources/link/RawLinkClient.java b/src/main/java/com/vital/api/resources/link/RawLinkClient.java index 1e8f351f..5579003b 100644 --- a/src/main/java/com/vital/api/resources/link/RawLinkClient.java +++ b/src/main/java/com/vital/api/resources/link/RawLinkClient.java @@ -93,6 +93,11 @@ public VitalHttpResponse listBulkOps( QueryStringMapper.addQueryParameter( httpUrl, "team_id", request.getTeamId().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -139,6 +144,11 @@ public VitalHttpResponse bulkImport( QueryStringMapper.addQueryParameter( httpUrl, "team_id", request.getTeamId().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } RequestBody body; try { body = RequestBody.create( @@ -194,6 +204,11 @@ public VitalHttpResponse bulkTriggerHistoricalPull( QueryStringMapper.addQueryParameter( httpUrl, "team_id", request.getTeamId().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } RequestBody body; try { body = RequestBody.create( @@ -248,6 +263,11 @@ public VitalHttpResponse bulkExport( QueryStringMapper.addQueryParameter( httpUrl, "team_id", request.getTeamId().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } RequestBody body; try { body = RequestBody.create( @@ -302,6 +322,11 @@ public VitalHttpResponse bulkPause(BulkPauseConnectionsBody request, Req QueryStringMapper.addQueryParameter( httpUrl, "team_id", request.getTeamId().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } RequestBody body; try { body = RequestBody.create( @@ -365,10 +390,14 @@ public VitalHttpResponse token(LinkTokenExchange requ */ public VitalHttpResponse token( LinkTokenExchange request, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() - .addPathSegments("v2/link/token") - .build(); + .addPathSegments("v2/link/token"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } RequestBody body; try { body = RequestBody.create( @@ -377,7 +406,7 @@ public VitalHttpResponse token( throw new VitalException("Failed to serialize request", e); } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("POST", body) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Content-Type", "application/json") @@ -417,10 +446,14 @@ public VitalHttpResponse> isTokenValid(LinkTokenValidationRe public VitalHttpResponse> isTokenValid( LinkTokenValidationRequest request, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() - .addPathSegments("v2/link/token/isValid") - .build(); + .addPathSegments("v2/link/token/isValid"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } RequestBody body; try { body = RequestBody.create( @@ -429,7 +462,7 @@ public VitalHttpResponse> isTokenValid( throw new VitalException("Failed to serialize request", e); } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("POST", body) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Content-Type", "application/json") @@ -484,6 +517,11 @@ public VitalHttpResponse codeCreate( QueryStringMapper.addQueryParameter( httpUrl, "expires_at", request.getExpiresAt().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("POST", RequestBody.create("", null)) @@ -532,10 +570,14 @@ public VitalHttpResponse> startConnect(BeginLinkTokenRequest */ public VitalHttpResponse> startConnect( BeginLinkTokenRequest request, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() - .addPathSegments("v2/link/start") - .build(); + .addPathSegments("v2/link/start"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } RequestBody body; try { body = RequestBody.create( @@ -544,7 +586,7 @@ public VitalHttpResponse> startConnect( throw new VitalException("Failed to serialize request", e); } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("POST", body) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Content-Type", "application/json") @@ -609,12 +651,16 @@ public VitalHttpResponse> tokenState(LinkTokenStateRequest r */ public VitalHttpResponse> tokenState( LinkTokenStateRequest request, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() - .addPathSegments("v2/link/state") - .build(); + .addPathSegments("v2/link/state"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("GET", null) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Accept", "application/json"); @@ -663,10 +709,14 @@ public VitalHttpResponse emailAuth(EmailAuthLink request) { * Deprecated. Use POST /v2/link/provider/email/{provider} instead. */ public VitalHttpResponse emailAuth(EmailAuthLink request, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() - .addPathSegments("v2/link/auth/email") - .build(); + .addPathSegments("v2/link/auth/email"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } RequestBody body; try { body = RequestBody.create( @@ -675,7 +725,7 @@ public VitalHttpResponse emailAuth(EmailAuthLink request, RequestOptions throw new RuntimeException(e); } Request.Builder _requestBuilder = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("POST", body) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Content-Type", "application/json") @@ -723,10 +773,14 @@ public VitalHttpResponse passwordAuth(PasswordAuthLink request) { * Deprecated. Use POST /v2/link/provider/password/{provider} instead. */ public VitalHttpResponse passwordAuth(PasswordAuthLink request, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() - .addPathSegments("v2/link/auth") - .build(); + .addPathSegments("v2/link/auth"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } RequestBody body; try { body = RequestBody.create( @@ -735,7 +789,7 @@ public VitalHttpResponse passwordAuth(PasswordAuthLink request, RequestO throw new RuntimeException(e); } Request.Builder _requestBuilder = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("POST", body) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Content-Type", "application/json") @@ -801,13 +855,17 @@ public VitalHttpResponse generateOauthLink( */ public VitalHttpResponse generateOauthLink( OAuthProviders oauthProvider, LinkGenerateOauthLinkRequest request, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() .addPathSegments("v2/link/provider/oauth") - .addPathSegment(oauthProvider.toString()) - .build(); + .addPathSegment(oauthProvider.toString()); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("GET", null) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Accept", "application/json"); @@ -856,11 +914,15 @@ public VitalHttpResponse connectPasswordProvider( */ public VitalHttpResponse connectPasswordProvider( PasswordProviders provider, IndividualProviderData request, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() .addPathSegments("v2/link/provider/password") - .addPathSegment(provider.toString()) - .build(); + .addPathSegment(provider.toString()); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } RequestBody body; try { body = RequestBody.create( @@ -869,7 +931,7 @@ public VitalHttpResponse connectPasswordProvider( throw new RuntimeException(e); } Request.Builder _requestBuilder = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("POST", body) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Content-Type", "application/json") @@ -919,12 +981,16 @@ public VitalHttpResponse completePasswordProviderMfa( */ public VitalHttpResponse completePasswordProviderMfa( PasswordProviders provider, CompletePasswordProviderMfaBody request, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() .addPathSegments("v2/link/provider/password") .addPathSegment(provider.toString()) - .addPathSegments("complete_mfa") - .build(); + .addPathSegments("complete_mfa"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } RequestBody body; try { body = RequestBody.create( @@ -933,7 +999,7 @@ public VitalHttpResponse completePasswordProviderMfa( throw new RuntimeException(e); } Request.Builder _requestBuilder = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("POST", body) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Content-Type", "application/json") @@ -982,11 +1048,15 @@ public VitalHttpResponse connectEmailAuthProvider(String provider, Email */ public VitalHttpResponse connectEmailAuthProvider( String provider, EmailProviderAuthLink request, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() .addPathSegments("v2/link/provider/email") - .addPathSegment(provider) - .build(); + .addPathSegment(provider); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } RequestBody body; try { body = RequestBody.create( @@ -995,7 +1065,7 @@ public VitalHttpResponse connectEmailAuthProvider( throw new RuntimeException(e); } Request.Builder _requestBuilder = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("POST", body) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Content-Type", "application/json") @@ -1058,12 +1128,16 @@ public VitalHttpResponse> getAllProviders(LinkGetAllProvidersRe */ public VitalHttpResponse> getAllProviders( LinkGetAllProvidersRequest request, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() - .addPathSegments("v2/link/providers") - .build(); + .addPathSegments("v2/link/providers"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("GET", null) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Accept", "application/json"); @@ -1108,11 +1182,15 @@ public VitalHttpResponse> connectManualProvider( public VitalHttpResponse> connectManualProvider( ManualProviders provider, ManualConnectionData request, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() .addPathSegments("v2/link/provider/manual") - .addPathSegment(provider.toString()) - .build(); + .addPathSegment(provider.toString()); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } RequestBody body; try { body = RequestBody.create( @@ -1121,7 +1199,7 @@ public VitalHttpResponse> connectManualProvider( throw new VitalException("Failed to serialize request", e); } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("POST", body) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Content-Type", "application/json") @@ -1168,10 +1246,14 @@ public VitalHttpResponse connectDemoProvider(DemoConnectio */ public VitalHttpResponse connectDemoProvider( DemoConnectionCreationPayload request, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() - .addPathSegments("v2/link/connect/demo") - .build(); + .addPathSegments("v2/link/connect/demo"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } RequestBody body; try { body = RequestBody.create( @@ -1180,7 +1262,7 @@ public VitalHttpResponse connectDemoProvider( throw new VitalException("Failed to serialize request", e); } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("POST", body) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Content-Type", "application/json") diff --git a/src/main/java/com/vital/api/resources/meal/AsyncRawMealClient.java b/src/main/java/com/vital/api/resources/meal/AsyncRawMealClient.java index 2cf79de1..43f27f1a 100644 --- a/src/main/java/com/vital/api/resources/meal/AsyncRawMealClient.java +++ b/src/main/java/com/vital/api/resources/meal/AsyncRawMealClient.java @@ -59,6 +59,11 @@ public CompletableFuture> get( QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) diff --git a/src/main/java/com/vital/api/resources/meal/RawMealClient.java b/src/main/java/com/vital/api/resources/meal/RawMealClient.java index b5d84a3f..cea9f275 100644 --- a/src/main/java/com/vital/api/resources/meal/RawMealClient.java +++ b/src/main/java/com/vital/api/resources/meal/RawMealClient.java @@ -55,6 +55,11 @@ public VitalHttpResponse get( QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) diff --git a/src/main/java/com/vital/api/resources/menstrualcycle/AsyncRawMenstrualCycleClient.java b/src/main/java/com/vital/api/resources/menstrualcycle/AsyncRawMenstrualCycleClient.java index 8ca1fcf7..f64091ce 100644 --- a/src/main/java/com/vital/api/resources/menstrualcycle/AsyncRawMenstrualCycleClient.java +++ b/src/main/java/com/vital/api/resources/menstrualcycle/AsyncRawMenstrualCycleClient.java @@ -54,6 +54,11 @@ public CompletableFuture> get( QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) diff --git a/src/main/java/com/vital/api/resources/menstrualcycle/RawMenstrualCycleClient.java b/src/main/java/com/vital/api/resources/menstrualcycle/RawMenstrualCycleClient.java index 994d75a0..5a885e0b 100644 --- a/src/main/java/com/vital/api/resources/menstrualcycle/RawMenstrualCycleClient.java +++ b/src/main/java/com/vital/api/resources/menstrualcycle/RawMenstrualCycleClient.java @@ -49,6 +49,11 @@ public VitalHttpResponse get( QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) diff --git a/src/main/java/com/vital/api/resources/order/AsyncRawOrderClient.java b/src/main/java/com/vital/api/resources/order/AsyncRawOrderClient.java index 7d74d9ab..b7583bd2 100644 --- a/src/main/java/com/vital/api/resources/order/AsyncRawOrderClient.java +++ b/src/main/java/com/vital/api/resources/order/AsyncRawOrderClient.java @@ -61,10 +61,14 @@ public CompletableFuture> resendEvents( */ public CompletableFuture> resendEvents( ResendWebhookBody request, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() - .addPathSegments("v3/order/resend_events") - .build(); + .addPathSegments("v3/order/resend_events"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } RequestBody body; try { body = RequestBody.create( @@ -73,7 +77,7 @@ public CompletableFuture> resendEvents( throw new VitalException("Failed to serialize request", e); } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("POST", body) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Content-Type", "application/json") diff --git a/src/main/java/com/vital/api/resources/order/RawOrderClient.java b/src/main/java/com/vital/api/resources/order/RawOrderClient.java index cdd42854..01311527 100644 --- a/src/main/java/com/vital/api/resources/order/RawOrderClient.java +++ b/src/main/java/com/vital/api/resources/order/RawOrderClient.java @@ -57,10 +57,14 @@ public VitalHttpResponse resendEvents(ResendWebhookBody r */ public VitalHttpResponse resendEvents( ResendWebhookBody request, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() - .addPathSegments("v3/order/resend_events") - .build(); + .addPathSegments("v3/order/resend_events"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } RequestBody body; try { body = RequestBody.create( @@ -69,7 +73,7 @@ public VitalHttpResponse resendEvents( throw new VitalException("Failed to serialize request", e); } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("POST", body) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Content-Type", "application/json") diff --git a/src/main/java/com/vital/api/resources/payor/AsyncRawPayorClient.java b/src/main/java/com/vital/api/resources/payor/AsyncRawPayorClient.java index 05d94838..6b5b31f1 100644 --- a/src/main/java/com/vital/api/resources/payor/AsyncRawPayorClient.java +++ b/src/main/java/com/vital/api/resources/payor/AsyncRawPayorClient.java @@ -41,10 +41,14 @@ public CompletableFuture> createPayor(Creat public CompletableFuture> createPayor( CreatePayorBody request, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() - .addPathSegments("v3/payor") - .build(); + .addPathSegments("v3/payor"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } RequestBody body; try { body = RequestBody.create( @@ -53,7 +57,7 @@ public CompletableFuture> createPayor( throw new VitalException("Failed to serialize request", e); } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("POST", body) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Content-Type", "application/json") diff --git a/src/main/java/com/vital/api/resources/payor/RawPayorClient.java b/src/main/java/com/vital/api/resources/payor/RawPayorClient.java index 15dd2be7..0a11a36f 100644 --- a/src/main/java/com/vital/api/resources/payor/RawPayorClient.java +++ b/src/main/java/com/vital/api/resources/payor/RawPayorClient.java @@ -36,10 +36,14 @@ public VitalHttpResponse createPayor(CreatePayorBody request) } public VitalHttpResponse createPayor(CreatePayorBody request, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() - .addPathSegments("v3/payor") - .build(); + .addPathSegments("v3/payor"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } RequestBody body; try { body = RequestBody.create( @@ -48,7 +52,7 @@ public VitalHttpResponse createPayor(CreatePayorBody request, throw new VitalException("Failed to serialize request", e); } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("POST", body) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Content-Type", "application/json") diff --git a/src/main/java/com/vital/api/resources/profile/AsyncRawProfileClient.java b/src/main/java/com/vital/api/resources/profile/AsyncRawProfileClient.java index a6f84b3b..1ed32f2b 100644 --- a/src/main/java/com/vital/api/resources/profile/AsyncRawProfileClient.java +++ b/src/main/java/com/vital/api/resources/profile/AsyncRawProfileClient.java @@ -70,6 +70,11 @@ public CompletableFuture> get( QueryStringMapper.addQueryParameter( httpUrl, "provider", request.getProvider().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -154,6 +159,11 @@ public CompletableFuture> getRaw( QueryStringMapper.addQueryParameter( httpUrl, "provider", request.getProvider().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) diff --git a/src/main/java/com/vital/api/resources/profile/RawProfileClient.java b/src/main/java/com/vital/api/resources/profile/RawProfileClient.java index 4e411fa8..151ebe70 100644 --- a/src/main/java/com/vital/api/resources/profile/RawProfileClient.java +++ b/src/main/java/com/vital/api/resources/profile/RawProfileClient.java @@ -66,6 +66,11 @@ public VitalHttpResponse get( QueryStringMapper.addQueryParameter( httpUrl, "provider", request.getProvider().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -134,6 +139,11 @@ public VitalHttpResponse getRaw( QueryStringMapper.addQueryParameter( httpUrl, "provider", request.getProvider().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) diff --git a/src/main/java/com/vital/api/resources/providers/AsyncRawProvidersClient.java b/src/main/java/com/vital/api/resources/providers/AsyncRawProvidersClient.java index 0f344e03..2d4ffc14 100644 --- a/src/main/java/com/vital/api/resources/providers/AsyncRawProvidersClient.java +++ b/src/main/java/com/vital/api/resources/providers/AsyncRawProvidersClient.java @@ -71,6 +71,11 @@ public CompletableFuture>> QueryStringMapper.addQueryParameter( httpUrl, "source_type", request.getSourceType().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) diff --git a/src/main/java/com/vital/api/resources/providers/RawProvidersClient.java b/src/main/java/com/vital/api/resources/providers/RawProvidersClient.java index 17a8a339..4222f34f 100644 --- a/src/main/java/com/vital/api/resources/providers/RawProvidersClient.java +++ b/src/main/java/com/vital/api/resources/providers/RawProvidersClient.java @@ -65,6 +65,11 @@ public VitalHttpResponse> getAll( QueryStringMapper.addQueryParameter( httpUrl, "source_type", request.getSourceType().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) diff --git a/src/main/java/com/vital/api/resources/sleep/AsyncRawSleepClient.java b/src/main/java/com/vital/api/resources/sleep/AsyncRawSleepClient.java index 10f153dd..d78a15c7 100644 --- a/src/main/java/com/vital/api/resources/sleep/AsyncRawSleepClient.java +++ b/src/main/java/com/vital/api/resources/sleep/AsyncRawSleepClient.java @@ -62,6 +62,11 @@ public CompletableFuture> get( QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -137,6 +142,11 @@ public CompletableFuture> getRaw( QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -197,14 +207,18 @@ public CompletableFuture> getStreamBy */ public CompletableFuture> getStreamBySleepId( String sleepId, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() .addPathSegments("v2/timeseries/sleep") .addPathSegment(sleepId) - .addPathSegments("stream") - .build(); + .addPathSegments("stream"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("GET", null) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Accept", "application/json") diff --git a/src/main/java/com/vital/api/resources/sleep/RawSleepClient.java b/src/main/java/com/vital/api/resources/sleep/RawSleepClient.java index ede2c669..98ed8e8c 100644 --- a/src/main/java/com/vital/api/resources/sleep/RawSleepClient.java +++ b/src/main/java/com/vital/api/resources/sleep/RawSleepClient.java @@ -58,6 +58,11 @@ public VitalHttpResponse get( QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -117,6 +122,11 @@ public VitalHttpResponse getRaw( QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -162,14 +172,18 @@ public VitalHttpResponse getStreamBySleepId(String slee */ public VitalHttpResponse getStreamBySleepId( String sleepId, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() .addPathSegments("v2/timeseries/sleep") .addPathSegment(sleepId) - .addPathSegments("stream") - .build(); + .addPathSegments("stream"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("GET", null) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Accept", "application/json") diff --git a/src/main/java/com/vital/api/resources/sleepcycle/AsyncRawSleepCycleClient.java b/src/main/java/com/vital/api/resources/sleepcycle/AsyncRawSleepCycleClient.java index 7135fded..51f07ef8 100644 --- a/src/main/java/com/vital/api/resources/sleepcycle/AsyncRawSleepCycleClient.java +++ b/src/main/java/com/vital/api/resources/sleepcycle/AsyncRawSleepCycleClient.java @@ -60,6 +60,11 @@ public CompletableFuture> get( QueryStringMapper.addQueryParameter( httpUrl, "provider", request.getProvider().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) diff --git a/src/main/java/com/vital/api/resources/sleepcycle/RawSleepCycleClient.java b/src/main/java/com/vital/api/resources/sleepcycle/RawSleepCycleClient.java index 7433adab..035b1f19 100644 --- a/src/main/java/com/vital/api/resources/sleepcycle/RawSleepCycleClient.java +++ b/src/main/java/com/vital/api/resources/sleepcycle/RawSleepCycleClient.java @@ -55,6 +55,11 @@ public VitalHttpResponse get( QueryStringMapper.addQueryParameter( httpUrl, "provider", request.getProvider().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) diff --git a/src/main/java/com/vital/api/resources/team/AsyncRawTeamClient.java b/src/main/java/com/vital/api/resources/team/AsyncRawTeamClient.java index d102ac3e..6d9ae9f9 100644 --- a/src/main/java/com/vital/api/resources/team/AsyncRawTeamClient.java +++ b/src/main/java/com/vital/api/resources/team/AsyncRawTeamClient.java @@ -67,12 +67,16 @@ public CompletableFuture>> getLinkConfig(T */ public CompletableFuture>> getLinkConfig( TeamGetLinkConfigRequest request, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() - .addPathSegments("v2/team/link/config") - .build(); + .addPathSegments("v2/team/link/config"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("GET", null) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Accept", "application/json"); @@ -136,13 +140,17 @@ public CompletableFuture> get(String teamId) * Get team. */ public CompletableFuture> get(String teamId, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() .addPathSegments("v2/team") - .addPathSegment(teamId) - .build(); + .addPathSegment(teamId); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("GET", null) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Accept", "application/json") @@ -223,6 +231,11 @@ public CompletableFuture>> getUserById( QueryStringMapper.addQueryParameter( httpUrl, "query_id", request.getQueryId().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -278,12 +291,16 @@ public CompletableFuture>> getSvixUrl() { } public CompletableFuture>> getSvixUrl(RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() - .addPathSegments("v2/team/svix/url") - .build(); + .addPathSegments("v2/team/svix/url"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("GET", null) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Accept", "application/json") @@ -357,6 +374,11 @@ public CompletableFuture>>> getSource QueryStringMapper.addQueryParameter( httpUrl, "data_type", request.getDataType().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -419,12 +441,16 @@ public CompletableFuture>>> updateSou */ public CompletableFuture>>> updateSourcePriorities( RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() - .addPathSegments("v2/team/source/priorities") - .build(); + .addPathSegments("v2/team/source/priorities"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("PATCH", null) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Accept", "application/json") @@ -469,14 +495,18 @@ public CompletableFuture>> getPhys public CompletableFuture>> getPhysicians( String teamId, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() .addPathSegments("v2/team") .addPathSegment(teamId) - .addPathSegments("physicians") - .build(); + .addPathSegments("physicians"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("GET", null) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Accept", "application/json") diff --git a/src/main/java/com/vital/api/resources/team/RawTeamClient.java b/src/main/java/com/vital/api/resources/team/RawTeamClient.java index 2945eaa9..240a1ecf 100644 --- a/src/main/java/com/vital/api/resources/team/RawTeamClient.java +++ b/src/main/java/com/vital/api/resources/team/RawTeamClient.java @@ -63,12 +63,16 @@ public VitalHttpResponse> getLinkConfig(TeamGetLinkConfigReq */ public VitalHttpResponse> getLinkConfig( TeamGetLinkConfigRequest request, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() - .addPathSegments("v2/team/link/config") - .build(); + .addPathSegments("v2/team/link/config"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("GET", null) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Accept", "application/json"); @@ -117,13 +121,17 @@ public VitalHttpResponse get(String teamId) { * Get team. */ public VitalHttpResponse get(String teamId, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() .addPathSegments("v2/team") - .addPathSegment(teamId) - .build(); + .addPathSegment(teamId); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("GET", null) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Accept", "application/json") @@ -188,6 +196,11 @@ public VitalHttpResponse> getUserById( QueryStringMapper.addQueryParameter( httpUrl, "query_id", request.getQueryId().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -228,12 +241,16 @@ public VitalHttpResponse> getSvixUrl() { } public VitalHttpResponse> getSvixUrl(RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() - .addPathSegments("v2/team/svix/url") - .build(); + .addPathSegments("v2/team/svix/url"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("GET", null) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Accept", "application/json") @@ -291,6 +308,11 @@ public VitalHttpResponse>> getSourcePriorities( QueryStringMapper.addQueryParameter( httpUrl, "data_type", request.getDataType().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -337,12 +359,16 @@ public VitalHttpResponse>> updateSourcePriorities() { * Patch source priorities. */ public VitalHttpResponse>> updateSourcePriorities(RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() - .addPathSegments("v2/team/source/priorities") - .build(); + .addPathSegments("v2/team/source/priorities"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("PATCH", null) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Accept", "application/json") @@ -372,14 +398,18 @@ public VitalHttpResponse> getPhysicians(String teamI } public VitalHttpResponse> getPhysicians(String teamId, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() .addPathSegments("v2/team") .addPathSegment(teamId) - .addPathSegments("physicians") - .build(); + .addPathSegments("physicians"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("GET", null) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Accept", "application/json") diff --git a/src/main/java/com/vital/api/resources/testkit/AsyncRawTestkitClient.java b/src/main/java/com/vital/api/resources/testkit/AsyncRawTestkitClient.java index 08c4ebed..dbc35c01 100644 --- a/src/main/java/com/vital/api/resources/testkit/AsyncRawTestkitClient.java +++ b/src/main/java/com/vital/api/resources/testkit/AsyncRawTestkitClient.java @@ -42,10 +42,14 @@ public CompletableFuture> register(Register public CompletableFuture> register( RegisterTestkitRequest request, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() - .addPathSegments("v3/order/testkit/register") - .build(); + .addPathSegments("v3/order/testkit/register"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } RequestBody body; try { body = RequestBody.create( @@ -54,7 +58,7 @@ public CompletableFuture> register( throw new VitalException("Failed to serialize request", e); } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("POST", body) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Content-Type", "application/json") @@ -116,10 +120,14 @@ public CompletableFuture> createOrder( */ public CompletableFuture> createOrder( CreateRegistrableTestkitOrderRequest request, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() - .addPathSegments("v3/order/testkit") - .build(); + .addPathSegments("v3/order/testkit"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } RequestBody body; try { body = RequestBody.create( @@ -128,7 +136,7 @@ public CompletableFuture> createOrder( throw new VitalException("Failed to serialize request", e); } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("POST", body) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Content-Type", "application/json") diff --git a/src/main/java/com/vital/api/resources/testkit/RawTestkitClient.java b/src/main/java/com/vital/api/resources/testkit/RawTestkitClient.java index a0a0b996..0807b0dc 100644 --- a/src/main/java/com/vital/api/resources/testkit/RawTestkitClient.java +++ b/src/main/java/com/vital/api/resources/testkit/RawTestkitClient.java @@ -38,10 +38,14 @@ public VitalHttpResponse register(RegisterTestkitRequest requ public VitalHttpResponse register( RegisterTestkitRequest request, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() - .addPathSegments("v3/order/testkit/register") - .build(); + .addPathSegments("v3/order/testkit/register"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } RequestBody body; try { body = RequestBody.create( @@ -50,7 +54,7 @@ public VitalHttpResponse register( throw new VitalException("Failed to serialize request", e); } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("POST", body) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Content-Type", "application/json") @@ -95,10 +99,14 @@ public VitalHttpResponse createOrder(CreateRegistrableTestkit */ public VitalHttpResponse createOrder( CreateRegistrableTestkitOrderRequest request, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() - .addPathSegments("v3/order/testkit") - .build(); + .addPathSegments("v3/order/testkit"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } RequestBody body; try { body = RequestBody.create( @@ -107,7 +115,7 @@ public VitalHttpResponse createOrder( throw new VitalException("Failed to serialize request", e); } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("POST", body) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Content-Type", "application/json") diff --git a/src/main/java/com/vital/api/resources/user/AsyncRawUserClient.java b/src/main/java/com/vital/api/resources/user/AsyncRawUserClient.java index 6be35ec6..492b62a2 100644 --- a/src/main/java/com/vital/api/resources/user/AsyncRawUserClient.java +++ b/src/main/java/com/vital/api/resources/user/AsyncRawUserClient.java @@ -97,6 +97,11 @@ public CompletableFuture> getAll( QueryStringMapper.addQueryParameter( httpUrl, "limit", request.getLimit().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -158,10 +163,14 @@ public CompletableFuture> create(UserCrea */ public CompletableFuture> create( UserCreateBody request, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() - .addPathSegments("v2/user") - .build(); + .addPathSegments("v2/user"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } RequestBody body; try { body = RequestBody.create( @@ -170,7 +179,7 @@ public CompletableFuture> create( throw new VitalException("Failed to serialize request", e); } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("POST", body) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Content-Type", "application/json") @@ -237,12 +246,16 @@ public CompletableFuture> getTeamMetrics() { * GET metrics for team. */ public CompletableFuture> getTeamMetrics(RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() - .addPathSegments("v2/user/metrics") - .build(); + .addPathSegments("v2/user/metrics"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("GET", null) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Accept", "application/json") @@ -293,13 +306,17 @@ public void onFailure(@NotNull Call call, @NotNull IOException e) { */ public CompletableFuture>>> getConnectedProviders(String userId, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() .addPathSegments("v2/user/providers") - .addPathSegment(userId) - .build(); + .addPathSegment(userId); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("GET", null) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Accept", "application/json") @@ -356,15 +373,19 @@ public CompletableFuture> getLatestUserInfo(String u public CompletableFuture> getLatestUserInfo( String userId, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() .addPathSegments("v2/user") .addPathSegment(userId) .addPathSegments("info") - .addPathSegments("latest") - .build(); + .addPathSegments("latest"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("GET", null) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Accept", "application/json") @@ -418,12 +439,16 @@ public CompletableFuture> createInsuran public CompletableFuture> createInsurance( String userId, CreateInsuranceRequest request, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() .addPathSegments("v2/user") .addPathSegment(userId) - .addPathSegments("insurance") - .build(); + .addPathSegments("insurance"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } RequestBody body; try { body = RequestBody.create( @@ -432,7 +457,7 @@ public CompletableFuture> createInsuran throw new VitalException("Failed to serialize request", e); } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("POST", body) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Content-Type", "application/json") @@ -509,6 +534,11 @@ public CompletableFuture> getLatestInsu QueryStringMapper.addQueryParameter( httpUrl, "is_primary", request.getIsPrimary().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -564,12 +594,16 @@ public CompletableFuture> upsertUserInfo(String user public CompletableFuture> upsertUserInfo( String userId, UserInfoCreateRequest request, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() .addPathSegments("v2/user") .addPathSegment(userId) - .addPathSegments("info") - .build(); + .addPathSegments("info"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } RequestBody body; try { body = RequestBody.create( @@ -578,7 +612,7 @@ public CompletableFuture> upsertUserInfo( throw new VitalException("Failed to serialize request", e); } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("PATCH", body) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Content-Type", "application/json") @@ -638,13 +672,17 @@ public CompletableFuture> getByClientUserId( */ public CompletableFuture> getByClientUserId( String clientUserId, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() .addPathSegments("v2/user/resolve") - .addPathSegment(clientUserId) - .build(); + .addPathSegment(clientUserId); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("GET", null) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Accept", "application/json") @@ -699,14 +737,18 @@ public CompletableFuture> deregisterProvi public CompletableFuture> deregisterProvider( String userId, Providers provider, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() .addPathSegments("v2/user") .addPathSegment(userId) - .addPathSegment(provider.toString()) - .build(); + .addPathSegment(provider.toString()); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("DELETE", null) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Accept", "application/json") @@ -759,13 +801,17 @@ public CompletableFuture> get(String userId) } public CompletableFuture> get(String userId, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() .addPathSegments("v2/user") - .addPathSegment(userId) - .build(); + .addPathSegment(userId); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("GET", null) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Accept", "application/json") @@ -819,13 +865,17 @@ public CompletableFuture> delete(String u public CompletableFuture> delete( String userId, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() .addPathSegments("v2/user") - .addPathSegment(userId) - .build(); + .addPathSegment(userId); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("DELETE", null) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Accept", "application/json") @@ -887,11 +937,15 @@ public CompletableFuture> patch(String userId, UserPatch public CompletableFuture> patch( String userId, UserPatchBody request, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() .addPathSegments("v2/user") - .addPathSegment(userId) - .build(); + .addPathSegment(userId); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } RequestBody body; try { body = RequestBody.create( @@ -900,7 +954,7 @@ public CompletableFuture> patch( throw new VitalException("Failed to serialize request", e); } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("PATCH", body) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Content-Type", "application/json") @@ -972,6 +1026,11 @@ public CompletableFuture> undoDelete( QueryStringMapper.addQueryParameter( httpUrl, "client_user_id", request.getClientUserId().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("POST", RequestBody.create("", null)) @@ -1057,6 +1116,11 @@ public CompletableFuture> refresh( QueryStringMapper.addQueryParameter( httpUrl, "timeout", request.getTimeout().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("POST", RequestBody.create("", null)) @@ -1120,14 +1184,18 @@ public CompletableFuture>> getDevices public CompletableFuture>> getDevices( String userId, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() .addPathSegments("v2/user") .addPathSegment(userId) - .addPathSegments("device") - .build(); + .addPathSegments("device"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("GET", null) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Accept", "application/json") @@ -1182,15 +1250,19 @@ public CompletableFuture> getDevice(String public CompletableFuture> getDevice( String userId, String deviceId, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() .addPathSegments("v2/user") .addPathSegment(userId) .addPathSegments("device") - .addPathSegment(deviceId) - .build(); + .addPathSegment(deviceId); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("GET", null) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Accept", "application/json") @@ -1244,14 +1316,18 @@ public CompletableFuture> getUserSign public CompletableFuture> getUserSignInToken( String userId, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() .addPathSegments("v2/user") .addPathSegment(userId) - .addPathSegments("sign_in_token") - .build(); + .addPathSegments("sign_in_token"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("POST", RequestBody.create("", null)) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Accept", "application/json") @@ -1306,12 +1382,16 @@ public CompletableFuture> createP public CompletableFuture> createPortalUrl( String userId, CreateUserPortalUrlBody request, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() .addPathSegments("v2/user") .addPathSegment(userId) - .addPathSegments("create_portal_url") - .build(); + .addPathSegments("create_portal_url"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } RequestBody body; try { body = RequestBody.create( @@ -1320,7 +1400,7 @@ public CompletableFuture> createP throw new VitalException("Failed to serialize request", e); } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("POST", body) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Content-Type", "application/json") diff --git a/src/main/java/com/vital/api/resources/user/RawUserClient.java b/src/main/java/com/vital/api/resources/user/RawUserClient.java index 10a193f4..6e17179a 100644 --- a/src/main/java/com/vital/api/resources/user/RawUserClient.java +++ b/src/main/java/com/vital/api/resources/user/RawUserClient.java @@ -92,6 +92,11 @@ public VitalHttpResponse getAll(UserGetAllRequest reques QueryStringMapper.addQueryParameter( httpUrl, "limit", request.getLimit().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -137,10 +142,14 @@ public VitalHttpResponse create(UserCreateBody request) { * POST Create a Vital user given a client_user_id and returns the user_id. */ public VitalHttpResponse create(UserCreateBody request, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() - .addPathSegments("v2/user") - .build(); + .addPathSegments("v2/user"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } RequestBody body; try { body = RequestBody.create( @@ -149,7 +158,7 @@ public VitalHttpResponse create(UserCreateBody request, Req throw new VitalException("Failed to serialize request", e); } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("POST", body) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Content-Type", "application/json") @@ -197,12 +206,16 @@ public VitalHttpResponse getTeamMetrics() { * GET metrics for team. */ public VitalHttpResponse getTeamMetrics(RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() - .addPathSegments("v2/user/metrics") - .build(); + .addPathSegments("v2/user/metrics"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("GET", null) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Accept", "application/json") @@ -237,13 +250,17 @@ public VitalHttpResponse>> getC */ public VitalHttpResponse>> getConnectedProviders( String userId, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() .addPathSegments("v2/user/providers") - .addPathSegment(userId) - .build(); + .addPathSegment(userId); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("GET", null) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Accept", "application/json") @@ -283,15 +300,19 @@ public VitalHttpResponse getLatestUserInfo(String userId) { } public VitalHttpResponse getLatestUserInfo(String userId, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() .addPathSegments("v2/user") .addPathSegment(userId) .addPathSegments("info") - .addPathSegments("latest") - .build(); + .addPathSegments("latest"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("GET", null) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Accept", "application/json") @@ -329,12 +350,16 @@ public VitalHttpResponse createInsurance(String userId, C public VitalHttpResponse createInsurance( String userId, CreateInsuranceRequest request, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() .addPathSegments("v2/user") .addPathSegment(userId) - .addPathSegments("insurance") - .build(); + .addPathSegments("insurance"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } RequestBody body; try { body = RequestBody.create( @@ -343,7 +368,7 @@ public VitalHttpResponse createInsurance( throw new VitalException("Failed to serialize request", e); } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("POST", body) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Content-Type", "application/json") @@ -403,6 +428,11 @@ public VitalHttpResponse getLatestInsurance( QueryStringMapper.addQueryParameter( httpUrl, "is_primary", request.getIsPrimary().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -442,12 +472,16 @@ public VitalHttpResponse upsertUserInfo(String userId, UserInfoCreateR public VitalHttpResponse upsertUserInfo( String userId, UserInfoCreateRequest request, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() .addPathSegments("v2/user") .addPathSegment(userId) - .addPathSegments("info") - .build(); + .addPathSegments("info"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } RequestBody body; try { body = RequestBody.create( @@ -456,7 +490,7 @@ public VitalHttpResponse upsertUserInfo( throw new VitalException("Failed to serialize request", e); } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("PATCH", body) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Content-Type", "application/json") @@ -500,13 +534,17 @@ public VitalHttpResponse getByClientUserId(String clientUserId * GET user_id from client_user_id. */ public VitalHttpResponse getByClientUserId(String clientUserId, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() .addPathSegments("v2/user/resolve") - .addPathSegment(clientUserId) - .build(); + .addPathSegment(clientUserId); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("GET", null) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Accept", "application/json") @@ -544,14 +582,18 @@ public VitalHttpResponse deregisterProvider(String userId, public VitalHttpResponse deregisterProvider( String userId, Providers provider, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() .addPathSegments("v2/user") .addPathSegment(userId) - .addPathSegment(provider.toString()) - .build(); + .addPathSegment(provider.toString()); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("DELETE", null) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Accept", "application/json") @@ -588,13 +630,17 @@ public VitalHttpResponse get(String userId) { } public VitalHttpResponse get(String userId, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() .addPathSegments("v2/user") - .addPathSegment(userId) - .build(); + .addPathSegment(userId); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("GET", null) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Accept", "application/json") @@ -631,13 +677,17 @@ public VitalHttpResponse delete(String userId) { } public VitalHttpResponse delete(String userId, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() .addPathSegments("v2/user") - .addPathSegment(userId) - .build(); + .addPathSegment(userId); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("DELETE", null) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Accept", "application/json") @@ -682,11 +732,15 @@ public VitalHttpResponse patch(String userId, UserPatchBody request) { } public VitalHttpResponse patch(String userId, UserPatchBody request, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() .addPathSegments("v2/user") - .addPathSegment(userId) - .build(); + .addPathSegment(userId); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } RequestBody body; try { body = RequestBody.create( @@ -695,7 +749,7 @@ public VitalHttpResponse patch(String userId, UserPatchBody request, Reque throw new VitalException("Failed to serialize request", e); } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("PATCH", body) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Content-Type", "application/json") @@ -752,6 +806,11 @@ public VitalHttpResponse undoDelete( QueryStringMapper.addQueryParameter( httpUrl, "client_user_id", request.getClientUserId().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("POST", RequestBody.create("", null)) @@ -819,6 +878,11 @@ public VitalHttpResponse refresh( QueryStringMapper.addQueryParameter( httpUrl, "timeout", request.getTimeout().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("POST", RequestBody.create("", null)) @@ -862,14 +926,18 @@ public VitalHttpResponse> getDevices(String userId) { } public VitalHttpResponse> getDevices(String userId, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() .addPathSegments("v2/user") .addPathSegment(userId) - .addPathSegments("device") - .build(); + .addPathSegments("device"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("GET", null) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Accept", "application/json") @@ -909,15 +977,19 @@ public VitalHttpResponse getDevice(String userId, String dev public VitalHttpResponse getDevice( String userId, String deviceId, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() .addPathSegments("v2/user") .addPathSegment(userId) .addPathSegments("device") - .addPathSegment(deviceId) - .build(); + .addPathSegment(deviceId); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("GET", null) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Accept", "application/json") @@ -954,14 +1026,18 @@ public VitalHttpResponse getUserSignInToken(String user } public VitalHttpResponse getUserSignInToken(String userId, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() .addPathSegments("v2/user") .addPathSegment(userId) - .addPathSegments("sign_in_token") - .build(); + .addPathSegments("sign_in_token"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("POST", RequestBody.create("", null)) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Accept", "application/json") @@ -1001,12 +1077,16 @@ public VitalHttpResponse createPortalUrl( public VitalHttpResponse createPortalUrl( String userId, CreateUserPortalUrlBody request, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() .addPathSegments("v2/user") .addPathSegment(userId) - .addPathSegments("create_portal_url") - .build(); + .addPathSegments("create_portal_url"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } RequestBody body; try { body = RequestBody.create( @@ -1015,7 +1095,7 @@ public VitalHttpResponse createPortalUrl( throw new VitalException("Failed to serialize request", e); } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("POST", body) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Content-Type", "application/json") diff --git a/src/main/java/com/vital/api/resources/vitals/AsyncRawVitalsClient.java b/src/main/java/com/vital/api/resources/vitals/AsyncRawVitalsClient.java index bfe49217..34b98361 100644 --- a/src/main/java/com/vital/api/resources/vitals/AsyncRawVitalsClient.java +++ b/src/main/java/com/vital/api/resources/vitals/AsyncRawVitalsClient.java @@ -216,6 +216,11 @@ public CompletableFuture QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -296,6 +301,11 @@ public CompletableFuture> work QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -379,6 +389,11 @@ public void onFailure(@NotNull Call call, @NotNull IOException e) { QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -460,6 +475,11 @@ public CompletableFuture> w QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -540,6 +560,11 @@ public CompletableFuture> leanBod QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -620,6 +645,11 @@ public CompletableFuture> bodyMa QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -700,6 +730,11 @@ public CompletableFuture> QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -780,6 +815,11 @@ public CompletableFuture> handwash QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -860,6 +900,11 @@ public CompletableFuture> day QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -940,6 +985,11 @@ public CompletableFuture> uvExposur QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -1020,6 +1070,11 @@ public CompletableFuture> fallGrouped( QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -1099,6 +1154,11 @@ public CompletableFuture> inhaler QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -1179,6 +1239,11 @@ public CompletableFuture { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -1259,6 +1324,11 @@ public CompletableFuture> QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -1339,6 +1409,11 @@ public CompletableFuture { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -1419,6 +1494,11 @@ public CompletableFuture> wheel QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -1502,6 +1582,11 @@ public void onFailure(@NotNull Call call, @NotNull IOException e) { QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -1583,6 +1668,11 @@ public CompletableFuture> slee QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -1663,6 +1753,11 @@ public CompletableFuture> standD QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -1743,6 +1838,11 @@ public CompletableFuture> standHourG QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -1822,6 +1922,11 @@ public CompletableFuture> heart QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -1902,6 +2007,11 @@ public CompletableFuture> afibBurde QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -1982,6 +2092,11 @@ public CompletableFuture> work QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -2062,6 +2177,11 @@ public CompletableFuture> vo2MaxGrouped QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -2141,6 +2261,11 @@ public CompletableFuture> stressLe QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -2221,6 +2346,11 @@ public CompletableFuture> m QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -2301,6 +2431,11 @@ public CompletableFuture> caffeineGro QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -2380,6 +2515,11 @@ public CompletableFuture> waterGrouped( QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -2459,6 +2599,11 @@ public CompletableFuture> stepsGrouped( QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -2538,6 +2683,11 @@ public CompletableFuture> floors QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -2618,6 +2768,11 @@ public CompletableFuture> distanceGro QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -2697,6 +2852,11 @@ public CompletableFuture> calori QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -2777,6 +2937,11 @@ public CompletableFuture> calor QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -2857,6 +3022,11 @@ public CompletableFuture> resp QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -2937,6 +3107,11 @@ public CompletableFuture> noteGrouped( QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -3016,6 +3191,11 @@ public CompletableFuture> ins QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -3096,6 +3276,11 @@ public CompletableFuture> igeGrouped( QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -3175,6 +3360,11 @@ public CompletableFuture> iggGrouped( QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -3254,6 +3444,11 @@ public CompletableFuture> hypnogramG QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -3333,6 +3528,11 @@ public CompletableFuture> hrvGrouped( QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -3412,6 +3612,11 @@ public CompletableFuture> heartrateG QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -3491,6 +3696,11 @@ public CompletableFuture> glucoseGroup QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -3570,6 +3780,11 @@ public CompletableFuture> choleste QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -3650,6 +3865,11 @@ public CompletableFuture> carboh QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -3730,6 +3950,11 @@ public CompletableFuture> QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -3810,6 +4035,11 @@ public CompletableFuture> body QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -3890,6 +4120,11 @@ public CompletableFuture> bodyWeigh QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -3970,6 +4205,11 @@ public CompletableFuture> bodyFatGroup QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -4049,6 +4289,11 @@ public CompletableFuture> bloodOxy QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -4132,6 +4377,11 @@ public void onFailure(@NotNull Call call, @NotNull IOException e) { QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -4213,6 +4463,11 @@ public CompletableFuture> bloodP QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -4284,6 +4539,11 @@ public CompletableFuture>> QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -4355,6 +4615,11 @@ public CompletableFuture { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -4428,6 +4693,11 @@ public CompletableFuture { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -4501,6 +4771,11 @@ public CompletableFuture> QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -4573,6 +4848,11 @@ public CompletableFuture>> w QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -4644,6 +4924,11 @@ public CompletableFuture>> s QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -4715,6 +5000,11 @@ public CompletableFuture { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -4788,6 +5078,11 @@ public CompletableFuture> QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -4860,6 +5155,11 @@ public CompletableFuture { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -4933,6 +5233,11 @@ public CompletableFuture { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -5006,6 +5311,11 @@ public CompletableFuture { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -5079,6 +5389,11 @@ public CompletableFuture>> ige QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -5150,6 +5465,11 @@ public CompletableFuture>> igg QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -5221,6 +5541,11 @@ public CompletableFuture QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -5293,6 +5618,11 @@ public CompletableFuture>> hrv QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -5364,6 +5694,11 @@ public CompletableFuture QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -5436,6 +5771,11 @@ public CompletableFuture>> QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -5509,6 +5849,11 @@ public CompletableFuture { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -5583,6 +5928,11 @@ public CompletableFuture { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -5657,6 +6007,11 @@ public CompletableFuture { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -5731,6 +6086,11 @@ public CompletableFuture { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -5804,6 +6164,11 @@ public CompletableFuture { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -5877,6 +6242,11 @@ public CompletableFuture { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -5949,6 +6319,11 @@ public CompletableFuture>> QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -6021,6 +6396,11 @@ public CompletableFuture { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -6095,6 +6475,11 @@ public void onFailure(@NotNull Call call, @NotNull IOException e) { QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -6168,6 +6553,11 @@ public CompletableFuture { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) diff --git a/src/main/java/com/vital/api/resources/vitals/RawVitalsClient.java b/src/main/java/com/vital/api/resources/vitals/RawVitalsClient.java index 93cb2038..101c4439 100644 --- a/src/main/java/com/vital/api/resources/vitals/RawVitalsClient.java +++ b/src/main/java/com/vital/api/resources/vitals/RawVitalsClient.java @@ -212,6 +212,11 @@ public VitalHttpResponse workoutSwimmingSt QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -277,6 +282,11 @@ public VitalHttpResponse workoutDistanceGrouped( QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -341,6 +351,11 @@ public VitalHttpResponse heartRateRec QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -406,6 +421,11 @@ public VitalHttpResponse waistCircumferenceGr QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -471,6 +491,11 @@ public VitalHttpResponse leanBodyMassGrouped( QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -535,6 +560,11 @@ public VitalHttpResponse bodyMassIndexGrouped( QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -599,6 +629,11 @@ public VitalHttpResponse basalBodyTemperatu QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -664,6 +699,11 @@ public VitalHttpResponse handwashingGrouped( QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -728,6 +768,11 @@ public VitalHttpResponse daylightExposureGroupe QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -792,6 +837,11 @@ public VitalHttpResponse uvExposureGrouped( QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -855,6 +905,11 @@ public VitalHttpResponse fallGrouped( QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -918,6 +973,11 @@ public VitalHttpResponse inhalerUsageGrouped( QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -982,6 +1042,11 @@ public VitalHttpResponse peakExpiratoryFl QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -1047,6 +1112,11 @@ public VitalHttpResponse forcedVitalCapacity QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -1112,6 +1182,11 @@ public VitalHttpResponse forcedExpirator QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -1177,6 +1252,11 @@ public VitalHttpResponse wheelchairPushGrouped( QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -1241,6 +1321,11 @@ public VitalHttpResponse sleepBreathin QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -1306,6 +1391,11 @@ public VitalHttpResponse sleepApneaAlertGrouped( QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -1370,6 +1460,11 @@ public VitalHttpResponse standDurationGrouped( QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -1434,6 +1529,11 @@ public VitalHttpResponse standHourGrouped( QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -1498,6 +1598,11 @@ public VitalHttpResponse heartRateAlertGrouped( QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -1562,6 +1667,11 @@ public VitalHttpResponse afibBurdenGrouped( QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -1626,6 +1736,11 @@ public VitalHttpResponse workoutDurationGrouped( QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -1689,6 +1804,11 @@ public VitalHttpResponse vo2MaxGrouped( QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -1752,6 +1872,11 @@ public VitalHttpResponse stressLevelGrouped( QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -1816,6 +1941,11 @@ public VitalHttpResponse mindfulnessMinutesGr QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -1881,6 +2011,11 @@ public VitalHttpResponse caffeineGrouped( QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -1944,6 +2079,11 @@ public VitalHttpResponse waterGrouped( QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -2006,6 +2146,11 @@ public VitalHttpResponse stepsGrouped( QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -2069,6 +2214,11 @@ public VitalHttpResponse floorsClimbedGrouped( QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -2133,6 +2283,11 @@ public VitalHttpResponse distanceGrouped( QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -2197,6 +2352,11 @@ public VitalHttpResponse caloriesBasalGrouped( QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -2261,6 +2421,11 @@ public VitalHttpResponse caloriesActiveGrouped( QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -2325,6 +2490,11 @@ public VitalHttpResponse respiratoryRateGrouped( QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -2388,6 +2558,11 @@ public VitalHttpResponse noteGrouped( QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -2451,6 +2626,11 @@ public VitalHttpResponse insulinInjectionGroupe QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -2514,6 +2694,11 @@ public VitalHttpResponse igeGrouped( QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -2576,6 +2761,11 @@ public VitalHttpResponse iggGrouped( QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -2639,6 +2829,11 @@ public VitalHttpResponse hypnogramGrouped( QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -2702,6 +2897,11 @@ public VitalHttpResponse hrvGrouped( QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -2765,6 +2965,11 @@ public VitalHttpResponse heartrateGrouped( QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -2829,6 +3034,11 @@ public VitalHttpResponse glucoseGrouped( QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -2893,6 +3103,11 @@ public VitalHttpResponse cholesterolGrouped( QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -2957,6 +3172,11 @@ public VitalHttpResponse carbohydratesGrouped( QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -3021,6 +3241,11 @@ public VitalHttpResponse bodyTemperatureDel QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -3086,6 +3311,11 @@ public VitalHttpResponse bodyTemperatureGrouped( QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -3150,6 +3380,11 @@ public VitalHttpResponse bodyWeightGrouped( QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -3214,6 +3449,11 @@ public VitalHttpResponse bodyFatGrouped( QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -3278,6 +3518,11 @@ public VitalHttpResponse bloodOxygenGrouped( QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -3342,6 +3587,11 @@ public VitalHttpResponse electrocardiog QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -3407,6 +3657,11 @@ public VitalHttpResponse bloodPressureGrouped( QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -3461,6 +3716,11 @@ public VitalHttpResponse> vo2Max( QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -3517,6 +3777,11 @@ public VitalHttpResponse> stressLevel( QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -3573,6 +3838,11 @@ public VitalHttpResponse> mindful QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -3630,6 +3900,11 @@ public VitalHttpResponse> caffeine( QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -3685,6 +3960,11 @@ public VitalHttpResponse> water( QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -3740,6 +4020,11 @@ public VitalHttpResponse> steps( QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -3796,6 +4081,11 @@ public VitalHttpResponse> floorsClimbe QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -3852,6 +4142,11 @@ public VitalHttpResponse> distance( QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -3908,6 +4203,11 @@ public VitalHttpResponse> caloriesBasa QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -3964,6 +4264,11 @@ public VitalHttpResponse> caloriesAct QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -4020,6 +4325,11 @@ public VitalHttpResponse> respirator QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -4076,6 +4386,11 @@ public VitalHttpResponse> ige( QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -4131,6 +4446,11 @@ public VitalHttpResponse> igg( QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -4187,6 +4507,11 @@ public VitalHttpResponse> hypnogram( QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -4242,6 +4567,11 @@ public VitalHttpResponse> hrv( QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -4298,6 +4628,11 @@ public VitalHttpResponse> heartrate( QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -4353,6 +4688,11 @@ public VitalHttpResponse> glucose( QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -4410,6 +4750,11 @@ public VitalHttpResponse> cholesterolTri QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -4467,6 +4812,11 @@ public VitalHttpResponse> cholesterolTot QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -4524,6 +4874,11 @@ public VitalHttpResponse> cholesterolLdl QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -4581,6 +4936,11 @@ public VitalHttpResponse> cholesterolHdl QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -4637,6 +4997,11 @@ public VitalHttpResponse> cholesterol( QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -4693,6 +5058,11 @@ public VitalHttpResponse> bodyWeight( QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -4748,6 +5118,11 @@ public VitalHttpResponse> bodyFat( QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -4804,6 +5179,11 @@ public VitalHttpResponse> bloodOxygen( QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -4860,6 +5240,11 @@ public VitalHttpResponse> e QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -4917,6 +5302,11 @@ public VitalHttpResponse> bloodPressur QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) diff --git a/src/main/java/com/vital/api/resources/workouts/AsyncRawWorkoutsClient.java b/src/main/java/com/vital/api/resources/workouts/AsyncRawWorkoutsClient.java index 4c84949a..8680bece 100644 --- a/src/main/java/com/vital/api/resources/workouts/AsyncRawWorkoutsClient.java +++ b/src/main/java/com/vital/api/resources/workouts/AsyncRawWorkoutsClient.java @@ -62,6 +62,11 @@ public CompletableFuture> get( QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -137,6 +142,11 @@ public CompletableFuture> getRaw( QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -191,14 +201,18 @@ public CompletableFuture> getByWorkoutId(S public CompletableFuture> getByWorkoutId( String workoutId, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() .addPathSegments("v2/timeseries/workouts") .addPathSegment(workoutId) - .addPathSegments("stream") - .build(); + .addPathSegments("stream"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("GET", null) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Accept", "application/json") diff --git a/src/main/java/com/vital/api/resources/workouts/RawWorkoutsClient.java b/src/main/java/com/vital/api/resources/workouts/RawWorkoutsClient.java index 11d63e78..56d98028 100644 --- a/src/main/java/com/vital/api/resources/workouts/RawWorkoutsClient.java +++ b/src/main/java/com/vital/api/resources/workouts/RawWorkoutsClient.java @@ -58,6 +58,11 @@ public VitalHttpResponse get( QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -117,6 +122,11 @@ public VitalHttpResponse getRaw( QueryStringMapper.addQueryParameter( httpUrl, "end_date", request.getEndDate().get(), false); } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl.build()) .method("GET", null) @@ -155,14 +165,18 @@ public VitalHttpResponse getByWorkoutId(String workoutId) { } public VitalHttpResponse getByWorkoutId(String workoutId, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() .addPathSegments("v2/timeseries/workouts") .addPathSegment(workoutId) - .addPathSegments("stream") - .build(); + .addPathSegments("stream"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((key, value) -> { + httpUrl.addQueryParameter(key, value); + }); + } Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .url(httpUrl.build()) .method("GET", null) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Accept", "application/json") diff --git a/src/main/java/com/vital/api/types/AppointmentBookingRequest.java b/src/main/java/com/vital/api/types/AppointmentBookingRequest.java index bfa2cf38..c19974c5 100644 --- a/src/main/java/com/vital/api/types/AppointmentBookingRequest.java +++ b/src/main/java/com/vital/api/types/AppointmentBookingRequest.java @@ -9,11 +9,13 @@ import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonSetter; +import com.fasterxml.jackson.annotation.Nulls; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.vital.api.core.ObjectMappers; import java.util.HashMap; import java.util.Map; import java.util.Objects; +import java.util.Optional; import org.jetbrains.annotations.NotNull; @JsonInclude(JsonInclude.Include.NON_ABSENT) @@ -21,10 +23,24 @@ public final class AppointmentBookingRequest { private final String bookingKey; + private final Optional asyncConfirmation; + + private final Optional syncConfirmationTimeoutMillisecond; + + private final Optional asyncConfirmationTimeoutMillisecond; + private final Map additionalProperties; - private AppointmentBookingRequest(String bookingKey, Map additionalProperties) { + private AppointmentBookingRequest( + String bookingKey, + Optional asyncConfirmation, + Optional syncConfirmationTimeoutMillisecond, + Optional asyncConfirmationTimeoutMillisecond, + Map additionalProperties) { this.bookingKey = bookingKey; + this.asyncConfirmation = asyncConfirmation; + this.syncConfirmationTimeoutMillisecond = syncConfirmationTimeoutMillisecond; + this.asyncConfirmationTimeoutMillisecond = asyncConfirmationTimeoutMillisecond; this.additionalProperties = additionalProperties; } @@ -33,6 +49,46 @@ public String getBookingKey() { return bookingKey; } + /** + * @return [!] This feature (Async Confirmation) is under Closed Beta. + *

If true, when the PSC system fails to confirm the booking within sync_confirmation_timeout_millisecond, this API + * endpoint would respond with a pending appointment. The booking attempt will continue asynchronously in background, until either:

+ *
    + *
  1. the appointment moves to the reserved or confirmed state because an acknowledgement from the PSC system has been received; OR
  2. + *
  3. the pending appointment moves to the cancelled state because the async_confirmation_timeout_millisecond timeout is reached.
  4. + *
+ *

You will receive labtest.appointment.updated webhooks for all the relevant status changes (pending, confirmed, reserved + * and cancelled).

+ *

If false (default), when the PSC system fails to confirm the booking, this API endpoint would respond with + * 500 Internal Server Error.

+ */ + @JsonProperty("async_confirmation") + public Optional getAsyncConfirmation() { + return asyncConfirmation; + } + + /** + * @return This parameter only takes effect when async_confirmation is true; no-op otherwise. + *

The maximum amount of time which the Book Appointment endpoint would wait before it responds with a pending appointment. + * This timeout does not stop the booking attempt — it will continue asynchronously in background.

+ *

Defaults to 2.5 seconds. Must be 1-10 seconds.

+ */ + @JsonProperty("sync_confirmation_timeout_millisecond") + public Optional getSyncConfirmationTimeoutMillisecond() { + return syncConfirmationTimeoutMillisecond; + } + + /** + * @return This parameter only takes effect when async_confirmation is true; no-op otherwise. + *

The maximum amount of time which Junction would try to asynchronously book in the pending appointment. If this timeout is + * reached, the pending appointment would be cancelled.

+ *

Defaults to 15 minutes. Must be 1-2880 minutes.

+ */ + @JsonProperty("async_confirmation_timeout_millisecond") + public Optional getAsyncConfirmationTimeoutMillisecond() { + return asyncConfirmationTimeoutMillisecond; + } + @java.lang.Override public boolean equals(Object other) { if (this == other) return true; @@ -45,12 +101,19 @@ public Map getAdditionalProperties() { } private boolean equalTo(AppointmentBookingRequest other) { - return bookingKey.equals(other.bookingKey); + return bookingKey.equals(other.bookingKey) + && asyncConfirmation.equals(other.asyncConfirmation) + && syncConfirmationTimeoutMillisecond.equals(other.syncConfirmationTimeoutMillisecond) + && asyncConfirmationTimeoutMillisecond.equals(other.asyncConfirmationTimeoutMillisecond); } @java.lang.Override public int hashCode() { - return Objects.hash(this.bookingKey); + return Objects.hash( + this.bookingKey, + this.asyncConfirmation, + this.syncConfirmationTimeoutMillisecond, + this.asyncConfirmationTimeoutMillisecond); } @java.lang.Override @@ -70,12 +133,55 @@ public interface BookingKeyStage { public interface _FinalStage { AppointmentBookingRequest build(); + + /** + *

[!] This feature (Async Confirmation) is under Closed Beta.

+ *

If true, when the PSC system fails to confirm the booking within sync_confirmation_timeout_millisecond, this API + * endpoint would respond with a pending appointment. The booking attempt will continue asynchronously in background, until either:

+ *
    + *
  1. the appointment moves to the reserved or confirmed state because an acknowledgement from the PSC system has been received; OR
  2. + *
  3. the pending appointment moves to the cancelled state because the async_confirmation_timeout_millisecond timeout is reached.
  4. + *
+ *

You will receive labtest.appointment.updated webhooks for all the relevant status changes (pending, confirmed, reserved + * and cancelled).

+ *

If false (default), when the PSC system fails to confirm the booking, this API endpoint would respond with + * 500 Internal Server Error.

+ */ + _FinalStage asyncConfirmation(Optional asyncConfirmation); + + _FinalStage asyncConfirmation(Boolean asyncConfirmation); + + /** + *

This parameter only takes effect when async_confirmation is true; no-op otherwise.

+ *

The maximum amount of time which the Book Appointment endpoint would wait before it responds with a pending appointment. + * This timeout does not stop the booking attempt — it will continue asynchronously in background.

+ *

Defaults to 2.5 seconds. Must be 1-10 seconds.

+ */ + _FinalStage syncConfirmationTimeoutMillisecond(Optional syncConfirmationTimeoutMillisecond); + + _FinalStage syncConfirmationTimeoutMillisecond(Integer syncConfirmationTimeoutMillisecond); + + /** + *

This parameter only takes effect when async_confirmation is true; no-op otherwise.

+ *

The maximum amount of time which Junction would try to asynchronously book in the pending appointment. If this timeout is + * reached, the pending appointment would be cancelled.

+ *

Defaults to 15 minutes. Must be 1-2880 minutes.

+ */ + _FinalStage asyncConfirmationTimeoutMillisecond(Optional asyncConfirmationTimeoutMillisecond); + + _FinalStage asyncConfirmationTimeoutMillisecond(Integer asyncConfirmationTimeoutMillisecond); } @JsonIgnoreProperties(ignoreUnknown = true) public static final class Builder implements BookingKeyStage, _FinalStage { private String bookingKey; + private Optional asyncConfirmationTimeoutMillisecond = Optional.empty(); + + private Optional syncConfirmationTimeoutMillisecond = Optional.empty(); + + private Optional asyncConfirmation = Optional.empty(); + @JsonAnySetter private Map additionalProperties = new HashMap<>(); @@ -84,6 +190,9 @@ private Builder() {} @java.lang.Override public Builder from(AppointmentBookingRequest other) { bookingKey(other.getBookingKey()); + asyncConfirmation(other.getAsyncConfirmation()); + syncConfirmationTimeoutMillisecond(other.getSyncConfirmationTimeoutMillisecond()); + asyncConfirmationTimeoutMillisecond(other.getAsyncConfirmationTimeoutMillisecond()); return this; } @@ -94,9 +203,106 @@ public _FinalStage bookingKey(@NotNull String bookingKey) { return this; } + /** + *

This parameter only takes effect when async_confirmation is true; no-op otherwise.

+ *

The maximum amount of time which Junction would try to asynchronously book in the pending appointment. If this timeout is + * reached, the pending appointment would be cancelled.

+ *

Defaults to 15 minutes. Must be 1-2880 minutes.

+ * @return Reference to {@code this} so that method calls can be chained together. + */ + @java.lang.Override + public _FinalStage asyncConfirmationTimeoutMillisecond(Integer asyncConfirmationTimeoutMillisecond) { + this.asyncConfirmationTimeoutMillisecond = Optional.ofNullable(asyncConfirmationTimeoutMillisecond); + return this; + } + + /** + *

This parameter only takes effect when async_confirmation is true; no-op otherwise.

+ *

The maximum amount of time which Junction would try to asynchronously book in the pending appointment. If this timeout is + * reached, the pending appointment would be cancelled.

+ *

Defaults to 15 minutes. Must be 1-2880 minutes.

+ */ + @java.lang.Override + @JsonSetter(value = "async_confirmation_timeout_millisecond", nulls = Nulls.SKIP) + public _FinalStage asyncConfirmationTimeoutMillisecond(Optional asyncConfirmationTimeoutMillisecond) { + this.asyncConfirmationTimeoutMillisecond = asyncConfirmationTimeoutMillisecond; + return this; + } + + /** + *

This parameter only takes effect when async_confirmation is true; no-op otherwise.

+ *

The maximum amount of time which the Book Appointment endpoint would wait before it responds with a pending appointment. + * This timeout does not stop the booking attempt — it will continue asynchronously in background.

+ *

Defaults to 2.5 seconds. Must be 1-10 seconds.

+ * @return Reference to {@code this} so that method calls can be chained together. + */ + @java.lang.Override + public _FinalStage syncConfirmationTimeoutMillisecond(Integer syncConfirmationTimeoutMillisecond) { + this.syncConfirmationTimeoutMillisecond = Optional.ofNullable(syncConfirmationTimeoutMillisecond); + return this; + } + + /** + *

This parameter only takes effect when async_confirmation is true; no-op otherwise.

+ *

The maximum amount of time which the Book Appointment endpoint would wait before it responds with a pending appointment. + * This timeout does not stop the booking attempt — it will continue asynchronously in background.

+ *

Defaults to 2.5 seconds. Must be 1-10 seconds.

+ */ + @java.lang.Override + @JsonSetter(value = "sync_confirmation_timeout_millisecond", nulls = Nulls.SKIP) + public _FinalStage syncConfirmationTimeoutMillisecond(Optional syncConfirmationTimeoutMillisecond) { + this.syncConfirmationTimeoutMillisecond = syncConfirmationTimeoutMillisecond; + return this; + } + + /** + *

[!] This feature (Async Confirmation) is under Closed Beta.

+ *

If true, when the PSC system fails to confirm the booking within sync_confirmation_timeout_millisecond, this API + * endpoint would respond with a pending appointment. The booking attempt will continue asynchronously in background, until either:

+ *
    + *
  1. the appointment moves to the reserved or confirmed state because an acknowledgement from the PSC system has been received; OR
  2. + *
  3. the pending appointment moves to the cancelled state because the async_confirmation_timeout_millisecond timeout is reached.
  4. + *
+ *

You will receive labtest.appointment.updated webhooks for all the relevant status changes (pending, confirmed, reserved + * and cancelled).

+ *

If false (default), when the PSC system fails to confirm the booking, this API endpoint would respond with + * 500 Internal Server Error.

+ * @return Reference to {@code this} so that method calls can be chained together. + */ + @java.lang.Override + public _FinalStage asyncConfirmation(Boolean asyncConfirmation) { + this.asyncConfirmation = Optional.ofNullable(asyncConfirmation); + return this; + } + + /** + *

[!] This feature (Async Confirmation) is under Closed Beta.

+ *

If true, when the PSC system fails to confirm the booking within sync_confirmation_timeout_millisecond, this API + * endpoint would respond with a pending appointment. The booking attempt will continue asynchronously in background, until either:

+ *
    + *
  1. the appointment moves to the reserved or confirmed state because an acknowledgement from the PSC system has been received; OR
  2. + *
  3. the pending appointment moves to the cancelled state because the async_confirmation_timeout_millisecond timeout is reached.
  4. + *
+ *

You will receive labtest.appointment.updated webhooks for all the relevant status changes (pending, confirmed, reserved + * and cancelled).

+ *

If false (default), when the PSC system fails to confirm the booking, this API endpoint would respond with + * 500 Internal Server Error.

+ */ + @java.lang.Override + @JsonSetter(value = "async_confirmation", nulls = Nulls.SKIP) + public _FinalStage asyncConfirmation(Optional asyncConfirmation) { + this.asyncConfirmation = asyncConfirmation; + return this; + } + @java.lang.Override public AppointmentBookingRequest build() { - return new AppointmentBookingRequest(bookingKey, additionalProperties); + return new AppointmentBookingRequest( + bookingKey, + asyncConfirmation, + syncConfirmationTimeoutMillisecond, + asyncConfirmationTimeoutMillisecond, + additionalProperties); } } } diff --git a/src/main/java/com/vital/api/types/ParsingJob.java b/src/main/java/com/vital/api/types/ParsingJob.java index bd99eef0..c640ec78 100644 --- a/src/main/java/com/vital/api/types/ParsingJob.java +++ b/src/main/java/com/vital/api/types/ParsingJob.java @@ -27,6 +27,8 @@ public final class ParsingJob { private final ParsingJobStatus status; + private final Optional failureReason; + private final Optional data; private final boolean needsHumanReview; @@ -39,6 +41,7 @@ private ParsingJob( String id, String jobId, ParsingJobStatus status, + Optional failureReason, Optional data, boolean needsHumanReview, boolean isReviewed, @@ -46,6 +49,7 @@ private ParsingJob( this.id = id; this.jobId = jobId; this.status = status; + this.failureReason = failureReason; this.data = data; this.needsHumanReview = needsHumanReview; this.isReviewed = isReviewed; @@ -67,6 +71,11 @@ public ParsingJobStatus getStatus() { return status; } + @JsonProperty("failure_reason") + public Optional getFailureReason() { + return failureReason; + } + @JsonProperty("data") public Optional getData() { return data; @@ -97,6 +106,7 @@ private boolean equalTo(ParsingJob other) { return id.equals(other.id) && jobId.equals(other.jobId) && status.equals(other.status) + && failureReason.equals(other.failureReason) && data.equals(other.data) && needsHumanReview == other.needsHumanReview && isReviewed == other.isReviewed; @@ -104,7 +114,14 @@ private boolean equalTo(ParsingJob other) { @java.lang.Override public int hashCode() { - return Objects.hash(this.id, this.jobId, this.status, this.data, this.needsHumanReview, this.isReviewed); + return Objects.hash( + this.id, + this.jobId, + this.status, + this.failureReason, + this.data, + this.needsHumanReview, + this.isReviewed); } @java.lang.Override @@ -141,6 +158,10 @@ public interface IsReviewedStage { public interface _FinalStage { ParsingJob build(); + _FinalStage failureReason(Optional failureReason); + + _FinalStage failureReason(ParsingJobFailureReason failureReason); + _FinalStage data(Optional data); _FinalStage data(ParsedLabReportData data); @@ -161,6 +182,8 @@ public static final class Builder private Optional data = Optional.empty(); + private Optional failureReason = Optional.empty(); + @JsonAnySetter private Map additionalProperties = new HashMap<>(); @@ -171,6 +194,7 @@ public Builder from(ParsingJob other) { id(other.getId()); jobId(other.getJobId()); status(other.getStatus()); + failureReason(other.getFailureReason()); data(other.getData()); needsHumanReview(other.getNeedsHumanReview()); isReviewed(other.getIsReviewed()); @@ -225,9 +249,23 @@ public _FinalStage data(Optional data) { return this; } + @java.lang.Override + public _FinalStage failureReason(ParsingJobFailureReason failureReason) { + this.failureReason = Optional.ofNullable(failureReason); + return this; + } + + @java.lang.Override + @JsonSetter(value = "failure_reason", nulls = Nulls.SKIP) + public _FinalStage failureReason(Optional failureReason) { + this.failureReason = failureReason; + return this; + } + @java.lang.Override public ParsingJob build() { - return new ParsingJob(id, jobId, status, data, needsHumanReview, isReviewed, additionalProperties); + return new ParsingJob( + id, jobId, status, failureReason, data, needsHumanReview, isReviewed, additionalProperties); } } } diff --git a/src/main/java/com/vital/api/types/ParsingJobFailureReason.java b/src/main/java/com/vital/api/types/ParsingJobFailureReason.java new file mode 100644 index 00000000..d17115e5 --- /dev/null +++ b/src/main/java/com/vital/api/types/ParsingJobFailureReason.java @@ -0,0 +1,26 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ +package com.vital.api.types; + +import com.fasterxml.jackson.annotation.JsonValue; + +public enum ParsingJobFailureReason { + INVALID_INPUT("invalid_input"), + + LOW_QUALITY("low_quality"), + + NOT_ENGLISH("not_english"); + + private final String value; + + ParsingJobFailureReason(String value) { + this.value = value; + } + + @JsonValue + @java.lang.Override + public String toString() { + return this.value; + } +} diff --git a/src/main/java/com/vital/api/types/ResultMetadata.java b/src/main/java/com/vital/api/types/ResultMetadata.java index 88c2c7a6..7299df6e 100644 --- a/src/main/java/com/vital/api/types/ResultMetadata.java +++ b/src/main/java/com/vital/api/types/ResultMetadata.java @@ -16,18 +16,17 @@ import java.util.Map; import java.util.Objects; import java.util.Optional; -import org.jetbrains.annotations.NotNull; @JsonInclude(JsonInclude.Include.NON_ABSENT) @JsonDeserialize(builder = ResultMetadata.Builder.class) public final class ResultMetadata { - private final String patientFirstName; + private final Optional patientFirstName; - private final String patientLastName; + private final Optional patientLastName; - private final String dob; + private final Optional dob; - private final String labName; + private final Optional labName; private final Optional dateReported; @@ -38,10 +37,10 @@ public final class ResultMetadata { private final Map additionalProperties; private ResultMetadata( - String patientFirstName, - String patientLastName, - String dob, - String labName, + Optional patientFirstName, + Optional patientLastName, + Optional dob, + Optional labName, Optional dateReported, Optional dateCollected, Optional specimenNumber, @@ -57,22 +56,22 @@ private ResultMetadata( } @JsonProperty("patient_first_name") - public String getPatientFirstName() { + public Optional getPatientFirstName() { return patientFirstName; } @JsonProperty("patient_last_name") - public String getPatientLastName() { + public Optional getPatientLastName() { return patientLastName; } @JsonProperty("dob") - public String getDob() { + public Optional getDob() { return dob; } @JsonProperty("lab_name") - public String getLabName() { + public Optional getLabName() { return labName; } @@ -129,67 +128,31 @@ public String toString() { return ObjectMappers.stringify(this); } - public static PatientFirstNameStage builder() { + public static Builder builder() { return new Builder(); } - public interface PatientFirstNameStage { - PatientLastNameStage patientFirstName(@NotNull String patientFirstName); - - Builder from(ResultMetadata other); - } - - public interface PatientLastNameStage { - DobStage patientLastName(@NotNull String patientLastName); - } - - public interface DobStage { - LabNameStage dob(@NotNull String dob); - } - - public interface LabNameStage { - _FinalStage labName(@NotNull String labName); - } - - public interface _FinalStage { - ResultMetadata build(); - - _FinalStage dateReported(Optional dateReported); - - _FinalStage dateReported(String dateReported); - - _FinalStage dateCollected(Optional dateCollected); - - _FinalStage dateCollected(String dateCollected); - - _FinalStage specimenNumber(Optional specimenNumber); - - _FinalStage specimenNumber(String specimenNumber); - } - @JsonIgnoreProperties(ignoreUnknown = true) - public static final class Builder - implements PatientFirstNameStage, PatientLastNameStage, DobStage, LabNameStage, _FinalStage { - private String patientFirstName; + public static final class Builder { + private Optional patientFirstName = Optional.empty(); - private String patientLastName; + private Optional patientLastName = Optional.empty(); - private String dob; + private Optional dob = Optional.empty(); - private String labName; + private Optional labName = Optional.empty(); - private Optional specimenNumber = Optional.empty(); + private Optional dateReported = Optional.empty(); private Optional dateCollected = Optional.empty(); - private Optional dateReported = Optional.empty(); + private Optional specimenNumber = Optional.empty(); @JsonAnySetter private Map additionalProperties = new HashMap<>(); private Builder() {} - @java.lang.Override public Builder from(ResultMetadata other) { patientFirstName(other.getPatientFirstName()); patientLastName(other.getPatientLastName()); @@ -201,74 +164,83 @@ public Builder from(ResultMetadata other) { return this; } - @java.lang.Override - @JsonSetter("patient_first_name") - public PatientLastNameStage patientFirstName(@NotNull String patientFirstName) { - this.patientFirstName = Objects.requireNonNull(patientFirstName, "patientFirstName must not be null"); + @JsonSetter(value = "patient_first_name", nulls = Nulls.SKIP) + public Builder patientFirstName(Optional patientFirstName) { + this.patientFirstName = patientFirstName; return this; } - @java.lang.Override - @JsonSetter("patient_last_name") - public DobStage patientLastName(@NotNull String patientLastName) { - this.patientLastName = Objects.requireNonNull(patientLastName, "patientLastName must not be null"); + public Builder patientFirstName(String patientFirstName) { + this.patientFirstName = Optional.ofNullable(patientFirstName); return this; } - @java.lang.Override - @JsonSetter("dob") - public LabNameStage dob(@NotNull String dob) { - this.dob = Objects.requireNonNull(dob, "dob must not be null"); + @JsonSetter(value = "patient_last_name", nulls = Nulls.SKIP) + public Builder patientLastName(Optional patientLastName) { + this.patientLastName = patientLastName; return this; } - @java.lang.Override - @JsonSetter("lab_name") - public _FinalStage labName(@NotNull String labName) { - this.labName = Objects.requireNonNull(labName, "labName must not be null"); + public Builder patientLastName(String patientLastName) { + this.patientLastName = Optional.ofNullable(patientLastName); return this; } - @java.lang.Override - public _FinalStage specimenNumber(String specimenNumber) { - this.specimenNumber = Optional.ofNullable(specimenNumber); + @JsonSetter(value = "dob", nulls = Nulls.SKIP) + public Builder dob(Optional dob) { + this.dob = dob; return this; } - @java.lang.Override - @JsonSetter(value = "specimen_number", nulls = Nulls.SKIP) - public _FinalStage specimenNumber(Optional specimenNumber) { - this.specimenNumber = specimenNumber; + public Builder dob(String dob) { + this.dob = Optional.ofNullable(dob); return this; } - @java.lang.Override - public _FinalStage dateCollected(String dateCollected) { - this.dateCollected = Optional.ofNullable(dateCollected); + @JsonSetter(value = "lab_name", nulls = Nulls.SKIP) + public Builder labName(Optional labName) { + this.labName = labName; + return this; + } + + public Builder labName(String labName) { + this.labName = Optional.ofNullable(labName); + return this; + } + + @JsonSetter(value = "date_reported", nulls = Nulls.SKIP) + public Builder dateReported(Optional dateReported) { + this.dateReported = dateReported; + return this; + } + + public Builder dateReported(String dateReported) { + this.dateReported = Optional.ofNullable(dateReported); return this; } - @java.lang.Override @JsonSetter(value = "date_collected", nulls = Nulls.SKIP) - public _FinalStage dateCollected(Optional dateCollected) { + public Builder dateCollected(Optional dateCollected) { this.dateCollected = dateCollected; return this; } - @java.lang.Override - public _FinalStage dateReported(String dateReported) { - this.dateReported = Optional.ofNullable(dateReported); + public Builder dateCollected(String dateCollected) { + this.dateCollected = Optional.ofNullable(dateCollected); return this; } - @java.lang.Override - @JsonSetter(value = "date_reported", nulls = Nulls.SKIP) - public _FinalStage dateReported(Optional dateReported) { - this.dateReported = dateReported; + @JsonSetter(value = "specimen_number", nulls = Nulls.SKIP) + public Builder specimenNumber(Optional specimenNumber) { + this.specimenNumber = specimenNumber; + return this; + } + + public Builder specimenNumber(String specimenNumber) { + this.specimenNumber = Optional.ofNullable(specimenNumber); return this; } - @java.lang.Override public ResultMetadata build() { return new ResultMetadata( patientFirstName,