Skip to content

Commit c79ea41

Browse files
Orders API entities (#53)
Orders API entities
2 parents 176d3f3 + 0b9a4a8 commit c79ea41

61 files changed

Lines changed: 5280 additions & 6 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

src/Http/Traits/SetsOAuthResources.php

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
use Piggy\Api\Http\BaseClient;
66
use Piggy\Api\Resources\OAuth\Automations\AutomationsResource;
77
use Piggy\Api\Resources\OAuth\Brandkit\BrandkitResource;
8+
use Piggy\Api\Resources\OAuth\Categories\CategoriesResource;
89
use Piggy\Api\Resources\OAuth\Contacts\ContactAttributesResource;
910
use Piggy\Api\Resources\OAuth\Contacts\ContactIdentifiersResource;
1011
use Piggy\Api\Resources\OAuth\Contacts\ContactsResource;
@@ -25,9 +26,12 @@
2526
use Piggy\Api\Resources\OAuth\Loyalty\Rewards\RewardAttributesResource;
2627
use Piggy\Api\Resources\OAuth\Loyalty\Rewards\RewardsResource;
2728
use Piggy\Api\Resources\OAuth\Loyalty\Tokens\LoyaltyTokensResource;
29+
use Piggy\Api\Resources\OAuth\Orders\OrderReturnsResource;
30+
use Piggy\Api\Resources\OAuth\Orders\OrdersResource;
2831
use Piggy\Api\Resources\OAuth\Perks\PerksResource;
2932
use Piggy\Api\Resources\OAuth\PortalSessions\PortalSessionsResource;
3033
use Piggy\Api\Resources\OAuth\PrepaidTransactionsResource;
34+
use Piggy\Api\Resources\OAuth\Products\ProductsResource;
3135
use Piggy\Api\Resources\OAuth\Shops\ShopsResource;
3236
use Piggy\Api\Resources\OAuth\SubscriptionTypesResource;
3337
use Piggy\Api\Resources\OAuth\Tiers\TiersResource;
@@ -203,6 +207,26 @@ trait SetsOAuthResources
203207
*/
204208
public $customAttributes;
205209

210+
/**
211+
* @var ProductsResource
212+
*/
213+
public $products;
214+
215+
/**
216+
* @var CategoriesResource
217+
*/
218+
public $categories;
219+
220+
/**
221+
* @var OrdersResource
222+
*/
223+
public $orders;
224+
225+
/**
226+
* @var OrderReturnsResource
227+
*/
228+
public $orderReturns;
229+
206230
protected function setResources(BaseClient $client): void
207231
{
208232
$this->contacts = new ContactsResource($client);
@@ -238,5 +262,9 @@ protected function setResources(BaseClient $client): void
238262
$this->contactsPortalAuthUrl = new ContactsPortalAuthUrlResource($client);
239263
$this->collectableRewards = new CollectableRewardsResource($client);
240264
$this->customAttributes = new CustomAttributeResource($client);
265+
$this->products = new ProductsResource($client);
266+
$this->categories = new CategoriesResource($client);
267+
$this->orders = new OrdersResource($client);
268+
$this->orderReturns = new OrderReturnsResource($client);
241269
}
242270
}

src/Http/Traits/SetsRegisterResources.php

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
namespace Piggy\Api\Http\Traits;
44

55
use Piggy\Api\Http\BaseClient;
6-
use Piggy\Api\Resources\Register\Loyalty\Tokens\LoyaltyTokensResource;
6+
use Piggy\Api\Resources\Register\Categories\CategoriesResource;
77
use Piggy\Api\Resources\Register\ContactIdentifiersResource;
88
use Piggy\Api\Resources\Register\Contacts\ContactsResource;
99
use Piggy\Api\Resources\Register\ContactSubscriptionsResource;
@@ -13,7 +13,11 @@
1313
use Piggy\Api\Resources\Register\Loyalty\Receptions\CreditReceptionsResource;
1414
use Piggy\Api\Resources\Register\Loyalty\Receptions\RewardReceptionsResource;
1515
use Piggy\Api\Resources\Register\Loyalty\Rewards\RewardsResource;
16+
use Piggy\Api\Resources\Register\Loyalty\Tokens\LoyaltyTokensResource;
17+
use Piggy\Api\Resources\Register\Orders\OrderReturnsResource;
18+
use Piggy\Api\Resources\Register\Orders\OrdersResource;
1619
use Piggy\Api\Resources\Register\PrepaidTransactionResource;
20+
use Piggy\Api\Resources\Register\Products\ProductsResource;
1721
use Piggy\Api\Resources\Register\Registers\RegisterResource;
1822
use Piggy\Api\Resources\Register\SubscriptionTypesResource;
1923
use Piggy\Api\Resources\Register\Vouchers\PromotionsResource;
@@ -99,6 +103,26 @@ trait SetsRegisterResources
99103
*/
100104
public $promotion;
101105

106+
/**
107+
* @var ProductsResource
108+
*/
109+
public $products;
110+
111+
/**
112+
* @var CategoriesResource
113+
*/
114+
public $categories;
115+
116+
/**
117+
* @var OrdersResource
118+
*/
119+
public $orders;
120+
121+
/**
122+
* @var OrderReturnsResource
123+
*/
124+
public $orderReturns;
125+
102126
protected function setResources(BaseClient $client): void
103127
{
104128
$this->registers = new RegisterResource($client);
@@ -116,5 +140,9 @@ protected function setResources(BaseClient $client): void
116140
$this->subscriptionTypes = new SubscriptionTypesResource($client);
117141
$this->voucher = new VouchersResource($client);
118142
$this->promotion = new PromotionsResource($client);
143+
$this->products = new ProductsResource($client);
144+
$this->categories = new CategoriesResource($client);
145+
$this->orders = new OrdersResource($client);
146+
$this->orderReturns = new OrderReturnsResource($client);
119147
}
120148
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
<?php
2+
3+
namespace Piggy\Api\Mappers\Categories;
4+
5+
use Piggy\Api\Models\Categories\Category;
6+
use stdClass;
7+
8+
class CategoriesMapper
9+
{
10+
/**
11+
* @param stdClass[] $data
12+
* @return Category[]
13+
*/
14+
public function map(array $data): array
15+
{
16+
$mapper = new CategoryMapper();
17+
18+
$categories = [];
19+
foreach ($data as $item) {
20+
$categories[] = $mapper->map($item);
21+
}
22+
23+
return $categories;
24+
}
25+
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<?php
2+
3+
namespace Piggy\Api\Mappers\Categories;
4+
5+
use Piggy\Api\Models\Categories\Category;
6+
use stdClass;
7+
8+
class CategoryMapper
9+
{
10+
public function map(stdClass $data): Category
11+
{
12+
return new Category(
13+
$data->uuid,
14+
$data->external_identifier,
15+
$data->name
16+
);
17+
}
18+
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
<?php
2+
3+
namespace Piggy\Api\Mappers\Orders;
4+
5+
use Piggy\Api\Models\Orders\AppliedDiscount;
6+
use stdClass;
7+
8+
class AppliedDiscountMapper
9+
{
10+
public static function map(stdClass $data): AppliedDiscount
11+
{
12+
return new AppliedDiscount(
13+
$data->uuid,
14+
$data->external_identifier,
15+
$data->name,
16+
$data->amount,
17+
$data->type,
18+
$data->value,
19+
$data->applied_to,
20+
$data->line_items,
21+
$data->sub_line_items
22+
);
23+
}
24+
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
<?php
2+
3+
namespace Piggy\Api\Mappers\Orders;
4+
5+
use Piggy\Api\Models\Orders\AppliedDiscount;
6+
use stdClass;
7+
8+
class AppliedDiscountsMapper
9+
{
10+
/**
11+
* @param stdClass[] $data
12+
* @return AppliedDiscount[]
13+
*/
14+
public static function map(array $data): array
15+
{
16+
$mapper = new AppliedDiscountMapper();
17+
18+
$appliedDiscounts = [];
19+
foreach ($data as $item) {
20+
$appliedDiscounts[] = $mapper->map($item);
21+
}
22+
23+
return $appliedDiscounts;
24+
}
25+
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
<?php
2+
3+
namespace Piggy\Api\Mappers\Orders;
4+
5+
use Piggy\Api\Models\Orders\Charge;
6+
use stdClass;
7+
8+
class ChargeMapper
9+
{
10+
public static function map(stdClass $data): Charge
11+
{
12+
return new Charge(
13+
$data->uuid,
14+
$data->external_identifier,
15+
$data->type,
16+
$data->name,
17+
$data->amount,
18+
$data->discount_amount,
19+
$data->total_amount
20+
);
21+
}
22+
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
<?php
2+
3+
namespace Piggy\Api\Mappers\Orders;
4+
5+
use Piggy\Api\Models\Orders\Charge;
6+
use stdClass;
7+
8+
class ChargesMapper
9+
{
10+
/**
11+
* @param stdClass[] $data
12+
* @return Charge[]
13+
*/
14+
public static function map(array $data): array
15+
{
16+
$mapper = new ChargeMapper();
17+
18+
$charges = [];
19+
foreach ($data as $item) {
20+
$charges[] = $mapper->map($item);
21+
}
22+
23+
return $charges;
24+
}
25+
}
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
<?php
2+
3+
namespace Piggy\Api\Mappers\Orders;
4+
5+
use Piggy\Api\Mappers\Products\ProductMapper;
6+
use Piggy\Api\Models\Orders\LineItem;
7+
use stdClass;
8+
9+
class LineItemMapper
10+
{
11+
public static function map(stdClass $data): LineItem
12+
{
13+
$product = null;
14+
if (isset($data->product)) {
15+
$mapper = new ProductMapper();
16+
$product = $mapper->map($data->product);
17+
}
18+
19+
$subLineItems = [];
20+
if (isset($data->sub_line_items)) {
21+
$mapper = new SubLineItemsMapper();
22+
$subLineItems = $mapper->map($data->sub_line_items);
23+
}
24+
25+
return new LineItem(
26+
$data->uuid,
27+
$data->external_identifier,
28+
$data->name,
29+
$data->quantity,
30+
$data->price,
31+
$data->discount_amount,
32+
$data->total_amount,
33+
$product,
34+
$subLineItems
35+
);
36+
}
37+
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<?php
2+
3+
namespace Piggy\Api\Mappers\Orders;
4+
5+
use Piggy\Api\Models\Orders\LineItemReturn;
6+
use stdClass;
7+
8+
class LineItemReturnMapper
9+
{
10+
public static function map(stdClass $data): LineItemReturn
11+
{
12+
return new LineItemReturn(
13+
$data->uuid,
14+
$data->quantity,
15+
$data->line_item
16+
);
17+
}
18+
}

0 commit comments

Comments
 (0)