Skip to content

Commit b4e52d4

Browse files
committed
WIP
1 parent 6d2240d commit b4e52d4

15 files changed

Lines changed: 215 additions & 368 deletions
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package com.traveltime.sdk.dto.requests;
2+
3+
import com.fasterxml.jackson.annotation.JsonInclude;
4+
import com.traveltime.sdk.auth.TravelTimeCredentials;
5+
import com.traveltime.sdk.dto.requests.timemapfast.ArrivalSearches;
6+
import com.traveltime.sdk.dto.responses.errors.TravelTimeError;
7+
import com.traveltime.sdk.utils.AcceptType;
8+
import com.traveltime.sdk.utils.JsonUtils;
9+
import io.vavr.control.Either;
10+
import lombok.*;
11+
import lombok.experimental.SuperBuilder;
12+
import okhttp3.HttpUrl;
13+
import okhttp3.Request;
14+
15+
@SuperBuilder
16+
@Getter
17+
@EqualsAndHashCode(callSuper = true)
18+
@JsonInclude(JsonInclude.Include.NON_NULL)
19+
@NoArgsConstructor
20+
public abstract class BaseTimeMapFastRequest<T> extends TravelTimeRequest<T> {
21+
22+
protected abstract AcceptType acceptType();
23+
24+
@NonNull
25+
ArrivalSearches arrivalSearches;
26+
27+
@Override
28+
public Either<TravelTimeError, Request> createRequest(HttpUrl baseUri, TravelTimeCredentials credentials) {
29+
val uri = baseUri.newBuilder().addPathSegments("time-map/fast").build();
30+
return JsonUtils.toJson(this).map(json -> createPostRequest(credentials, uri, json, acceptType()));
31+
}
32+
}
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
package com.traveltime.sdk.dto.requests;
2+
3+
import com.fasterxml.jackson.annotation.JsonInclude;
4+
import com.traveltime.sdk.auth.TravelTimeCredentials;
5+
import com.traveltime.sdk.dto.requests.timemap.*;
6+
import com.traveltime.sdk.dto.responses.errors.TravelTimeError;
7+
import com.traveltime.sdk.utils.AcceptType;
8+
import com.traveltime.sdk.utils.JsonUtils;
9+
import io.vavr.control.Either;
10+
import jakarta.validation.Valid;
11+
import java.util.List;
12+
import lombok.*;
13+
import lombok.experimental.SuperBuilder;
14+
import okhttp3.HttpUrl;
15+
import okhttp3.Request;
16+
17+
@SuperBuilder
18+
@Getter
19+
@EqualsAndHashCode(callSuper = true)
20+
@JsonInclude(JsonInclude.Include.NON_NULL)
21+
@NoArgsConstructor
22+
public abstract class BaseTimeMapRequest<T> extends TravelTimeRequest<T> {
23+
24+
protected abstract AcceptType acceptType();
25+
26+
@Valid
27+
@Singular
28+
List<DepartureSearch> departureSearches;
29+
30+
@Valid
31+
@Singular
32+
List<ArrivalSearch> arrivalSearches;
33+
34+
@Singular
35+
List<Intersection> intersections;
36+
37+
@Singular
38+
List<Union> unions;
39+
40+
@Override
41+
public Either<TravelTimeError, Request> createRequest(HttpUrl baseUri, TravelTimeCredentials credentials) {
42+
val uri = baseUri.newBuilder().addPathSegments("time-map").build();
43+
return JsonUtils.toJson(this).map(json -> createPostRequest(credentials, uri, json, acceptType()));
44+
}
45+
}

src/main/java/com/traveltime/sdk/dto/requests/TimeMapBoxesRequest.java

Lines changed: 6 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,49 +1,19 @@
11
package com.traveltime.sdk.dto.requests;
22

3-
import com.fasterxml.jackson.annotation.JsonInclude;
4-
import com.traveltime.sdk.auth.TravelTimeCredentials;
5-
import com.traveltime.sdk.dto.requests.timemap.ArrivalSearch;
6-
import com.traveltime.sdk.dto.requests.timemap.DepartureSearch;
7-
import com.traveltime.sdk.dto.requests.timemap.Intersection;
8-
import com.traveltime.sdk.dto.requests.timemap.Union;
93
import com.traveltime.sdk.dto.responses.TimeMapBoxesResponse;
10-
import com.traveltime.sdk.dto.responses.errors.TravelTimeError;
114
import com.traveltime.sdk.utils.AcceptType;
12-
import com.traveltime.sdk.utils.JsonUtils;
13-
import io.vavr.control.Either;
14-
import jakarta.validation.Valid;
15-
import java.util.List;
16-
import lombok.*;
5+
import lombok.EqualsAndHashCode;
6+
import lombok.experimental.SuperBuilder;
177
import lombok.extern.jackson.Jacksonized;
18-
import okhttp3.HttpUrl;
19-
import okhttp3.Request;
208

21-
@Data
22-
@Builder
9+
@SuperBuilder
2310
@Jacksonized
24-
@AllArgsConstructor
2511
@EqualsAndHashCode(callSuper = true)
26-
@JsonInclude(JsonInclude.Include.NON_NULL)
27-
public class TimeMapBoxesRequest extends TravelTimeRequest<TimeMapBoxesResponse> {
28-
@Valid
29-
@Singular
30-
List<DepartureSearch> departureSearches;
31-
32-
@Valid
33-
@Singular
34-
List<ArrivalSearch> arrivalSearches;
35-
36-
@Singular
37-
List<Intersection> intersections;
38-
39-
@Singular
40-
List<Union> unions;
12+
public class TimeMapBoxesRequest extends BaseTimeMapRequest<TimeMapBoxesResponse> {
4113

4214
@Override
43-
public Either<TravelTimeError, Request> createRequest(HttpUrl baseUri, TravelTimeCredentials credentials) {
44-
val uri = baseUri.newBuilder().addPathSegments("time-map").build();
45-
AcceptType acceptType = AcceptType.APPLICATION_BOUNDING_BOXES_JSON;
46-
return JsonUtils.toJson(this).map(json -> createPostRequest(credentials, uri, json, acceptType));
15+
protected AcceptType acceptType() {
16+
return AcceptType.APPLICATION_BOUNDING_BOXES_JSON;
4717
}
4818

4919
@Override

src/main/java/com/traveltime/sdk/dto/requests/TimeMapFastBoxesRequest.java

Lines changed: 6 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,19 @@
11
package com.traveltime.sdk.dto.requests;
22

3-
import com.fasterxml.jackson.annotation.JsonInclude;
4-
import com.traveltime.sdk.auth.TravelTimeCredentials;
5-
import com.traveltime.sdk.dto.requests.timemapfast.ArrivalSearches;
63
import com.traveltime.sdk.dto.responses.TimeMapFastBoxesResponse;
7-
import com.traveltime.sdk.dto.responses.errors.TravelTimeError;
84
import com.traveltime.sdk.utils.AcceptType;
9-
import com.traveltime.sdk.utils.JsonUtils;
10-
import io.vavr.control.Either;
11-
import lombok.*;
5+
import lombok.EqualsAndHashCode;
6+
import lombok.experimental.SuperBuilder;
127
import lombok.extern.jackson.Jacksonized;
13-
import okhttp3.HttpUrl;
14-
import okhttp3.Request;
158

16-
@Data
17-
@Builder
9+
@SuperBuilder
1810
@Jacksonized
19-
@AllArgsConstructor
2011
@EqualsAndHashCode(callSuper = true)
21-
@JsonInclude(JsonInclude.Include.NON_NULL)
22-
public class TimeMapFastBoxesRequest extends TravelTimeRequest<TimeMapFastBoxesResponse> {
23-
@NonNull
24-
ArrivalSearches arrivalSearches;
12+
public class TimeMapFastBoxesRequest extends BaseTimeMapFastRequest<TimeMapFastBoxesResponse> {
2513

2614
@Override
27-
public Either<TravelTimeError, Request> createRequest(HttpUrl baseUri, TravelTimeCredentials credentials) {
28-
val uri = baseUri.newBuilder().addPathSegments("time-map/fast").build();
29-
AcceptType acceptType = AcceptType.APPLICATION_BOUNDING_BOXES_JSON;
30-
return JsonUtils.toJson(this).map(json -> createPostRequest(credentials, uri, json, acceptType));
15+
protected AcceptType acceptType() {
16+
return AcceptType.APPLICATION_BOUNDING_BOXES_JSON;
3117
}
3218

3319
@Override

src/main/java/com/traveltime/sdk/dto/requests/TimeMapFastGeoJsonRequest.java

Lines changed: 6 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,19 @@
11
package com.traveltime.sdk.dto.requests;
22

3-
import com.fasterxml.jackson.annotation.JsonInclude;
4-
import com.traveltime.sdk.auth.TravelTimeCredentials;
5-
import com.traveltime.sdk.dto.requests.timemapfast.ArrivalSearches;
63
import com.traveltime.sdk.dto.responses.TimeMapFastGeoJsonResponse;
7-
import com.traveltime.sdk.dto.responses.errors.TravelTimeError;
84
import com.traveltime.sdk.utils.AcceptType;
9-
import com.traveltime.sdk.utils.JsonUtils;
10-
import io.vavr.control.Either;
11-
import lombok.*;
5+
import lombok.EqualsAndHashCode;
6+
import lombok.experimental.SuperBuilder;
127
import lombok.extern.jackson.Jacksonized;
13-
import okhttp3.HttpUrl;
14-
import okhttp3.Request;
158

16-
@Data
17-
@Builder
9+
@SuperBuilder
1810
@Jacksonized
19-
@AllArgsConstructor
2011
@EqualsAndHashCode(callSuper = true)
21-
@JsonInclude(JsonInclude.Include.NON_NULL)
22-
public class TimeMapFastGeoJsonRequest extends TravelTimeRequest<TimeMapFastGeoJsonResponse> {
23-
@NonNull
24-
ArrivalSearches arrivalSearches;
12+
public class TimeMapFastGeoJsonRequest extends BaseTimeMapFastRequest<TimeMapFastGeoJsonResponse> {
2513

2614
@Override
27-
public Either<TravelTimeError, Request> createRequest(HttpUrl baseUri, TravelTimeCredentials credentials) {
28-
val uri = baseUri.newBuilder().addPathSegments("time-map/fast").build();
29-
return JsonUtils.toJson(this)
30-
.map(json -> createPostRequest(credentials, uri, json, AcceptType.APPLICATION_GEO_JSON));
15+
protected AcceptType acceptType() {
16+
return AcceptType.APPLICATION_GEO_JSON;
3117
}
3218

3319
@Override

src/main/java/com/traveltime/sdk/dto/requests/TimeMapFastRequest.java

Lines changed: 6 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,19 @@
11
package com.traveltime.sdk.dto.requests;
22

3-
import com.fasterxml.jackson.annotation.JsonInclude;
4-
import com.traveltime.sdk.auth.TravelTimeCredentials;
5-
import com.traveltime.sdk.dto.requests.timemapfast.ArrivalSearches;
63
import com.traveltime.sdk.dto.responses.TimeMapFastResponse;
7-
import com.traveltime.sdk.dto.responses.errors.TravelTimeError;
84
import com.traveltime.sdk.utils.AcceptType;
9-
import com.traveltime.sdk.utils.JsonUtils;
10-
import io.vavr.control.Either;
11-
import lombok.*;
5+
import lombok.EqualsAndHashCode;
6+
import lombok.experimental.SuperBuilder;
127
import lombok.extern.jackson.Jacksonized;
13-
import okhttp3.HttpUrl;
14-
import okhttp3.Request;
158

16-
@Data
17-
@Builder
9+
@SuperBuilder
1810
@Jacksonized
19-
@AllArgsConstructor
2011
@EqualsAndHashCode(callSuper = true)
21-
@JsonInclude(JsonInclude.Include.NON_NULL)
22-
public class TimeMapFastRequest extends TravelTimeRequest<TimeMapFastResponse> {
23-
@NonNull
24-
ArrivalSearches arrivalSearches;
12+
public class TimeMapFastRequest extends BaseTimeMapFastRequest<TimeMapFastResponse> {
2513

2614
@Override
27-
public Either<TravelTimeError, Request> createRequest(HttpUrl baseUri, TravelTimeCredentials credentials) {
28-
val uri = baseUri.newBuilder().addPathSegments("time-map/fast").build();
29-
return JsonUtils.toJson(this)
30-
.map(json -> createPostRequest(credentials, uri, json, AcceptType.APPLICATION_JSON));
15+
protected AcceptType acceptType() {
16+
return AcceptType.APPLICATION_JSON;
3117
}
3218

3319
@Override

src/main/java/com/traveltime/sdk/dto/requests/TimeMapFastWktRequest.java

Lines changed: 6 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,25 @@
11
package com.traveltime.sdk.dto.requests;
22

33
import com.fasterxml.jackson.annotation.JsonInclude;
4-
import com.traveltime.sdk.auth.TravelTimeCredentials;
5-
import com.traveltime.sdk.dto.requests.timemapfast.ArrivalSearches;
64
import com.traveltime.sdk.dto.responses.TimeMapFastWktResponse;
7-
import com.traveltime.sdk.dto.responses.errors.TravelTimeError;
85
import com.traveltime.sdk.utils.AcceptType;
9-
import com.traveltime.sdk.utils.JsonUtils;
10-
import io.vavr.control.Either;
116
import lombok.*;
7+
import lombok.experimental.SuperBuilder;
128
import lombok.extern.jackson.Jacksonized;
13-
import okhttp3.HttpUrl;
14-
import okhttp3.Request;
159

16-
@Data
17-
@Builder
10+
@SuperBuilder
1811
@Jacksonized
19-
@AllArgsConstructor
2012
@EqualsAndHashCode(callSuper = true)
2113
@JsonInclude(JsonInclude.Include.NON_NULL)
22-
public class TimeMapFastWktRequest extends TravelTimeRequest<TimeMapFastWktResponse> {
23-
@NonNull
24-
ArrivalSearches arrivalSearches;
14+
public class TimeMapFastWktRequest extends BaseTimeMapFastRequest<TimeMapFastWktResponse> {
2515

2616
@Builder.Default
17+
@Getter
2718
boolean withHoles = true;
2819

29-
private AcceptType acceptType() {
30-
return withHoles ? AcceptType.APPLICATION_WKT_JSON : AcceptType.APPLICATION_WKT_NO_HOLES_JSON;
31-
}
32-
3320
@Override
34-
public Either<TravelTimeError, Request> createRequest(HttpUrl baseUri, TravelTimeCredentials credentials) {
35-
val uri = baseUri.newBuilder().addPathSegments("time-map/fast").build();
36-
return JsonUtils.toJson(this).map(json -> createPostRequest(credentials, uri, json, acceptType()));
21+
protected AcceptType acceptType() {
22+
return withHoles ? AcceptType.APPLICATION_WKT_JSON : AcceptType.APPLICATION_WKT_NO_HOLES_JSON;
3723
}
3824

3925
@Override

src/main/java/com/traveltime/sdk/dto/requests/TimeMapGeoJsonRequest.java

Lines changed: 6 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,49 +1,19 @@
11
package com.traveltime.sdk.dto.requests;
22

3-
import com.fasterxml.jackson.annotation.JsonInclude;
4-
import com.traveltime.sdk.auth.TravelTimeCredentials;
5-
import com.traveltime.sdk.dto.requests.timemap.ArrivalSearch;
6-
import com.traveltime.sdk.dto.requests.timemap.DepartureSearch;
7-
import com.traveltime.sdk.dto.requests.timemap.Intersection;
8-
import com.traveltime.sdk.dto.requests.timemap.Union;
93
import com.traveltime.sdk.dto.responses.TimeMapGeoJsonResponse;
10-
import com.traveltime.sdk.dto.responses.errors.TravelTimeError;
114
import com.traveltime.sdk.utils.AcceptType;
12-
import com.traveltime.sdk.utils.JsonUtils;
13-
import io.vavr.control.Either;
14-
import jakarta.validation.Valid;
15-
import java.util.List;
16-
import lombok.*;
5+
import lombok.EqualsAndHashCode;
6+
import lombok.experimental.SuperBuilder;
177
import lombok.extern.jackson.Jacksonized;
18-
import okhttp3.HttpUrl;
19-
import okhttp3.Request;
208

21-
@Data
22-
@Builder
9+
@SuperBuilder
2310
@Jacksonized
24-
@AllArgsConstructor
2511
@EqualsAndHashCode(callSuper = true)
26-
@JsonInclude(JsonInclude.Include.NON_NULL)
27-
public class TimeMapGeoJsonRequest extends TravelTimeRequest<TimeMapGeoJsonResponse> {
28-
@Valid
29-
@Singular
30-
List<DepartureSearch> departureSearches;
31-
32-
@Valid
33-
@Singular
34-
List<ArrivalSearch> arrivalSearches;
35-
36-
@Singular
37-
List<Intersection> intersections;
38-
39-
@Singular
40-
List<Union> unions;
12+
public class TimeMapGeoJsonRequest extends BaseTimeMapRequest<TimeMapGeoJsonResponse> {
4113

4214
@Override
43-
public Either<TravelTimeError, Request> createRequest(HttpUrl baseUri, TravelTimeCredentials credentials) {
44-
val uri = baseUri.newBuilder().addPathSegments("time-map").build();
45-
return JsonUtils.toJson(this)
46-
.map(json -> createPostRequest(credentials, uri, json, AcceptType.APPLICATION_GEO_JSON));
15+
protected AcceptType acceptType() {
16+
return AcceptType.APPLICATION_GEO_JSON;
4717
}
4818

4919
@Override

0 commit comments

Comments
 (0)