From ea6a29e8abc103ab44b00fad00d81c59aad85442 Mon Sep 17 00:00:00 2001 From: Bishwajeet Parhi Date: Thu, 9 Jun 2022 11:04:26 +0530 Subject: [PATCH 01/19] initial dailymotion provider --- app/config/providers.php | 60 +++--- composer.lock | 182 +++++++++--------- src/Appwrite/Auth/OAuth2/DailyMotion.php | 227 +++++++++++++++++++++++ 3 files changed, 353 insertions(+), 116 deletions(-) create mode 100644 src/Appwrite/Auth/OAuth2/DailyMotion.php diff --git a/app/config/providers.php b/app/config/providers.php index c0acceb0fc..91728def52 100644 --- a/app/config/providers.php +++ b/app/config/providers.php @@ -61,6 +61,16 @@ return [ // Ordered by ABC. 'beta' => false, 'mock' => false ], + 'dailymotion' => [ + 'name' => 'Dailymotion', + 'developers' => 'https://developers.dailymotion.com/api/', + 'icon' => 'icon-dailymotion', + 'enabled' => true, + 'sandbox' => false, + 'form' => false, + 'beta' => false, + 'mock' => false + ], 'discord' => [ 'name' => 'Discord', 'developers' => 'https://discordapp.com/developers/docs/topics/oauth2', @@ -211,6 +221,16 @@ return [ // Ordered by ABC. 'beta' => false, 'mock' => false, ], + 'stripe' => [ + 'name' => 'Stripe', + 'developers' => 'https://stripe.com/docs/api', + 'icon' => 'icon-stripe', + 'enabled' => true, + 'sandbox' => false, + 'form' => false, + 'beta' => false, + 'mock' => false + ], 'tradeshift' => [ 'name' => 'Tradeshift', 'developers' => 'https://developers.tradeshift.com/docs/api', @@ -241,15 +261,15 @@ return [ // Ordered by ABC. 'beta' => false, 'mock' => false, ], - 'zoom' => [ - 'name' => 'Zoom', - 'developers' => 'https://marketplace.zoom.us/docs/guides/auth/oauth/', - 'icon' => 'icon-zoom', + 'wordpress' => [ + 'name' => 'WordPress', + 'developers' => 'https://developer.wordpress.com/docs/oauth2/', + 'icon' => 'icon-wordpress', 'enabled' => true, 'sandbox' => false, 'form' => false, 'beta' => false, - 'mock' => false, + 'mock' => false ], 'yahoo' => [ 'name' => 'Yahoo', @@ -281,6 +301,16 @@ return [ // Ordered by ABC. 'beta' => false, 'mock' => false, ], + 'zoom' => [ + 'name' => 'Zoom', + 'developers' => 'https://marketplace.zoom.us/docs/guides/auth/oauth/', + 'icon' => 'icon-zoom', + 'enabled' => true, + 'sandbox' => false, + 'form' => false, + 'beta' => false, + 'mock' => false, + ], // 'instagram' => [ // 'name' => 'Instagram', // 'developers' => 'https://www.instagram.com/developer/', @@ -297,26 +327,6 @@ return [ // Ordered by ABC. // 'beta' => false, // 'mock' => false, // ], - 'wordpress' => [ - 'name' => 'WordPress', - 'developers' => 'https://developer.wordpress.com/docs/oauth2/', - 'icon' => 'icon-wordpress', - 'enabled' => true, - 'sandbox' => false, - 'form' => false, - 'beta' => false, - 'mock' => false - ], - 'stripe' => [ - 'name' => 'Stripe', - 'developers' => 'https://stripe.com/docs/api', - 'icon' => 'icon-stripe', - 'enabled' => true, - 'sandbox' => false, - 'form' => false, - 'beta' => false, - 'mock' => false - ], // Keep Last 'mock' => [ 'name' => 'Mock', diff --git a/composer.lock b/composer.lock index f9dcd577cd..3962ff46e7 100644 --- a/composer.lock +++ b/composer.lock @@ -1704,88 +1704,6 @@ ], "time": "2022-02-25T11:15:52+00:00" }, - { - "name": "symfony/polyfill-ctype", - "version": "v1.26.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "6fd1b9a79f6e3cf65f9e679b23af304cd9e010d4" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/6fd1b9a79f6e3cf65f9e679b23af304cd9e010d4", - "reference": "6fd1b9a79f6e3cf65f9e679b23af304cd9e010d4", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "provide": { - "ext-ctype": "*" - }, - "suggest": { - "ext-ctype": "For best performance" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.26-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Ctype\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Gert de Pagter", - "email": "BackEndTea@gmail.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for ctype functions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "ctype", - "polyfill", - "portable" - ], - "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.26.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2022-05-24T11:49:31+00:00" - }, { "name": "symfony/polyfill-php80", "version": "v1.26.0", @@ -2905,21 +2823,21 @@ }, { "name": "webmozart/assert", - "version": "1.10.0", + "version": "1.11.0", "source": { "type": "git", "url": "https://github.com/webmozarts/assert.git", - "reference": "6964c76c7804814a842473e0c8fd15bab0f18e25" + "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/webmozarts/assert/zipball/6964c76c7804814a842473e0c8fd15bab0f18e25", - "reference": "6964c76c7804814a842473e0c8fd15bab0f18e25", + "url": "https://api.github.com/repos/webmozarts/assert/zipball/11cb2199493b2f8a3b53e7f19068fc6aac760991", + "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991", "shasum": "" }, "require": { - "php": "^7.2 || ^8.0", - "symfony/polyfill-ctype": "^1.8" + "ext-ctype": "*", + "php": "^7.2 || ^8.0" }, "conflict": { "phpstan/phpstan": "<0.12.20", @@ -2957,9 +2875,9 @@ ], "support": { "issues": "https://github.com/webmozarts/assert/issues", - "source": "https://github.com/webmozarts/assert/tree/1.10.0" + "source": "https://github.com/webmozarts/assert/tree/1.11.0" }, - "time": "2021-03-09T10:59:23+00:00" + "time": "2022-06-03T18:03:27+00:00" } ], "packages-dev": [ @@ -5086,6 +5004,88 @@ ], "time": "2022-04-18T20:38:04+00:00" }, + { + "name": "symfony/polyfill-ctype", + "version": "v1.26.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-ctype.git", + "reference": "6fd1b9a79f6e3cf65f9e679b23af304cd9e010d4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/6fd1b9a79f6e3cf65f9e679b23af304cd9e010d4", + "reference": "6fd1b9a79f6e3cf65f9e679b23af304cd9e010d4", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "provide": { + "ext-ctype": "*" + }, + "suggest": { + "ext-ctype": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.26-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Ctype\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Gert de Pagter", + "email": "BackEndTea@gmail.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for ctype functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "ctype", + "polyfill", + "portable" + ], + "support": { + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.26.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-24T11:49:31+00:00" + }, { "name": "symfony/polyfill-mbstring", "version": "v1.26.0", @@ -5369,5 +5369,5 @@ "platform-overrides": { "php": "8.0" }, - "plugin-api-version": "2.3.0" + "plugin-api-version": "2.2.0" } diff --git a/src/Appwrite/Auth/OAuth2/DailyMotion.php b/src/Appwrite/Auth/OAuth2/DailyMotion.php new file mode 100644 index 0000000000..33d69c308b --- /dev/null +++ b/src/Appwrite/Auth/OAuth2/DailyMotion.php @@ -0,0 +1,227 @@ +authEndpoint . '?' . + \http_build_query([ + 'response_type' => 'code', + 'client_id' => $this->appID, + 'state' => \json_encode($this->state), + 'redirect_uri' => $this->callback, + 'scope' => \implode(' ', $this->getScopes()) + ]); + + return $url; + } + + /** + * + * + * @return array + */ + private function getFields(): array { + return $this->fields; + } + + /** + * @param string $code + * + * @return array + */ + protected function getTokens(string $code): array + { + if (empty($this->tokens)) { + $response = $this->request( + 'POST', + $this->endpoint . 'oauth/token', + ["Content-Type: application/x-www-form-urlencoded"], + \http_build_query([ + 'grant_type' => 'authorization_code', + "client_id" => $this->appID, + "client_secret" => $this->appSecret, + "redirect_uri" => $this->callback, + 'scope' => \implode(' ', $this->getScopes()) + ]) + ); + + $output = []; + \parse_str($response, $output); + $this->tokens = $output; + } + + return $this->tokens; + } + + + /** + * @param string $refreshToken + * + * @return array + */ + public function refreshTokens(string $refreshToken):array + { + // TODO: Fire request to oauth API to generate access_token using refresh token + $this->tokens = \json_decode($this->request( + 'POST', + $this->endpoint . '/oauth/token', + ['Content-Type: application/x-www-form-urlencoded'], + \http_build_query([ + 'grant_type' => 'refresh_token', + 'refresh_token' => $refreshToken, + 'client_id' => $this->appID, + 'client_secret' => $this->appSecret, + ]) + ), true); + + if (empty($this->tokens['refresh_token'])) { + $this->tokens['refresh_token'] = $refreshToken; + } + + + return $this->tokens; + } + + /** + * @param string $accessToken + * + * @return string + */ + public function getUserID(string $accessToken): string + { + $user = $this->getUser($accessToken); + + // TODO: Pick user ID from $user response + $userId = $user['id'] ?? ''; + + return $userId; + } + + /** + * @param string $accessToken + * + * @return string + */ + public function getUserEmail(string $accessToken): string + { + $user = $this->getUser($accessToken); + + // TODO: Pick user email from $user response + $userEmail = $user['email'] ?? ''; + + return $userEmail; + } + + /** + * Check if the OAuth email is verified + * + * @link https://discord.com/developers/docs/resources/user + * + * @param string $accessToken + * + * @return bool + */ + public function isEmailVerified(string $accessToken): bool + { + $user = $this->getUser($accessToken); + + if ($user['verified'] ?? false) { + return true; + } + + return false; + } + + /** + * @param string $accessToken + * + * @return string + */ + public function getUserName(string $accessToken): string + { + $user = $this->getUser($accessToken); + + // TODO: Pick username from $user response + $username = $user['username'] ?? ''; + + return $username; + } + + /** + * @param string $accessToken + * + * @return array + */ + protected function getUser(string $accessToken) + { + if (empty($this->user)) { + $user = $this->request( + 'GET', + $this->endpoint . '/user/me?', + ['Authorization: Bearer ' . \urlencode($accessToken)], + \http_build_query([ + 'fields' => \implode(',', $this->getFields())]) + ); + $this->user = \json_decode($user, true); + } + + return $this->user; + } +} \ No newline at end of file From 170156cb41e4cfa176e0592a7942fb21c7a26e2e Mon Sep 17 00:00:00 2001 From: Bishwajeet Parhi Date: Thu, 9 Jun 2022 16:10:38 +0530 Subject: [PATCH 02/19] initial dailymotion provider --- app/config/providers.php | 60 +++--- src/Appwrite/Auth/OAuth2/DailyMotion.php | 227 +++++++++++++++++++++++ 2 files changed, 262 insertions(+), 25 deletions(-) create mode 100644 src/Appwrite/Auth/OAuth2/DailyMotion.php diff --git a/app/config/providers.php b/app/config/providers.php index c0acceb0fc..91728def52 100644 --- a/app/config/providers.php +++ b/app/config/providers.php @@ -61,6 +61,16 @@ return [ // Ordered by ABC. 'beta' => false, 'mock' => false ], + 'dailymotion' => [ + 'name' => 'Dailymotion', + 'developers' => 'https://developers.dailymotion.com/api/', + 'icon' => 'icon-dailymotion', + 'enabled' => true, + 'sandbox' => false, + 'form' => false, + 'beta' => false, + 'mock' => false + ], 'discord' => [ 'name' => 'Discord', 'developers' => 'https://discordapp.com/developers/docs/topics/oauth2', @@ -211,6 +221,16 @@ return [ // Ordered by ABC. 'beta' => false, 'mock' => false, ], + 'stripe' => [ + 'name' => 'Stripe', + 'developers' => 'https://stripe.com/docs/api', + 'icon' => 'icon-stripe', + 'enabled' => true, + 'sandbox' => false, + 'form' => false, + 'beta' => false, + 'mock' => false + ], 'tradeshift' => [ 'name' => 'Tradeshift', 'developers' => 'https://developers.tradeshift.com/docs/api', @@ -241,15 +261,15 @@ return [ // Ordered by ABC. 'beta' => false, 'mock' => false, ], - 'zoom' => [ - 'name' => 'Zoom', - 'developers' => 'https://marketplace.zoom.us/docs/guides/auth/oauth/', - 'icon' => 'icon-zoom', + 'wordpress' => [ + 'name' => 'WordPress', + 'developers' => 'https://developer.wordpress.com/docs/oauth2/', + 'icon' => 'icon-wordpress', 'enabled' => true, 'sandbox' => false, 'form' => false, 'beta' => false, - 'mock' => false, + 'mock' => false ], 'yahoo' => [ 'name' => 'Yahoo', @@ -281,6 +301,16 @@ return [ // Ordered by ABC. 'beta' => false, 'mock' => false, ], + 'zoom' => [ + 'name' => 'Zoom', + 'developers' => 'https://marketplace.zoom.us/docs/guides/auth/oauth/', + 'icon' => 'icon-zoom', + 'enabled' => true, + 'sandbox' => false, + 'form' => false, + 'beta' => false, + 'mock' => false, + ], // 'instagram' => [ // 'name' => 'Instagram', // 'developers' => 'https://www.instagram.com/developer/', @@ -297,26 +327,6 @@ return [ // Ordered by ABC. // 'beta' => false, // 'mock' => false, // ], - 'wordpress' => [ - 'name' => 'WordPress', - 'developers' => 'https://developer.wordpress.com/docs/oauth2/', - 'icon' => 'icon-wordpress', - 'enabled' => true, - 'sandbox' => false, - 'form' => false, - 'beta' => false, - 'mock' => false - ], - 'stripe' => [ - 'name' => 'Stripe', - 'developers' => 'https://stripe.com/docs/api', - 'icon' => 'icon-stripe', - 'enabled' => true, - 'sandbox' => false, - 'form' => false, - 'beta' => false, - 'mock' => false - ], // Keep Last 'mock' => [ 'name' => 'Mock', diff --git a/src/Appwrite/Auth/OAuth2/DailyMotion.php b/src/Appwrite/Auth/OAuth2/DailyMotion.php new file mode 100644 index 0000000000..33d69c308b --- /dev/null +++ b/src/Appwrite/Auth/OAuth2/DailyMotion.php @@ -0,0 +1,227 @@ +authEndpoint . '?' . + \http_build_query([ + 'response_type' => 'code', + 'client_id' => $this->appID, + 'state' => \json_encode($this->state), + 'redirect_uri' => $this->callback, + 'scope' => \implode(' ', $this->getScopes()) + ]); + + return $url; + } + + /** + * + * + * @return array + */ + private function getFields(): array { + return $this->fields; + } + + /** + * @param string $code + * + * @return array + */ + protected function getTokens(string $code): array + { + if (empty($this->tokens)) { + $response = $this->request( + 'POST', + $this->endpoint . 'oauth/token', + ["Content-Type: application/x-www-form-urlencoded"], + \http_build_query([ + 'grant_type' => 'authorization_code', + "client_id" => $this->appID, + "client_secret" => $this->appSecret, + "redirect_uri" => $this->callback, + 'scope' => \implode(' ', $this->getScopes()) + ]) + ); + + $output = []; + \parse_str($response, $output); + $this->tokens = $output; + } + + return $this->tokens; + } + + + /** + * @param string $refreshToken + * + * @return array + */ + public function refreshTokens(string $refreshToken):array + { + // TODO: Fire request to oauth API to generate access_token using refresh token + $this->tokens = \json_decode($this->request( + 'POST', + $this->endpoint . '/oauth/token', + ['Content-Type: application/x-www-form-urlencoded'], + \http_build_query([ + 'grant_type' => 'refresh_token', + 'refresh_token' => $refreshToken, + 'client_id' => $this->appID, + 'client_secret' => $this->appSecret, + ]) + ), true); + + if (empty($this->tokens['refresh_token'])) { + $this->tokens['refresh_token'] = $refreshToken; + } + + + return $this->tokens; + } + + /** + * @param string $accessToken + * + * @return string + */ + public function getUserID(string $accessToken): string + { + $user = $this->getUser($accessToken); + + // TODO: Pick user ID from $user response + $userId = $user['id'] ?? ''; + + return $userId; + } + + /** + * @param string $accessToken + * + * @return string + */ + public function getUserEmail(string $accessToken): string + { + $user = $this->getUser($accessToken); + + // TODO: Pick user email from $user response + $userEmail = $user['email'] ?? ''; + + return $userEmail; + } + + /** + * Check if the OAuth email is verified + * + * @link https://discord.com/developers/docs/resources/user + * + * @param string $accessToken + * + * @return bool + */ + public function isEmailVerified(string $accessToken): bool + { + $user = $this->getUser($accessToken); + + if ($user['verified'] ?? false) { + return true; + } + + return false; + } + + /** + * @param string $accessToken + * + * @return string + */ + public function getUserName(string $accessToken): string + { + $user = $this->getUser($accessToken); + + // TODO: Pick username from $user response + $username = $user['username'] ?? ''; + + return $username; + } + + /** + * @param string $accessToken + * + * @return array + */ + protected function getUser(string $accessToken) + { + if (empty($this->user)) { + $user = $this->request( + 'GET', + $this->endpoint . '/user/me?', + ['Authorization: Bearer ' . \urlencode($accessToken)], + \http_build_query([ + 'fields' => \implode(',', $this->getFields())]) + ); + $this->user = \json_decode($user, true); + } + + return $this->user; + } +} \ No newline at end of file From d07e0eda42aed17e2b3bc6f2f775d7efde64f123 Mon Sep 17 00:00:00 2001 From: Bishwajeet Parhi Date: Thu, 9 Jun 2022 13:22:46 +0000 Subject: [PATCH 03/19] adds dailymotion logo --- public/images/users/dailymotion.png | Bin 0 -> 6478 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 public/images/users/dailymotion.png diff --git a/public/images/users/dailymotion.png b/public/images/users/dailymotion.png new file mode 100644 index 0000000000000000000000000000000000000000..90a9e11c40c4a9b3e8a185848daebb0996091fd4 GIT binary patch literal 6478 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 literal 0 HcmV?d00001 From 086c9f431e8efca63254ee88db055fb702c6eed6 Mon Sep 17 00:00:00 2001 From: Bishwajeet Parhi Date: Thu, 9 Jun 2022 13:22:57 +0000 Subject: [PATCH 04/19] rename dailymotion file and misc changes --- composer.lock | 16 ++++++++-------- .../OAuth2/{DailyMotion.php => Dailymotion.php} | 8 ++++---- 2 files changed, 12 insertions(+), 12 deletions(-) rename src/Appwrite/Auth/OAuth2/{DailyMotion.php => Dailymotion.php} (96%) diff --git a/composer.lock b/composer.lock index 3962ff46e7..f470d7f480 100644 --- a/composer.lock +++ b/composer.lock @@ -689,16 +689,16 @@ }, { "name": "guzzlehttp/psr7", - "version": "2.2.1", + "version": "2.3.0", "source": { "type": "git", "url": "https://github.com/guzzle/psr7.git", - "reference": "c94a94f120803a18554c1805ef2e539f8285f9a2" + "reference": "83260bb50b8fc753c72d14dc1621a2dac31877ee" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/c94a94f120803a18554c1805ef2e539f8285f9a2", - "reference": "c94a94f120803a18554c1805ef2e539f8285f9a2", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/83260bb50b8fc753c72d14dc1621a2dac31877ee", + "reference": "83260bb50b8fc753c72d14dc1621a2dac31877ee", "shasum": "" }, "require": { @@ -722,7 +722,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.2-dev" + "dev-master": "2.3-dev" } }, "autoload": { @@ -784,7 +784,7 @@ ], "support": { "issues": "https://github.com/guzzle/psr7/issues", - "source": "https://github.com/guzzle/psr7/tree/2.2.1" + "source": "https://github.com/guzzle/psr7/tree/2.3.0" }, "funding": [ { @@ -800,7 +800,7 @@ "type": "tidelift" } ], - "time": "2022-03-20T21:55:58+00:00" + "time": "2022-06-09T08:26:02+00:00" }, { "name": "influxdb/influxdb-php", @@ -5369,5 +5369,5 @@ "platform-overrides": { "php": "8.0" }, - "plugin-api-version": "2.2.0" + "plugin-api-version": "2.3.0" } diff --git a/src/Appwrite/Auth/OAuth2/DailyMotion.php b/src/Appwrite/Auth/OAuth2/Dailymotion.php similarity index 96% rename from src/Appwrite/Auth/OAuth2/DailyMotion.php rename to src/Appwrite/Auth/OAuth2/Dailymotion.php index 33d69c308b..a98ee37ec2 100644 --- a/src/Appwrite/Auth/OAuth2/DailyMotion.php +++ b/src/Appwrite/Auth/OAuth2/Dailymotion.php @@ -7,7 +7,7 @@ use Appwrite\Auth\OAuth2; // Reference Material // https://developers.dailymotion.com/api/#authentication -class DailyMotion extends OAuth2 +class Dailymotion extends OAuth2 { /** * @var string @@ -52,7 +52,7 @@ class DailyMotion extends OAuth2 */ public function getName(): string { - return 'DailyMotion'; + return 'dailymotion'; } /** @@ -77,7 +77,7 @@ class DailyMotion extends OAuth2 * * @return array */ - private function getFields(): array { + protected function getFields(): array { return $this->fields; } @@ -172,7 +172,7 @@ class DailyMotion extends OAuth2 /** * Check if the OAuth email is verified * - * @link https://discord.com/developers/docs/resources/user + * @link https://developers.dailymotion.com/api/#user-fields * * @param string $accessToken * From 902baa0bf48257ee4c3e893da4dd658a73d0d0b0 Mon Sep 17 00:00:00 2001 From: Bishwajeet Parhi Date: Thu, 9 Jun 2022 16:54:33 +0000 Subject: [PATCH 05/19] fix scope not array error --- src/Appwrite/Auth/OAuth2/Dailymotion.php | 25 ++++++++---------------- 1 file changed, 8 insertions(+), 17 deletions(-) diff --git a/src/Appwrite/Auth/OAuth2/Dailymotion.php b/src/Appwrite/Auth/OAuth2/Dailymotion.php index a98ee37ec2..164df7b5b3 100644 --- a/src/Appwrite/Auth/OAuth2/Dailymotion.php +++ b/src/Appwrite/Auth/OAuth2/Dailymotion.php @@ -12,21 +12,21 @@ class Dailymotion extends OAuth2 /** * @var string */ - private $endpoint = 'https://api.dailymotion.com'; - private $authEndpoint = 'https://www.dailymotion.com/oauth/authorize'; + private string $endpoint = 'https://api.dailymotion.com'; + private string $authEndpoint = 'https://www.dailymotion.com/oauth/authorize'; /** * @var array */ - protected $scopes = [ + protected array $scopes = [ 'userinfo', - 'email', + 'email' ]; /** * @var array */ - protected $fields = [ + protected array $fields = [ 'avatar_url', 'email', 'first_name', @@ -40,12 +40,12 @@ class Dailymotion extends OAuth2 /** * @var array */ - protected $user = []; + protected array $user = []; /** * @var array */ - protected $tokens = []; + protected array $tokens = []; /** * @return string @@ -72,15 +72,6 @@ class Dailymotion extends OAuth2 return $url; } - /** - * - * - * @return array - */ - protected function getFields(): array { - return $this->fields; - } - /** * @param string $code * @@ -217,7 +208,7 @@ class Dailymotion extends OAuth2 $this->endpoint . '/user/me?', ['Authorization: Bearer ' . \urlencode($accessToken)], \http_build_query([ - 'fields' => \implode(',', $this->getFields())]) + 'fields' => \implode(',', $fields)]) ); $this->user = \json_decode($user, true); } From ad6023c3db9b02dcc9b2675577b8b9c3c867c48f Mon Sep 17 00:00:00 2001 From: Bishwajeet Parhi Date: Fri, 10 Jun 2022 13:54:00 +0000 Subject: [PATCH 06/19] fix unable to access token --- composer.lock | 12 ++-- src/Appwrite/Auth/OAuth2/Dailymotion.php | 77 +++++++++++++----------- 2 files changed, 49 insertions(+), 40 deletions(-) diff --git a/composer.lock b/composer.lock index f470d7f480..3140a59d2c 100644 --- a/composer.lock +++ b/composer.lock @@ -481,16 +481,16 @@ }, { "name": "guzzlehttp/guzzle", - "version": "7.4.3", + "version": "7.4.4", "source": { "type": "git", "url": "https://github.com/guzzle/guzzle.git", - "reference": "74a8602c6faec9ef74b7a9391ac82c5e65b1cdab" + "reference": "e3ff079b22820c2029d4c2a87796b6a0b8716ad8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/74a8602c6faec9ef74b7a9391ac82c5e65b1cdab", - "reference": "74a8602c6faec9ef74b7a9391ac82c5e65b1cdab", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/e3ff079b22820c2029d4c2a87796b6a0b8716ad8", + "reference": "e3ff079b22820c2029d4c2a87796b6a0b8716ad8", "shasum": "" }, "require": { @@ -585,7 +585,7 @@ ], "support": { "issues": "https://github.com/guzzle/guzzle/issues", - "source": "https://github.com/guzzle/guzzle/tree/7.4.3" + "source": "https://github.com/guzzle/guzzle/tree/7.4.4" }, "funding": [ { @@ -601,7 +601,7 @@ "type": "tidelift" } ], - "time": "2022-05-25T13:24:33+00:00" + "time": "2022-06-09T21:39:15+00:00" }, { "name": "guzzlehttp/promises", diff --git a/src/Appwrite/Auth/OAuth2/Dailymotion.php b/src/Appwrite/Auth/OAuth2/Dailymotion.php index 164df7b5b3..2c8d468e21 100644 --- a/src/Appwrite/Auth/OAuth2/Dailymotion.php +++ b/src/Appwrite/Auth/OAuth2/Dailymotion.php @@ -14,8 +14,8 @@ class Dailymotion extends OAuth2 */ private string $endpoint = 'https://api.dailymotion.com'; private string $authEndpoint = 'https://www.dailymotion.com/oauth/authorize'; - - /** + + /** * @var array */ protected array $scopes = [ @@ -36,17 +36,17 @@ class Dailymotion extends OAuth2 'username', 'verified' ]; - + /** * @var array */ protected array $user = []; - + /** * @var array */ protected array $tokens = []; - + /** * @return string */ @@ -55,19 +55,27 @@ class Dailymotion extends OAuth2 return 'dailymotion'; } + /** + * @return array + */ + public function getFields(): array + { + return $this->fields; + } + /** * @return string */ public function getLoginURL(): string { $url = $this->authEndpoint . '?' . - \http_build_query([ - 'response_type' => 'code', - 'client_id' => $this->appID, - 'state' => \json_encode($this->state), - 'redirect_uri' => $this->callback, - 'scope' => \implode(' ', $this->getScopes()) - ]); + \http_build_query([ + 'response_type' => 'code', + 'client_id' => $this->appID, + 'state' => \json_encode($this->state), + 'redirect_uri' => $this->callback, + 'scope' => \implode(' ', $this->getScopes()) + ]); return $url; } @@ -80,7 +88,7 @@ class Dailymotion extends OAuth2 protected function getTokens(string $code): array { if (empty($this->tokens)) { - $response = $this->request( + $this->tokens = \json_decode($this->request( 'POST', $this->endpoint . 'oauth/token', ["Content-Type: application/x-www-form-urlencoded"], @@ -89,27 +97,26 @@ class Dailymotion extends OAuth2 "client_id" => $this->appID, "client_secret" => $this->appSecret, "redirect_uri" => $this->callback, + "code" => $code, 'scope' => \implode(' ', $this->getScopes()) ]) - ); + ),true); - $output = []; - \parse_str($response, $output); - $this->tokens = $output; + } return $this->tokens; } - - + + /** * @param string $refreshToken * * @return array */ - public function refreshTokens(string $refreshToken):array + public function refreshTokens(string $refreshToken): array { - // TODO: Fire request to oauth API to generate access_token using refresh token + $this->tokens = \json_decode($this->request( 'POST', $this->endpoint . '/oauth/token', @@ -138,10 +145,10 @@ class Dailymotion extends OAuth2 public function getUserID(string $accessToken): string { $user = $this->getUser($accessToken); - - // TODO: Pick user ID from $user response + + $userId = $user['id'] ?? ''; - + return $userId; } @@ -153,10 +160,10 @@ class Dailymotion extends OAuth2 public function getUserEmail(string $accessToken): string { $user = $this->getUser($accessToken); - - // TODO: Pick user email from $user response + + $userEmail = $user['email'] ?? ''; - + return $userEmail; } @@ -188,14 +195,14 @@ class Dailymotion extends OAuth2 public function getUserName(string $accessToken): string { $user = $this->getUser($accessToken); - - // TODO: Pick username from $user response + + $username = $user['username'] ?? ''; - + return $username; } - - /** + + /** * @param string $accessToken * * @return array @@ -208,11 +215,13 @@ class Dailymotion extends OAuth2 $this->endpoint . '/user/me?', ['Authorization: Bearer ' . \urlencode($accessToken)], \http_build_query([ - 'fields' => \implode(',', $fields)]) + 'fields' => \implode(',', $this->getFields()) + ]) ); $this->user = \json_decode($user, true); + \var_dump($this->user); } return $this->user; } -} \ No newline at end of file +} From bb501c4b73965c8056e4db293bad41aebfb33941 Mon Sep 17 00:00:00 2001 From: Bishwajeet Parhi Date: Sun, 12 Jun 2022 06:34:11 +0000 Subject: [PATCH 07/19] fixed login URL --- src/Appwrite/Auth/OAuth2/Dailymotion.php | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/Appwrite/Auth/OAuth2/Dailymotion.php b/src/Appwrite/Auth/OAuth2/Dailymotion.php index 2c8d468e21..0bf395a20b 100644 --- a/src/Appwrite/Auth/OAuth2/Dailymotion.php +++ b/src/Appwrite/Auth/OAuth2/Dailymotion.php @@ -13,6 +13,10 @@ class Dailymotion extends OAuth2 * @var string */ private string $endpoint = 'https://api.dailymotion.com'; + + /** + * @var string + */ private string $authEndpoint = 'https://www.dailymotion.com/oauth/authorize'; /** @@ -90,21 +94,18 @@ class Dailymotion extends OAuth2 if (empty($this->tokens)) { $this->tokens = \json_decode($this->request( 'POST', - $this->endpoint . 'oauth/token', + $this->endpoint . '/oauth/token', ["Content-Type: application/x-www-form-urlencoded"], \http_build_query([ 'grant_type' => 'authorization_code', "client_id" => $this->appID, "client_secret" => $this->appSecret, "redirect_uri" => $this->callback, - "code" => $code, - 'scope' => \implode(' ', $this->getScopes()) + 'code' => $code, + 'scope' => \implode(' ', $this->getScopes()), ]) - ),true); - - + ), true); } - return $this->tokens; } @@ -146,7 +147,6 @@ class Dailymotion extends OAuth2 { $user = $this->getUser($accessToken); - $userId = $user['id'] ?? ''; return $userId; @@ -161,7 +161,7 @@ class Dailymotion extends OAuth2 { $user = $this->getUser($accessToken); - + $userEmail = $user['email'] ?? ''; return $userEmail; @@ -196,7 +196,7 @@ class Dailymotion extends OAuth2 { $user = $this->getUser($accessToken); - + $username = $user['username'] ?? ''; return $username; @@ -207,7 +207,7 @@ class Dailymotion extends OAuth2 * * @return array */ - protected function getUser(string $accessToken) + protected function getUser(string $accessToken) : array { if (empty($this->user)) { $user = $this->request( From 7819b19d1cf6d8c954722ad5d448fa5c7cd841f6 Mon Sep 17 00:00:00 2001 From: Bishwajeet Parhi Date: Sun, 12 Jun 2022 06:41:41 +0000 Subject: [PATCH 08/19] remove avatar_url field --- src/Appwrite/Auth/OAuth2/Dailymotion.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/Appwrite/Auth/OAuth2/Dailymotion.php b/src/Appwrite/Auth/OAuth2/Dailymotion.php index 0bf395a20b..0b6e7c1479 100644 --- a/src/Appwrite/Auth/OAuth2/Dailymotion.php +++ b/src/Appwrite/Auth/OAuth2/Dailymotion.php @@ -31,7 +31,6 @@ class Dailymotion extends OAuth2 * @var array */ protected array $fields = [ - 'avatar_url', 'email', 'first_name', 'id', @@ -215,7 +214,7 @@ class Dailymotion extends OAuth2 $this->endpoint . '/user/me?', ['Authorization: Bearer ' . \urlencode($accessToken)], \http_build_query([ - 'fields' => \implode(',', $this->getFields()) + 'fields' => \implode(' ', $this->getFields()) ]) ); $this->user = \json_decode($user, true); From 104f976f1bedde4706d9cdd96374bae6f65f0db6 Mon Sep 17 00:00:00 2001 From: Bishwajeet Parhi Date: Sun, 12 Jun 2022 07:16:01 +0000 Subject: [PATCH 09/19] fix getUser method --- src/Appwrite/Auth/OAuth2/Dailymotion.php | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/Appwrite/Auth/OAuth2/Dailymotion.php b/src/Appwrite/Auth/OAuth2/Dailymotion.php index 0b6e7c1479..e57ef1bd3b 100644 --- a/src/Appwrite/Auth/OAuth2/Dailymotion.php +++ b/src/Appwrite/Auth/OAuth2/Dailymotion.php @@ -206,16 +206,13 @@ class Dailymotion extends OAuth2 * * @return array */ - protected function getUser(string $accessToken) : array + protected function getUser(string $accessToken): array { if (empty($this->user)) { $user = $this->request( 'GET', - $this->endpoint . '/user/me?', + $this->endpoint . '/user/me?fields=' . \implode(',', $this->getFields()), ['Authorization: Bearer ' . \urlencode($accessToken)], - \http_build_query([ - 'fields' => \implode(' ', $this->getFields()) - ]) ); $this->user = \json_decode($user, true); \var_dump($this->user); From 4b7cc043baa3eeea953cb7eda809ee6cbf8f9e5e Mon Sep 17 00:00:00 2001 From: Bishwajeet Parhi Date: Sun, 12 Jun 2022 07:32:07 +0000 Subject: [PATCH 10/19] adds 100x100 dailymotion logo --- public/images/users/dailymotion.png | Bin 6478 -> 1414 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/public/images/users/dailymotion.png b/public/images/users/dailymotion.png index 90a9e11c40c4a9b3e8a185848daebb0996091fd4..cfe4952919a759cfd6571a6924f8c548e9fedb70 100644 GIT binary patch literal 1414 zcmZvcdo&XY9LGnZ#;_HmT#q`!Jk~mnl4mY=0Fa%nwd;Wg z{m>EdgE^_%R&-!TqiwzM0Dv^)hs54-62AighcDP!UveiT_Vx+9A!Rg#p%f?BtSA3vJy~gc@}%N2(Hu* zmH8wsxpp{tJBfXp?Z@)_`?}edrs?P~e>@F~M#HGF!Qne=-xQ7+8$+_`i3=vanG!E` z=O+8A(EVdb39c6MPLX1;~&k@aE{ww1D zlV6GdfnO>r+l#A7xDq92w$yLBlb+^-mW4sopsgp}9*j(M$IK%RPq{_t-)hx6TT5nFRrpZhjs%rPkSNccSJ=K6reK zOJfGUdP=Eiw0A#CWuq_05-sb>Vux&9_C*O)RB%G%cJ4!X>_t&X8{4=3p-x7n+r%-p z_pa=t8Qu1J{>Li+)=K_>sHAwd<(*0GdMP7isi|6-m+^>nx1M5e61um_XA*-r(O!J* z*0^h=(LobQP9ZQ$8HcRtc9n{EU+}lQq}&F_(aI7hV%7U9Vi3+774-qZ5@VjOvzG$W zKd6Nu_0LZee7-33nVr|40@cE8(2@zhCZPl7*EqweeTrWJV^AKMyOfohGPAg>!PPWE zvW}F_|GpzmMuB1`@5zUUrW>a#j`RjW1i87X2RE?btpzqSG;kz{HFhQ+E;!Luh~5R# zy{)kXyJGKD3ihfYg(qDc;RLylkRKfR&_7H-t;z&kcs`VHR}zzi(Cdg+YJ$IbR8o*E zUcT3xt+-acd+x0m^TlOO&yqy6fg# zY@u3kk$^xI50yk!$3L*zS3Vif;xB82R#0T!=Zwkqk-`C@+~BBL!yMM4YwuSJM#HGo zA-P%dLo59C{9DJc1ILT2$Qp$EM8zxvYHa?Lra-IWgW8)e!_|V#TgqJ)kI{lMzQl?n zJ@ieNk+bKQfP{b*fu7cZ5q9Oz1Xbt^f4_^ED@z;R2o8Z@F2EZSh~(a z{Vd4wMBcJ0@Il?)#eeYUKX9O`kZWLD)ExRgNz5J48Cmjq-s=FY06QBe>sl+nq`v@K CMYdc3 literal 6478 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 From f92309101bdaf45e5f2e21e72615aca7b38132b3 Mon Sep 17 00:00:00 2001 From: Bishwajeet Parhi Date: Sun, 12 Jun 2022 08:21:42 +0000 Subject: [PATCH 11/19] adds dailymotion.png --- public/images/users/dailymotion.png | Bin 1414 -> 1364 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/public/images/users/dailymotion.png b/public/images/users/dailymotion.png index cfe4952919a759cfd6571a6924f8c548e9fedb70..bf5df3e10e97f1de11e7b77b0090c600a937d721 100644 GIT binary patch delta 1338 zcmZ{kdo@Z-qvQ?5H%HBd>~X0cw;f-@?LW=L@KVEh&$Q6;Z=4t!9ljl zpP@}`2nYE)tL5(zr#qFy&OsU;0CwtX5o1Ph0HrDBs)yl@z{@DG!$6 zPa&lTj3fZ8WK0*8>3%;eP`qH81;(b$i1@O|@q%&T!p??CvXe<<&=+0K{#m+Y9;f|V z*ts{z8PN3<%juW?*G24+l-dpM7ldzuVDaq1Z%e@cuYP0sJ3tC=S7F)$c}qBYHC{YV z=Nk4!b)32RH2vl2UiM}$!NzzN>~ChqN{al-z#w-X^irjxcC0!L|1?H0L^7TwVPO9?7SW{=}rWzBhHp$ofP+=)E?87ja z(8iixzG65@J zOL%_i;p?jnQ5{2rRifMP4F{l{?w)io@DzM4h2R2Z-wouCUC_tRfm?3j`A>lpmRFTW z(-bZS*NSs59h;ssFEEO#5A`XSTjZH$X#xzipc|=PHwA;-;PWjtvyhW0;_i ze~&_W_MqExMwBt@HeVS4-9Km_kVI5UVp$0$huklyFrkH_veNO^vHFw6i@S)=z!*ec zQ}fh|tz2R)o~MIYw&W@=-zkY(LA@qVK?Pg#Xw-}D?MBM7)a6GycY)Y=>x*xQMBd?y zQ|+irr=;FP1j?mY-CIn%xs7I2{IFY4f-lJ;rVZ+<*R%k|HoYS)?RtNxBu*KVv@3JR zG?1&HHY_8|ynUEu#bP_|u?|^_BzV1I@}p?=)Wj9DduVHF@+}s7T%i?eR71|p$1EI&ryjePLISrS)MS>W;IpNm)8dBW_=CJF;xkKl16K~#_S4p} z%_07(RdQPq(IM#Y<9AZ_^idd$2k}<@YoE%{M`vLf;YrDX;^?jziR1OVLy71&J`wq8 zIEIK`yS=2rw!Z|#d8P@4L6NfSlV_x2eV#*TmcqcFzb;E zmofG>yeq>RxY*&HY-vu76*eItT#BzJF_ezMq585EX!YrCz*Hsa0ml_`{&bXE?RT#Y3`n_XJ g{_C5>nMOcPn_BH56-D579VvGn?e1Fb{PVqk0V`LYR{#J2 delta 1388 zcmZ{kdokK8P z=KYwKt8_=`2w{^~t(jQZJYv^5{dLbh_uub7pL4$7@A-^^GGue1py0!j5)u+q>K!F{ zS}MQ=dz(uh3FPH+WW=1O%3XJ!wOYF4JJ*61&5~&_?QJT0x}^4|{hJbGE15b4E4Ti@ zt3H+Y^>yiUpKNZFZA?)R0cmh3j|7wQIxRH@Cc@^z)A8`x))}!}yU58kU1NyC59tw$ zXXZ%@(JRhR#~^{y`H+>s3ahiYvn2=>U;rxjSyp=OP}){1^A6LW;r}!L8MoS%YdbkE z9KVmlU|{69kcjQI?@Gr^Odz>cDT}6l*;23c=cib;n1OMW6h{Yjkl18^Iv8W52xV8S z^sW~cBp7Ndf{prm*Qs`_P?OA&b4eDj{*3_s2mM;|uULKwWjDS)`AW2cIe)-xn|R+B za});AfVQ7>e>ghX8#ABg+Du$j4^ECEyhbcrp%&$_dMuBILpzv$^hbJGHSUwgm_9p4AJ6J{(s`e11KMkNgW|H%xwiMF z4eJ%ubbd>nDmUvfaF0%MFbxBCS9!FgVD@!yo^E^mHDGMWRGM83%2CCm>U-T}5}MJ_XmO1_lF3s3CNU1>5;**v%=Fo%Wi5`jF^X}xV&TtiNdj6Ph?&Yzj0hu|5S2&! zgCTM0I|W%79s>EdWtbSpei35T!MY6PbLX>)riEEEsb=BJU}WA zjeZ;$NkFg41zvbDoP19jn~F5(x~|fKc=@=jC{40*w?9{Tt#aqwy92btvxPSbvv&~9 ztT)rGvHER{zXAD)TpIP&w?8U=G}QSr*_t@qORwQoBH9b9G{KL|ScSuH;(iI2D&K}d zR@%d z#yC;aMysI;IgoYPbNEf3cNKq11V;sQW{@%JJMJ!}mg+?p6OicA;j-wu#D~^^0F+5O#;+B7C}P+^Yn$U62$;q7C%!Q-X11g!+% zL6UL~oE%p;tu4^0{;2V`$7r=kbX&E@@(D&j;YqDHRfWCnF?R9VxJ_Q+dRIACK3RZc z8H1Aqmz>z*30CBnfNrk+heR?R0`4gS{pwH=zI>Gt#H+!I2rl%qsHHr8XqsbXXt5bO za?6BZE;4@iW~o*0*^~0111V@7W3P%(z|k|Q)6&Xq4(e}7NKE1`tAidk?q2+ti2maz jvKpZtwn@&b+5--FNOVV)eOd6{x2lA_t+P#owSVeAxL>wg From 7b1bcf7033936837a9bea2d941b5c9fa0a559d37 Mon Sep 17 00:00:00 2001 From: Bishwajeet Parhi Date: Mon, 13 Jun 2022 11:35:45 +0000 Subject: [PATCH 12/19] removed unnecessary fields --- composer.lock | 26 ++++++++++++------------ src/Appwrite/Auth/OAuth2/Dailymotion.php | 7 ++----- 2 files changed, 15 insertions(+), 18 deletions(-) diff --git a/composer.lock b/composer.lock index 5560208153..2f77c1c23b 100644 --- a/composer.lock +++ b/composer.lock @@ -1583,16 +1583,16 @@ }, { "name": "squizlabs/php_codesniffer", - "version": "3.6.2", + "version": "3.7.0", "source": { "type": "git", "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", - "reference": "5e4e71592f69da17871dba6e80dd51bce74a351a" + "reference": "a2cd51b45bcaef9c1f2a4bda48f2dd2fa2b95563" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/5e4e71592f69da17871dba6e80dd51bce74a351a", - "reference": "5e4e71592f69da17871dba6e80dd51bce74a351a", + "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/a2cd51b45bcaef9c1f2a4bda48f2dd2fa2b95563", + "reference": "a2cd51b45bcaef9c1f2a4bda48f2dd2fa2b95563", "shasum": "" }, "require": { @@ -1635,29 +1635,29 @@ "source": "https://github.com/squizlabs/PHP_CodeSniffer", "wiki": "https://github.com/squizlabs/PHP_CodeSniffer/wiki" }, - "time": "2021-12-12T21:44:58+00:00" + "time": "2022-06-13T06:31:38+00:00" }, { "name": "symfony/deprecation-contracts", - "version": "v2.5.1", + "version": "v3.1.0", "source": { "type": "git", "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66" + "reference": "07f1b9cc2ffee6aaafcf4b710fbc38ff736bd918" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/e8b495ea28c1d97b5e0c121748d6f9b53d075c66", - "reference": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/07f1b9cc2ffee6aaafcf4b710fbc38ff736bd918", + "reference": "07f1b9cc2ffee6aaafcf4b710fbc38ff736bd918", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=8.1" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "2.5-dev" + "dev-main": "3.1-dev" }, "thanks": { "name": "symfony/contracts", @@ -1686,7 +1686,7 @@ "description": "A generic function and convention to trigger deprecation notices", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/v2.5.1" + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.1.0" }, "funding": [ { @@ -1702,7 +1702,7 @@ "type": "tidelift" } ], - "time": "2022-01-02T09:53:40+00:00" + "time": "2022-02-25T11:15:52+00:00" }, { "name": "symfony/polyfill-php80", diff --git a/src/Appwrite/Auth/OAuth2/Dailymotion.php b/src/Appwrite/Auth/OAuth2/Dailymotion.php index e57ef1bd3b..0bb8a07786 100644 --- a/src/Appwrite/Auth/OAuth2/Dailymotion.php +++ b/src/Appwrite/Auth/OAuth2/Dailymotion.php @@ -32,11 +32,8 @@ class Dailymotion extends OAuth2 */ protected array $fields = [ 'email', - 'first_name', 'id', - 'last_name', - 'status', - 'username', + 'fullname', 'verified' ]; @@ -196,7 +193,7 @@ class Dailymotion extends OAuth2 $user = $this->getUser($accessToken); - $username = $user['username'] ?? ''; + $username = $user['fullname'] ?? ''; return $username; } From b040bc9856ef9ba537c80b091e2a886e4ebeb2ec Mon Sep 17 00:00:00 2001 From: Bishwajeet Parhi <62933155+2002Bishwajeet@users.noreply.github.com> Date: Mon, 13 Jun 2022 17:05:52 +0530 Subject: [PATCH 13/19] Update src/Appwrite/Auth/OAuth2/Dailymotion.php MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Matej Bačo --- src/Appwrite/Auth/OAuth2/Dailymotion.php | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Appwrite/Auth/OAuth2/Dailymotion.php b/src/Appwrite/Auth/OAuth2/Dailymotion.php index e57ef1bd3b..e78bec7fbd 100644 --- a/src/Appwrite/Auth/OAuth2/Dailymotion.php +++ b/src/Appwrite/Auth/OAuth2/Dailymotion.php @@ -215,7 +215,6 @@ class Dailymotion extends OAuth2 ['Authorization: Bearer ' . \urlencode($accessToken)], ); $this->user = \json_decode($user, true); - \var_dump($this->user); } return $this->user; From 9f1b4c41a3106c4193eaabbb9cbb080f3f928230 Mon Sep 17 00:00:00 2001 From: Bishwajeet Parhi <62933155+2002Bishwajeet@users.noreply.github.com> Date: Mon, 13 Jun 2022 17:06:01 +0530 Subject: [PATCH 14/19] Update src/Appwrite/Auth/OAuth2/Dailymotion.php MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Matej Bačo --- src/Appwrite/Auth/OAuth2/Dailymotion.php | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/Appwrite/Auth/OAuth2/Dailymotion.php b/src/Appwrite/Auth/OAuth2/Dailymotion.php index e78bec7fbd..af3a1d0fc6 100644 --- a/src/Appwrite/Auth/OAuth2/Dailymotion.php +++ b/src/Appwrite/Auth/OAuth2/Dailymotion.php @@ -194,8 +194,6 @@ class Dailymotion extends OAuth2 public function getUserName(string $accessToken): string { $user = $this->getUser($accessToken); - - $username = $user['username'] ?? ''; return $username; From d7b0d849974a6ebd267377a388c926ddc4a333d0 Mon Sep 17 00:00:00 2001 From: Bishwajeet Parhi <62933155+2002Bishwajeet@users.noreply.github.com> Date: Mon, 13 Jun 2022 17:08:54 +0530 Subject: [PATCH 15/19] Update src/Appwrite/Auth/OAuth2/Dailymotion.php MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Matej Bačo --- src/Appwrite/Auth/OAuth2/Dailymotion.php | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/Appwrite/Auth/OAuth2/Dailymotion.php b/src/Appwrite/Auth/OAuth2/Dailymotion.php index 0c1ce513e0..f944b57ef5 100644 --- a/src/Appwrite/Auth/OAuth2/Dailymotion.php +++ b/src/Appwrite/Auth/OAuth2/Dailymotion.php @@ -156,8 +156,6 @@ class Dailymotion extends OAuth2 public function getUserEmail(string $accessToken): string { $user = $this->getUser($accessToken); - - $userEmail = $user['email'] ?? ''; return $userEmail; From d15cecb773ca0ffef0a59776d109b5452c53c669 Mon Sep 17 00:00:00 2001 From: Bishwajeet Parhi Date: Mon, 13 Jun 2022 11:47:48 +0000 Subject: [PATCH 16/19] adds dailymotion logo --- public/images/users/dailymotion.png | Bin 1364 -> 1441 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/public/images/users/dailymotion.png b/public/images/users/dailymotion.png index bf5df3e10e97f1de11e7b77b0090c600a937d721..6ddfa13b9d67fe2ee348cf80b4b9925712c042fa 100644 GIT binary patch literal 1441 zcmbVM`#;kQ82)aiR&E=)MYb`<#u4hsnb}-oi;yX|LsrcyLmk!OAfw|ly3lc3l;H?v zVKetMMSM&`S*9Fa2$f4(E=M@)4>;$C^Ld`!q5(ijjUpWYP^3~^9DQR(XKx0jA3m(Z+I$z$;$NDj zOSiRf;TxEg>5WBEQK$U}6wL{7JJ{*dC>>mKJi9bgfpad-G{dx(yi*?mF$1gct2+W1 z=B};Mo8|(}r}3AHDwFgjj!^Q~RP}t?{Hau%@b!;)!SZN0FEJAxhHz1)kbvtfdB*>O zxAIY36i%G`F~=6pja{V#R8)Jv$5AI~yY7}`7ihz|b|XBd?=9a*YJbk3HHK+Qkdx#k zEW+$=PFJs8uTB*P#(fjxW#{v=B6yE}RJxc1K>iO|G``#Fkr}@WSfZ%{bRhm)Y4u?P zpZ8ds+~X%YB%7GF7G5b4AJQzEn@;eQrUF;Gf1sED!m*Zgkovq0>Nd?_+)n0b;zH@K zMJwsDXbq|`Uj*#nsB`%_V2b|sPv#JWppe0=3@~6pt zGtQAa;7H(-R3%{e@^!w;G0$3cB#Uv;FY>yz>oHI2PjC@}h|_lG7$vl`fDm%=knjLA z3DA9j6&ODzv8qQN4y%VFSpirpw+V0?n(qZedV+@RzQ(W#hMJ+ZvS$RyLNC_UAp|s( zM(9@bSXg1^Wf!c?ZY25T_(iZARa=uzSc88rGa~u8nME@x62hZ4boqV*Z8J9{Yka6m z!yY5sNf$#$3+A9L)I8Y{n22yK)??yO?-$jVqnZ;wn%O`i?wP&u*$lqaxv-J3HxVw{ zre|+_hClSKZVWG=heC9$#6_5z(}A*RB6MKMOF&45?l$yX%4)-a8#V(VmBj{XZ2U5S zzmPz@Z?6XWa9o(y$+P4lf}!4s*{gp@0$+QCnSdvz47({G&1)@jFeGvAmeBHp`&vtx zsGaG^ivNakKiEZkcsoDTEDj7-F22}3UJz?M{VWBVHHFFu0?nB@7Dqa=-Uy_1fVlAV zkxM|chGfte&oP3Dz6O68ldtZAW-%zkJRthOK!yCn(>lvWa8Y2g!$JA^Cj6nesKn71 zmP()8uWWT(+cbZ+1p*ti%t%j@ktgmqjy*@3`+tzxyI-ZSJ-bVI&f{PlO&e8tlE&$`bLj_ zxdPpAqRZsl^W6m|4o3VkTJ$>ITHG<)kkM4A?Tij9UAfu=nO4mjU`y+5tcVinW1jRk z=gRbjn3!;G=k4V!jo2FTMq{e}orB{qTR;&$yc7#By%J!aJni2^c=D9eTi*Mm*D0>~ zB(*>5P8InO{1m%DoRS{M@{$GF<_+doiaQBC)7=)L5X&?RIJab)YJwuY5+=8nwIfJC zkWEuhl@2&3xx#pcha|nKxjfUC7XwFr$alT3)fUKT2Nh1#pVJ5HXD#PyxbIt`MraP{ z!H|6$Ne${M8>@@+ndNZgYuCPEN6Dm`R%ZB2gJ3O(m{zX@0t;}sJ)DBGNe{jXn3|tA z8@7VBzf}rCzV&~qKpfM$Ww4KohjBwMQbY1&=NIpVDbGxy!`c(NMIzdU131Sc^&a!Q zm6h#i)O-oT0wWy!8((4i0;^^^AI8v5-L%a&wbB2q1zxF|$n7_DXrxaNeSeg$uOBr_ r+#6i1E9*gRgOb!?z`x-}b|RpAPNzf-?fO{Wxd3Iqr^`L3(ByvryJctU literal 1364 zcmaJ>c~H^`7$pxRuhLpdS0!^CQ#6k#D@{Bg5W>8YbQ9Lpyel_NMFF=>%JNuUf8MQG z9xIx=So1d zLUD&TmqM=WHv>YY;)cn@Gre106(?x+vUR~Mb#iNYSg^NV`5tku8ytQS()56CtF9I` zZU{$ein)0l1!{*Q+3L*^^{>i`-^#QHtMDg~@6`q&0;TXy6_yRXUpC5RUoqXq*pUFUB;$$W9HpR?Uhv^JUp23uJPk`n(4 zAlQu$J)6OEyYwQ=#_ssS5pqv;S}0Cw3&V%Li<)kZtqrGw0|zCW5twBUx+Wi| zR0U$3i8EzejRn*i7wUefvXB`JV3;gub6vkcDT1sX6-}B_mlv$BsOk3s$?J;Hk=(xVUEk@pUa*|h%3WCR2spr??OQ`nZmsS&qJ zDlBNRsG@wLeZ28Z>5_cGr$9WSprv*C`A$Bmp1?nXShW}huihz3TtmK!oQ4W_6wt`$ zy}Qk^t5TQm8KaA&=38I%>(u>SC3)J2tX-WyuHmo_Xv4C?%{qB(OE$-GpH=8aG|}rNOAteCq$IDI z-a}haQg5+26N>Fn!@9`qLd?>l8iJ!20ws=RB~TW8*qpDY#&VfCkJ+-^n!~6(i%$yv znAL%dc0JfJf2(RsOo z_-omr(zu>@iR1OVBgyF3K2e1kc&4fK)jl*-k_IU0{2hlM``P1RbvU)H^)pM0QaQEU zC6w`+DNV_PAs#9Gc%Mdx4s|B6e&cl0{5Fgh=+3HCD<;gXpIuhE_5wcidK z%n?8M71(YI!+B+KyP=2z_$@ZVPh>-%v@#Fo;#=Lv7D;8K*kvyHz@xm)jG^12BrcJu zfz^14qwXegF`HEmYfCPe&FIA|7&~kJRh|Yufwz|{&8xG-(E=l+ghnz``6Ns_0C{?U zQjyBJ8?f?+g99_u*g7BB?tvq{W}X9%ZKG{ReediIgvVC01NaEZatUc4TAyZa8pmkp xsS2@8Pf8GHUCWdz4qtBnpKg(VeDZ8F9i&aEb(e~w@ba1jxuV@rwa!1@`v;*$o{9hf From adab1463f7aebf649285eb56a432fa5ca53b2719 Mon Sep 17 00:00:00 2001 From: Bishwajeet Parhi Date: Mon, 13 Jun 2022 12:36:36 +0000 Subject: [PATCH 17/19] adds some padding in dailymotion png file --- public/images/users/dailymotion.png | Bin 1441 -> 1490 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/public/images/users/dailymotion.png b/public/images/users/dailymotion.png index 6ddfa13b9d67fe2ee348cf80b4b9925712c042fa..f06e6706d4758ea7497d42ca8e04a0b085bca289 100644 GIT binary patch literal 1490 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 From 5a0d0e5f024ccf5be27e923f5b43e6aacdb3fca2 Mon Sep 17 00:00:00 2001 From: Bishwajeet Parhi <62933155+2002Bishwajeet@users.noreply.github.com> Date: Mon, 13 Jun 2022 18:32:12 +0530 Subject: [PATCH 18/19] Update src/Appwrite/Auth/OAuth2/Dailymotion.php MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Matej Bačo --- src/Appwrite/Auth/OAuth2/Dailymotion.php | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/Appwrite/Auth/OAuth2/Dailymotion.php b/src/Appwrite/Auth/OAuth2/Dailymotion.php index f944b57ef5..0fc90e3ca1 100644 --- a/src/Appwrite/Auth/OAuth2/Dailymotion.php +++ b/src/Appwrite/Auth/OAuth2/Dailymotion.php @@ -174,11 +174,7 @@ class Dailymotion extends OAuth2 { $user = $this->getUser($accessToken); - if ($user['verified'] ?? false) { - return true; - } - - return false; + return $user['verified'] ?? false; } /** From 48191995b34e19e3a86ed254a2bf68105dd002e3 Mon Sep 17 00:00:00 2001 From: Bishwajeet Parhi Date: Mon, 13 Jun 2022 14:18:05 +0000 Subject: [PATCH 19/19] final dailymotion logo changes --- public/images/users/dailymotion.png | Bin 1490 -> 395 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/public/images/users/dailymotion.png b/public/images/users/dailymotion.png index f06e6706d4758ea7497d42ca8e04a0b085bca289..5fd8550450cfc6ffe4eb6ec57e0df94818c4e6d5 100644 GIT binary patch literal 395 zcmeAS@N?(olHy`uVBq!ia0vp^DIm>23bX*ZXgN`~UyHeC31rM?bAU z|HZ!NDS!UG_h0|sfAiaa>T~uzwNHTBKYF@2hE&XXd+nr9lYxM1pwOih2BH7|vr|tz z3CMf1Zqlc@bN8MIRXCUkRLj87uz%^7438}ak=rNt&f#?t*co=j|KP2eQxZ~6a$BcQ z4M^c#*XgCQN$PsHr^2TzDep!#QpJw?7ats>NIV($ASbrUHx3vIVCg!0K}xMK>z>% literal 1490 zcmaJ>XHXLc6b?bf5T=N1!74*#RFJZZVvu>MQUn4aptdL@KmuM!1Vly%)&MdDWGSPF zAS;7}z4s6yZ~=mX1eKu3iZP5dc3tm!?T`1qd+&SSz4znYmvjkgCn>Hh4gdfo9qb`4 zLc|Iq;vi6%VO;}_LI8!@!@>Xn@S(3E@{$$30|4xgcYvICjmZ0ucgFb}m|{#bC^0!c z<{ANG^GTWd6LrGRp~>ZVrh6TY-n~qLn%o$?tIm} z##Cr(plP46>Y}m~T2hRTkArs#+o@@5bB<&frn?Ycub5>SCPxL#@mo6q1iNcE*1%6IN5YuU*RVVn1wHbe^|5lK*e z{NvFmRqwLH>W;0OLGgdw@c&zlRrQn0rDAt|c0G`LUV+@yi{aAxVQOHk%RPfq9)8@l z_@+GRDdrx|PG_|Wm5*4z;SMa8`vOfvnJHy4i1ebl%T9QWToqc|EnI(f@K7yVR7~Nn zry)8~0nfzvh98mPGqVX1f*sAY(Rid5f^=GB_sUt>wRII`@Iu2JEPu?$Ry|^zmerkV zH-l(n=oN8dbU&1J(kZZ(;R9uwa8?JaTC}bNd1o}x{Els?=cyLnNYX>~SdWeA%VVOi z2W^672Pxx4DA~TPX!9L{EqIatHuIbx)1d8~D&*i)ZK`(t0G4q~!-hr`P#45MO+|7* zK8E@vwV8%xg{@?_Gh4X&S=!MZ)2AiS?;relPa4HIBffWOqR=DYvzL1mWx~a&=VnIn zU(&hb&G^!`O`%fjjvwXtN8g6z1WUKo3D53X-5QV6dDO5(1qm_qzHthJzZXEt z!hO!6H?oSIB#r%J-cK)=jO?L;jpkBrYomyP&#y)6V1l?Ff!uX%WG?aBxFz!=>mIl} z^K5%P3XR+ec*N;`QU7qS_32Fhgy;Z~Gbs;UkR7I!Mu}|Uvab8Ng@j{`e+FS7$DY9l zEy*dS6|xxGB*)a~fr0C&SfT~oIysVP0pB17dwB!bfI?xfT3F0BG(!iPM6iHM7gfXg z&HX1dSPx#ny}Ug?O%s5D7r@R_cxL@siqT;7Hv6gwY@li%^1BX+CDPck#eOepQ1*(W zuQR8h@?v^A3Tv(A_fcPV4PD(!-uEk~Xs%ZIz<};H#_fh8-x1O@%>{PeRc#MPW=G-Q zc?To8yBl9(g03!dK!w!i7({IBtd-YUvr^u()}EJ6d$)};L&6h{IC1E_j0L%87iC)QH8Bz8NTZe`2g*u^>R##DX7Su7 zQQe12+B~m+*1$Oob=<{r-@o@}urUx~*#1ZpdTa)~cpxZGhXP(DW)Y+F