. */ namespace SP\Modules\Api\Controllers\Client; use Exception; use SP\Core\Acl\ActionsInterface; use SP\Core\Events\Event; use SP\Core\Events\EventMessage; use SP\DataModel\ClientData; use SP\Domain\Api\Services\ApiResponse; /** * Class CreateController */ final class CreateController extends ClientBase { /** * createAction */ public function createAction(): void { try { $this->setupApi(ActionsInterface::CLIENT_CREATE); $clientData = $this->buildClientData(); $id = $this->clientService->create($clientData); $clientData->setId($id); $this->eventDispatcher->notifyEvent( 'create.client', new Event( $this, EventMessage::factory() ->addDescription(__u('Client added')) ->addDetail(__u('Name'), $clientData->getName()) ->addDetail('ID', $id) ) ); $this->returnResponse(ApiResponse::makeSuccess($clientData, $id, __('Client added'))); } catch (Exception $e) { processException($e); $this->returnResponseException($e); } } /** * @return \SP\DataModel\ClientData * @throws \SP\Domain\Common\Services\ServiceException */ private function buildClientData(): ClientData { $clientData = new ClientData(); $clientData->setName($this->apiService->getParamString('name', true)); $clientData->setDescription($this->apiService->getParamString('description')); $clientData->setIsGlobal($this->apiService->getParamInt('global')); return $clientData; } }