Skip to content

Commit 47ac455

Browse files
authored
Merge pull request #524 from EasyPost/SHPE-483_batch_trackers
feat: adds retrieveBatch tracker function
2 parents 9ead5f2 + 60f59c9 commit 47ac455

File tree

4 files changed

+355
-3
lines changed

4 files changed

+355
-3
lines changed

CHANGELOG.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,14 @@
33
## Next Release
44

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

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

910
- Adds the following functions
10-
- `shipment.createAndBuyLuma`
11-
- `shipment.buyLuma`
12-
- `luma.getPromise`
11+
- `Shipment.createAndBuyLuma`
12+
- `Shipment.buyLuma`
13+
- `Luma.getPromise`
1314

1415
## v8.1.0 (2025-05-29)
1516

src/services/tracker_service.js

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,4 +57,21 @@ export default (easypostClient) =>
5757

5858
return this._retrieve(url);
5959
}
60+
61+
/**
62+
* Retrieve a batch of {@link Tracker trackers}.
63+
* @param {Object} [params] - The parameters to filter the trackers by.
64+
* @returns {Object} - An object containing the list of {@link Tracker trackers}.
65+
*/
66+
static async retrieveBatch(params = {}) {
67+
const url = 'trackers/batch';
68+
69+
try {
70+
const response = await easypostClient._post(url, params);
71+
72+
return this._convertToEasyPostObject(response.body, params);
73+
} catch (e) {
74+
return Promise.reject(e);
75+
}
76+
}
6077
};

test/cassettes/Tracker-Service_4233073632/retrieves-a-batch-of-trackers_745559199/recording.har

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

test/services/tracker.test.js

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,4 +70,18 @@ describe('Tracker Service', function () {
7070
}
7171
}
7272
});
73+
74+
it('retrieves a batch of trackers', async function () {
75+
const tracker = await client.Tracker.create({
76+
tracking_code: 'EZ1000000001',
77+
});
78+
79+
const trackers = await client.Tracker.retrieveBatch({
80+
tracking_codes: [tracker.tracking_code],
81+
});
82+
83+
trackers.trackers.forEach((tracker) => {
84+
expect(tracker).to.be.an.instanceOf(Tracker);
85+
});
86+
});
7387
});

0 commit comments

Comments
 (0)