コード例 #1
0
ファイル: AccountResource.php プロジェクト: zource/zource
 public function create($data)
 {
     $person = new Person($data->first_name, $data->last_name);
     if (isset($data->middle_name)) {
         $person->setMiddleName($data->middle_name);
     }
     if (isset($data->display_name)) {
         $person->setDisplayName($data->display_name);
     }
     $account = new Account($person);
     switch ($data->status) {
         case 'active':
             $account->setStatus(AccountInterface::STATUS_ACTIVE);
             break;
         case 'inactive':
             $account->setStatus(AccountInterface::STATUS_INACTIVE);
             break;
         default:
             throw new RuntimeException('Invalid account status provided.');
     }
     $this->entityManager->persist($person);
     $this->entityManager->persist($account);
     $this->entityManager->flush($account);
     return new AccountEntity($account);
 }
コード例 #2
0
ファイル: Account.php プロジェクト: zource/zource
 public function inviteAccount($data)
 {
     // Lookup the e-mail address:
     $repository = $this->entityManager->getRepository(Email::class);
     $accountEmail = $repository->findOneBy(['address' => $data['email']]);
     if ($accountEmail !== null) {
         return $accountEmail->getAccount();
     }
     $person = new Person($data['first_name'], $data['last_name']);
     $person->setMiddleName($data['middle_name']);
     $emailAddress = new EmailAddress($person, EmailAddress::TYPE_WORK, $data['email']);
     $account = new AccountEntity($person);
     $account->setStatus(AccountEntity::STATUS_INVITED);
     $accountEmail = new Email($account, $data['email']);
     $accountEmail->setValidationCode(Rand::getString(32, range('a', 'z')));
     $account->getEmailAddresses()->add($accountEmail);
     $this->entityManager->persist($person);
     $this->entityManager->persist($emailAddress);
     $this->entityManager->persist($account);
     $this->entityManager->flush();
     return $account;
 }
コード例 #3
0
ファイル: Contact.php プロジェクト: zource/zource
 private function populatePerson(PersonEntity $person)
 {
     $genders = [0, 1, 2, 9];
     $gender = $genders[Rand::getInteger(0, count($genders) - 1)];
     $person->setGender($gender);
     $person->setJobTitle('Software Engineer');
     $person->setDepartment('Department');
     if ($gender === 2) {
         $person->setMaidenName('Maiden name');
     }
     $person->setNickname('Nickname');
 }
コード例 #4
0
ファイル: VCardBuilder.php プロジェクト: zource/zource
 public function buildPerson(Person $person)
 {
     $data = [];
     $data['REV'] = $person->getLastUpdated()->format(self::DATE_FORMAT);
     $data['KIND'] = 'individual';
     switch ($person->getGender()) {
         case Person::GENDER_FEMALE:
             $data['GENDER'] = 'F';
             break;
         case Person::GENDER_MALE:
             $data['GENDER'] = 'M';
             break;
         default:
             break;
     }
     $data['FN'] = $person->getFullName();
     $data['N'] = [$person->getFirstName(), $person->getLastName(), null, $person->getPrefix()];
     //if ($person->getDateOfBirth() !== null) {
     //    $data['BDAY'] = $person->getDateOfBirth()->format('Ymd');
     //}
     //$data['BIRTHPLACE'] = '';
     //$data['DEATHDATE'] = '';
     //$data['DEATHPLACE'] = '';
     //$data['IMPP:aim'] = '*****@*****.**';
     if ($person->getNickname() !== null) {
         $data['NICKNAME'] = $person->getNickname();
     }
     if ($person->getNotes() !== null) {
         $data['NOTE'] = $person->getNotes();
     }
     //if ($person->getRole() !== null) {
     //    $data['ROLE'] = $person->getRole();
     //}
     //$data['TEL;TYPE=cell'] = '(123) 555-5832';
     return $this->buildObject($data);
 }
コード例 #5
0
ファイル: Contact.php プロジェクト: zource/zource
 private function extractPerson(Person $item, array &$data)
 {
     $data['type'] = 'person';
     $data['gender'] = $item->getGender();
     $data['first_name'] = $item->getFirstName();
     $data['phonetic_first_name'] = $item->getPhoneticFirstName();
     $data['middle_name'] = $item->getMiddleName();
     $data['phonetic_middle_name'] = $item->getPhoneticMiddleName();
     $data['last_name'] = $item->getLastName();
     $data['phonetic_last_name'] = $item->getPhoneticLastName();
     $data['maiden_name'] = $item->getMaidenName();
     $data['suffix'] = $item->getSuffix();
     $data['nickname'] = $item->getNickname();
     $data['job_title'] = $item->getJobTitle();
     $data['department'] = $item->getDepartment();
     $data['company'] = $item->getCompany();
 }
コード例 #6
0
ファイル: ContactEntity.php プロジェクト: zource/zource
 public function __construct(Person $person)
 {
     $this->id = $person->getId();
     $this->firstName = $person->getFirstName();
 }