99use Tracking \Exception \AfterShipError ;
1010use Tracking \Exception \ErrorCode ;
1111use Tracking \Transport \Http ;
12- use Tracking \API \Tracking \GetTrackingsQuery ;
1312use Tracking \API \Tracking \GetTrackingByIdQuery ;
13+ use Tracking \API \Tracking \GetTrackingsQuery ;
1414
1515class Tracking extends APIBase
1616{
@@ -21,22 +21,6 @@ public function __construct(Http $httpClient)
2121 $ this ->httpClient = $ httpClient ;
2222 }
2323
24- /**
25- * @throws AfterShipError
26- */
27- public function createTracking (
28- \Tracking \API \Tracking \CreateTrackingRequest $ body ,
29- array $ headers = []
30- ): \Tracking \API \Tracking \CreateTrackingResponse {
31- $ options = [
32- 'headers ' => $ headers ,
33-
34- 'json ' => $ body ->toRequestArray (),
35- ];
36- $ resp = $ this ->httpClient ->request ('POST ' , sprintf ("/tracking/2025-01/trackings " ), $ options );
37-
38- return $ this ->parseSingleResource ($ resp , \Tracking \API \Tracking \CreateTrackingResponse::class);
39- }
4024 /**
4125 * @throws AfterShipError
4226 */
@@ -61,17 +45,20 @@ public function updateTrackingById(
6145 /**
6246 * @throws AfterShipError
6347 */
64- public function getTrackings (
65- GetTrackingsQuery $ query = null ,
48+ public function retrackTrackingById (
49+ string $ id ,
6650 array $ headers = []
67- ): \Tracking \API \Tracking \GetTrackingsResponse {
51+ ): \Tracking \API \Tracking \RetrackTrackingByIdResponse {
52+ if ($ id === "" ) {
53+ throw ErrorCode::genLocalError (ErrorCode::INVALID_REQUEST , "Param 'id' cannot be an empty string " );
54+ }
55+
6856 $ options = [
6957 'headers ' => $ headers ,
70- 'query ' => $ query ? $ query ->toArray () : [],
7158 ];
72- $ resp = $ this ->httpClient ->request ('GET ' , sprintf ("/tracking/2025-01/trackings " ), $ options );
59+ $ resp = $ this ->httpClient ->request ('POST ' , sprintf ("/tracking/2025-01/trackings/%s/retrack " , $ id ), $ options );
7360
74- return $ this ->parseSingleResource ($ resp , \Tracking \API \Tracking \GetTrackingsResponse ::class);
61+ return $ this ->parseSingleResource ($ resp , \Tracking \API \Tracking \RetrackTrackingByIdResponse ::class);
7562 }
7663 /**
7764 * @throws AfterShipError
@@ -114,40 +101,53 @@ public function deleteTrackingById(
114101 /**
115102 * @throws AfterShipError
116103 */
117- public function retrackTrackingById (
104+ public function markTrackingCompletedById (
118105 string $ id ,
106+ \Tracking \API \Tracking \MarkTrackingCompletedByIdRequest $ body ,
119107 array $ headers = []
120- ): \Tracking \API \Tracking \RetrackTrackingByIdResponse {
108+ ): \Tracking \API \Tracking \MarkTrackingCompletedByIdResponse {
121109 if ($ id === "" ) {
122110 throw ErrorCode::genLocalError (ErrorCode::INVALID_REQUEST , "Param 'id' cannot be an empty string " );
123111 }
124112
125113 $ options = [
126114 'headers ' => $ headers ,
115+
116+ 'json ' => $ body ->toRequestArray (),
127117 ];
128- $ resp = $ this ->httpClient ->request ('POST ' , sprintf ("/tracking/2025-01/trackings/%s/retrack " , $ id ), $ options );
118+ $ resp = $ this ->httpClient ->request ('POST ' , sprintf ("/tracking/2025-01/trackings/%s/mark-as-completed " , $ id ), $ options );
129119
130- return $ this ->parseSingleResource ($ resp , \Tracking \API \Tracking \RetrackTrackingByIdResponse ::class);
120+ return $ this ->parseSingleResource ($ resp , \Tracking \API \Tracking \MarkTrackingCompletedByIdResponse ::class);
131121 }
132122 /**
133123 * @throws AfterShipError
134124 */
135- public function markTrackingCompletedById (
136- string $ id ,
137- \Tracking \API \Tracking \MarkTrackingCompletedByIdRequest $ body ,
125+ public function getTrackings (
126+ GetTrackingsQuery $ query = null ,
138127 array $ headers = []
139- ): \Tracking \API \Tracking \MarkTrackingCompletedByIdResponse {
140- if ($ id === "" ) {
141- throw ErrorCode::genLocalError (ErrorCode::INVALID_REQUEST , "Param 'id' cannot be an empty string " );
142- }
128+ ): \Tracking \API \Tracking \GetTrackingsResponse {
129+ $ options = [
130+ 'headers ' => $ headers ,
131+ 'query ' => $ query ? $ query ->toArray () : [],
132+ ];
133+ $ resp = $ this ->httpClient ->request ('GET ' , sprintf ("/tracking/2025-01/trackings " ), $ options );
143134
135+ return $ this ->parseSingleResource ($ resp , \Tracking \API \Tracking \GetTrackingsResponse::class);
136+ }
137+ /**
138+ * @throws AfterShipError
139+ */
140+ public function createTracking (
141+ \Tracking \API \Tracking \CreateTrackingRequest $ body ,
142+ array $ headers = []
143+ ): \Tracking \API \Tracking \CreateTrackingResponse {
144144 $ options = [
145145 'headers ' => $ headers ,
146146
147147 'json ' => $ body ->toRequestArray (),
148148 ];
149- $ resp = $ this ->httpClient ->request ('POST ' , sprintf ("/tracking/2025-01/trackings/%s/mark-as-completed " , $ id ), $ options );
149+ $ resp = $ this ->httpClient ->request ('POST ' , sprintf ("/tracking/2025-01/trackings " ), $ options );
150150
151- return $ this ->parseSingleResource ($ resp , \Tracking \API \Tracking \MarkTrackingCompletedByIdResponse ::class);
151+ return $ this ->parseSingleResource ($ resp , \Tracking \API \Tracking \CreateTrackingResponse ::class);
152152 }
153153}
0 commit comments