コード例 #1
0
 public function run(ServerRequestInterface $request, ResponseBuilder $responseBuilder) : Response
 {
     try {
         $gender = $this->profileService->setGender($request->getAttribute('profileId'), Gender::createFromStringCode((new SetGenderRequest($request))->getParameters()->getGenderStringCode()));
         $responseBuilder->setStatusSuccess()->setJson(['gender' => $gender->toJSON()]);
     } catch (ProfileNotFoundException $e) {
         $responseBuilder->setError($e)->setStatusNotFound();
     }
     return $responseBuilder->build();
 }
コード例 #2
0
ファイル: Profile.php プロジェクト: cass-project/cass
 public function setGender(Gender $gender) : self
 {
     $this->gender = $gender->getIntCode();
     return $this;
 }
コード例 #3
0
ファイル: ProfileService.php プロジェクト: cass-project/cass
 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;
 }
コード例 #4
0
ファイル: DemoFixture.php プロジェクト: cass-project/cass
 private function createAccountFromJSON(array $json) : Account
 {
     if ($this->accountService->hasAccountWithEmail($json['email'])) {
         return $this->accountService->getByEmail($json['email']);
     } else {
         $account = $this->accountService->createAccount($json['email'], GenerateRandomString::gen(12));
         $profile = $account->getCurrentProfile();
         $profile->setGender(Gender::createFromIntCode((int) $json['gender']));
         $parameters = new EditPersonalParameters('fl', false, $json['username'] ?? '', $json['surname'] ?? '', $json['patronymic'] ?? '', $json['nickname'] ?? '');
         $this->profileService->updatePersonalData($profile->getId(), $parameters);
         $this->profileService->setInterestingInThemes($profile->getId(), $json['interests']);
         if ($json['birthday']) {
             $this->profileService->setBirthday($profile->getId(), \DateTime::createFromFormat('Y-m-d', $json['birthday']));
         }
         $avatarPath = sprintf("%s/%s", self::AVATAR_DIR, $json['avatar']);
         if (file_exists($avatarPath)) {
             list($width, $height) = getimagesize($avatarPath);
             if (!is_null($width) && !is_null($height)) {
                 $size = min($width, $height);
                 $parameters = new UploadImageParameters($avatarPath, new Point(0, 0), new Point($size, $size));
                 $this->profileService->uploadImage($profile->getId(), $parameters);
             }
         }
         return $account;
     }
 }