public function getParameters() : EditPersonalParameters { $data = $this->getData(); $parameters = new EditPersonalParameters($data['method'], $data['avatar'] ?? false, $data['first_name'], $data['last_name'], $data['middle_name'], $data['nick_name']); if (isset($data->gender) && is_string($data->gender)) { $parameters->specifyGender($data->gender); } return $parameters; }
public function updatePersonalData(int $profileId, EditPersonalParameters $parameters) : Profile { $profile = $this->getProfileById($profileId); $profile->setGreetings(Greetings::createFromMethod($parameters->getMethod(), ['first_name' => $parameters->getFirstName(), 'last_name' => $parameters->getLastName(), 'middle_name' => $parameters->getMiddleName(), 'nick_name' => $parameters->getNickName()])); if ($parameters->isGenderSpecified()) { $profile->setGender(Gender::createFromStringCode($parameters->getGender())); } if ($parameters->isAvatarRegenetateRequested()) { $this->avatarService->generateImage(new ProfileImageStrategy($profile, $this->imagesFlySystem, $this->wwwImagesDir)); } $this->profileRepository->saveProfile($profile); $this->getEventEmitter()->emit(self::EVENT_PROFILE_UPDATED, [$profile]); return $profile; }