]> git.mxchange.org Git - friendica.git/commitdiff
extract "BaseApi::checkDefaults()" method for later usage
authorPhilipp <admin@philipp.info>
Sun, 28 Nov 2021 12:22:27 +0000 (13:22 +0100)
committerHypolite Petovan <hypolite@mrpetovan.com>
Tue, 30 Nov 2021 06:07:57 +0000 (01:07 -0500)
42 files changed:
src/BaseModule.php
src/Module/Api/Friendica/Activity.php
src/Module/Api/Friendica/DirectMessages/Setseen.php
src/Module/Api/Friendica/Events/Index.php
src/Module/Api/Friendica/Group/Delete.php
src/Module/Api/Friendica/Photo/Delete.php
src/Module/Api/Friendica/Photoalbum/Delete.php
src/Module/Api/Friendica/Photoalbum/Update.php
src/Module/Api/Mastodon/Accounts/Followers.php
src/Module/Api/Mastodon/Accounts/Following.php
src/Module/Api/Mastodon/Accounts/Note.php
src/Module/Api/Mastodon/Accounts/Relationships.php
src/Module/Api/Mastodon/Accounts/Search.php
src/Module/Api/Mastodon/Accounts/Statuses.php
src/Module/Api/Mastodon/Apps.php
src/Module/Api/Mastodon/Blocks.php
src/Module/Api/Mastodon/Bookmarks.php
src/Module/Api/Mastodon/Conversations.php
src/Module/Api/Mastodon/Directory.php
src/Module/Api/Mastodon/Favourited.php
src/Module/Api/Mastodon/FollowRequests.php
src/Module/Api/Mastodon/Lists.php
src/Module/Api/Mastodon/Lists/Accounts.php
src/Module/Api/Mastodon/Media.php
src/Module/Api/Mastodon/Mutes.php
src/Module/Api/Mastodon/Notifications.php
src/Module/Api/Mastodon/PushSubscription.php
src/Module/Api/Mastodon/ScheduledStatuses.php
src/Module/Api/Mastodon/Search.php
src/Module/Api/Mastodon/Statuses.php
src/Module/Api/Mastodon/Statuses/Context.php
src/Module/Api/Mastodon/Suggestions.php
src/Module/Api/Mastodon/Timelines/Direct.php
src/Module/Api/Mastodon/Timelines/Home.php
src/Module/Api/Mastodon/Timelines/ListTimeline.php
src/Module/Api/Mastodon/Timelines/PublicTimeline.php
src/Module/Api/Mastodon/Timelines/Tag.php
src/Module/Api/Mastodon/Trends.php
src/Module/BaseApi.php
src/Module/OAuth/Authorize.php
src/Module/OAuth/Revoke.php
src/Module/OAuth/Token.php

index 86dd5e7c064d1d83b035da29ba91ec6ccc5e5543..a74c02713114242f97881994863421d6f0875df6 100644 (file)
@@ -241,6 +241,48 @@ abstract class BaseModule implements ICanHandleRequests
                return $this->response->generate();
        }
 
+       /**
+        * Checks request inputs and sets default parameters
+        *
+        * @param array $defaults Associative array of expected request keys and their default typed value. A null
+        *                        value will remove the request key from the resulting value array.
+        * @param array $input    Custom REQUEST array, superglobal instead
+        *
+        * @return array Request data
+        */
+       protected function checkDefaults(array $defaults, array $input): array
+       {
+               $request = [];
+
+               foreach ($defaults as $parameter => $defaultvalue) {
+                       if (is_string($defaultvalue)) {
+                               $request[$parameter] = $input[$parameter] ?? $defaultvalue;
+                       } elseif (is_int($defaultvalue)) {
+                               $request[$parameter] = (int)($input[$parameter] ?? $defaultvalue);
+                       } elseif (is_float($defaultvalue)) {
+                               $request[$parameter] = (float)($input[$parameter] ?? $defaultvalue);
+                       } elseif (is_array($defaultvalue)) {
+                               $request[$parameter] = $input[$parameter] ?? [];
+                       } elseif (is_bool($defaultvalue)) {
+                               $request[$parameter] = in_array(strtolower($input[$parameter] ?? ''), ['true', '1']);
+                       } else {
+                               $this->logger->notice('Unhandled default value type', ['parameter' => $parameter, 'type' => gettype($defaultvalue)]);
+                       }
+               }
+
+               foreach ($input ?? [] as $parameter => $value) {
+                       if ($parameter == 'pagename') {
+                               continue;
+                       }
+                       if (!in_array($parameter, array_keys($defaults))) {
+                               $this->logger->notice('Unhandled request field', ['parameter' => $parameter, 'value' => $value, 'command' => $this->args->getCommand()]);
+                       }
+               }
+
+               $this->logger->debug('Got request parameters', ['request' => $request, 'command' => $this->args->getCommand()]);
+               return $request;
+       }
+
        /*
         * Functions used to protect against Cross-Site Request Forgery
         * The security token has to base on at least one value that an attacker can't know - here it's the session ID and the private key.
index 070dc452ca07c4b2eaf25205fdede227f0cc9b94..6826eb378405f4981e7e43e055bb9a8d57df6254 100644 (file)
@@ -45,7 +45,7 @@ class Activity extends BaseApi
                self::checkAllowedScope(self::SCOPE_WRITE);
                $uid = self::getCurrentUserID();
 
-               $request = self::getRequest([
+               $request = $this->getRequest([
                        'id' => 0, // Id of the post
                ], $request);
 
index a6a4875b8362a8a0d7395f1da8c090945c5e8bc5..5fcb87b326b5d6f9bd65f0e00070b5b0b614b0fc 100644 (file)
@@ -35,7 +35,7 @@ class Setseen extends BaseApi
                self::checkAllowedScope(self::SCOPE_WRITE);
                $uid = self::getCurrentUserID();
 
-               $request = self::getRequest([
+               $request = $this->getRequest([
                        'id' => 0, // Id of the direct message
                ], $request);
 
index 6e3daa770674205c00922f20b91c8af063ec6bb0..fed7cc54d50540e1185632fa7bf3908f261291d6 100644 (file)
@@ -38,7 +38,7 @@ class Index extends BaseApi
                self::checkAllowedScope(self::SCOPE_READ);
                $uid = self::getCurrentUserID();
 
-               $request = self::getRequest([
+               $request = $this->getRequest([
                        'since_id' => 0,
                        'count'    => 0,
                ], $request);
index f0d94ff3e056c7952427d693008e94e6c4294350..9b63cd7e6da19baae3e4dc2be57cc0758d1da06e 100644 (file)
@@ -37,7 +37,7 @@ class Delete extends BaseApi
                self::checkAllowedScope(self::SCOPE_WRITE);
                $uid = self::getCurrentUserID();
 
-               $request = self::getRequest([
+               $request = $this->getRequest([
                        'gid'  => 0,
                        'name' => ''
                ], $request);
index d4288b88bec08ff8ba8b1fb2e0e69c0e6e0a4603..5861723b620d036d1adb4d65f6f46f023e340edc 100644 (file)
@@ -36,7 +36,7 @@ class Delete extends BaseApi
        {
                $uid = self::getCurrentUserID();
 
-               $request = self::getRequest([
+               $request = $this->getRequest([
                        'photo_id' => '', // Photo id
                ], $request);
 
index 8a45de2d3632fb78497f9ea9e87bd51230cc3e20..8cb719cd1e7a732d6d87c87fa556b016f416598a 100644 (file)
@@ -39,7 +39,7 @@ class Delete extends BaseApi
                self::checkAllowedScope(self::SCOPE_WRITE);
                $uid = self::getCurrentUserID();
 
-               $request = self::getRequest([
+               $request = $this->getRequest([
                        'album' => '', // Album name
                ], $request);
 
index 2c1e5e878623264f2bc1211da548e82c1acf70f2..d9fc760d63a2645f8ded9c510352498cef852863 100644 (file)
@@ -37,7 +37,7 @@ class Update extends BaseApi
                self::checkAllowedScope(self::SCOPE_WRITE);
                $uid = self::getCurrentUserID();
 
-               $request = self::getRequest([
+               $request = $this->getRequest([
                        'album'     => '', // Current album name
                        'album_new' => '', // New album name
                ], $request);
index ba24625c474592fb379038a36b1133dab5992292..3e06528bd7c38af20b16f3dd8f661ad00da2612d 100644 (file)
@@ -48,7 +48,7 @@ class Followers extends BaseApi
                        DI::mstdnError()->RecordNotFound();
                }
 
-               $request = self::getRequest([
+               $request = $this->getRequest([
                        'max_id'   => 0,  // Return results older than this id
                        'since_id' => 0,  // Return results newer than this id
                        'min_id'   => 0,  // Return results immediately newer than id
index a80af6ea99d237ed561583598abde0b721b92421..2aace2683ed456268221a10a6bb061244b3948bb 100644 (file)
@@ -48,7 +48,7 @@ class Following extends BaseApi
                        DI::mstdnError()->RecordNotFound();
                }
 
-               $request = self::getRequest([
+               $request = $this->getRequest([
                        'max_id'   => 0,  // Return results older than this id
                        'since_id' => 0,  // Return results newer than this id
                        'min_id'   => 0,  // Return results immediately newer than id                   
index 7135cb930e50022ac4407f6964084a24e17c2f3c..eb97a8856d2a5817068728606f175137139144b5 100644 (file)
@@ -41,7 +41,7 @@ class Note extends BaseApi
                        DI::mstdnError()->UnprocessableEntity();
                }
 
-               $request = self::getRequest([
+               $request = $this->getRequest([
                        'comment' => '',
                ], $request);
 
index b56fd5a9464b25de5ac552273dd3313815e0cf2f..6fce26fbb80b6be45d6c205aca02b4f679cab35a 100644 (file)
@@ -39,7 +39,7 @@ class Relationships extends BaseApi
                self::checkAllowedScope(self::SCOPE_READ);
                $uid = self::getCurrentUserID();
 
-               $request = self::getRequest([
+               $request = $this->getRequest([
                        'id' => [],
                ], $request);
 
index 53569b79ac117bfd01c0b7d06fa078a2f4f57e9e..536c68850bf7b0464699f14b1c8b79b7e5df3077 100644 (file)
@@ -42,7 +42,7 @@ class Search extends BaseApi
                self::checkAllowedScope(self::SCOPE_READ);
                $uid = self::getCurrentUserID();
 
-               $request = self::getRequest([
+               $request = $this->getRequest([
                        'q'         => '',    // What to search for
                        'limit'     => 40,    // Maximum number of results. Defaults to 40.
                        'resolve'   => false, // Attempt WebFinger lookup. Defaults to false. Use this when q is an exact address.
index 609bcdb2020e9aace46b1760133e4ecdbc045502..0ab5a2a50a1d262fbb92ac09b088aec7ab39a32c 100644 (file)
@@ -52,7 +52,7 @@ class Statuses extends BaseApi
                        DI::mstdnError()->RecordNotFound();
                }
 
-               $request = self::getRequest([
+               $request = $this->getRequest([
                        'only_media'      => false, // Show only statuses with media attached? Defaults to false.
                        'max_id'          => 0,     // Return results older than this id
                        'since_id'        => 0,     // Return results newer than this id
index 5811e3873348861693e8c8fba257f12baa59379e..3f24810bbf8fa18a0d08a3f0e17184eb8c6a8861 100644 (file)
@@ -37,7 +37,7 @@ class Apps extends BaseApi
         */
        protected function post(array $request = [], array $post = [])
        {
-               $request = self::getRequest([
+               $request = $this->getRequest([
                        'client_name'   => '',
                        'redirect_uris' => '',
                        'scopes'        => 'read',
index 0a1e9506ff28e9fce2213a52e6dac0cc998be203..a299185aebcf1ec0a65bcc1e7f05446f375aa00b 100644 (file)
@@ -48,7 +48,7 @@ class Blocks extends BaseApi
                        DI::mstdnError()->RecordNotFound();
                }
 
-               $request = self::getRequest([
+               $request = $this->getRequest([
                        'max_id'   => 0,  // Return results older than this id
                        'since_id' => 0,  // Return results newer than this id
                        'min_id'   => 0,  // Return results immediately newer than id
index d56ad5a883af0cc763356df24987152be3e68a01..a3d00dcd829eed4248e81ccf1346c921a5c4e3bc 100644 (file)
@@ -41,7 +41,7 @@ class Bookmarks extends BaseApi
                self::checkAllowedScope(self::SCOPE_READ);
                $uid = self::getCurrentUserID();
 
-               $request = self::getRequest([
+               $request = $this->getRequest([
                        'limit'      => 20,    // Maximum number of results to return. Defaults to 20.
                        'max_id'     => 0,     // Return results older than id
                        'since_id'   => 0,     // Return results newer than id
index 5ff51deb14766234bc8bd4209c325683fe9d7eed..125e13e609b5e58dedd7f5f5f38062b4a0715fce 100644 (file)
@@ -54,7 +54,7 @@ class Conversations extends BaseApi
                self::checkAllowedScope(self::SCOPE_READ);
                $uid = self::getCurrentUserID();
 
-               $request = self::getRequest([
+               $request = $this->getRequest([
                        'limit'    => 20, // Maximum number of results. Defaults to 20. Max 40.
                        'max_id'   => 0,  // Return results older than this ID. Use HTTP Link header to paginate.
                        'since_id' => 0,  // Return results newer than this ID. Use HTTP Link header to paginate.
index 740d5d92aec8035cd1201f0faf1b9ad9b361188f..67104dc28f27441d9f0fcde24d5c9f81e34fc093 100644 (file)
@@ -41,7 +41,7 @@ class Directory extends BaseApi
         */
        protected function rawContent(array $request = [])
        {
-               $request = self::getRequest([
+               $request = $this->getRequest([
                        'offset' => 0,        // How many accounts to skip before returning results. Default 0.
                        'limit'  => 40,       // How many accounts to load. Default 40.
                        'order'  => 'active', // active to sort by most recently posted statuses (default) or new to sort by most recently created profiles.
index c1ac2a89cc245217dbafaba55bbd43e28ccd112a..243d119f9616f618b237d930e477d7adcdc48f27 100644 (file)
@@ -42,7 +42,7 @@ class Favourited extends BaseApi
                self::checkAllowedScope(self::SCOPE_READ);
                $uid = self::getCurrentUserID();
 
-               $request = self::getRequest([
+               $request = $this->getRequest([
                        'limit'      => 20,    // Maximum number of results to return. Defaults to 20.
                        'min_id'     => 0,     // Return results immediately newer than id
                        'max_id'     => 0,     // Return results older than id
index 739c53c491c5d0968e705552dc3dfc9634fa1238..eead8f96c14ee9d640b70918ad7afb227415b25a 100644 (file)
@@ -87,7 +87,7 @@ class FollowRequests extends BaseApi
                self::checkAllowedScope(self::SCOPE_READ);
                $uid = self::getCurrentUserID();
 
-               $request = self::getRequest([
+               $request = $this->getRequest([
                        'min_id' => 0,
                        'max_id' => 0,
                        'limit'  => 40, // Maximum number of results to return. Defaults to 40. Paginate using the HTTP Link header.
index 53a9ac0128aa6162b29601410f9ff7cdfe2bf9de..3ab41329cd70bd655d8790487a035a17af0efddd 100644 (file)
@@ -56,7 +56,7 @@ class Lists extends BaseApi
                self::checkAllowedScope(self::SCOPE_WRITE);
                $uid = self::getCurrentUserID();
 
-               $request = self::getRequest([
+               $request = $this->getRequest([
                        'title' => '',
                ], $request);
 
@@ -76,7 +76,7 @@ class Lists extends BaseApi
 
        public function put()
        {
-               $request = self::getRequest([
+               $request = $this->getRequest([
                        'title'          => '', // The title of the list to be updated.
                        'replies_policy' => '', // One of: "followed", "list", or "none".
                ]);
index 151da9cc62eb987a53c97248ef627cd78a0be2c4..9ab676af02a8220501af38c4cbd6ce891598838b 100644 (file)
@@ -61,7 +61,7 @@ class Accounts extends BaseApi
                        DI::mstdnError()->RecordNotFound();
                }
 
-               $request = self::getRequest([
+               $request = $this->getRequest([
                        'max_id'   => 0,  // Return results older than this id
                        'since_id' => 0,  // Return results newer than this id
                        'min_id'   => 0,  // Return results immediately newer than id                   
index 65663882d455f681ea33adde0ef361204d171e76..24d2a3bf8c0d676163ee4b904b8f33ef829b9e61 100644 (file)
@@ -58,7 +58,7 @@ class Media extends BaseApi
                self::checkAllowedScope(self::SCOPE_WRITE);
                $uid = self::getCurrentUserID();
 
-               $request = self::getRequest([
+               $request = $this->getRequest([
                        'file'        => [], // The file to be attached, using multipart form data.
                        'thumbnail'   => [], // The custom thumbnail of the media to be attached, using multipart form data.
                        'description' => '', // A plain-text description of the media, for accessibility purposes.
index 9d612a455f6c7d1d26f31aaaf345fb0fe37a9d89..96a0c7eac436a4f33d1b62ee95ff4d6ce5801363 100644 (file)
@@ -48,7 +48,7 @@ class Mutes extends BaseApi
                        DI::mstdnError()->RecordNotFound();
                }
 
-               $request = self::getRequest([
+               $request = $this->getRequest([
                        'max_id'   => 0,  // Return results older than this id
                        'since_id' => 0,  // Return results newer than this id
                        'min_id'   => 0,  // Return results immediately newer than id
index f57c0268e3450ab993c8d85f87da6ec29dbad413..7527286e09eb2c093c529fe8655a88aea85d381d 100644 (file)
@@ -55,7 +55,7 @@ class Notifications extends BaseApi
                        }
                }
 
-               $request = self::getRequest([
+               $request = $this->getRequest([
                        'max_id'        => 0,     // Return results older than this ID
                        'since_id'      => 0,     // Return results newer than this ID
                        'min_id'        => 0,     // Return results immediately newer than this ID
index b4b152e5c549b85b63672fe9a6600f0ff34443ed..4978e980a8dde019f39f0de46e3a61888638d1e6 100644 (file)
@@ -39,7 +39,7 @@ class PushSubscription extends BaseApi
                $uid         = self::getCurrentUserID();
                $application = self::getCurrentApplication();
 
-               $request = self::getRequest([
+               $request = $this->getRequest([
                        'subscription' => [],
                        'data'         => [],
                ], $request);
@@ -72,7 +72,7 @@ class PushSubscription extends BaseApi
                $uid         = self::getCurrentUserID();
                $application = self::getCurrentApplication();
 
-               $request = self::getRequest([
+               $request = $this->getRequest([
                        'data' => [],
                ]);
 
index 644aea874c60014ac80714cbbc09c49f27712d3a..f6da23aa1a2a9d2fe095de7cdd4ab8f43355dafe 100644 (file)
@@ -71,7 +71,7 @@ class ScheduledStatuses extends BaseApi
                        System::jsonExit(DI::mstdnScheduledStatus()->createFromDelayedPostId($this->parameters['id'], $uid)->toArray());
                }
 
-               $request = self::getRequest([
+               $request = $this->getRequest([
                        'limit'           => 20, // Max number of results to return. Defaults to 20.
                        'max_id'          => 0,  // Return results older than ID
                        'since_id'        => 0,  // Return results newer than ID
index 1730db68c3a0df7b6294d4b4e528a935f69f6284..dcc9969f798ffa4b26ad7da9fedc689cafa001b8 100644 (file)
@@ -45,7 +45,7 @@ class Search extends BaseApi
                self::checkAllowedScope(self::SCOPE_READ);
                $uid = self::getCurrentUserID();
 
-               $request = self::getRequest([
+               $request = $this->getRequest([
                        'account_id'         => 0,     // If provided, statuses returned will be authored only by this account
                        'max_id'             => 0,     // Return results older than this id
                        'min_id'             => 0,     // Return results immediately newer than this id
index 54e85d2a6de4c80d6a458c493897258b91f221dd..05851a983a51bc89d74744b413da3ac81701197f 100644 (file)
@@ -46,7 +46,7 @@ class Statuses extends BaseApi
                self::checkAllowedScope(self::SCOPE_WRITE);
                $uid = self::getCurrentUserID();
 
-               $request = self::getRequest([
+               $request = $this->getRequest([
                        'status'         => '',    // Text content of the status. If media_ids is provided, this becomes optional. Attaching a poll is optional while status is provided.
                        'media_ids'      => [],    // Array of Attachment ids to be attached as media. If provided, status becomes optional, and poll cannot be used.
                        'poll'           => [],    // Poll data. If provided, media_ids cannot be used, and poll[expires_in] must be provided.
index 4193b8fa92328b27611777d7c89a40fffaae5d1e..f463f46b4b799a2f2b0a9815be722b49a62bef1c 100644 (file)
@@ -43,7 +43,7 @@ class Context extends BaseApi
                        DI::mstdnError()->UnprocessableEntity();
                }
 
-               $request = self::getRequest([
+               $request = $this->getRequest([
                        'limit'    => 40, // Maximum number of results to return. Defaults to 40.
                ], $request);
 
index d8d89070a0789d15d4fa9521a5e58cda8faaccc4..9f8773dc875d2091bb176dcad10d26e4d63553d2 100644 (file)
@@ -39,7 +39,7 @@ class Suggestions extends BaseApi
                self::checkAllowedScope(self::SCOPE_READ);
                $uid = self::getCurrentUserID();
 
-               $request = self::getRequest([
+               $request = $this->getRequest([
                        'limit' => 40, // Maximum number of results to return. Defaults to 40.
                ], $request);
 
index f6b55a093daae4768bac80ce99fda9c9fe770fa6..ea3a296dcd4954fa9c97a61850c3826ae7f70daf 100644 (file)
@@ -40,7 +40,7 @@ class Direct extends BaseApi
                self::checkAllowedScope(self::SCOPE_READ);
                $uid = self::getCurrentUserID();
 
-               $request = self::getRequest([
+               $request = $this->getRequest([
                        'max_id'   => 0,  // Return results older than id
                        'since_id' => 0,  // Return results newer than id
                        'min_id'   => 0,  // Return results immediately newer than id
index f717ef119d068b2123009b6eb98aaa2e15e60240..bc53e9bcf8046ef4fe47a7b4e6e4ae714f59e3f8 100644 (file)
@@ -41,7 +41,7 @@ class Home extends BaseApi
                self::checkAllowedScope(self::SCOPE_READ);
                $uid = self::getCurrentUserID();
 
-               $request = self::getRequest([
+               $request = $this->getRequest([
                        'max_id'          => 0,     // Return results older than id
                        'since_id'        => 0,     // Return results newer than id
                        'min_id'          => 0,     // Return results immediately newer than id
index a1ecd61f6fd200df4a6c2e3004227c3272d947d2..c3e525f764fcf7146cc8dc6fe62fa2a9339d641b 100644 (file)
@@ -45,7 +45,7 @@ class ListTimeline extends BaseApi
                        DI::mstdnError()->UnprocessableEntity();
                }
 
-               $request = self::getRequest([
+               $request = $this->getRequest([
                        'max_id'          => 0,     // Return results older than id
                        'since_id'        => 0,     // Return results newer than id
                        'min_id'          => 0,     // Return results immediately newer than id
index 9d3b7f836558bef84c77f161ce0751485c1921e2..c3ebe7af0f2fa82fdfdcaf73a763e82c4fca158b 100644 (file)
@@ -43,7 +43,7 @@ class PublicTimeline extends BaseApi
        {
                $uid = self::getCurrentUserID();
 
-               $request = self::getRequest([
+               $request = $this->getRequest([
                        'local'           => false, // Show only local statuses? Defaults to false.
                        'remote'          => false, // Show only remote statuses? Defaults to false.
                        'only_media'      => false, // Show only statuses with media attached? Defaults to false.
index d6915a68fdd354f1b62d27dcf1306608bc7e0804..441de039d80d7487855d8befd940e79b087c8fa9 100644 (file)
@@ -53,7 +53,7 @@ class Tag extends BaseApi
                 * There seem to be the parameters "any", "all", and "none".
                 */
 
-               $request = self::getRequest([
+               $request = $this->getRequest([
                        'local'           => false, // If true, return only local statuses. Defaults to false.
                        'remote'          => false, // Show only remote statuses? Defaults to false.
                        'only_media'      => false, // If true, return only statuses with media attachments. Defaults to false.
index 4e99b2c743a439ab6822372543c85b09b8d7fdd5..f87294d0c433a97a7f13b88cf783f071cf903df7 100644 (file)
@@ -36,7 +36,7 @@ class Trends extends BaseApi
         */
        protected function rawContent(array $request = [])
        {
-               $request = self::getRequest([
+               $request = $this->getRequest([
                        'limit' => 20, // Maximum number of results to return. Defaults to 10.
                ], $request);
 
index c67671954fd8979fb057042433090cf7b82c4c55..7c0c77372e46cc9b2ca7ad26298a51436d9f7194 100644 (file)
@@ -116,7 +116,7 @@ class BaseApi extends BaseModule
         * @return array request data
         * @throws \Exception
         */
-       public static function getRequest(array $defaults, array $request = null): array
+       public function getRequest(array $defaults, array $request = null): array
        {
                $httpinput = HTTPInputData::process();
                $input = array_merge($httpinput['variables'], $httpinput['files'], $request ?? $_REQUEST);
@@ -126,35 +126,7 @@ class BaseApi extends BaseModule
 
                unset(self::$request['pagename']);
 
-               $request = [];
-
-               foreach ($defaults as $parameter => $defaultvalue) {
-                       if (is_string($defaultvalue)) {
-                               $request[$parameter] = $input[$parameter] ?? $defaultvalue;
-                       } elseif (is_int($defaultvalue)) {
-                               $request[$parameter] = (int)($input[$parameter] ?? $defaultvalue);
-                       } elseif (is_float($defaultvalue)) {
-                               $request[$parameter] = (float)($input[$parameter] ?? $defaultvalue);
-                       } elseif (is_array($defaultvalue)) {
-                               $request[$parameter] = $input[$parameter] ?? [];
-                       } elseif (is_bool($defaultvalue)) {
-                               $request[$parameter] = in_array(strtolower($input[$parameter] ?? ''), ['true', '1']);
-                       } else {
-                               Logger::notice('Unhandled default value type', ['parameter' => $parameter, 'type' => gettype($defaultvalue)]);
-                       }
-               }
-
-               foreach ($input ?? [] as $parameter => $value) {
-                       if ($parameter == 'pagename') {
-                               continue;
-                       }
-                       if (!in_array($parameter, array_keys($defaults))) {
-                               Logger::notice('Unhandled request field', ['parameter' => $parameter, 'value' => $value, 'command' => DI::args()->getCommand()]);
-                       }
-               }
-
-               Logger::debug('Got request parameters', ['request' => $request, 'command' => DI::args()->getCommand()]);
-               return $request;
+               return $this->checkDefaults($defaults, $input);
        }
 
        /**
index 973f31a0b185d9c0a822fecc573f91b12631898a..56a11ba0ac5134dd54289ffe4b622847c9a47aa9 100644 (file)
@@ -39,7 +39,7 @@ class Authorize extends BaseApi
         */
        protected function rawContent(array $request = [])
        {
-               $request = self::getRequest([
+               $request = $this->getRequest([
                        'force_login'   => '', // Forces the user to re-login, which is necessary for authorizing with multiple accounts from the same instance.
                        'response_type' => '', // Should be set equal to "code".
                        'client_id'     => '', // Client ID, obtained during app registration.
index 536d603c79564e4f8f3b22122b9b21b394f813a2..745ab0673c5e69296826830e061dd38900ace79e 100644 (file)
@@ -34,7 +34,7 @@ class Revoke extends BaseApi
 {
        protected function post(array $request = [], array $post = [])
        {
-               $request = self::getRequest([
+               $request = $this->getRequest([
                        'client_id'     => '', // Client ID, obtained during app registration
                        'client_secret' => '', // Client secret, obtained during app registration
                        'token'         => '', // The previously obtained token, to be invalidated
index 8bbb272c31d45f8063998b3c021a084332b37c5e..c8ef9ee14d0f5f3ab7fea775a00b78a07520b821 100644 (file)
@@ -36,7 +36,7 @@ class Token extends BaseApi
 {
        protected function post(array $request = [], array $post = [])
        {
-               $request = self::getRequest([
+               $request = $this->getRequest([
                        'client_id'     => '', // Client ID, obtained during app registration
                        'client_secret' => '', // Client secret, obtained during app registration
                        'redirect_uri'  => '', // Set a URI to redirect the user to. If this parameter is set to "urn:ietf:wg:oauth:2.0:oob" then the token will be shown instead. Must match one of the redirect URIs declared during app registration.