<?php
namespace Give\Framework\PaymentGateways\Webhooks\EventHandlers;
use Exception;
use Give\Framework\PaymentGateways\Webhooks\EventHandlers\Actions\UpdateSubscriptionStatus;
use Give\Subscriptions\ValueObjects\SubscriptionStatus;
/**
* @since 4.5.0
*/
class SubscriptionPending
{
/**
* @since 4.5.0
*
* @throws Exception
*/
public function __invoke(string $gatewaySubscriptionId, string $message = '')
{
$subscription = give()->subscriptions->getByGatewaySubscriptionId($gatewaySubscriptionId);
if ( ! $subscription || $subscription->status->isPending()) {
return;
}
(new UpdateSubscriptionStatus())($subscription, SubscriptionStatus::PENDING(), $message);
}
}