コード例 #1
0
 /**
  * Build an instance of ReferralInterface using data from the form, and tie it to the logged in user and the current
  * existing reward configuration from the database.
  *
  * @param array $data    Data from a ReferAFriend form
  *
  * @return Referral
  */
 public function build(array $data)
 {
     if ($this->_user instanceof User\AnonymousUser) {
         throw new \LogicException('User must be logged in to make a referral');
     }
     if (!array_key_exists('email', $data)) {
         throw new \LogicException('Data must contain a value with a key of `email`');
     }
     $referral = $this->_factory->getReferral();
     $referral->setReferrer($this->_user);
     $referral->setRewardConfig($this->_config);
     $referral->setReferredEmail($data['email']);
     $referral->setReferredName($data['name']);
     $referral->setStatus(Statuses::PENDING);
     $referral->setCreatedAt(new \DateTime());
     return $referral;
 }
コード例 #2
0
 /**
  * Bind query results to an instance of ReferralProxy
  *
  * @param Result $result
  *
  * @return array
  */
 private function _bind(Result $result)
 {
     $referrals = [];
     foreach ($result as $row) {
         $referral = $this->_referralFactory->getReferralProxy();
         $referral->setID($row->id);
         $referral->setStatus($row->status);
         $referral->setRewardConfigID($row->rewardConfigID);
         $referral->setReferrerID($row->referrerID);
         $referral->setReferredEmail($row->referredEmail);
         $referral->setReferredName($row->referredName);
         $referral->setLoaders($this->_entityLoaders);
         $createdAt = new \DateTime();
         $createdAt->setTimestamp($row->createdAt);
         $referral->setCreatedAt($createdAt);
         $referrals[] = $referral;
     }
     return $referrals;
 }