]> git.mxchange.org Git - friendica.git/commitdiff
Add a second parameter to BaseApi::getRequest to enable API tests
authorHypolite Petovan <hypolite@mrpetovan.com>
Sat, 27 Nov 2021 23:30:41 +0000 (18:30 -0500)
committerHypolite Petovan <hypolite@mrpetovan.com>
Sat, 27 Nov 2021 23:38:09 +0000 (18:38 -0500)
40 files changed:
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/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 aaab6417fbdf05770800b6e6598d7aa8be1e0623..070dc452ca07c4b2eaf25205fdede227f0cc9b94 100644 (file)
@@ -47,7 +47,7 @@ class Activity extends BaseApi
 
                $request = self::getRequest([
                        'id' => 0, // Id of the post
-               ]);
+               ], $request);
 
                $res = Item::performActivity($request['id'], $this->parameters['verb'], $uid);
 
index d64b4ee15d035b2cde9a14bcf8c9e1f8bda37226..a6a4875b8362a8a0d7395f1da8c090945c5e8bc5 100644 (file)
@@ -37,7 +37,7 @@ class Setseen extends BaseApi
 
                $request = self::getRequest([
                        'id' => 0, // Id of the direct message
-               ]);
+               ], $request);
 
                // return error if id is zero
                if (empty($request['id'])) {
index 86f79578d11ca53ef55c1a422b7cbc0791c87580..6e3daa770674205c00922f20b91c8af063ec6bb0 100644 (file)
@@ -41,7 +41,7 @@ class Index extends BaseApi
                $request = self::getRequest([
                        'since_id' => 0,
                        'count'    => 0,
-               ]);
+               ], $request);
 
                $condition = ["`id` > ? AND `uid` = ?", $request['since_id'], $uid];
                $params = ['limit' => $request['count']];
index 56b3445c0dfd250372462ddbab5bc3b1f0726498..ef38d93646e19324665db93bb08818b8209073b9 100644 (file)
@@ -40,7 +40,7 @@ class Delete extends BaseApi
                $request = self::getRequest([
                        'gid'  => 0,
                        'name' => ''
-               ]);
+               ], $request);
 
                // params
 
index 2edf398aab49a8ea6152f8ac2c5db052f0d5ee99..1857de5c71e1b56a55fb646b9ca597307e352748 100644 (file)
@@ -40,7 +40,7 @@ class Delete extends BaseApi
 
                $request = self::getRequest([
                        'photo_id' => null, // Photo id
-               ]);
+               ], $request);
 
                // do several checks on input parameters
                // we do not allow calls without photo id
index c7592a5eaf0c8eec8ec3de8c3824031171ed1bc7..2d71e3581231e4d3d2a7afd04e8fba3c48d5dcb7 100644 (file)
@@ -41,7 +41,7 @@ class Delete extends BaseApi
 
                $request = self::getRequest([
                        'album' => '', // Album name
-               ]);
+               ], $request);
 
                // we do not allow calls without album string
                if (empty($request['album'])) {
index 87513c5ad4d7db5e890d6fe460d86aa6bf0d4b58..2c1e5e878623264f2bc1211da548e82c1acf70f2 100644 (file)
@@ -40,7 +40,7 @@ class Update extends BaseApi
                $request = self::getRequest([
                        'album'     => '', // Current album name
                        'album_new' => '', // New album name
-               ]);
+               ], $request);
 
                // we do not allow calls without album string
                if (empty($request['album'])) {
index 08c56b3d440b3308d5bac7a0bfc5a7aaca3b6ea0..ba24625c474592fb379038a36b1133dab5992292 100644 (file)
@@ -53,7 +53,7 @@ class Followers extends BaseApi
                        'since_id' => 0,  // Return results newer than this id
                        'min_id'   => 0,  // Return results immediately newer than id
                        'limit'    => 40, // Maximum number of results to return. Defaults to 40.
-               ]);
+               ], $request);
 
                $params = ['order' => ['relation-cid' => true], 'limit' => $request['limit']];
 
index ded1e6a4b6a7df5235ab81866284a63add223025..a80af6ea99d237ed561583598abde0b721b92421 100644 (file)
@@ -53,7 +53,7 @@ class Following extends BaseApi
                        'since_id' => 0,  // Return results newer than this id
                        'min_id'   => 0,  // Return results immediately newer than id                   
                        'limit'    => 40, // Maximum number of results to return. Defaults to 40.
-               ]);
+               ], $request);
 
                $params = ['order' => ['cid' => true], 'limit' => $request['limit']];
 
index cb0c181350f4bf96f1033eaff5262912579ec9e9..7135cb930e50022ac4407f6964084a24e17c2f3c 100644 (file)
@@ -43,7 +43,7 @@ class Note extends BaseApi
 
                $request = self::getRequest([
                        'comment' => '',
-               ]);
+               ], $request);
 
                $cdata = Contact::getPublicAndUserContactID($this->parameters['id'], $uid);
                if (empty($cdata['user'])) {
index c3c8864468455bd46fb299ff85bdc184501ecdd5..b56fd5a9464b25de5ac552273dd3313815e0cf2f 100644 (file)
@@ -41,7 +41,7 @@ class Relationships extends BaseApi
 
                $request = self::getRequest([
                        'id' => [],
-               ]);
+               ], $request);
 
                if (empty($request['id'])) {
                        DI::mstdnError()->UnprocessableEntity();
index b7b963e11f58cb8d9c9a543989aa0f0b20139e7a..53569b79ac117bfd01c0b7d06fa078a2f4f57e9e 100644 (file)
@@ -47,7 +47,7 @@ class Search extends BaseApi
                        '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.
                        'following' => false, // Only who the user is following. Defaults to false.
-               ]);
+               ], $request);
 
                $accounts = [];
 
index 9027c68a4f8d739df3f3c6b144e50b2262ddec90..609bcdb2020e9aace46b1760133e4ecdbc045502 100644 (file)
@@ -63,7 +63,7 @@ class Statuses extends BaseApi
                        'with_muted'      => false, // Pleroma extension: return activities by muted (not by blocked!) users.
                        'exclude_reblogs' => false, // Undocumented parameter
                        'tagged'          => false, // Undocumented parameter
-               ]);
+               ], $request);
 
                $params = ['order' => ['uri-id' => true], 'limit' => $request['limit']];
 
index 7b0b103c4c4e4cc414163fd4d4ccdd3cc082ca53..5811e3873348861693e8c8fba257f12baa59379e 100644 (file)
@@ -42,7 +42,7 @@ class Apps extends BaseApi
                        'redirect_uris' => '',
                        'scopes'        => 'read',
                        'website'       => '',
-               ]);
+               ], $request);
 
                // Workaround for AndStatus, see issue https://github.com/andstatus/andstatus/issues/538
                $postdata = Network::postdata();
index fe08f875dd2403d760457d74d63dfdcdbf3decc6..0a1e9506ff28e9fce2213a52e6dac0cc998be203 100644 (file)
@@ -53,7 +53,7 @@ class Blocks extends BaseApi
                        'since_id' => 0,  // Return results newer than this id
                        'min_id'   => 0,  // Return results immediately newer than id
                        'limit'    => 40, // Maximum number of results. Defaults to 40.
-               ]);
+               ], $request);
 
                $params = ['order' => ['cid' => true], 'limit' => $request['limit']];
 
index e5fcaeeaf50eb9709444c5ba9de7f5880fa1df5d..d56ad5a883af0cc763356df24987152be3e68a01 100644 (file)
@@ -47,7 +47,7 @@ class Bookmarks extends BaseApi
                        'since_id'   => 0,     // Return results newer than id
                        'min_id'     => 0,     // Return results immediately newer than id
                        'with_muted' => false, // Pleroma extension: return activities by muted (not by blocked!) users.
-               ]);
+               ], $request);
 
                $params = ['order' => ['uri-id' => true], 'limit' => $request['limit']];
 
index fc32c76ccc088bd18b050d98094e235ef07e1016..5ff51deb14766234bc8bd4209c325683fe9d7eed 100644 (file)
@@ -59,7 +59,7 @@ class Conversations extends BaseApi
                        '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.
                        'min_id'   => 0,  // Return results immediately newer than this ID. Use HTTP Link header to paginate.
-               ]);
+               ], $request);
 
                $params = ['order' => ['id' => true], 'limit' => $request['limit']];
 
index 8ee6ac036085b20606e7c2ab35761738e3231bd3..740d5d92aec8035cd1201f0faf1b9ad9b361188f 100644 (file)
@@ -46,7 +46,7 @@ class Directory extends BaseApi
                        '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.
                        'local'  => false,    // Only return local accounts.
-               ]);
+               ], $request);
 
                Logger::info('directory', ['offset' => $request['offset'], 'limit' => $request['limit'], 'order' => $request['order'], 'local' => $request['local']]);
 
index 3d3e6aad1ebac16bf5c98e62692409f332691042..c1ac2a89cc245217dbafaba55bbd43e28ccd112a 100644 (file)
@@ -47,7 +47,7 @@ class Favourited extends BaseApi
                        'min_id'     => 0,     // Return results immediately newer than id
                        'max_id'     => 0,     // Return results older than id
                        'with_muted' => false, // Pleroma extension: return activities by muted (not by blocked!) users.
-               ]);
+               ], $request);
 
                $params = ['order' => ['thr-parent-id' => true], 'limit' => $request['limit']];
 
index dbdab7e51b40af0035487f89c1212d446467835e..739c53c491c5d0968e705552dc3dfc9634fa1238 100644 (file)
@@ -91,7 +91,7 @@ class FollowRequests extends BaseApi
                        'min_id' => 0,
                        'max_id' => 0,
                        'limit'  => 40, // Maximum number of results to return. Defaults to 40. Paginate using the HTTP Link header.
-               ]);
+               ], $request);
 
                $introductions = DI::intro()->selectForUser($uid, $request['min_id'], $request['max_id'], $request['limit']);
 
index ec9ad86a3424eae3eb49170e2c22894219302b40..53a9ac0128aa6162b29601410f9ff7cdfe2bf9de 100644 (file)
@@ -58,7 +58,7 @@ class Lists extends BaseApi
 
                $request = self::getRequest([
                        'title' => '',
-               ]);
+               ], $request);
 
                if (empty($request['title'])) {
                        DI::mstdnError()->UnprocessableEntity();
index be87dbf9d1a9ad40ebbb4ce5ee6c25f1e5e4622d..151da9cc62eb987a53c97248ef627cd78a0be2c4 100644 (file)
@@ -66,7 +66,7 @@ class Accounts extends BaseApi
                        'since_id' => 0,  // Return results newer than this id
                        'min_id'   => 0,  // Return results immediately newer than id                   
                        'limit'    => 40, // Maximum number of results. Defaults to 40. Max 40. Set to 0 in order to get all accounts without pagination.
-               ]);
+               ], $request);
 
                $params = ['order' => ['contact-id' => true]];
 
index 515e04848cee63418e1978a5f35af19a6ac3ddc6..9d612a455f6c7d1d26f31aaaf345fb0fe37a9d89 100644 (file)
@@ -53,7 +53,7 @@ class Mutes extends BaseApi
                        'since_id' => 0,  // Return results newer than this id
                        'min_id'   => 0,  // Return results immediately newer than id
                        'limit'    => 40, // Maximum number of results. Defaults to 40.
-               ]);
+               ], $request);
 
                $params = ['order' => ['cid' => true], 'limit' => $request['limit']];
 
index 664c996c9702ecad02656a81ecbfe1b0fba8d8d4..f57c0268e3450ab993c8d85f87da6ec29dbad413 100644 (file)
@@ -64,7 +64,7 @@ class Notifications extends BaseApi
                        'account_id'    => 0,     // Return only notifications received from this account
                        'with_muted'    => false, // Pleroma extension: return activities by muted (not by blocked!) users.
                        'count'         => 0,     // Unknown parameter
-               ]);
+               ], $request);
 
                $params = ['order' => ['id' => true]];
 
index 91e79b82db246047bb962d3d3039d9ee7463379e..b4b152e5c549b85b63672fe9a6600f0ff34443ed 100644 (file)
@@ -42,7 +42,7 @@ class PushSubscription extends BaseApi
                $request = self::getRequest([
                        'subscription' => [],
                        'data'         => [],
-               ]);
+               ], $request);
 
                $subscription = [
                        'application-id'                => $application['id'],
index e79d1e153fb722daed5e04b63894d85fb5fb10fd..644aea874c60014ac80714cbbc09c49f27712d3a 100644 (file)
@@ -76,7 +76,7 @@ class ScheduledStatuses extends BaseApi
                        '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
-               ]);
+               ], $request);
 
                $params = ['order' => ['id' => true], 'limit' => $request['limit']];
 
index 026d71f04bbe19bf15e6414aa19974bf5b0f274d..1730db68c3a0df7b6294d4b4e528a935f69f6284 100644 (file)
@@ -56,7 +56,7 @@ class Search extends BaseApi
                        'limit'              => 20,    // Maximum number of results to load, per type. Defaults to 20. Max 40.
                        'offset'             => 0,     // Offset in search results. Used for pagination. Defaults to 0.
                        'following'          => false, // Only include accounts that the user is following. Defaults to false.
-               ]);
+               ], $request);
 
                if (empty($request['q'])) {
                        DI::mstdnError()->UnprocessableEntity();
index 21bb972850cd956e71006da6329bbd89592a42d8..54e85d2a6de4c80d6a458c493897258b91f221dd 100644 (file)
@@ -56,7 +56,7 @@ class Statuses extends BaseApi
                        'visibility'     => '',    // Visibility of the posted status. One of: "public", "unlisted", "private" or "direct".
                        'scheduled_at'   => '',    // ISO 8601 Datetime at which to schedule a status. Providing this paramter will cause ScheduledStatus to be returned instead of Status. Must be at least 5 minutes in the future.
                        'language'       => '',    // ISO 639 language code for this status.
-               ]);
+               ], $request);
 
                $owner = User::getOwnerDataById($uid);
 
index 674be5f22d071bd82dc89e5c99610abaf591da9f..4193b8fa92328b27611777d7c89a40fffaae5d1e 100644 (file)
@@ -45,7 +45,7 @@ class Context extends BaseApi
 
                $request = self::getRequest([
                        'limit'    => 40, // Maximum number of results to return. Defaults to 40.
-               ]);
+               ], $request);
 
                $id = $this->parameters['id'];
 
index bda78becf15e2afc8ea39fdde66dd369a86a0a17..d8d89070a0789d15d4fa9521a5e58cda8faaccc4 100644 (file)
@@ -41,7 +41,7 @@ class Suggestions extends BaseApi
 
                $request = self::getRequest([
                        'limit' => 40, // Maximum number of results to return. Defaults to 40.
-               ]);
+               ], $request);
 
                $suggestions = Contact\Relation::getSuggestions($uid, 0, $request['limit']);
 
index ef2a9bb1a3b9f8a10dfd08d9ce7ba2ef65d008f6..f6b55a093daae4768bac80ce99fda9c9fe770fa6 100644 (file)
@@ -45,7 +45,7 @@ class Direct extends BaseApi
                        'since_id' => 0,  // Return results newer than id
                        'min_id'   => 0,  // Return results immediately newer than id
                        'limit'    => 20, // Maximum number of results to return. Defaults to 20.
-               ]);
+               ], $request);
 
                $params = ['order' => ['uri-id' => true], 'limit' => $request['limit']];
 
index 2727745f0337adc3366224f649c4eea00577615a..f717ef119d068b2123009b6eb98aaa2e15e60240 100644 (file)
@@ -51,7 +51,7 @@ class Home extends BaseApi
                        'only_media'      => false, // Show only statuses with media attached? Defaults to false.
                        'remote'          => false, // Show only remote statuses? Defaults to false.
                        'exclude_replies' => false, // Don't show comments
-               ]);
+               ], $request);
 
                $params = ['order' => ['uri-id' => true], 'limit' => $request['limit']];
 
index 1fe3f3b47f87e20b6dee73409cabf84e95877353..a1ecd61f6fd200df4a6c2e3004227c3272d947d2 100644 (file)
@@ -55,7 +55,7 @@ class ListTimeline extends BaseApi
                        'local'           => false, // Show only local statuses? Defaults to false.
                        'remote'          => false, // Show only remote statuses? Defaults to false.
                        'exclude_replies' => false, // Don't show comments
-               ]);
+               ], $request);
 
                $params = ['order' => ['uri-id' => true], 'limit' => $request['limit']];
 
index 91894f5c6cd4c8517e8b6905141daee357a88133..9d3b7f836558bef84c77f161ce0751485c1921e2 100644 (file)
@@ -53,7 +53,7 @@ class PublicTimeline extends BaseApi
                        'limit'           => 20,    // Maximum number of results to return. Defaults to 20.
                        'with_muted'      => false, // Pleroma extension: return activities by muted (not by blocked!) users.
                        'exclude_replies' => false, // Don't show comments
-               ]);
+               ], $request);
 
                $params = ['order' => ['uri-id' => true], 'limit' => $request['limit']];
 
index 701d656e43073d45fe90881474599924bda76ae9..d6915a68fdd354f1b62d27dcf1306608bc7e0804 100644 (file)
@@ -63,7 +63,7 @@ class Tag extends BaseApi
                        'limit'           => 20,    // Maximum number of results to return. Defaults to 20.
                        'with_muted'      => false, // Pleroma extension: return activities by muted (not by blocked!) users.
                        'exclude_replies' => false, // Don't show comments
-               ]);
+               ], $request);
 
                $params = ['order' => ['uri-id' => true], 'limit' => $request['limit']];
 
index c9659f7d2456c91e51bfaf5f6b4e0f615aacfc7a..4e99b2c743a439ab6822372543c85b09b8d7fdd5 100644 (file)
@@ -38,7 +38,7 @@ class Trends extends BaseApi
        {
                $request = self::getRequest([
                        'limit' => 20, // Maximum number of results to return. Defaults to 10.
-               ]);
+               ], $request);
 
                $trending = [];
                $tags = Tag::getGlobalTrendingHashtags(24, 20);
index 009809376e189bfb9ac232adf30c94af68dab090..5c94bc77276bc91d89c764b35f7ba52c6129b9c1 100644 (file)
@@ -108,12 +108,16 @@ class BaseApi extends BaseModule
        /**
         * Processes data from GET requests and sets defaults
         *
+        * @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|null $request  Custom REQUEST array, superglobal instead
         * @return array request data
+        * @throws \Exception
         */
-       public static function getRequest(array $defaults)
+       public static function getRequest(array $defaults, array $request = null): array
        {
                $httpinput = HTTPInputData::process();
-               $input = array_merge($httpinput['variables'], $httpinput['files'], $_REQUEST);
+               $input = array_merge($httpinput['variables'], $httpinput['files'], $request ?? $_REQUEST);
 
                self::$request    = $input;
                self::$boundaries = [];
index 851e0f4611235c7c80956fd0872afaa1c3fc4701..973f31a0b185d9c0a822fecc573f91b12631898a 100644 (file)
@@ -47,7 +47,7 @@ class Authorize extends BaseApi
                        '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 authorization code will be shown instead. Must match one of the redirect URIs declared during app registration.
                        'scope'         => 'read', // List of requested OAuth scopes, separated by spaces (or by pluses, if using query parameters). Must be a subset of scopes declared during app registration. If not provided, defaults to "read".
                        'state'         => '',
-               ]);
+               ], $request);
 
                if ($request['response_type'] != 'code') {
                        Logger::warning('Unsupported or missing response type', ['request' => $_REQUEST]);
index 6543969bfb28d2f5e5c6e39f9fddf9133024ff63..536d603c79564e4f8f3b22122b9b21b394f813a2 100644 (file)
@@ -38,7 +38,7 @@ class Revoke extends BaseApi
                        'client_id'     => '', // Client ID, obtained during app registration
                        'client_secret' => '', // Client secret, obtained during app registration
                        'token'         => '', // The previously obtained token, to be invalidated
-               ]);
+               ], $request);
 
                $condition = ['client_id' => $request['client_id'], 'client_secret' => $request['client_secret'], 'access_token' => $request['token']];
                $token = DBA::selectFirst('application-view', ['id'], $condition);
index 20ba22490c6d325ea4d195b571c89d1fb15d6c2c..8bbb272c31d45f8063998b3c021a084332b37c5e 100644 (file)
@@ -43,7 +43,7 @@ class Token extends BaseApi
                        'scope'         => 'read', // List of requested OAuth scopes, separated by spaces. Must be a subset of scopes declared during app registration. If not provided, defaults to "read".
                        'code'          => '', // A user authorization code, obtained via /oauth/authorize
                        'grant_type'    => '', // Set equal to "authorization_code" if code is provided in order to gain user-level access. Otherwise, set equal to "client_credentials" to obtain app-level access only.
-               ]);
+               ], $request);
 
                // AndStatus transmits the client data in the AUTHORIZATION header field, see https://github.com/andstatus/andstatus/issues/530
                $authorization = $_SERVER['HTTP_AUTHORIZATION'] ?? '';