/** * Handle response of user profile search to return an abstract Member object * * @param array $response * * @return Member */ private function memberHandleResponse(array $response) { $member = MemberFactory::create($response['data']['email']); $member->setFirstName($response['data']['attributes']['FIRSTNAME'])->setLastName($response['data']['attributes']['LASTNAME']); if (null !== $response['data']['entered']) { $member->setDateSubscribe(new \DateTime($response['data']['entered'])); } // Handle custom fields $responseFieldAvailable = array_keys($response); foreach (EnumMemberCustomField::getSupportedValues() as $fieldName) { if (in_array($fieldName, $responseFieldAvailable)) { $setter = 'set' . StringToPascalCase::convert(strtolower($fieldName)); if (!method_exists($member, $setter)) { continue; } $value = $response[$fieldName]; if (null === $value) { continue; } $member->{$setter}($value); } } return $member; }
/** * Add custom field * * @param string $field Choose a constant from EnumCustomField class * @param mixed $value Some value * * @return $this */ private function addCustomField($field, $value) { if (in_array($field, EnumMemberCustomField::getSupportedValues())) { $this->customFields->addCustomFieldByKeyValue($field, $value); } return $this; }
/** * Handle response of user profile search to return an abstract Member object * * @param array $response * * @return Member */ private function memberHandleResponse(array $response) { $member = MemberFactory::create($response['EMAIL']); $member->setFirstName($response['FIRSTNAME'])->setLastName($response['LASTNAME'])->setEmailOrigin($response['EMAIL_ORIGINE'])->setCellphone($response['EMVCELLPHONE']); if (null !== $response['DATEOFBIRTH']) { $member->setBirthdayDate(new \DateTime($response['DATEOFBIRTH'])); } if (null !== $response['DATE_SUBSCRIBE']) { $member->setDateSubscribe(new \DateTime($response['DATE_SUBSCRIBE'])); } // Handle custom fields $responseFieldAvailable = array_keys($response); foreach (EnumMemberCustomField::getSupportedValues() as $fieldName) { if (in_array($fieldName, $responseFieldAvailable)) { $setter = 'set' . StringToPascalCase::convert(strtolower($fieldName)); if (!method_exists($member, $setter)) { continue; } $value = $response[$fieldName]; if (null === $value) { continue; } $member->{$setter}($value); } } return $member; }