mirror of
https://github.com/Karaka-Management/oms-Editor.git
synced 2026-01-29 01:38:41 +00:00
Auditor diff draft
This commit is contained in:
parent
4b68ec92fd
commit
0cfd15b37e
|
|
@ -16,5 +16,32 @@ return [
|
|||
'state' => PermissionState::DOC,
|
||||
],
|
||||
],
|
||||
[
|
||||
'dest' => '\Modules\Editor\Controller\ApiController:apiEditorUpdate',
|
||||
'verb' => RouteVerb::SET,
|
||||
'permission' => [
|
||||
'module' => ApiController::MODULE_NAME,
|
||||
'type' => PermissionType::MODIFY,
|
||||
'state' => PermissionState::DOC,
|
||||
],
|
||||
],
|
||||
[
|
||||
'dest' => '\Modules\Editor\Controller\ApiController:apiEditorGet',
|
||||
'verb' => RouteVerb::GET,
|
||||
'permission' => [
|
||||
'module' => ApiController::MODULE_NAME,
|
||||
'type' => PermissionType::READ,
|
||||
'state' => PermissionState::DOC,
|
||||
],
|
||||
],
|
||||
[
|
||||
'dest' => '\Modules\Editor\Controller\ApiController:apiEditorDelete',
|
||||
'verb' => RouteVerb::DELETE,
|
||||
'permission' => [
|
||||
'module' => ApiController::MODULE_NAME,
|
||||
'type' => PermissionType::DELETE,
|
||||
'state' => PermissionState::DOC,
|
||||
],
|
||||
],
|
||||
],
|
||||
];
|
||||
|
|
|
|||
|
|
@ -34,6 +34,15 @@ use phpOMS\Utils\Parser\Markdown\Markdown;
|
|||
final class ApiController extends Controller
|
||||
{
|
||||
|
||||
/**
|
||||
* Validate document create request
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
*
|
||||
* @return array<string, bool>
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
private function validateEditorCreate(RequestAbstract $request) : array
|
||||
{
|
||||
$val = [];
|
||||
|
|
@ -47,6 +56,8 @@ final class ApiController extends Controller
|
|||
}
|
||||
|
||||
/**
|
||||
* Api method to create document
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
* @param ResponseAbstract $response Response
|
||||
* @param mixed $data Generic data
|
||||
|
|
@ -89,4 +100,83 @@ final class ApiController extends Controller
|
|||
|
||||
return $doc;
|
||||
}
|
||||
|
||||
/**
|
||||
* Api method to create document
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
* @param ResponseAbstract $response Response
|
||||
* @param mixed $data Generic data
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @api
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public function apiEditorUpdate(RequestAbstract $request, ResponseAbstract $response, $data = null) : void
|
||||
{
|
||||
$old = clone EditorDocMapper::get((int) $request->getData('id'));
|
||||
$new = $this->updateEditorFromRequest($request);
|
||||
$this->updateModel($request, $old, $new, EditorDocMapper::class, 'doc');
|
||||
$this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Document', 'Document successfully updated', $new);
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to update document from request.
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
*
|
||||
* @return EditorDoc
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
private function updateEditorFromRequest(RequestAbstract $request) : EditorDoc
|
||||
{
|
||||
$doc = EditorDocMapper::get((int) $request->getData('id'));
|
||||
$doc->setTitle((string) ($request->getData('title') ?? $doc->getTitle()));
|
||||
$doc->setPlain((string) ($request->getData('plain') ?? $doc->getPlain()));
|
||||
$doc->setContent(Markdown::parse((string) ($request->getData('plain') ?? $doc->getPlain())));
|
||||
|
||||
return $doc;
|
||||
}
|
||||
|
||||
/**
|
||||
* Api method to get a document
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
* @param ResponseAbstract $response Response
|
||||
* @param mixed $data Generic data
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @api
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public function apiEditorGet(RequestAbstract $request, ResponseAbstract $response, $data = null) : void
|
||||
{
|
||||
$doc = EditorDocMapper::get((int) $request->getData('id'));
|
||||
$this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Document', 'Document successfully returned', $doc);
|
||||
}
|
||||
|
||||
/**
|
||||
* Api method to delete document
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
* @param ResponseAbstract $response Response
|
||||
* @param mixed $data Generic data
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @api
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public function apiEditorDelete(RequestAbstract $request, ResponseAbstract $response, $data = null) : void
|
||||
{
|
||||
$doc = EditorDocMapper::get((int) $request->getData('id'));
|
||||
$this->deleteModel($request, $doc, EditorDocMapper::class, 'doc');
|
||||
$this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Document', 'Document successfully deleted', $doc);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user