Skip to content

Commit 12b8dce

Browse files
committed
Merge branch 'MC-20636' of github.com:magento-honey-badgers/magento2ce into MC-20636
# Conflicts: # dev/tests/api-functional/testsuite/Magento/GraphQl/Sales/RetrieveOrdersByOrderNumberTest.php
2 parents b99663f + a353ecc commit 12b8dce

File tree

15 files changed

+110
-129
lines changed

15 files changed

+110
-129
lines changed

app/code/Magento/SalesGraphQl/Model/InvoiceItemInterfaceTypeResolverComposite.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
use Magento\Framework\GraphQl\Query\Resolver\TypeResolverInterface;
1212

1313
/**
14-
* @inheritDoc
14+
* Composite class to resolve invoice item type
1515
*/
1616
class InvoiceItemInterfaceTypeResolverComposite implements TypeResolverInterface
1717
{

app/code/Magento/SalesGraphQl/Model/InvoiceItemTypeResolver.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,9 @@
99

1010
use Magento\Framework\GraphQl\Query\Resolver\TypeResolverInterface;
1111

12+
/**
13+
* Leaf for composite class to resolve invoice item type
14+
*/
1215
class InvoiceItemTypeResolver implements TypeResolverInterface
1316
{
1417
/**

app/code/Magento/SalesGraphQl/Model/OrderItemInterfaceTypeResolverComposite.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
use Magento\Framework\GraphQl\Query\Resolver\TypeResolverInterface;
1212

1313
/**
14-
* @inheritdoc
14+
* Composite class to resolve order item type
1515
*/
1616
class OrderItemInterfaceTypeResolverComposite implements TypeResolverInterface
1717
{

app/code/Magento/SalesGraphQl/Model/OrderItemTypeResolver.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,9 @@
99

1010
use Magento\Framework\GraphQl\Query\Resolver\TypeResolverInterface;
1111

12+
/**
13+
* Leaf for composite class to resolve order item type
14+
*/
1215
class OrderItemTypeResolver implements TypeResolverInterface
1316
{
1417
/**

app/code/Magento/SalesGraphQl/Model/Resolver/BundleOptions.php

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -129,14 +129,13 @@ private function formatBundleOptionItems(
129129
// Value Id is missing from parent, so we have to match the child to parent option
130130
if (isset($bundleChildAttributes['option_id'])
131131
&& $bundleChildAttributes['option_id'] == $bundleOptionId) {
132+
$item = $this->orderItemProvider->getOrderItemById((int)$childrenOrderItem->getItemId());
132133
$optionItems[$childrenOrderItem->getItemId()] = [
133134
'id' => base64_encode($childrenOrderItem->getItemId()),
134135
'product_name' => $childrenOrderItem->getName(),
135136
'product_sku' => $childrenOrderItem->getSku(),
136137
'quantity' => $bundleChildAttributes['qty'],
137-
'price' => [
138-
'value' => $bundleChildAttributes['price']
139-
]
138+
'price' => $item['product_sale_price'],
140139
];
141140
}
142141
}

app/code/Magento/SalesGraphQl/Model/Resolver/CustomerOrders.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
use Magento\Framework\GraphQl\Query\ResolverInterface;
1616
use Magento\Framework\GraphQl\Schema\Type\ResolveInfo;
1717
use Magento\GraphQl\Model\Query\ContextInterface;
18-
use Magento\Sales\Model\Order;
18+
use Magento\Sales\Api\Data\OrderInterface;
1919
use Magento\SalesGraphQl\Model\Resolver\CustomerOrders\Query\SearchQuery;
2020
use Magento\Store\Api\Data\StoreInterface;
2121

@@ -69,10 +69,10 @@ public function resolve(
6969

7070
$orders = [];
7171
foreach (($searchResultDto->getItems() ?? []) as $order) {
72-
if (!isset($order['model']) && !($order['model'] instanceof Order)) {
72+
if (!($order['model'] ?? null instanceof OrderInterface)) {
7373
throw new LocalizedException(__('"model" value should be specified'));
7474
}
75-
/** @var Order $orderModel */
75+
/** @var OrderInterface $orderModel */
7676
$orderModel = $order['model'];
7777
$orders[] = [
7878
'created_at' => $order['created_at'],

app/code/Magento/SalesGraphQl/Model/Resolver/CustomerOrders/Query/OrderFilter.php

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,6 @@
2222
*/
2323
class OrderFilter
2424
{
25-
/** Minimum query lenth for the filter */
26-
private const DEFAULT_MIN_QUERY_LENGTH = 3;
27-
2825
/**
2926
* @var ScopeConfigInterface
3027
*/
@@ -70,7 +67,7 @@ public function __construct(
7067
/**
7168
* Filter for filtering the requested categories id's based on url_key, ids, name in the result.
7269
*
73-
* @param string $userId
70+
* @param int $userId
7471
* @param array $args
7572
* @param StoreInterface $store
7673
* @param SearchCriteriaBuilder $searchCriteriaBuilder

app/code/Magento/SalesGraphQl/Model/Resolver/InvoiceItems.php

Lines changed: 15 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,10 @@
1212
use Magento\Framework\GraphQl\Query\Resolver\ValueFactory;
1313
use Magento\Framework\GraphQl\Query\ResolverInterface;
1414
use Magento\Framework\GraphQl\Schema\Type\ResolveInfo;
15-
use Magento\Sales\Api\Data\InvoiceInterface as Invoice;
15+
use Magento\Sales\Api\Data\InvoiceInterface;
1616
use Magento\Sales\Api\Data\InvoiceItemInterface;
17+
use Magento\Sales\Api\Data\OrderInterface;
1718
use Magento\Sales\Api\Data\OrderItemInterface;
18-
use Magento\Sales\Model\Order;
1919
use Magento\SalesGraphQl\Model\Resolver\OrderItem\DataProvider as OrderItemProvider;
2020

2121
/**
@@ -55,37 +55,38 @@ public function resolve(
5555
array $value = null,
5656
array $args = null
5757
) {
58-
if (!isset($value['model']) || !($value['model'] instanceof Invoice)) {
58+
if (!(($value['model'] ?? null) instanceof InvoiceInterface)) {
5959
throw new LocalizedException(__('"model" value should be specified'));
6060
}
6161

62-
if (!isset($value['order']) || !($value['order'] instanceof Order)) {
62+
if (!(($value['order'] ?? null) instanceof OrderInterface)) {
6363
throw new LocalizedException(__('"order" value should be specified'));
6464
}
6565

66-
/** @var Invoice $invoiceModel */
66+
/** @var InvoiceInterface $invoiceModel */
6767
$invoiceModel = $value['model'];
68-
$parentOrder = $value['order'];
68+
/** @var OrderInterface $parentOrderModel */
69+
$parentOrderModel = $value['order'];
6970

7071
return $this->valueFactory->create(
71-
$this->getInvoiceItems($parentOrder, $invoiceModel->getItems())
72+
$this->getInvoiceItems($parentOrderModel, $invoiceModel->getItems())
7273
);
7374
}
7475

7576
/**
76-
* Get Invoice Item Data
77+
* Get invoice items data as promise
7778
*
78-
* @param Order $order
79+
* @param OrderInterface $order
7980
* @param array $invoiceItems
8081
* @return \Closure
8182
*/
82-
public function getInvoiceItems(Order $order, array $invoiceItems)
83+
public function getInvoiceItems(OrderInterface $order, array $invoiceItems): \Closure
8384
{
8485
$itemsList = [];
8586
foreach ($invoiceItems as $Item) {
8687
$this->orderItemProvider->addOrderItemId((int)$Item->getOrderItemId());
8788
}
88-
$itemsList = function () use ($order, $invoiceItems, $itemsList) {
89+
return function () use ($order, $invoiceItems, $itemsList): array {
8990
foreach ($invoiceItems as $invoiceItem) {
9091
$orderItem = $this->orderItemProvider->getOrderItemById((int)$invoiceItem->getOrderItemId());
9192
/** @var OrderItemInterface $orderItemModel */
@@ -99,19 +100,17 @@ public function getInvoiceItems(Order $order, array $invoiceItems)
99100
}
100101
return $itemsList;
101102
};
102-
return $itemsList;
103103
}
104104

105105
/**
106-
* Get resolved Invoice Item Data
106+
* Get formatted invoice item data
107107
*
108-
* @param Order $order
108+
* @param OrderInterface $order
109109
* @param InvoiceItemInterface $invoiceItem
110110
* @return array
111111
*/
112-
private function getInvoiceItemData(Order $order, InvoiceItemInterface $invoiceItem)
112+
private function getInvoiceItemData(OrderInterface $order, InvoiceItemInterface $invoiceItem): array
113113
{
114-
/** @var OrderItemInterface $orderItem */
115114
$orderItem = $this->orderItemProvider->getOrderItemById((int)$invoiceItem->getOrderItemId());
116115
return [
117116
'id' => base64_encode($invoiceItem->getEntityId()),

app/code/Magento/SalesGraphQl/Model/Resolver/Invoices.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
use Magento\Framework\GraphQl\Config\Element\Field;
1212
use Magento\Framework\GraphQl\Query\ResolverInterface;
1313
use Magento\Framework\GraphQl\Schema\Type\ResolveInfo;
14-
use Magento\Sales\Model\Order;
14+
use Magento\Sales\Api\Data\OrderInterface;
1515
use Magento\Sales\Api\Data\InvoiceInterface as Invoice;
1616

1717
/**
@@ -29,11 +29,11 @@ public function resolve(
2929
array $value = null,
3030
array $args = null
3131
) {
32-
if (!isset($value['model']) || !($value['model'] instanceof Order)) {
32+
if (!(($value['model'] ?? null) instanceof OrderInterface)) {
3333
throw new LocalizedException(__('"model" value should be specified'));
3434
}
3535

36-
/** @var Order $orderModel */
36+
/** @var OrderInterface $orderModel */
3737
$orderModel = $value['model'];
3838
$invoices = [];
3939
/** @var Invoice $invoice */

app/code/Magento/SalesGraphQl/Model/Resolver/OrderItems.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
use Magento\Framework\GraphQl\Query\ResolverInterface;
1515
use Magento\Framework\GraphQl\Schema\Type\ResolveInfo;
1616
use Magento\GraphQl\Model\Query\ContextInterface;
17-
use Magento\Sales\Model\Order;
17+
use Magento\Sales\Api\Data\OrderInterface;
1818
use Magento\SalesGraphQl\Model\Resolver\OrderItem\DataProvider as OrderItemProvider;
1919

2020
/**
@@ -53,10 +53,10 @@ public function resolve(Field $field, $context, ResolveInfo $info, array $value
5353
if (false === $context->getExtensionAttributes()->getIsCustomer()) {
5454
throw new GraphQlAuthorizationException(__('The current customer isn\'t authorized.'));
5555
}
56-
if (!isset($value['model']) || !($value['model'] instanceof Order)) {
56+
if (!(($value['model'] ?? null) instanceof OrderInterface)) {
5757
throw new LocalizedException(__('"model" value should be specified'));
5858
}
59-
/** @var Order $parentOrder */
59+
/** @var OrderInterface $parentOrder */
6060
$parentOrder = $value['model'];
6161
$orderItemIds = [];
6262
foreach ($parentOrder->getItems() as $item) {
@@ -69,7 +69,7 @@ public function resolve(Field $field, $context, ResolveInfo $info, array $value
6969
foreach ($orderItemIds as $orderItemId) {
7070
$itemsList[] = $this->valueFactory->create(
7171
function () use ($orderItemId) {
72-
return $this->orderItemProvider->getOrderItemById($orderItemId);
72+
return $this->orderItemProvider->getOrderItemById((int)$orderItemId);
7373
}
7474
);
7575
}

0 commit comments

Comments
 (0)