Skip to content

Commit 3dc4a0b

Browse files
authored
Merge pull request #358 from EasyPost/SHPE-483_batch_trackers
feat: add retrieveBatch tracker function
2 parents 37fb268 + 45f72c3 commit 3dc4a0b

File tree

4 files changed

+224
-0
lines changed

4 files changed

+224
-0
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
## Next Release
44

55
- Adds support for `UspsShipAccount`
6+
- Adds `tracker.retrieveBatch` function
67

78
## v8.2.0 (2025-06-18)
89

src/main/java/com/easypost/service/TrackerService.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,4 +100,20 @@ public TrackerCollection apply(Map<String, Object> parameters) {
100100
}
101101
}, collection.getTrackers(), pageSize);
102102
}
103+
104+
/**
105+
* Retrieve a batch of Tracker objects.
106+
*
107+
* @param params Map of parameters used to filter the list of Trackers.
108+
* @return TrackerCollection object.
109+
* @throws EasyPostException when the request fails.
110+
*/
111+
public TrackerCollection retrieveBatch(final Map<String, Object> params) throws EasyPostException {
112+
String endpoint = "trackers/batch";
113+
114+
TrackerCollection trackerCollection =
115+
Requestor.request(RequestMethod.POST, endpoint, params, TrackerCollection.class, client);
116+
117+
return trackerCollection;
118+
}
103119
}

src/test/cassettes/tracker/retrieve_batch.json

Lines changed: 186 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/test/java/com/easypost/TrackerTest.java

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -207,4 +207,25 @@ public Map<String, Object> getNextPageParams() throws EndOfPaginationError {
207207
assertEquals(trackingCode, nextPageParams.get("tracking_code"));
208208
assertEquals(carrier, nextPageParams.get("carrier"));
209209
}
210+
211+
/**
212+
* Test retrieving a batch of trackers.
213+
*
214+
* @throws EasyPostException when the request fails.
215+
*/
216+
@Test
217+
public void testRetrieveBatch() throws EasyPostException {
218+
vcr.setUpTest("retrieve_batch");
219+
220+
Tracker tracker = createBasicTracker();
221+
222+
Map<String, Object> params = new HashMap<>();
223+
params.put("tracking_codes", ImmutableList.of(tracker.getTrackingCode()));
224+
225+
TrackerCollection trackers = vcr.client.tracker.retrieveBatch(params);
226+
227+
List<Tracker> trackersList = trackers.getTrackers();
228+
229+
assertTrue(trackersList.stream().allMatch(singleTracker -> singleTracker != null));
230+
}
210231
}

0 commit comments

Comments
 (0)