impl. api routes NO_CI

This commit is contained in:
unknown 2020-06-12 12:55:32 +02:00
parent 2a895f3427
commit 2e35dba36d

View File

@ -133,6 +133,83 @@ final class ApiController extends Controller
return [];
}
/**
* Api method to get a doc
*
* @param RequestAbstract $request Request
* @param ResponseAbstract $response Response
* @param mixed $data Generic data
*
* @return void
*
* @api
*
* @since 1.0.0
*/
public function apiWikiDocGet(RequestAbstract $request, ResponseAbstract $response, $data = null) : void
{
$doc = WikiDocMapper::get((int) $request->getData('id'));
$this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Doc', 'Doc successfully returned', $doc);
}
/**
* Api method to create doc
*
* @param RequestAbstract $request Request
* @param ResponseAbstract $response Response
* @param mixed $data Generic data
*
* @return void
*
* @api
*
* @since 1.0.0
*/
public function apiWikiDocUpdate(RequestAbstract $request, ResponseAbstract $response, $data = null) : void
{
$old = clone WikiDocMapper::get((int) $request->getData('id'));
$new = $this->updateDocFromRequest($request);
$this->updateModel($request->getHeader()->getAccount(), $old, $new, WikiDocMapper::class, 'doc', $request->getOrigin());
$this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Doc', 'Doc successfully updated', $new);
}
/**
* Method to update doc from request.
*
* @param RequestAbstract $request Request
*
* @return WikiDoc
*
* @since 1.0.0
*/
private function updateDocFromRequest(RequestAbstract $request) : WikiDoc
{
$doc = WikiDocMapper::get((int) $request->getData('id'));
$doc->setName((string) ($request->getData('title') ?? $doc->getName()));
return $doc;
}
/**
* Api method to delete doc
*
* @param RequestAbstract $request Request
* @param ResponseAbstract $response Response
* @param mixed $data Generic data
*
* @return void
*
* @api
*
* @since 1.0.0
*/
public function apiWikiDocDelete(RequestAbstract $request, ResponseAbstract $response, $data = null) : void
{
$doc = WikiDocMapper::get((int) $request->getData('id'));
$this->deleteModel($request->getHeader()->getAccount(), $doc, WikiDocMapper::class, 'doc', $request->getOrigin());
$this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Doc', 'Doc successfully deleted', $doc);
}
/**
* Api method to create a wiki category
*
@ -202,4 +279,220 @@ final class ApiController extends Controller
return [];
}
/**
* Api method to get a category
*
* @param RequestAbstract $request Request
* @param ResponseAbstract $response Response
* @param mixed $data Generic data
*
* @return void
*
* @api
*
* @since 1.0.0
*/
public function apiWikiCategoryGet(RequestAbstract $request, ResponseAbstract $response, $data = null) : void
{
$category = WikiCategoryMapper::get((int) $request->getData('id'));
$this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Category', 'Category successfully returned', $category);
}
/**
* Api method to create category
*
* @param RequestAbstract $request Request
* @param ResponseAbstract $response Response
* @param mixed $data Generic data
*
* @return void
*
* @api
*
* @since 1.0.0
*/
public function apiWikiCategoryUpdate(RequestAbstract $request, ResponseAbstract $response, $data = null) : void
{
$old = clone WikiCategoryMapper::get((int) $request->getData('id'));
$new = $this->updateCategoryFromRequest($request);
$this->updateModel($request->getHeader()->getAccount(), $old, $new, WikiCategoryMapper::class, 'category', $request->getOrigin());
$this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Category', 'Category successfully updated', $new);
}
/**
* Method to update category from request.
*
* @param RequestAbstract $request Request
*
* @return WikiCategory
*
* @since 1.0.0
*/
private function updateCategoryFromRequest(RequestAbstract $request) : WikiCategory
{
$category = WikiCategoryMapper::get((int) $request->getData('id'));
$category->setName((string) ($request->getData('title') ?? $category->getName()));
return $category;
}
/**
* Api method to delete category
*
* @param RequestAbstract $request Request
* @param ResponseAbstract $response Response
* @param mixed $data Generic data
*
* @return void
*
* @api
*
* @since 1.0.0
*/
public function apiWikiCategoryDelete(RequestAbstract $request, ResponseAbstract $response, $data = null) : void
{
$category = WikiCategoryMapper::get((int) $request->getData('id'));
$this->deleteModel($request->getHeader()->getAccount(), $category, WikiCategoryMapper::class, 'category', $request->getOrigin());
$this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Category', 'Category successfully deleted', $category);
}
/**
* Api method to create a wiki app
*
* @param RequestAbstract $request Request
* @param ResponseAbstract $response Response
* @param mixed $data Generic data
*
* @return void
*
* @api
*
* @since 1.0.0
*/
public function apiWikiAppCreate(RequestAbstract $request, ResponseAbstract $response, $data = null) : void
{
if (!empty($val = $this->validateWikiAppCreate($request))) {
$response->set($request->getUri()->__toString(), new FormValidation($val));
return;
}
$app = $this->createWikiAppFromRequest($request);
$this->createModel($request->getHeader()->getAccount(), $app, WikiAppMapper::class, 'app', $request->getOrigin());
$this->fillJsonResponse($request, $response, NotificationLevel::OK, 'App', 'App successfully created.', $app);
}
/**
* Method to create a wiki app from request.
*
* @param RequestAbstract $request Request
*
* @return WikiApp
*
* @since 1.0.0
*/
public function createWikiAppFromRequest(RequestAbstract $request) : WikiApp
{
$app = new WikiApp();
$app->setName((string) $request->getData('name'));
return $app;
}
/**
* Method to validate wiki app creation from request
*
* @param RequestAbstract $request Request
*
* @return array<string, bool>
*
* @since 1.0.0
*/
private function validateWikiAppCreate(RequestAbstract $request) : array
{
$val = [];
if (($val['name'] = empty($request->getData('name')))) {
return $val;
}
return [];
}
/**
* Api method to get a app
*
* @param RequestAbstract $request Request
* @param ResponseAbstract $response Response
* @param mixed $data Generic data
*
* @return void
*
* @api
*
* @since 1.0.0
*/
public function apiWikiAppGet(RequestAbstract $request, ResponseAbstract $response, $data = null) : void
{
$app = WikiAppMapper::get((int) $request->getData('id'));
$this->fillJsonResponse($request, $response, NotificationLevel::OK, 'App', 'App successfully returned', $app);
}
/**
* Api method to create app
*
* @param RequestAbstract $request Request
* @param ResponseAbstract $response Response
* @param mixed $data Generic data
*
* @return void
*
* @api
*
* @since 1.0.0
*/
public function apiWikiAppUpdate(RequestAbstract $request, ResponseAbstract $response, $data = null) : void
{
$old = clone WikiAppMapper::get((int) $request->getData('id'));
$new = $this->updateAppFromRequest($request);
$this->updateModel($request->getHeader()->getAccount(), $old, $new, WikiAppMapper::class, 'app', $request->getOrigin());
$this->fillJsonResponse($request, $response, NotificationLevel::OK, 'App', 'App successfully updated', $new);
}
/**
* Method to update app from request.
*
* @param RequestAbstract $request Request
*
* @return WikiApp
*
* @since 1.0.0
*/
private function updateAppFromRequest(RequestAbstract $request) : WikiApp
{
$app = WikiAppMapper::get((int) $request->getData('id'));
$app->setName((string) ($request->getData('title') ?? $app->getName()));
return $app;
}
/**
* Api method to delete app
*
* @param RequestAbstract $request Request
* @param ResponseAbstract $response Response
* @param mixed $data Generic data
*
* @return void
*
* @api
*
* @since 1.0.0
*/
public function apiWikiAppDelete(RequestAbstract $request, ResponseAbstract $response, $data = null) : void
{
$app = WikiAppMapper::get((int) $request->getData('id'));
$this->deleteModel($request->getHeader()->getAccount(), $app, WikiAppMapper::class, 'app', $request->getOrigin());
$this->fillJsonResponse($request, $response, NotificationLevel::OK, 'App', 'App successfully deleted', $app);
}
}