Skip to content

Commit c1b76f6

Browse files
committed
Differentiate between date and datetime
1 parent 35e3996 commit c1b76f6

25 files changed

+291
-624
lines changed

src/main/java/com/twilio/converter/DateConverter.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,4 +62,18 @@ public static LocalDate localDateFromString(String dateString) {
6262
return null;
6363
}
6464
}
65+
66+
/**
67+
* Format a @see org.joda.time.LocalDate.
68+
*
69+
* @param date date to format
70+
* @return formatted date in YYYY-MM-DD
71+
*/
72+
public static String dateStringFromLocalDate(LocalDate date) {
73+
try {
74+
return date.toString(DATE_PATTERN);
75+
} catch (Exception e) {
76+
return null;
77+
}
78+
}
6579
}

src/main/java/com/twilio/http/Request.java

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import com.twilio.exception.InvalidRequestException;
77
import org.apache.commons.codec.binary.Base64;
88
import org.joda.time.DateTime;
9+
import org.joda.time.LocalDate;
910

1011
import java.io.UnsupportedEncodingException;
1112
import java.net.MalformedURLException;
@@ -21,7 +22,8 @@
2122

2223
public class Request {
2324

24-
public static final String QUERY_STRING_DATE_FORMAT = "yyyy-MM-dd'T'HH:mm:ss";
25+
public static final String QUERY_STRING_DATE_TIME_FORMAT = "yyyy-MM-dd'T'HH:mm:ss";
26+
public static final String QUERY_STRING_DATE_FORMAT = "yyyy-MM-dd";
2527

2628
private final HttpMethod method;
2729
private final String url;
@@ -148,7 +150,7 @@ public URL constructURL() {
148150
* @param name name of query parameter
149151
* @param range date range
150152
*/
151-
public void addQueryDateRange(final String name, final Range<DateTime> range) {
153+
public void addQueryDateRange(final String name, final Range<LocalDate> range) {
152154
if (range.hasLowerBound()) {
153155
String value = range.lowerEndpoint().toString(QUERY_STRING_DATE_FORMAT);
154156
addQueryParam(name + ">", value);
@@ -160,6 +162,24 @@ public void addQueryDateRange(final String name, final Range<DateTime> range) {
160162
}
161163
}
162164

165+
/**
166+
* Add query parameters for date ranges.
167+
*
168+
* @param name name of query parameter
169+
* @param range date range
170+
*/
171+
public void addQueryDateTimeRange(final String name, final Range<DateTime> range) {
172+
if (range.hasLowerBound()) {
173+
String value = range.lowerEndpoint().toString(QUERY_STRING_DATE_TIME_FORMAT);
174+
addQueryParam(name + ">", value);
175+
}
176+
177+
if (range.hasUpperBound()) {
178+
String value = range.upperEndpoint().toString(QUERY_STRING_DATE_TIME_FORMAT);
179+
addQueryParam(name + "<", value);
180+
}
181+
}
182+
163183
/**
164184
* Add a query parameter.
165185
*

src/main/java/com/twilio/rest/api/v2010/account/CallReader.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -250,15 +250,15 @@ private void addQueryParams(final Request request) {
250250
}
251251

252252
if (absoluteStartTime != null) {
253-
request.addQueryParam("StartTime", absoluteStartTime.toString(Request.QUERY_STRING_DATE_FORMAT));
253+
request.addQueryParam("StartTime", absoluteStartTime.toString(Request.QUERY_STRING_DATE_TIME_FORMAT));
254254
} else if (rangeStartTime != null) {
255-
request.addQueryDateRange("StartTime", rangeStartTime);
255+
request.addQueryDateTimeRange("StartTime", rangeStartTime);
256256
}
257257

258258
if (absoluteEndTime != null) {
259-
request.addQueryParam("EndTime", absoluteEndTime.toString(Request.QUERY_STRING_DATE_FORMAT));
259+
request.addQueryParam("EndTime", absoluteEndTime.toString(Request.QUERY_STRING_DATE_TIME_FORMAT));
260260
} else if (rangeEndTime != null) {
261-
request.addQueryDateRange("EndTime", rangeEndTime);
261+
request.addQueryDateTimeRange("EndTime", rangeEndTime);
262262
}
263263

264264
if (getPageSize() != null) {

src/main/java/com/twilio/rest/api/v2010/account/ConferenceReader.java

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,14 @@
2020
import com.twilio.http.Response;
2121
import com.twilio.http.TwilioRestClient;
2222
import com.twilio.rest.Domains;
23-
import org.joda.time.DateTime;
23+
import org.joda.time.LocalDate;
2424

2525
public class ConferenceReader extends Reader<Conference> {
2626
private String accountSid;
27-
private DateTime absoluteDateCreated;
28-
private Range<DateTime> rangeDateCreated;
29-
private DateTime absoluteDateUpdated;
30-
private Range<DateTime> rangeDateUpdated;
27+
private LocalDate absoluteDateCreated;
28+
private Range<LocalDate> rangeDateCreated;
29+
private LocalDate absoluteDateUpdated;
30+
private Range<LocalDate> rangeDateUpdated;
3131
private String friendlyName;
3232
private Conference.Status status;
3333

@@ -53,7 +53,7 @@ public ConferenceReader(final String accountSid) {
5353
* @param absoluteDateCreated Filter by date created
5454
* @return this
5555
*/
56-
public ConferenceReader byDateCreated(final DateTime absoluteDateCreated) {
56+
public ConferenceReader byDateCreated(final LocalDate absoluteDateCreated) {
5757
this.rangeDateCreated = null;
5858
this.absoluteDateCreated = absoluteDateCreated;
5959
return this;
@@ -66,7 +66,7 @@ public ConferenceReader byDateCreated(final DateTime absoluteDateCreated) {
6666
* @param rangeDateCreated Filter by date created
6767
* @return this
6868
*/
69-
public ConferenceReader byDateCreated(final Range<DateTime> rangeDateCreated) {
69+
public ConferenceReader byDateCreated(final Range<LocalDate> rangeDateCreated) {
7070
this.absoluteDateCreated = null;
7171
this.rangeDateCreated = rangeDateCreated;
7272
return this;
@@ -80,7 +80,7 @@ public ConferenceReader byDateCreated(final Range<DateTime> rangeDateCreated) {
8080
* @param absoluteDateUpdated Filter by date updated
8181
* @return this
8282
*/
83-
public ConferenceReader byDateUpdated(final DateTime absoluteDateUpdated) {
83+
public ConferenceReader byDateUpdated(final LocalDate absoluteDateUpdated) {
8484
this.rangeDateUpdated = null;
8585
this.absoluteDateUpdated = absoluteDateUpdated;
8686
return this;
@@ -94,7 +94,7 @@ public ConferenceReader byDateUpdated(final DateTime absoluteDateUpdated) {
9494
* @param rangeDateUpdated Filter by date updated
9595
* @return this
9696
*/
97-
public ConferenceReader byDateUpdated(final Range<DateTime> rangeDateUpdated) {
97+
public ConferenceReader byDateUpdated(final Range<LocalDate> rangeDateUpdated) {
9898
this.absoluteDateUpdated = null;
9999
this.rangeDateUpdated = rangeDateUpdated;
100100
return this;

src/main/java/com/twilio/rest/api/v2010/account/MessageReader.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -192,9 +192,9 @@ private void addQueryParams(final Request request) {
192192
}
193193

194194
if (absoluteDateSent != null) {
195-
request.addQueryParam("DateSent", absoluteDateSent.toString(Request.QUERY_STRING_DATE_FORMAT));
195+
request.addQueryParam("DateSent", absoluteDateSent.toString(Request.QUERY_STRING_DATE_TIME_FORMAT));
196196
} else if (rangeDateSent != null) {
197-
request.addQueryDateRange("DateSent", rangeDateSent);
197+
request.addQueryDateTimeRange("DateSent", rangeDateSent);
198198
}
199199

200200
if (getPageSize() != null) {

src/main/java/com/twilio/rest/api/v2010/account/NotificationReader.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,13 @@
2020
import com.twilio.http.Response;
2121
import com.twilio.http.TwilioRestClient;
2222
import com.twilio.rest.Domains;
23-
import org.joda.time.DateTime;
23+
import org.joda.time.LocalDate;
2424

2525
public class NotificationReader extends Reader<Notification> {
2626
private String accountSid;
2727
private Integer log;
28-
private DateTime absoluteMessageDate;
29-
private Range<DateTime> rangeMessageDate;
28+
private LocalDate absoluteMessageDate;
29+
private Range<LocalDate> rangeMessageDate;
3030

3131
/**
3232
* Construct a new NotificationReader.
@@ -61,7 +61,7 @@ public NotificationReader byLog(final Integer log) {
6161
* @param absoluteMessageDate Filter by date
6262
* @return this
6363
*/
64-
public NotificationReader byMessageDate(final DateTime absoluteMessageDate) {
64+
public NotificationReader byMessageDate(final LocalDate absoluteMessageDate) {
6565
this.rangeMessageDate = null;
6666
this.absoluteMessageDate = absoluteMessageDate;
6767
return this;
@@ -74,7 +74,7 @@ public NotificationReader byMessageDate(final DateTime absoluteMessageDate) {
7474
* @param rangeMessageDate Filter by date
7575
* @return this
7676
*/
77-
public NotificationReader byMessageDate(final Range<DateTime> rangeMessageDate) {
77+
public NotificationReader byMessageDate(final Range<LocalDate> rangeMessageDate) {
7878
this.absoluteMessageDate = null;
7979
this.rangeMessageDate = rangeMessageDate;
8080
return this;

src/main/java/com/twilio/rest/api/v2010/account/RecordingReader.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -162,9 +162,9 @@ private Page<Recording> pageForRequest(final TwilioRestClient client, final Requ
162162
*/
163163
private void addQueryParams(final Request request) {
164164
if (absoluteDateCreated != null) {
165-
request.addQueryParam("DateCreated", absoluteDateCreated.toString(Request.QUERY_STRING_DATE_FORMAT));
165+
request.addQueryParam("DateCreated", absoluteDateCreated.toString(Request.QUERY_STRING_DATE_TIME_FORMAT));
166166
} else if (rangeDateCreated != null) {
167-
request.addQueryDateRange("DateCreated", rangeDateCreated);
167+
request.addQueryDateTimeRange("DateCreated", rangeDateCreated);
168168
}
169169

170170
if (getPageSize() != null) {

src/main/java/com/twilio/rest/api/v2010/account/call/FeedbackSummaryCreator.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -147,11 +147,11 @@ public FeedbackSummary execute(final TwilioRestClient client) {
147147
*/
148148
private void addPostParams(final Request request) {
149149
if (startDate != null) {
150-
request.addPostParam("StartDate", startDate.toString());
150+
request.addPostParam("StartDate", DateConverter.dateStringFromLocalDate(startDate));
151151
}
152152

153153
if (endDate != null) {
154-
request.addPostParam("EndDate", endDate.toString());
154+
request.addPostParam("EndDate", DateConverter.dateStringFromLocalDate(endDate));
155155
}
156156

157157
if (includeSubaccounts != null) {

src/main/java/com/twilio/rest/api/v2010/account/call/NotificationReader.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,14 @@
2020
import com.twilio.http.Response;
2121
import com.twilio.http.TwilioRestClient;
2222
import com.twilio.rest.Domains;
23-
import org.joda.time.DateTime;
23+
import org.joda.time.LocalDate;
2424

2525
public class NotificationReader extends Reader<Notification> {
2626
private String accountSid;
2727
private final String callSid;
2828
private Integer log;
29-
private DateTime absoluteMessageDate;
30-
private Range<DateTime> rangeMessageDate;
29+
private LocalDate absoluteMessageDate;
30+
private Range<LocalDate> rangeMessageDate;
3131

3232
/**
3333
* Construct a new NotificationReader.
@@ -67,7 +67,7 @@ public NotificationReader byLog(final Integer log) {
6767
* @param absoluteMessageDate The absolute_message_date
6868
* @return this
6969
*/
70-
public NotificationReader byMessageDate(final DateTime absoluteMessageDate) {
70+
public NotificationReader byMessageDate(final LocalDate absoluteMessageDate) {
7171
this.rangeMessageDate = null;
7272
this.absoluteMessageDate = absoluteMessageDate;
7373
return this;
@@ -79,7 +79,7 @@ public NotificationReader byMessageDate(final DateTime absoluteMessageDate) {
7979
* @param rangeMessageDate The range_message_date
8080
* @return this
8181
*/
82-
public NotificationReader byMessageDate(final Range<DateTime> rangeMessageDate) {
82+
public NotificationReader byMessageDate(final Range<LocalDate> rangeMessageDate) {
8383
this.absoluteMessageDate = null;
8484
this.rangeMessageDate = rangeMessageDate;
8585
return this;

src/main/java/com/twilio/rest/api/v2010/account/call/RecordingReader.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,13 @@
2020
import com.twilio.http.Response;
2121
import com.twilio.http.TwilioRestClient;
2222
import com.twilio.rest.Domains;
23-
import org.joda.time.DateTime;
23+
import org.joda.time.LocalDate;
2424

2525
public class RecordingReader extends Reader<Recording> {
2626
private String accountSid;
2727
private final String callSid;
28-
private DateTime absoluteDateCreated;
29-
private Range<DateTime> rangeDateCreated;
28+
private LocalDate absoluteDateCreated;
29+
private Range<LocalDate> rangeDateCreated;
3030

3131
/**
3232
* Construct a new RecordingReader.
@@ -55,7 +55,7 @@ public RecordingReader(final String accountSid,
5555
* @param absoluteDateCreated The absolute_date_created
5656
* @return this
5757
*/
58-
public RecordingReader byDateCreated(final DateTime absoluteDateCreated) {
58+
public RecordingReader byDateCreated(final LocalDate absoluteDateCreated) {
5959
this.rangeDateCreated = null;
6060
this.absoluteDateCreated = absoluteDateCreated;
6161
return this;
@@ -67,7 +67,7 @@ public RecordingReader byDateCreated(final DateTime absoluteDateCreated) {
6767
* @param rangeDateCreated The range_date_created
6868
* @return this
6969
*/
70-
public RecordingReader byDateCreated(final Range<DateTime> rangeDateCreated) {
70+
public RecordingReader byDateCreated(final Range<LocalDate> rangeDateCreated) {
7171
this.absoluteDateCreated = null;
7272
this.rangeDateCreated = rangeDateCreated;
7373
return this;

0 commit comments

Comments
 (0)