diff --git a/Admin/Routes/Web/Api.php b/Admin/Routes/Web/Api.php index 8f6d975..c7db8db 100755 --- a/Admin/Routes/Web/Api.php +++ b/Admin/Routes/Web/Api.php @@ -18,9 +18,9 @@ use phpOMS\Account\PermissionType; use phpOMS\Router\RouteVerb; return [ - '^.*/news.*$' => [ + '^.*/orw/resource.*$' => [ [ - 'dest' => '\Modules\OnlineResourceWatcher\Controller\ApiController:apiOnlineResourceWatcherCreate', + 'dest' => '\Modules\OnlineResourceWatcher\Controller\ApiController:apiResourceCreate', 'verb' => RouteVerb::PUT, 'permission' => [ 'module' => ApiController::NAME, @@ -29,7 +29,7 @@ return [ ], ], [ - 'dest' => '\Modules\OnlineResourceWatcher\Controller\ApiController:apiOnlineResourceWatcherUpdate', + 'dest' => '\Modules\OnlineResourceWatcher\Controller\ApiController:apiResourceUpdate', 'verb' => RouteVerb::SET, 'permission' => [ 'module' => ApiController::NAME, @@ -38,7 +38,7 @@ return [ ], ], [ - 'dest' => '\Modules\OnlineResourceWatcher\Controller\ApiController:apiOnlineResourceWatcherGet', + 'dest' => '\Modules\OnlineResourceWatcher\Controller\ApiController:apiResourceGet', 'verb' => RouteVerb::GET, 'permission' => [ 'module' => ApiController::NAME, @@ -47,7 +47,7 @@ return [ ], ], [ - 'dest' => '\Modules\OnlineResourceWatcher\Controller\ApiController:apiOnlineResourceWatcherDelete', + 'dest' => '\Modules\OnlineResourceWatcher\Controller\ApiController:apiResourceDelete', 'verb' => RouteVerb::DELETE, 'permission' => [ 'module' => ApiController::NAME, diff --git a/Controller/ApiController.php b/Controller/ApiController.php index 3801922..41749a2 100755 --- a/Controller/ApiController.php +++ b/Controller/ApiController.php @@ -131,4 +131,55 @@ final class ApiController extends Controller $this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Resources', 'Resources are getting checked.', null); } + + /** + * Api method to create resource + * + * @param RequestAbstract $request Request + * @param ResponseAbstract $response Response + * @param mixed $data Generic data + * + * @return void + * + * @api + * + * @since 1.0.0 + */ + public function apiResourceUpdate(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void + { + } + + /** + * Api method to create resource + * + * @param RequestAbstract $request Request + * @param ResponseAbstract $response Response + * @param mixed $data Generic data + * + * @return void + * + * @api + * + * @since 1.0.0 + */ + public function apiResourceGet(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void + { + } + + /** + * Api method to create resource + * + * @param RequestAbstract $request Request + * @param ResponseAbstract $response Response + * @param mixed $data Generic data + * + * @return void + * + * @api + * + * @since 1.0.0 + */ + public function apiResourceDelete(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void + { + } } diff --git a/Controller/BackendController.php b/Controller/BackendController.php index af27232..b35d947 100755 --- a/Controller/BackendController.php +++ b/Controller/BackendController.php @@ -32,5 +32,136 @@ use Web\Backend\Views\TableView; */ final class BackendController extends Controller { + /** + * Routing end-point for application behaviour. + * + * @param RequestAbstract $request Request + * @param ResponseAbstract $response Response + * @param mixed $data Generic data + * + * @return RenderableInterface Returns a renderable object + * + * @since 1.0.0 + * @codeCoverageIgnore + */ + public function viewOnlineResourceWatcherDashboard(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : RenderableInterface + { + $view = new View($this->app->l11nManager, $request, $response); + return $view; + } + + /** + * Routing end-point for application behaviour. + * + * @param RequestAbstract $request Request + * @param ResponseAbstract $response Response + * @param mixed $data Generic data + * + * @return RenderableInterface Returns a renderable object + * + * @since 1.0.0 + * @codeCoverageIgnore + */ + public function viewOnlineResourceWatcherArticle(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : RenderableInterface + { + $view = new View($this->app->l11nManager, $request, $response); + + return $view; + } + + /** + * Routing end-point for application behaviour. + * + * @param RequestAbstract $request Request + * @param ResponseAbstract $response Response + * @param mixed $data Generic data + * + * @return RenderableInterface Returns a renderable object + * + * @since 1.0.0 + * @codeCoverageIgnore + */ + public function viewOnlineResourceWatcherArchive(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : RenderableInterface + { + $view = new View($this->app->l11nManager, $request, $response); + + return $view; + } + + /** + * Routing end-point for application behaviour. + * + * @param RequestAbstract $request Request + * @param ResponseAbstract $response Response + * @param mixed $data Generic data + * + * @return RenderableInterface Returns a renderable object + * + * @since 1.0.0 + * @codeCoverageIgnore + */ + public function viewOnlineResourceWatcherDraftList(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : RenderableInterface + { + $view = new View($this->app->l11nManager, $request, $response); + + return $view; + } + + /** + * Routing end-point for application behaviour. + * + * @param RequestAbstract $request Request + * @param ResponseAbstract $response Response + * @param mixed $data Generic data + * + * @return RenderableInterface Returns a renderable object + * + * @since 1.0.0 + * @codeCoverageIgnore + */ + public function viewOnlineResourceWatcherCreate(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : RenderableInterface + { + $view = new View($this->app->l11nManager, $request, $response); + + return $view; + } + + /** + * Routing end-point for application behaviour. + * + * @param RequestAbstract $request Request + * @param ResponseAbstract $response Response + * @param mixed $data Generic data + * + * @return RenderableInterface Returns a renderable object + * + * @since 1.0.0 + * @codeCoverageIgnore + */ + public function viewOnlineResourceWatcherEdit(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : RenderableInterface + { + $view = new View($this->app->l11nManager, $request, $response); + + return $view; + } + + /** + * Routing end-point for application behaviour. + * + * @param RequestAbstract $request Request + * @param ResponseAbstract $response Response + * @param mixed $data Generic data + * + * @return RenderableInterface Returns a renderable object + * + * @since 1.0.0 + * @codeCoverageIgnore + */ + public function viewOnlineResourceWatcherAnalysis(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : RenderableInterface + { + $view = new View($this->app->l11nManager, $request, $response); + + return $view; + } } diff --git a/tests/Controller/ApiControllerTest.php b/tests/Controller/ApiControllerTest.php index 2f977e3..7b8d090 100755 --- a/tests/Controller/ApiControllerTest.php +++ b/tests/Controller/ApiControllerTest.php @@ -22,20 +22,28 @@ use phpOMS\Account\PermissionType; use phpOMS\Application\ApplicationAbstract; use phpOMS\Dispatcher\Dispatcher; use phpOMS\Event\EventManager; +use phpOMS\Module\ModuleAbstract; use phpOMS\Module\ModuleManager; use phpOMS\Router\WebRouter; use phpOMS\Utils\TestUtils; +use phpOMS\Message\Http\HttpRequest; +use phpOMS\Message\Http\HttpResponse; +use phpOMS\Message\Http\RequestStatusCode; +use phpOMS\Uri\HttpUri; /** * @testdox Modules\OnlineResourceWatcher\tests\Controller\ApiControllerTest: OnlineResourceWatcher api controller * * @internal */ -final class ControllerTest extends \PHPUnit\Framework\TestCase +final class ApiControllerTest extends \PHPUnit\Framework\TestCase { - protected $app = null; + protected ApplicationAbstract $app; - protected $module = null; + /** + * @var \Modules\OnlineResourceWatcher\Controller\ApiController + */ + protected ModuleAbstract $module; /** * {@inheritdoc} @@ -79,4 +87,22 @@ final class ControllerTest extends \PHPUnit\Framework\TestCase TestUtils::setMember($this->module, 'app', $this->app); } + + /** + * @covers Modules\OnlineResourceWatcher\Controller\ApiController + * @group module + */ + public function testApiAccountCreate() : void + { + $response = new HttpResponse(); + $request = new HttpRequest(new HttpUri('')); + + $request->header->account = 1; + $request->setData('title', 'Test Title'); + $request->setData('uri', 'https://jingga.app'); + + $this->module->apiResourceCreate($request, $response); + + self::assertGreaterThan(0, $response->get('')['response']->getId()); + } }