diff --git a/.env.example b/.env.example index 2844aa83b15abf0717fe0c105d69fbf01a31e6df..e9536360d197a81b3918418150e74e863551a84e 100644 --- a/.env.example +++ b/.env.example @@ -42,7 +42,7 @@ cache.handler="file" # cache.redis.port=6379 # cache.redis.database=0 -#REST API configuration #-------------------------------------------------------------------- -# 0/1 Disabled/Enabled -REST_API_ENABLED=1 \ No newline at end of file +# REST API configuration +#-------------------------------------------------------------------- +# restapi.enabled=true diff --git a/modules/Api/Rest/V1/Config/Api.php b/modules/Api/Rest/V1/Config/RestApi.php similarity index 71% rename from modules/Api/Rest/V1/Config/Api.php rename to modules/Api/Rest/V1/Config/RestApi.php index 849732e05c858dcd49de00e42486a79753332069..d32a6cb9ed4c4812c96ea9355299b4485dd0ce19 100644 --- a/modules/Api/Rest/V1/Config/Api.php +++ b/modules/Api/Rest/V1/Config/RestApi.php @@ -1,14 +1,20 @@ <?php - declare(strict_types=1); namespace Modules\Api\Rest\V1\Config; use CodeIgniter\Config\BaseConfig; -class Api extends BaseConfig +class RestApi extends BaseConfig { + /** + * Flag to enable or disable the Rest API. + * + * Disabled by default. + */ + public bool $enabled = false; + /** * -------------------------------------------------------------------------- * Rest API gateway diff --git a/modules/Api/Rest/V1/Config/Routes.php b/modules/Api/Rest/V1/Config/Routes.php index f40467e03f7e1e4001fd3324c7f9eea5a71355b9..e1c8804f2be25a265beb4f91fa2a90eab37218fe 100644 --- a/modules/Api/Rest/V1/Config/Routes.php +++ b/modules/Api/Rest/V1/Config/Routes.php @@ -7,7 +7,7 @@ namespace Modules\Api\Rest\V1\Config; $routes = service('routes'); $routes->group( - config('Api') + config('RestApi') ->gateway . 'podcasts', [ 'namespace' => 'Modules\Api\Rest\V1\Controllers', diff --git a/modules/Api/Rest/V1/Filters/ApiFilter.php b/modules/Api/Rest/V1/Filters/ApiFilter.php index efd23f3533aca5dea948b1aa7459dfe643ea6a95..d6e6b32afcaaee932c8a21e52d22fa27dfc0678b 100644 --- a/modules/Api/Rest/V1/Filters/ApiFilter.php +++ b/modules/Api/Rest/V1/Filters/ApiFilter.php @@ -13,7 +13,7 @@ class ApiFilter implements FilterInterface { public function before(RequestInterface $request, $arguments = null): void { - if (! getenv('REST_API_ENABLED')) { + if (! config('RestApi')->enabled) { throw PageNotFoundException::forPageNotFound(); } } diff --git a/phpunit.xml.dist b/phpunit.xml.dist index 7395ebae2c69f44d151b118db311b1db425a9c44..dcd869230060e10970ac93f75cded3ff2f8e2253 100644 --- a/phpunit.xml.dist +++ b/phpunit.xml.dist @@ -51,6 +51,6 @@ <env name="database.tests.password" value="castopod"/> <env name="database.tests.DBDriver" value="MySQLi"/> <env name="database.tests.DBPrefix" value="tests_"/> - <env name="REST_API_ENABLED" value="1"/> + <env name="restapi.enabled" value="true"/> </php> </phpunit> diff --git a/tests/modules/Api/Rest/V1/PodcastTest.php b/tests/modules/Api/Rest/V1/PodcastTest.php index 56a2f9c4ff361f120abb61d05864d5e4a7cab19c..ba6bc019b87c081be6ed27024b9f1a4cb0801f4e 100644 --- a/tests/modules/Api/Rest/V1/PodcastTest.php +++ b/tests/modules/Api/Rest/V1/PodcastTest.php @@ -55,7 +55,7 @@ class PodcastTest extends CIUnitTestCase $this->podcast = FakeSinglePodcastApiSeeder::podcast(); $this->podcast['created_at'] = []; $this->podcast['updated_at'] = []; - $this->podcastApiUrl = config('Api') + $this->podcastApiUrl = config('RestApi') ->gateway; }