<?php namespace Give\Framework\PaymentGateways\Webhooks\EventHandlers\Actions; use Give\Framework\PaymentGateways\Webhooks\EventHandlers\SubscriptionActive; use Give\Framework\PaymentGateways\Webhooks\EventHandlers\SubscriptionCancelled; use Give\Framework\PaymentGateways\Webhooks\EventHandlers\SubscriptionCompleted; use Give\Framework\PaymentGateways\Webhooks\EventHandlers\SubscriptionExpired; use Give\Framework\PaymentGateways\Webhooks\EventHandlers\SubscriptionFailing; use Give\Framework\PaymentGateways\Webhooks\EventHandlers\SubscriptionPaused; use Give\Framework\PaymentGateways\Webhooks\EventHandlers\SubscriptionPending; use Give\Framework\PaymentGateways\Webhooks\EventHandlers\SubscriptionSuspended; use Give\Subscriptions\ValueObjects\SubscriptionStatus; /** * @since 4.5.0 */ class GetEventHandlerClassBySubscriptionStatus { /** * @since 4.5.0 */ public function __invoke(SubscriptionStatus $status): string { switch ($status) { case $status->isActive(): return SubscriptionActive::class; case $status->isCancelled(): return SubscriptionCancelled::class; case $status->isCompleted(): return SubscriptionCompleted::class; case $status->isExpired(): return SubscriptionExpired::class; case $status->isFailing(): return SubscriptionFailing::class; case $status->isPaused(): return SubscriptionPaused::class; case $status->isPending(): return SubscriptionPending::class; case $status->isSuspended(): return SubscriptionSuspended::class; default: return ''; } } }