. */ namespace SP\Modules\Api\Controllers\Account; use Exception; use SP\Core\Events\Event; use SP\Core\Events\EventMessage; use SP\Domain\Api\Dtos\ApiResponse; use SP\Domain\Core\Acl\AclActionsInterface; /** * Class DeleteController */ final class DeleteController extends AccountBase { /** * deleteAction */ public function deleteAction(): void { try { $this->setupApi(AclActionsInterface::ACCOUNT_DELETE); $id = $this->apiService->getParamInt('id', true); $accountDetails = $this->accountService->getByIdEnriched($id)->getAccountVData(); $this->accountService->delete($id); $this->eventDispatcher->notify( 'delete.account', new Event( $this, EventMessage::factory() ->addDescription(__u('Account removed')) ->addDetail(__u('Name'), $accountDetails->getName()) ->addDetail(__u('Client'), $accountDetails->getClientName()) ->addDetail('ID', $id) ) ); $this->returnResponse(ApiResponse::makeSuccess($accountDetails, $id, __('Account removed'))); } catch (Exception $e) { processException($e); $this->returnResponseException($e); } } }