Skip to content

Commit

Permalink
Added reset Cart graphql to 4.0.3.
Browse files Browse the repository at this point in the history
  • Loading branch information
yashgit891 committed May 9, 2023
1 parent b83e85e commit 6969235
Show file tree
Hide file tree
Showing 3 changed files with 109 additions and 1 deletion.
12 changes: 11 additions & 1 deletion Model/Resolver/PlaceRazorpayOrder.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
use Magento\QuoteGraphQl\Model\Cart\GetCartForUser;
use Magento\Quote\Api\CartManagementInterface;
use Razorpay\Magento\Model\PaymentMethod;
use Razorpay\Magento\Model\Config;

class PlaceRazorpayOrder implements ResolverInterface
{
Expand Down Expand Up @@ -45,14 +46,16 @@ class PlaceRazorpayOrder implements ResolverInterface
* @param PaymentMethod $paymentMethod
* @param \Magento\Sales\Api\Data\OrderInterface $order
* @param \Psr\Log\LoggerInterface $logger
* @param \Razorpay\Magento\Model\Config $config
*/
public function __construct(
\Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig,
GetCartForUser $getCartForUser,
\Magento\Quote\Api\CartManagementInterface $cartManagement,
PaymentMethod $paymentMethod,
\Magento\Sales\Api\Data\OrderInterface $order,
\Psr\Log\LoggerInterface $logger
\Psr\Log\LoggerInterface $logger,
\Razorpay\Magento\Model\Config $config
)
{
$this->scopeConfig = $scopeConfig;
Expand All @@ -62,6 +65,7 @@ public function __construct(
$this->_objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$this->order = $order;
$this->logger = $logger;
$this->config = $config;
}

/**
Expand Down Expand Up @@ -134,6 +138,12 @@ public function resolve(Field $field, $context, ResolveInfo $info, array $value
}
$order->save();

$new_order_status = $this->config->getNewOrderStatus();

$orderModel = $this->_objectManager->get('Magento\Sales\Model\Order')->load($order_id);

$orderModel->setStatus($new_order_status)->save();

$responseContent = [
'success' => true,
'rzp_order_id' => $razorpay_order->id,
Expand Down
94 changes: 94 additions & 0 deletions Model/Resolver/ResetCart.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
<?php

declare(strict_types=1);

namespace Razorpay\Magento\Model\Resolver;

use Magento\Framework\GraphQl\Config\Element\Field;
use Magento\Framework\GraphQl\Exception\GraphQlInputException;
use Magento\Framework\GraphQl\Query\ResolverInterface;
use Magento\Framework\GraphQl\Schema\Type\ResolveInfo;

/**
* Mutation resolver for resetting cart
*/
class ResetCart implements ResolverInterface
{
/**
* @var \Psr\Log\LoggerInterface
*/
protected $logger;

/**
* @param \Psr\Log\LoggerInterface $logger
*/
public function __construct(
\Psr\Log\LoggerInterface $logger
)
{
$this->logger = $logger;
}

/**
* @inheritdoc
*/
public function resolve(Field $field, $context, ResolveInfo $info, array $value = null, array $args = null)
{
$this->logger->info('graphQL: Reset Cart started');

if (empty($args['order_id']) === true)
{
$this->logger->critical('graphQL: Input Exception: Required parameter "order_id" is missing');

throw new GraphQlInputException(__('Required parameter "order_id" is missing'));
}

$order_id = $args['order_id'];

try
{
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();

$orderModel = $objectManager->get('Magento\Sales\Model\Order')->load($order_id);

if ($orderModel->canCancel())
{
$quote_id = $orderModel->getQuoteId();

$quote = $objectManager->get('Magento\Quote\Model\Quote')->load($quote_id);

$quote->setIsActive(true)->save();

//not canceling order as cancled order can't be used again for order processing.
//$orderModel->cancel();
$orderModel->setStatus('canceled');

$orderModel->save();

$this->logger->info('graphQL: Reset cart for Quote ID: ' . $quote_id . ' and ' . 'Order ID: ' . $order_id . ' completed.');

$responseContent = [
'success' => true,
];
}
else
{
$this->logger->critical('graphQL: Order ID: ' . $order_id . ' cannot be canceled.');

$responseContent = [
'success' => false,
];
}
}
catch(\Exception $e)
{
$this->logger->critical('graphQL: Exception: ' . $e->getMessage());

$responseContent = [
'success' => false,
];
}

return $responseContent;
}
}
4 changes: 4 additions & 0 deletions etc/schema.graphqls
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ type StoreConfig @doc(description: "The type contains information about a store
type Mutation {
setRzpPaymentDetailsForOrder(input: SetRzpPaymentDetailsForOrderInput) : SetRzpPaymentDetailsForOrderOutput @resolver(class: "Razorpay\\Magento\\Model\\Resolver\\SetRzpPaymentDetailsForOrder")
placeRazorpayOrder (order_id: String @doc(description: "order_id to generate Razorpay Order ID.")) : RazorpayOrder @resolver( class: "Razorpay\\Magento\\Model\\Resolver\\PlaceRazorpayOrder") @doc(description: "Place Razorpay Order with cart amount and currency to generate RZP order ID.")
resetCart(order_id: String @doc(description: "order_id used to generate Razorpay Order ID.")) : ResetCart @resolver( class: "Razorpay\\Magento\\Model\\Resolver\\ResetCart")
}

type RazorpayOrder {
Expand All @@ -27,3 +28,6 @@ type SetRzpPaymentDetailsForOrderOutput {
order: Order!
}

type ResetCart {
success: Boolean!
}

0 comments on commit 6969235

Please sign in to comment.