diff --git a/README.md b/README.md index f4d451aa..cf930354 100644 --- a/README.md +++ b/README.md @@ -745,6 +745,20 @@ CLIENT_REDIRECT_URI="https://example.com/examples/get_token.php (Важно об После авторизации вы можете проверить работу примеров, обращаясь к ним из браузера. Стоит отметить, что для корректной работы примеров необходимо проверить ID сущностей в них. +## Работа с Issues +Если вы столкнулись с проблемой при работе с библиотекой, вы можете составить Issue, который будет рассмотрен при первой возможности. + +При составлении, детально опишите проблему, приложите примеры кода, а также ответы на запросы из getLastRequestInfo. + +Не забывайте удалять из примеров значимые данные, которые не должны быть достоянием общественности. + +Также могут быть рассмотрены пожелания по улучшению библиотеки. + +Вы можете предложить свои исправления/изменения исходного кода библиотеки, посредством создания Issue с описанием, а также Pull request с упоминанием Issue в комментарии к нему. +Они будут рассмотрены и будут приняты или отклонены. Некоторые Pull Request могут остаться без ответа и действия, в случае, если правки потенциально жизнеспособны, но в данный момент не являются ключевыми для проекта. + +Если вы столкнулись с проблемой функционала amoCRM - обратитесь в техническую поддержку через чат в вашем аккаунте. + ## License MIT diff --git a/src/AmoCRM/Collections/SocialProfiles/SocialProfilesCollection.php b/src/AmoCRM/Collections/SocialProfiles/SocialProfilesCollection.php new file mode 100644 index 00000000..5ddf8f27 --- /dev/null +++ b/src/AmoCRM/Collections/SocialProfiles/SocialProfilesCollection.php @@ -0,0 +1,25 @@ +socialProfiles; + } + + /** + * @param SocialProfilesCollection|null $socialProfiles + * + * @return ContactModel + */ + public function setSocialProfiles(?SocialProfilesCollection $socialProfiles): ContactModel + { + $this->socialProfiles = $socialProfiles; + + return $this; + } + /** * @return LeadsCollection|null */ @@ -568,7 +595,10 @@ public static function fromArray(array $contact): self ); $contactModel->setCatalogElementsLinks($catalogElementsCollection); } - + if (!empty($contact[AmoCRMApiRequest::EMBEDDED][self::SOCIAL_PROFILES])) { + $socialProfilesCollection = SocialProfilesCollection::fromArray($contact[AmoCRMApiRequest::EMBEDDED][self::SOCIAL_PROFILES]); + $contactModel->setSocialProfiles($socialProfilesCollection); + } if (!empty($contact['account_id'])) { $contactModel->setAccountId((int)$contact['account_id']); @@ -611,6 +641,10 @@ public function toArray(): array $result['catalog_elements'] = $this->getCatalogElementsLinks()->toArray(); } + if (!is_null($this->getSocialProfiles())) { + $result['social_profiles'] = $this->getSocialProfiles()->toArray(); + } + if (!is_null($this->getCompany())) { $result['company'] = $this->getCompany()->toArray(); } diff --git a/src/AmoCRM/Models/SocialProfiles/SocialProfileModel.php b/src/AmoCRM/Models/SocialProfiles/SocialProfileModel.php new file mode 100644 index 00000000..6b653d6d --- /dev/null +++ b/src/AmoCRM/Models/SocialProfiles/SocialProfileModel.php @@ -0,0 +1,182 @@ +setId($socialProfile['id']) + ->setName($socialProfile['name']) + ->setAvatar($socialProfile['avatar']) + ->setSourceName($socialProfile['source_name']) + ->setData($socialProfile['data']); + + return $model; + } + + /** + * @return string|null + */ + public function getId(): ?string + { + return $this->id; + } + + /** + * @param string|null $id + * + * @return SocialProfileModel + */ + public function setId(?string $id): SocialProfileModel + { + $this->id = $id; + + return $this; + } + + /** + * @return string|null + */ + public function getName(): ?string + { + return $this->name; + } + + /** + * @param string|null $name + * + * @return SocialProfileModel + */ + public function setName(?string $name): SocialProfileModel + { + $this->name = $name; + + return $this; + } + + /** + * @return string|null + */ + public function getAvatar(): ?string + { + return $this->avatar; + } + + /** + * @param string|null $avatar + * + * @return SocialProfileModel + */ + public function setAvatar(?string $avatar): SocialProfileModel + { + $this->avatar = $avatar; + + return $this; + } + + /** + * @return string|null + */ + public function getSourceName(): ?string + { + return $this->sourceName; + } + + /** + * @param string|null $sourceName + * + * @return SocialProfileModel + */ + public function setSourceName(?string $sourceName): SocialProfileModel + { + $this->sourceName = $sourceName; + + return $this; + } + + /** + * @return array|null + */ + public function getData(): ?array + { + return $this->data; + } + + /** + * @param array|null $data + * + * @return SocialProfileModel + */ + public function setData(?array $data): SocialProfileModel + { + $this->data = $data; + + return $this; + } + + /** + * @inheritDoc + */ + public function toArray(): array + { + return [ + 'id' => $this->getId(), + 'name' => $this->getName(), + 'avatar' => $this->getAvatar(), + 'source_name' => $this->getSourceName(), + 'data' => $this->getData(), + ]; + } + + /** + * @param string|null $requestId + * @return array + * @throws NotAvailableForActionException + */ + public function toApi(?string $requestId = "0"): array + { + throw new NotAvailableForActionException(); + } +}