Example #1
0
 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();
 }
Example #2
0
 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;
 }