Advertisement
sn1ckers

Untitled

Jan 12th, 2021
1,006
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.44 KB | None | 0 0
  1. class CreditCardService impletmetnts ICreditCardService
  2. {
  3.     public $subscriptionService;
  4.     public $creditCardRepository;
  5.  
  6.     public function __contruct(ISubscriptionService $subscriptionService, $creditCardRepository ICreditCardRepository)
  7.     {
  8.         $this->subscriptionService = $subscriptionService;
  9.         $this->creditCardRepository = $creditCardRepository;
  10.     }
  11.  
  12.     public function remove(IUser $user)
  13.     {
  14.         // Удалять карту можно в случае если нет активных подписок.
  15.         // Это можно понять из сервиса subscriptionService
  16.        
  17.         $issetActiveSubscription = $this->subscriptionService->issetAtLeastActiveSubscriptionByUser($user);
  18.         if ($issetActiveSubscription) {
  19.             // Нельзя удалять
  20.             throw new Exception();
  21.         }
  22.  
  23.         // удаляем карту
  24.     }
  25.  
  26.     publicn function issetCard(IUser $user)
  27.     {
  28.         $cards = $this->creditCardRepository->getCardsByUserId($user->getId());
  29.        
  30.         return !empty($cards);
  31.     }
  32. }
  33.  
  34.  
  35. class SubscriptionService implemets ISubscriptionService
  36. {
  37.     public $creditCardService;
  38.  
  39.     public function __contruct(ICreditCardService $creditCardService)
  40.     {
  41.         $this->creditCardService = $creditCardService;
  42.     }
  43.  
  44.     public function activate(Subscription $subscription)
  45.     {
  46.         $issetCard = $this->creditCardService->issetCard($subscription->getUser());
  47.  
  48.         if ($issetCard) {
  49.             $subscription->activate();
  50.         } else {
  51.             $subscription->suspend();
  52.         }
  53.     }
  54. }
  55.  
  56.  
  57.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement