summaryrefslogtreecommitdiffstats
path: root/apps/user_ldap/lib
diff options
context:
space:
mode:
authorjld3103 <jld3103yt@gmail.com>2023-06-14 17:20:21 +0200
committerjld3103 <jld3103yt@gmail.com>2023-07-31 12:17:42 +0200
commit61a13bed4d8536ac88eff08db4e8bfe8b62305fd (patch)
tree3c3bdb8531de62277f325fe3adb45fb3076dddb4 /apps/user_ldap/lib
parent79316e1169c02964399bdc05e4aa8228df99fd7e (diff)
downloadnextcloud-server-61a13bed4d8536ac88eff08db4e8bfe8b62305fd.tar.gz
nextcloud-server-61a13bed4d8536ac88eff08db4e8bfe8b62305fd.zip
user_ldap: Add OpenAPI spec
Signed-off-by: jld3103 <jld3103yt@gmail.com>
Diffstat (limited to 'apps/user_ldap/lib')
-rw-r--r--apps/user_ldap/lib/Controller/ConfigAPIController.php102
1 files changed, 26 insertions, 76 deletions
diff --git a/apps/user_ldap/lib/Controller/ConfigAPIController.php b/apps/user_ldap/lib/Controller/ConfigAPIController.php
index e408d03fcd5..23c35895c94 100644
--- a/apps/user_ldap/lib/Controller/ConfigAPIController.php
+++ b/apps/user_ldap/lib/Controller/ConfigAPIController.php
@@ -29,6 +29,7 @@ use OC\Security\IdentityProof\Manager;
use OCA\User_LDAP\Configuration;
use OCA\User_LDAP\ConnectionFactory;
use OCA\User_LDAP\Helper;
+use OCP\AppFramework\Http;
use OCP\AppFramework\Http\DataResponse;
use OCP\AppFramework\OCS\OCSBadRequestException;
use OCP\AppFramework\OCS\OCSException;
@@ -76,42 +77,10 @@ class ConfigAPIController extends OCSController {
}
/**
- * Creates a new (empty) configuration and returns the resulting prefix
- *
- * Example: curl -X POST -H "OCS-APIREQUEST: true" -u $admin:$password \
- * https://nextcloud.server/ocs/v2.php/apps/user_ldap/api/v1/config
- *
- * results in:
- *
- * <?xml version="1.0"?>
- * <ocs>
- * <meta>
- * <status>ok</status>
- * <statuscode>200</statuscode>
- * <message>OK</message>
- * </meta>
- * <data>
- * <configID>s40</configID>
- * </data>
- * </ocs>
- *
- * Failing example: if an exception is thrown (e.g. Database connection lost)
- * the detailed error will be logged. The output will then look like:
- *
- * <?xml version="1.0"?>
- * <ocs>
- * <meta>
- * <status>failure</status>
- * <statuscode>999</statuscode>
- * <message>An issue occurred when creating the new config.</message>
- * </meta>
- * <data/>
- * </ocs>
- *
- * For JSON output provide the format=json parameter
+ * Create a new (empty) configuration and return the resulting prefix
*
* @AuthorizedAdminSetting(settings=OCA\User_LDAP\Settings\Admin)
- * @return DataResponse
+ * @return DataResponse<Http::STATUS_OK, array{configID: string}, array{}>
* @throws OCSException
*/
public function create() {
@@ -128,27 +97,15 @@ class ConfigAPIController extends OCSController {
}
/**
- * Deletes a LDAP configuration, if present.
- *
- * Example:
- * curl -X DELETE -H "OCS-APIREQUEST: true" -u $admin:$password \
- * https://nextcloud.server/ocs/v2.php/apps/user_ldap/api/v1/config/s60
- *
- * <?xml version="1.0"?>
- * <ocs>
- * <meta>
- * <status>ok</status>
- * <statuscode>200</statuscode>
- * <message>OK</message>
- * </meta>
- * <data/>
- * </ocs>
+ * Delete a LDAP configuration
*
* @AuthorizedAdminSetting(settings=OCA\User_LDAP\Settings\Admin)
- * @param string $configID
- * @return DataResponse
- * @throws OCSBadRequestException
+ * @param string $configID ID of the config
+ * @return DataResponse<Http::STATUS_OK, array<empty>, array{}>
* @throws OCSException
+ * @throws OCSNotFoundException Config not found
+ *
+ * 200: Config deleted successfully
*/
public function delete($configID) {
try {
@@ -167,28 +124,17 @@ class ConfigAPIController extends OCSController {
}
/**
- * Modifies a configuration
- *
- * Example:
- * curl -X PUT -d "configData[ldapHost]=ldaps://my.ldap.server&configData[ldapPort]=636" \
- * -H "OCS-APIREQUEST: true" -u $admin:$password \
- * https://nextcloud.server/ocs/v2.php/apps/user_ldap/api/v1/config/s60
- *
- * <?xml version="1.0"?>
- * <ocs>
- * <meta>
- * <status>ok</status>
- * <statuscode>200</statuscode>
- * <message>OK</message>
- * </meta>
- * <data/>
- * </ocs>
+ * Modify a configuration
*
* @AuthorizedAdminSetting(settings=OCA\User_LDAP\Settings\Admin)
- * @param string $configID
- * @param array $configData
- * @return DataResponse
+ * @param string $configID ID of the config
+ * @param array<string, mixed> $configData New config
+ * @return DataResponse<Http::STATUS_OK, array<empty>, array{}>
* @throws OCSException
+ * @throws OCSBadRequestException Modifying config is not possible
+ * @throws OCSNotFoundException Config not found
+ *
+ * 200: Config returned
*/
public function modify($configID, $configData) {
try {
@@ -220,8 +166,9 @@ class ConfigAPIController extends OCSController {
}
/**
- * Retrieves a configuration
+ * Get a configuration
*
+ * Output can look like this:
* <?xml version="1.0"?>
* <ocs>
* <meta>
@@ -285,10 +232,13 @@ class ConfigAPIController extends OCSController {
* </ocs>
*
* @AuthorizedAdminSetting(settings=OCA\User_LDAP\Settings\Admin)
- * @param string $configID
- * @param bool|string $showPassword
- * @return DataResponse
+ * @param string $configID ID of the config
+ * @param bool $showPassword Whether to show the password
+ * @return DataResponse<Http::STATUS_OK, array<string, mixed>, array{}>
* @throws OCSException
+ * @throws OCSNotFoundException Config not found
+ *
+ * 200: Config returned
*/
public function show($configID, $showPassword = false) {
try {
@@ -296,7 +246,7 @@ class ConfigAPIController extends OCSController {
$config = new Configuration($configID);
$data = $config->getConfiguration();
- if (!(int)$showPassword) {
+ if (!$showPassword) {
$data['ldapAgentPassword'] = '***';
}
foreach ($data as $key => $value) {