/** * Validates given mobile and alias. * * @param string $mobile * @param string $alias * * @throws InvalidMobileApiException * @throws BlankAliasApiException * @throws ExistentMobileApiException */ public function validate($mobile, $alias) { try { $this->validateMobileAndAliasInternalWorker->validate($mobile, $alias); } catch (InvalidMobileInternalException $e) { throw new InvalidMobileApiException(); } catch (BlankAliasInternalException $e) { throw new BlankAliasApiException(); } catch (ExistentMobileInternalException $e) { throw new ExistentMobileApiException(); } }
/** * @param string $mobile * @param string $uniqueness * @param string $alias * @param string[] $topics * @param string $resellPackage * * @throws NonExistentUniquenessApiException * @throws InvalidMobileApiException * @throws BlankAliasApiException * @throws ExistentMobileApiException * @throws NoTopicsApiException * @throws NonExistentTopicApiException * @throws NoResellPackageApiException * @throws NonExistentResellPackageApiException * @throws TrialNotAcceptedApiException * @throws InsufficientBalanceApiException */ public function create($mobile, $uniqueness, $alias, $topics, $resellPackage) { try { $this->pickProfileApiWorker->pick($uniqueness); } catch (NonExistentUniquenessApiException $e) { throw $e; } try { $this->validateMobileAndAliasInternalWorker->validate($mobile, $alias); } catch (InvalidMobileInternalException $e) { throw new InvalidMobileApiException(); } catch (BlankAliasInternalException $e) { throw new BlankAliasApiException(); } catch (ExistentMobileInternalException $e) { throw new ExistentMobileApiException(); } try { $this->validateTopicsInternalWorker->validate($topics); } catch (NoTopicsInternalException $e) { throw new NoTopicsApiException(); } catch (NonExistentTopicInternalException $e) { throw new NonExistentTopicApiException(); } $mobile = PhoneNumberFixer::fix($mobile); if (!$resellPackage) { throw new NoResellPackageApiException(); } try { $resellPackage = $this->pickResellPackageInternalWorker->pick($resellPackage); } catch (NonExistentResellPackageInternalException $e) { throw new NonExistentResellPackageApiException(); } if ($resellPackage['price'] == 0) { try { $this->createTrialSubscriptionInternalWorker->create($mobile, $uniqueness, $alias, $topics, 10); } catch (TrialNotAcceptedInternalException $e) { throw new TrialNotAcceptedApiException(); } } else { try { $this->createPaidSubscriptionInternalWorker->create($mobile, $uniqueness, $alias, $topics, $resellPackage); } catch (InsufficientBalanceInternalException $e) { throw new InsufficientBalanceApiException(); } } }