diff --git a/init.php b/init.php index d5fad70..93ab84c 100644 --- a/init.php +++ b/init.php @@ -69,6 +69,7 @@ require_once __DIR__ . '/src/Component/Entity/DiscountCoupon.php'; require_once __DIR__ . '/src/Component/Entity/DiscountCouponSnapshot.php'; require_once __DIR__ . '/src/Component/Entity/DiscussionPost.php'; +require_once __DIR__ . '/src/Component/Entity/DiscussionSettings.php'; require_once __DIR__ . '/src/Component/Entity/DocumentConsumptionTax.php'; require_once __DIR__ . '/src/Component/Entity/DocumentCustomer.php'; require_once __DIR__ . '/src/Component/Entity/DocumentItemsWithPrice.php'; @@ -854,6 +855,10 @@ require_once __DIR__ . '/src/Endpoint/Discussions/DeleteDiscussionById.php'; require_once __DIR__ . '/src/Endpoint/Discussions/DeleteDiscussionByIdResponse/DeleteDiscussionByIdResponse.php'; require_once __DIR__ . '/src/Endpoint/Discussions/DeleteDiscussionByIdResponse/DeleteDiscussionByIdResponse/Data.php'; +require_once __DIR__ . '/src/Endpoint/Discussions/GetDiscussionSettings.php'; +require_once __DIR__ . '/src/Endpoint/Discussions/GetDiscussionSettingsResponse/GetDiscussionSettingsResponse.php'; +require_once __DIR__ . '/src/Endpoint/Discussions/GetDiscussionSettingsResponse/GetDiscussionSettingsResponse/Data.php'; +require_once __DIR__ . '/src/Endpoint/Discussions/GetDiscussionSettingsResponse/GetDiscussionSettingsResponse/Data/Settings.php'; require_once __DIR__ . '/src/Endpoint/Discussions/GetListOfDiscussionPosts.php'; require_once __DIR__ . '/src/Endpoint/Discussions/GetListOfDiscussionPostsResponse/GetListOfDiscussionPostsResponse.php'; require_once __DIR__ . '/src/Endpoint/Discussions/GetListOfDiscussionPostsResponse/GetListOfDiscussionPostsResponse/Data.php'; diff --git a/src/Component/Entity/DiscussionSettings.php b/src/Component/Entity/DiscussionSettings.php new file mode 100644 index 0000000..584a7ce --- /dev/null +++ b/src/Component/Entity/DiscussionSettings.php @@ -0,0 +1,79 @@ +context; + } + + public function setContext(string $context): static + { + $this->context = $context; + return $this; + } + + public function isActive(): bool + { + return $this->active; + } + + public function setActive(bool $active): static + { + $this->active = $active; + return $this; + } + + public function isAuthorizationRequired(): bool + { + return $this->authorizationRequired; + } + + public function setAuthorizationRequired(bool $authorizationRequired): static + { + $this->authorizationRequired = $authorizationRequired; + return $this; + } + + public function isOnlyRegisteredUsers(): bool + { + return $this->onlyRegisteredUsers; + } + + public function setOnlyRegisteredUsers(bool $onlyRegisteredUsers): static + { + $this->onlyRegisteredUsers = $onlyRegisteredUsers; + return $this; + } + + public function isUsersCanAnswer(): bool + { + return $this->usersCanAnswer; + } + + public function setUsersCanAnswer(bool $usersCanAnswer): static + { + $this->usersCanAnswer = $usersCanAnswer; + return $this; + } + + public function getItemsPerPage(): int + { + return $this->itemsPerPage; + } + + public function setItemsPerPage(int $itemsPerPage): static + { + $this->itemsPerPage = $itemsPerPage; + return $this; + } +} diff --git a/src/Endpoint/Discussions/GetDiscussionSettings.php b/src/Endpoint/Discussions/GetDiscussionSettings.php new file mode 100644 index 0000000..16f8502 --- /dev/null +++ b/src/Endpoint/Discussions/GetDiscussionSettings.php @@ -0,0 +1,33 @@ + false]; + + public function getRequestEntityClass(): null + { + return null; + } + + public function getResponseEntityClass(): string + { + return GetDiscussionSettingsResponse::class; + } + + public function getEndpoint(): string + { + return '/api/discussions/settings'; + } +} diff --git a/src/Endpoint/Discussions/GetDiscussionSettingsResponse/GetDiscussionSettingsResponse.php b/src/Endpoint/Discussions/GetDiscussionSettingsResponse/GetDiscussionSettingsResponse.php new file mode 100644 index 0000000..02affaa --- /dev/null +++ b/src/Endpoint/Discussions/GetDiscussionSettingsResponse/GetDiscussionSettingsResponse.php @@ -0,0 +1,48 @@ +data; + } + + public function setData(?Data $data): static + { + $this->data = $data; + return $this; + } + + public function getErrors(): ?Errors + { + return $this->errors; + } + + public function setErrors(?Errors $errors): static + { + $this->errors = $errors; + return $this; + } + + public function getMetadata(): ?Metadata + { + return $this->metadata; + } + + public function setMetadata(?Metadata $metadata): static + { + $this->metadata = $metadata; + return $this; + } +} diff --git a/src/Endpoint/Discussions/GetDiscussionSettingsResponse/GetDiscussionSettingsResponse/Data.php b/src/Endpoint/Discussions/GetDiscussionSettingsResponse/GetDiscussionSettingsResponse/Data.php new file mode 100644 index 0000000..50ea804 --- /dev/null +++ b/src/Endpoint/Discussions/GetDiscussionSettingsResponse/GetDiscussionSettingsResponse/Data.php @@ -0,0 +1,22 @@ +settings; + } + + public function setSettings(Settings $settings): static + { + $this->settings = $settings; + return $this; + } +} diff --git a/src/Endpoint/Discussions/GetDiscussionSettingsResponse/GetDiscussionSettingsResponse/Data/Settings.php b/src/Endpoint/Discussions/GetDiscussionSettingsResponse/GetDiscussionSettingsResponse/Data/Settings.php new file mode 100644 index 0000000..9651980 --- /dev/null +++ b/src/Endpoint/Discussions/GetDiscussionSettingsResponse/GetDiscussionSettingsResponse/Data/Settings.php @@ -0,0 +1,31 @@ + + * @property DiscussionSettings[] $data + * @method DiscussionSettings[] toArray() + * @method void set(int $key, DiscussionSettings $item) + * @method null|DiscussionSettings get(int $key) + * @method void add(DiscussionSettings $item) + * @method null|DiscussionSettings remove(int $key) + * @method bool removeItem(DiscussionSettings $item, bool $strict = true) + * @method bool contains(DiscussionSettings $item, bool $strict = true) + * @method null|DiscussionSettings offsetGet(int $offset) + * @method void offsetSet(int $offset, DiscussionSettings $value) + */ +class Settings extends EntityCollection +{ + /** + * @param mixed $data + * @return class-string + */ + public function getItemType(mixed $data): string + { + return 'Shoptet\Api\Sdk\Php\Component\Entity\DiscussionSettings'; + } +} diff --git a/src/Endpoint/EndpointMap.php b/src/Endpoint/EndpointMap.php index b6c3f62..638e360 100644 --- a/src/Endpoint/EndpointMap.php +++ b/src/Endpoint/EndpointMap.php @@ -192,6 +192,7 @@ class EndpointMap '/api/articles/sections/{articleSectionId}' => 'Shoptet\Api\Sdk\Php\Endpoint\Articles\GetDetailOfArticleSection', '/api/pages' => 'Shoptet\Api\Sdk\Php\Endpoint\Pages\GetListOfPages', '/api/pages/{pageId}' => 'Shoptet\Api\Sdk\Php\Endpoint\Pages\GetDetailOfPage', + '/api/discussions/settings' => 'Shoptet\Api\Sdk\Php\Endpoint\Discussions\GetDiscussionSettings', '/api/discussions-posts' => 'Shoptet\Api\Sdk\Php\Endpoint\Discussions\GetListOfDiscussionPosts', '/api/system/jobs' => 'Shoptet\Api\Sdk\Php\Endpoint\Jobs\GetListOfJobs', '/api/system/jobs/{jobId}' => 'Shoptet\Api\Sdk\Php\Endpoint\Jobs\GetJobDetail', diff --git a/src/Sdk.php b/src/Sdk.php index 40f7904..f962e40 100644 --- a/src/Sdk.php +++ b/src/Sdk.php @@ -154,6 +154,7 @@ use Shoptet\Api\Sdk\Php\Endpoint\Discussions\CreateDiscussionPosts; use Shoptet\Api\Sdk\Php\Endpoint\Discussions\CreateDiscussionPostsRequest\CreateDiscussionPostsRequest; use Shoptet\Api\Sdk\Php\Endpoint\Discussions\DeleteDiscussionById; +use Shoptet\Api\Sdk\Php\Endpoint\Discussions\GetDiscussionSettings; use Shoptet\Api\Sdk\Php\Endpoint\Discussions\GetListOfDiscussionPosts; use Shoptet\Api\Sdk\Php\Endpoint\Discussions\UpdateDiscussionPost; use Shoptet\Api\Sdk\Php\Endpoint\Discussions\UpdateDiscussionPostRequest\UpdateDiscussionPostRequest; @@ -8391,6 +8392,26 @@ public static function updatePage( ->execute(); } + /** + * @param array{ + * language?: string, + * } $queryParams + * + * @return ResponseInterface + * + * @throws LogicException + * @throws RuntimeException + * + * @see https://api.docs.shoptet.com/shoptet-api/openapi/Discussions/getdiscussionsettings + */ + public static function getDiscussionSettings(array $queryParams = []): ResponseInterface + { + return self::getEndpointFactory() + ->createEndpoint(GetDiscussionSettings::class) + ->setQueryParams($queryParams) + ->execute(); + } + /** * @param array{ * language?: string,