diff --git a/classes/API/Endpoint.php b/classes/API/Endpoint.php index 63163ee..a46316a 100644 --- a/classes/API/Endpoint.php +++ b/classes/API/Endpoint.php @@ -12,6 +12,7 @@ // APIs Endpoints to be registered require_once(__DIR__ . '/v1/User/Get.php'); require_once(__DIR__ . '/v1/Accounts.php'); +require_once(__DIR__ . '/v1/Modules.php'); require_once(dirname(__DIR__) . '/AuthenticationModule.php'); @@ -75,6 +76,7 @@ public static function registerCoreEndpoints() { if (\UserConfig::$apiNamespace) { self::register(\UserConfig::$apiNamespace, 'GET', new \StartupAPI\API\v1\User\Get()); self::register(\UserConfig::$apiNamespace, 'GET', new \StartupAPI\API\v1\Accounts()); + self::register(\UserConfig::$apiNamespace, 'GET', new \StartupAPI\API\v1\Modules()); } } diff --git a/classes/API/v1/Modules.php b/classes/API/v1/Modules.php new file mode 100644 index 0000000..8e8c337 --- /dev/null +++ b/classes/API/v1/Modules.php @@ -0,0 +1,49 @@ + $module->getID(), + 'title' => $module->getTitle() + ]; + + if (is_subclass_of($module, '\AuthenticationModule', false)) { + $result['type'] = 'authentication'; + $result['is_compact'] = $module->isCompact(); + } else if (is_subclass_of($module, '\PaymentEngine', false)) { + $result['type'] = 'payment'; + } else if (is_subclass_of($module, '\EmailModule', false)) { + $result['type'] = 'email'; + } else if (is_subclass_of($module, '\StartupAPIModule', false)) { + $result['type'] = 'other'; + } + + $results[] = $result; + } + + return $results; + } + +}