Skip to content

Commit f40eed9

Browse files
authored
LYNX-693: Gift Options - Extend cart query
1 parent bf3a94e commit f40eed9

File tree

2 files changed

+16
-42
lines changed

2 files changed

+16
-42
lines changed

app/code/Magento/GiftMessageGraphQl/Model/Resolver/Cart/Item/GiftMessage.php

Lines changed: 8 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,6 @@
1010
use Magento\Framework\Exception\LocalizedException;
1111
use Magento\Framework\GraphQl\Config\Element\Field;
1212
use Magento\Framework\GraphQl\Exception\GraphQlInputException;
13-
use Magento\Framework\GraphQl\Query\Resolver\ContextInterface;
14-
use Magento\Framework\GraphQl\Query\Resolver\Value;
1513
use Magento\Framework\GraphQl\Query\ResolverInterface;
1614
use Magento\Framework\GraphQl\Schema\Type\ResolveInfo;
1715
use Magento\GiftMessage\Api\ItemRepositoryInterface;
@@ -35,36 +33,23 @@ public function __construct(
3533
}
3634

3735
/**
38-
* Return information about Gift message for item cart
39-
*
40-
* @param Field $field
41-
* @param ContextInterface $context
42-
* @param ResolveInfo $info
43-
* @param array|null $value
44-
* @param array|null $args
45-
*
46-
* @return array|Value|mixed
47-
* @throws GraphQlInputException
48-
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
36+
* @inheritdoc
4937
*/
5038
public function resolve(
5139
Field $field,
5240
$context,
5341
ResolveInfo $info,
5442
?array $value = null,
5543
?array $args = null
56-
) {
44+
): ?array {
5745
if (!isset($value['model'])) {
5846
throw new GraphQlInputException(__('"model" value must be specified'));
5947
}
6048

6149
$quoteItem = $value['model'];
6250

63-
if (!$this->messagesConfig->isMessagesAllowed('items', $quoteItem)) {
64-
return null;
65-
}
66-
67-
if (!$this->messagesConfig->isMessagesAllowed('item', $quoteItem)) {
51+
if (!$this->messagesConfig->isMessagesAllowed('items', $quoteItem)
52+
|| !$this->messagesConfig->isMessagesAllowed('item', $quoteItem)) {
6853
return null;
6954
}
7055

@@ -74,14 +59,10 @@ public function resolve(
7459
throw new GraphQlInputException(__('Can\'t load cart item'));
7560
}
7661

77-
if (!$giftItemMessage) {
78-
return null;
79-
}
80-
81-
return [
62+
return $giftItemMessage ? [
8263
'to' => $giftItemMessage->getRecipient() ?? '',
83-
'from' => $giftItemMessage->getSender() ?? '',
84-
'message'=> $giftItemMessage->getMessage() ?? ''
85-
];
64+
'from' => $giftItemMessage->getSender() ?? '',
65+
'message' => $giftItemMessage->getMessage() ?? ''
66+
] : null;
8667
}
8768
}

dev/tests/api-functional/testsuite/Magento/GraphQl/GiftMessage/CartItemWithGiftMessageTest.php

Lines changed: 8 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
use Magento\Framework\App\ResourceConnection;
1414
use Magento\Framework\Exception\NoSuchEntityException;
1515
use Magento\GiftMessage\Test\Fixture\GiftMessage;
16-
use Magento\Indexer\Test\Fixture\Indexer;
1716
use Magento\Quote\Model\QuoteIdToMaskedQuoteIdInterface;
1817
use Magento\Quote\Test\Fixture\AddProductToCart as AddProductToCartFixture;
1918
use Magento\Quote\Test\Fixture\GuestCart;
@@ -56,9 +55,8 @@ protected function setUp(): void
5655
}
5756

5857
#[
59-
DataFixture(ProductFixture::class, ['type_id' => 'virtual'], as: 'product'),
60-
DataFixture(Indexer::class, as: 'indexer'),
6158
DataFixture(GiftMessage::class, as: 'message'),
59+
DataFixture(ProductFixture::class, ['type_id' => 'virtual'], as: 'product'),
6260
DataFixture(GuestCart::class, ['message_id' => '$message.id$'], as: 'quote'),
6361
DataFixture(SetGuestEmailFixture::class, ['cart_id' => '$quote.id$']),
6462
DataFixture(
@@ -95,6 +93,7 @@ public function testCartQueryWithVirtualItem(): void
9593
}
9694

9795
#[
96+
DataFixture(GiftMessage::class, as: 'message'),
9897
DataFixture(DownloadableProductFixture::class, [
9998
'price' => 100,
10099
'type_id' => 'downloadable',
@@ -112,8 +111,6 @@ public function testCartQueryWithVirtualItem(): void
112111
]
113112
]
114113
], as: 'product'),
115-
DataFixture(Indexer::class, as: 'indexer'),
116-
DataFixture(GiftMessage::class, as: 'message'),
117114
DataFixture(GuestCart::class, ['message_id' => '$message.id$'], as: 'quote'),
118115
DataFixture(SetGuestEmailFixture::class, ['cart_id' => '$quote.id$']),
119116
DataFixture(
@@ -150,13 +147,12 @@ public function testCartQueryWithDownloadableItem(): void
150147
}
151148

152149
#[
150+
DataFixture(GiftMessage::class, as: 'message'),
153151
DataFixture(
154152
ProductFixture::class,
155153
['type_id' => 'simple', 'weight' => 10, 'gift_message_available' => 2],
156154
as: 'product'
157155
),
158-
DataFixture(Indexer::class, as: 'indexer'),
159-
DataFixture(GiftMessage::class, as: 'message'),
160156
DataFixture(GuestCart::class, ['message_id' => '$message.id$'], as: 'quote'),
161157
DataFixture(SetGuestEmailFixture::class, ['cart_id' => '$quote.id$']),
162158
DataFixture(
@@ -175,13 +171,12 @@ public function testCartQueryWithSimpleItemWhenStoreConfigEnabled(): void
175171
}
176172

177173
#[
174+
DataFixture(GiftMessage::class, as: 'message'),
178175
DataFixture(
179176
ProductFixture::class,
180177
['type_id' => 'simple', 'weight' => 10, 'gift_message_available' => 2],
181178
as: 'product'
182179
),
183-
DataFixture(Indexer::class, as: 'indexer'),
184-
DataFixture(GiftMessage::class, as: 'message'),
185180
DataFixture(GuestCart::class, ['message_id' => '$message.id$'], as: 'quote'),
186181
DataFixture(SetGuestEmailFixture::class, ['cart_id' => '$quote.id$']),
187182
DataFixture(
@@ -200,13 +195,12 @@ public function testCartQueryWithSimpleItemWhenStoreConfigDisabled(): void
200195
}
201196

202197
#[
198+
DataFixture(GiftMessage::class, as: 'message'),
203199
DataFixture(
204200
ProductFixture::class,
205201
['type_id' => 'simple', 'weight' => 10, 'gift_message_available' => 0],
206202
as: 'product'
207203
),
208-
DataFixture(Indexer::class, as: 'indexer'),
209-
DataFixture(GiftMessage::class, as: 'message'),
210204
DataFixture(GuestCart::class, ['message_id' => '$message.id$'], as: 'quote'),
211205
DataFixture(SetGuestEmailFixture::class, ['cart_id' => '$quote.id$']),
212206
DataFixture(
@@ -225,13 +219,12 @@ public function testCartQueryWithSimpleItemWhenAllConfigDisabled(): void
225219
}
226220

227221
#[
222+
DataFixture(GiftMessage::class, as: 'message'),
228223
DataFixture(
229224
ProductFixture::class,
230225
['type_id' => 'simple', 'weight' => 10, 'gift_message_available' => 1],
231226
as: 'product'
232227
),
233-
DataFixture(Indexer::class, as: 'indexer'),
234-
DataFixture(GiftMessage::class, as: 'message'),
235228
DataFixture(GuestCart::class, ['message_id' => '$message.id$'], as: 'quote'),
236229
DataFixture(SetGuestEmailFixture::class, ['cart_id' => '$quote.id$']),
237230
DataFixture(
@@ -349,9 +342,9 @@ private function updateGiftMessageForCartItems(string $maskedQuoteId): void
349342
*
350343
* @param int $cartId
351344
* @param int $productId
352-
* @return int|null
345+
* @return int
353346
*/
354-
private function getItemId(int $cartId, int $productId): ?int
347+
private function getItemId(int $cartId, int $productId): int
355348
{
356349
$connection = $this->resourceConnection->getConnection();
357350
return (int)$connection->fetchOne(

0 commit comments

Comments
 (0)