Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class CreditCardService impletmetnts ICreditCardService
- {
- public $subscriptionService;
- public $creditCardRepository;
- public function __contruct(ISubscriptionService $subscriptionService, $creditCardRepository ICreditCardRepository)
- {
- $this->subscriptionService = $subscriptionService;
- $this->creditCardRepository = $creditCardRepository;
- }
- public function remove(IUser $user)
- {
- // Удалять карту можно в случае если нет активных подписок.
- // Это можно понять из сервиса subscriptionService
- $issetActiveSubscription = $this->subscriptionService->issetAtLeastActiveSubscriptionByUser($user);
- if ($issetActiveSubscription) {
- // Нельзя удалять
- throw new Exception();
- }
- // удаляем карту
- }
- publicn function issetCard(IUser $user)
- {
- $cards = $this->creditCardRepository->getCardsByUserId($user->getId());
- return !empty($cards);
- }
- }
- class SubscriptionService implemets ISubscriptionService
- {
- public $creditCardService;
- public function __contruct(ICreditCardService $creditCardService)
- {
- $this->creditCardService = $creditCardService;
- }
- public function activate(Subscription $subscription)
- {
- $issetCard = $this->creditCardService->issetCard($subscription->getUser());
- if ($issetCard) {
- $subscription->activate();
- } else {
- $subscription->suspend();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement