D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
proc
/
self
/
root
/
opt
/
psa
/
admin
/
plib
/
modules
/
rest-api
/
v2
/
externals
/
Handler
/
Filename :
FtpUsers.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\Entity\FtpUserRequest; use PleskExt\RestApi\v2\Entity\FtpUserUpdateRequest; use PleskExt\RestApi\v2\Helper\InvokableHandler; use PleskExt\RestApi\v2\Mapper\FtpUser as FtpUserMapper; use PleskExt\RestApi\v2\Mapper\FtpUsers as FtpUsersMapper; use PleskExt\RestApi\v2\SDK; use PleskExt\RestApi\v2\Entity\SuccessResponse; use PleskRestApi\Slim\Psr7\Request; use PleskRestApi\Slim\Psr7\Response; class FtpUsers extends InvokableHandler { /** * @Producer(mapper=FtpUsersMapper::class) */ protected function get(Request $request, Response $response) { if (null !== ($name = $this->getQueryParam('name'))) { $users = [SDK\pm_FtpUser::getByName($name)]; } elseif (null !== ($domainName = $this->getQueryParam('domain'))) { $domain = SDK\pm_Domain::getByName($domainName); $users = SDK\pm_FtpUser::getForDomain($domain); } else { $users = SDK\pm_FtpUser::getAll(); } $response->getBody()->write($this->produce($users)); return $response; } /** * @Consumer(type=FtpUserUpdateRequest::class) */ protected function put(Request $request, Response $response) { $user = SDK\pm_FtpUser::getByName($request->getAttribute('name')); $user->update($this->consume()); $response->getBody()->write($this->produce(new SuccessResponse())); return $response; } /** * @Consumer(type=FtpUserRequest::class) * @Producer(mapper=FtpUserMapper::class) */ protected function post(Request $request, Response $response) { $user = SDK\pm_FtpUser::create($this->consume()); $response->getBody()->write($this->produce($user)); return $response; } protected function delete(Request $request, Response $response) { $user = SDK\pm_FtpUser::getByName($request->getAttribute('name')); $user->delete(); $response->getBody()->write($this->produce(new SuccessResponse())); return $response; } }