public function run(ServerRequestInterface $request, ResponseBuilder $responseBuilder) : ResponseInterface { try { $profileId = (int) $request->getAttribute('profileId'); $this->validation->validateIsProfileOwnedByAccount($this->currentAccountService->getCurrentAccount(), $this->profileService->getProfileById($profileId)); $method = $request->getAttribute('method'); $parameters = (array) $this->getRequest($request, $method)->getParameters(); $profile = $this->profileService->setGreetings($profileId, Greetings::createFromMethod($method, $parameters)); $responseBuilder->setStatusSuccess()->setJson(['greetings' => $profile->getGreetings()->toJSON()]); } catch (ProfileNotFoundException $e) { $responseBuilder->setError($e)->setStatusNotFound(); } return $responseBuilder->build(); }
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; }