Skip to content

Commit 6184224

Browse files
committed
Remove DTO
1 parent 3648cde commit 6184224

File tree

10 files changed

+66
-145
lines changed

10 files changed

+66
-145
lines changed

README.md

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ A Laravel package for managing [TrackingMore API](https://www.trackingmore.com/d
44

55
TrackingMore helps eCommerce businesses to update and manage their shipment with efficiency.
66

7+
This package is a wrapper of [TrackingMore API PHP SDK](https://github.com/TrackingMore-API/trackingmore-sdk-php) for Laravel.
8+
79
## Version support
810

911
- **PHP**: 8.0 | 8.1 | 8.2
@@ -45,10 +47,10 @@ public function __construct(private Tracking $tracking, private Courier $courier
4547
public function index()
4648
{
4749
// Create a tracking
48-
$this->tracking->create(new TrackingData(trackingNumber: 'xyz123', courierCode: 'ups'));
50+
$this->tracking->createTracking(['tracking_number' => 'xyz123', 'courier_code' => 'ups']);
4951

5052
// Get all couriers
51-
$couriers = $this->courier->getAllCourier();
53+
$couriers = $this->courier->getAllCouriers();
5254
}
5355
```
5456

@@ -58,27 +60,27 @@ Or use it with Facade:
5860
use Anvari182\TrackingMore\Facades\TrackingMore;
5961

6062
// Create a tracking
61-
TrackingMore::tracking()->create(new TrackingData(trackingNumber: 'xyz123', courierCode: 'ups'))
63+
TrackingMore::tracking()->createTracking(['tracking_number' => 'xyz123', 'courier_code' => 'ups'])
6264

6365
// Get all couriers
64-
$couriers = TrackingMore::courier()->getAllCourier();
66+
$couriers = TrackingMore::courier()->getAllCouriers();
6567
```
6668

6769
## Tracking
6870
##### Create a tracking
6971
```php
70-
TrackingMore::tracking()->create(new TrackingData(trackingNumber: 'xyz123', courierCode: 'ups'))
72+
TrackingMore::tracking()->createTracking(['tracking_number' => 'xyz123', 'courier_code' => 'ups'])
7173
```
7274

7375
##### Get results
7476
```php
75-
TrackingMore::tracking()->getResults()
77+
TrackingMore::tracking()->getTrackingResults()
7678
```
7779

7880
##### Create trackings
7981
Create multiple trackings (Max. 40 tracking numbers create in one call).
8082
```php
81-
TrackingMore::tracking()->createMultiple([
83+
TrackingMore::tracking()->batchCreateTrackings([
8284
['tracking_number' => 'xyz1234', 'courier_code' => 'ups'],
8385
['tracking_number' => 'xyz1235', 'courier_code' => 'ups'],
8486
['tracking_number' => 'xyz1236', 'courier_code' => 'ups'],
@@ -88,37 +90,37 @@ Create multiple trackings (Max. 40 tracking numbers create in one call).
8890
##### Update a tracking by ID
8991
Tracking ID
9092
```php
91-
TrackingMore::tracking()->updateById('13123213213213', ['note' => 'New test order note', 'customer_name'=>'New name'])
93+
TrackingMore::tracking()->updateTrackingByID('13123213213213', ['note' => 'New test order note', 'customer_name'=>'New name'])
9294
```
9395

9496
##### Delete a tracking by ID
9597
Tracking ID
9698
```php
97-
TrackingMore::tracking()->deleteById('13123213213213')
99+
TrackingMore::tracking()->deleteTrackingByID('13123213213213')
98100
```
99101

100102
##### Retrack an expired tracking by ID
101103
Tracking ID
102104
```php
103-
TrackingMore::tracking()->retrackByID('13123213213213')
105+
TrackingMore::tracking()->retrackTrackingByID('13123213213213')
104106
```
105107

106108
## Courier
107109

108110
##### Detect courier
109111
Return a list of matched couriers based on submitted tracking number.
110112
```php
111-
TrackingMore::courier()->detectCourier(['tracking_number' => '9261290312833844954982'])
113+
TrackingMore::courier()->detect(['tracking_number' => '9261290312833844954982'])
112114
```
113115

114116
##### Get all couriers
115117
Return a list of all supported couriers.
116118
```php
117-
TrackingMore::courier()->getAll()
119+
TrackingMore::courier()->getAllCouriers()
118120
```
119121

120122
## Dependencies
121-
[TrackingMore SDK](https://github.com/TrackingMore-API/trackingmore-sdk-php) v.1.0.0
123+
[TrackingMore API PHP SDK](https://github.com/TrackingMore-API/trackingmore-sdk-php) v.1.0.0
122124

123125
## Contributing
124126
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

composer.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,14 @@
1111
"require": {
1212
"php": "^8.0|^8.1",
1313
"illuminate/support": "^10.0",
14-
"spatie/laravel-data": "^3.11",
1514
"trackingmore/trackingmore-sdk-php": "^0.1.1"
1615
},
1716
"require-dev": {
1817
"guzzlehttp/guzzle": "^7.5",
1918
"laravel/pint": "^1.3",
2019
"mockery/mockery": "^1.6",
2120
"nunomaduro/collision": "^6.3",
22-
"orchestra/testbench": "^7.17",
21+
"orchestra/testbench": "^8.17",
2322
"pestphp/pest": "^1.22",
2423
"phpstan/phpstan": "^1.9",
2524
"phpunit/phpunit": "^9.5"

src/Data/TrackingData.php

Lines changed: 0 additions & 35 deletions
This file was deleted.

src/Helpers/ArrayHelper.php

Lines changed: 0 additions & 24 deletions
This file was deleted.

src/TrackingMore.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22

33
namespace Anvari182\TrackingMore;
44

5-
use TrackingMore\Couriers as Courier;
6-
use TrackingMore\Trackings as Tracking;
5+
use Anvari182\TrackingMore\TrackingMoreRequests\Courier;
6+
use Anvari182\TrackingMore\TrackingMoreRequests\Tracking;
77

88
class TrackingMore
99
{

src/TrackingMoreRequests/Courier.php

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,24 +2,26 @@
22

33
namespace Anvari182\TrackingMore\TrackingMoreRequests;
44

5-
use Exception;
65
use TrackingMore\Couriers;
6+
use TrackingMore\Interfaces\CouriersInterface;
7+
use Trackingmore\TrackingMoreException;
78

8-
class Courier extends Couriers
9+
class Courier implements CouriersInterface
910
{
10-
/**
11-
* @throws Exception
12-
*/
13-
public function detectCourier(string $trackingNumber): array
11+
public function __construct(private Couriers $couriers)
12+
{
13+
}
14+
15+
public function getAllCouriers(): array
1416
{
15-
return $this->detect(['tracking_number' => $trackingNumber]);
17+
return $this->couriers->getAllCouriers();
1618
}
1719

1820
/**
19-
* @return array
21+
* @throws TrackingMoreException
2022
*/
21-
public function getAll(): array
23+
public function detect($params = []): array
2224
{
23-
return $this->getAllCouriers();
25+
return $this->couriers->detect($params);
2426
}
2527
}

src/TrackingMoreRequests/Tracking.php

Lines changed: 19 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -2,81 +2,58 @@
22

33
namespace Anvari182\TrackingMore\TrackingMoreRequests;
44

5-
use Anvari182\TrackingMore\Data\TrackingData;
6-
use Anvari182\TrackingMore\Helpers\ArrayHelper;
7-
use Exception;
8-
use TrackingMore\TrackingMoreException;
5+
use TrackingMore\Interfaces\TrackingsInterface;
6+
use Trackingmore\TrackingMoreException;
97
use TrackingMore\Trackings;
108

11-
class Tracking extends Trackings
9+
class Tracking implements TrackingsInterface
1210
{
13-
/**
14-
* @param TrackingData $data
15-
* @return array
16-
* @throws TrackingMoreException
17-
*/
18-
public function create(TrackingData $data): array
11+
public function __construct(private Trackings $trackings)
1912
{
20-
return $this->createTracking(ArrayHelper::camelToSnakeKeys($data->toArray()));
2113
}
2214

2315
/**
24-
* @param array $trackingData
25-
* @return array
2616
* @throws TrackingMoreException
27-
* @throws Exception
2817
*/
29-
public function createMultiple(array $trackingData): array
18+
public function createTracking($params = []): array
3019
{
31-
if (count($trackingData) > 40) {
32-
throw new Exception('Max 40 tracking numbers are allowed!');
33-
}
34-
35-
$data = [];
36-
37-
foreach ($trackingData as $tracking) {
38-
$data[] = $tracking->toArray();
39-
}
20+
return $this->trackings->createTracking($params);
21+
}
4022

41-
return $this->batchCreateTrackings($data);
23+
public function getTrackingResults($params = []): array
24+
{
25+
return $this->trackings->getTrackingResults();
4226
}
4327

4428
/**
45-
* @return array
29+
* @throws TrackingMoreException
4630
*/
47-
public function getResults(): array
31+
public function batchCreateTrackings($params = []): array
4832
{
49-
return $this->getTrackingResults();
33+
return $this->trackings->batchCreateTrackings($params);
5034
}
5135

5236
/**
53-
* @param string $id
54-
* @param array $params
55-
* @return array
5637
* @throws TrackingMoreException
5738
*/
58-
public function updateById(string $id, array $params): array
39+
public function updateTrackingByID($idString = '', $params = []): array
5940
{
60-
return $this->updateTrackingByID($id, $params);
41+
return $this->trackings->updateTrackingByID($idString, $params);
6142
}
6243

6344
/**
64-
* @param string $id
65-
* @return array
6645
* @throws TrackingMoreException
6746
*/
68-
public function deleteById(string $id): array
47+
public function deleteTrackingByID($idString = ''): array
6948
{
70-
return $this->deleteTrackingByID($id);
49+
return $this->trackings->deleteTrackingByID($idString);
7150
}
7251

7352
/**
74-
* @param string $id
75-
* @return array
7653
* @throws TrackingMoreException
7754
*/
78-
public function retrackByID(string $id): array
55+
public function retrackTrackingByID($idString = ''): array
7956
{
80-
return $this->retrackTrackingByID($id);
57+
return $this->trackings->retrackTrackingByID($idString);
8158
}
8259
}

src/TrackingMoreServiceProvider.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
use Anvari182\TrackingMore\TrackingMoreRequests\Tracking;
77
use Illuminate\Contracts\Foundation\Application;
88
use Illuminate\Support\ServiceProvider;
9+
use TrackingMore\Couriers;
10+
use TrackingMore\Trackings;
911

1012
class TrackingMoreServiceProvider extends ServiceProvider
1113
{
@@ -16,11 +18,11 @@ public function register(): void
1618
$apiKey = config('trackingmore.api_key');
1719

1820
$this->app->bind(Tracking::class, function () use ($apiKey) {
19-
return new Tracking($apiKey);
21+
return new Tracking(new Trackings($apiKey));
2022
});
2123

2224
$this->app->bind(Courier::class, function () use ($apiKey) {
23-
return new Courier($apiKey);
25+
return new Courier(new Couriers($apiKey));
2426
});
2527

2628
$this->app->bind(TrackingMore::class, function (Application $app) {

tests/Feature/CourierWithFacadeTest.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,19 +6,19 @@
66

77
it('detects a courier', function () {
88
$courier = mock(Courier::class);
9-
$courier->shouldReceive('detectCourier')->andReturn(json_decode(File::get(__DIR__ . '/../Fixtures/courierDetectResponse.json'), true));
9+
$courier->shouldReceive('detect')->andReturn(json_decode(File::get(__DIR__ . '/../Fixtures/courierDetectResponse.json'), true));
1010
TrackingMore::shouldReceive('courier')->andReturn($courier);
11-
$result = TrackingMore::courier()->detectCourier('XYZ124');
11+
$result = TrackingMore::courier()->detect('XYZ124');
1212
expect($result)->toBeArray()->not()->toBeEmpty();
1313
expect($result['meta']['code'])->toBe(200);
1414
;
1515
});
1616

1717
it('gets all courier', function () {
1818
$courier = mock(Courier::class);
19-
$courier->shouldReceive('getAll')->andReturn(json_decode(File::get(__DIR__ . '/../Fixtures/allCourierResponse.json'), true));
19+
$courier->shouldReceive('getAllCouriers')->andReturn(json_decode(File::get(__DIR__ . '/../Fixtures/allCourierResponse.json'), true));
2020
TrackingMore::shouldReceive('courier')->andReturn($courier);
21-
$result = TrackingMore::courier()->getAll();
21+
$result = TrackingMore::courier()->getAllCouriers();
2222
expect($result)->toBeArray()->not()->toBeEmpty();
2323
expect($result['meta']['code'])->toBe(200);
2424
expect($result['data'][0]['courier_code'])->toBe('tuffnells');

0 commit comments

Comments
 (0)