D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
usr
/
local
/
psa
/
admin
/
plib
/
modules
/
rest-api
/
v2
/
externals
/
Handler
/
Filename :
Domains.php
back
Copy
<?php // Copyright 1999-2024. WebPros International GmbH. All rights reserved. namespace PleskExt\RestApi\v2\Handler; use PleskExt\RestApi\v2\Annotation\Consumer; use PleskExt\RestApi\v2\Annotation\Producer; use PleskExt\RestApi\v2\Helper\InvokableHandler; use PleskExt\RestApi\v2\Mapper\Domains as DomainsMapper; use PleskExt\RestApi\v2\Mapper\Response as ResponseMapper; use PleskExt\RestApi\v2\Entity\DomainRequest as DomainRequestEntity; use PleskExt\RestApi\v2\SDK; use PleskRestApi\Slim\Psr7\Request; use PleskRestApi\Slim\Psr7\Response; class Domains extends InvokableHandler { /** * @Producer(mapper=DomainsMapper::class) */ protected function get(Request $request, Response $response) { $domains = []; $name = $this->getQueryParam('name'); if ($name) { try { $domains = [SDK\pm_Domain::getByName($name)]; } catch (SDK\Exception\NotFoundException $e) { } } else { $domains = SDK\pm_Domain::getAllDomains(); } $response->getBody()->write($this->produce($domains)); return $response; } /** * @Consumer(type=DomainRequestEntity::class) * @Producer(mapper=ResponseMapper::class) */ protected function post(Request $request, Response $response) { $domain = SDK\pm_Domain::create($this->consume()); $response->getBody()->write($this->produce($domain)); return $response->withStatus(201); } }