Skip to content

Commit

Permalink
Merge pull request #235 from akondas/buddy-works
Browse files Browse the repository at this point in the history
Add Buddy client
  • Loading branch information
weaverryan authored Apr 17, 2020
2 parents ba6b091 + a499441 commit 4c36a34
Show file tree
Hide file tree
Showing 6 changed files with 121 additions and 6 deletions.
3 changes: 1 addition & 2 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,14 +13,13 @@ php:
matrix:
include:
- php: 7.3
env: DEPENDENCIES=dev LINT=1
env: LINT=1
- php: 7.1
env: COMPOSER_FLAGS='--prefer-lowest --prefer-stable'

before_install:
- phpenv config-rm xdebug.ini || true
- composer self-update
- if [ "$DEPENDENCIES" = "dev" ]; then perl -pi -e 's/^}$/,"minimum-stability":"dev"}/' composer.json; fi;

install: composer update --prefer-dist $COMPOSER_FLAGS

Expand Down
18 changes: 18 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@ via Composer:
| [Azure](https://github.com/thenetworg/oauth2-azure) | composer require thenetworg/oauth2-azure |
| [Bitbucket](https://github.com/stevenmaguire/oauth2-bitbucket) | composer require stevenmaguire/oauth2-bitbucket |
| [Box](https://github.com/stevenmaguire/oauth2-box) | composer require stevenmaguire/oauth2-box |
| [Buddy](https://github.com/buddy-works/oauth2-client) | composer require buddy-works/oauth2-client |
| [Buffer](https://github.com/tgallice/oauth2-buffer) | composer require tgallice/oauth2-buffer |
| [CanvasLMS](https://github.com/smtech/oauth2-canvaslms) | composer require smtech/oauth2-canvaslms |
| [Clever](https://github.com/schoolrunner/oauth2-clever) | composer require schoolrunner/oauth2-clever |
Expand Down Expand Up @@ -582,6 +583,23 @@ knpu_oauth2_client:
# whether to check OAuth2 "state": defaults to true
# use_state: true

# will create service: "knpu.oauth2.client.buddy"
# an instance of: KnpU\OAuth2ClientBundle\Client\Provider\BuddyClient
# composer require buddy-works/oauth2-client
buddy:
# must be "buddy" - it activates that type!
type: buddy
# add and set these environment variables in your .env files
client_id: '%env(OAUTH_BUDDY_CLIENT_ID)%'
client_secret: '%env(OAUTH_BUDDY_CLIENT_SECRET)%'
# a route name you'll create
redirect_route: connect_buddy_check
redirect_params: {}
# Base API URL, modify this for self-hosted instances
# base_api_url: https://api.buddy.works
# whether to check OAuth2 "state": defaults to true
# use_state: true

# will create service: "knpu.oauth2.client.buffer"
# an instance of: KnpU\OAuth2ClientBundle\Client\Provider\BufferClient
# composer require tgallice/oauth2-buffer
Expand Down
35 changes: 35 additions & 0 deletions src/Client/Provider/BuddyClient.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
<?php

/*
* OAuth2 Client Bundle
* Copyright (c) KnpUniversity <http://knpuniversity.com/>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/

namespace KnpU\OAuth2ClientBundle\Client\Provider;

use Buddy\OAuth2\Client\Provider\BuddyResourceOwner;
use KnpU\OAuth2ClientBundle\Client\OAuth2Client;
use League\OAuth2\Client\Provider\ResourceOwnerInterface;
use League\OAuth2\Client\Token\AccessToken;

class BuddyClient extends OAuth2Client
{
/**
* @return BuddyResourceOwner|ResourceOwnerInterface
*/
public function fetchUserFromToken(AccessToken $accessToken)
{
return parent::fetchUserFromToken($accessToken);
}

/**
* @return BuddyResourceOwner|ResourceOwnerInterface
*/
public function fetchUser()
{
return parent::fetchUser();
}
}
9 changes: 5 additions & 4 deletions src/Client/Provider/SpotifyClient.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,24 +10,25 @@

namespace KnpU\OAuth2ClientBundle\Client\Provider;

use Kerox\OAuth2\Client\Provider\SpotifyResourceOwner;
use KnpU\OAuth2ClientBundle\Client\OAuth2Client;
use League\OAuth2\Client\Provider\ResourceOwnerInterface;
use League\OAuth2\Client\Token\AccessToken;

class SpotifyClient extends OAuth2Client
{
/**
* @return \Kerox\OAuth2\Client\Provider\SpotifyResourceOwner|\League\OAuth2\Client\Provider\ResourceOwnerInterface
* @return SpotifyResourceOwner|ResourceOwnerInterface
*/
public function fetchUserFromToken(AccessToken $accessToken): ResourceOwnerInterface
public function fetchUserFromToken(AccessToken $accessToken)
{
return parent::fetchUserFromToken($accessToken);
}

/**
* @return \Kerox\OAuth2\Client\Provider\SpotifyResourceOwner|\League\OAuth2\Client\Provider\ResourceOwnerInterface
* @return SpotifyResourceOwner|ResourceOwnerInterface
*/
public function fetchUser(): ResourceOwnerInterface
public function fetchUser()
{
return parent::fetchUser();
}
Expand Down
2 changes: 2 additions & 0 deletions src/DependencyInjection/KnpUOAuth2ClientExtension.php
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
use KnpU\OAuth2ClientBundle\DependencyInjection\Providers\AzureProviderConfigurator;
use KnpU\OAuth2ClientBundle\DependencyInjection\Providers\BitbucketProviderConfigurator;
use KnpU\OAuth2ClientBundle\DependencyInjection\Providers\BoxProviderConfigurator;
use KnpU\OAuth2ClientBundle\DependencyInjection\Providers\BuddyProviderConfigurator;
use KnpU\OAuth2ClientBundle\DependencyInjection\Providers\BufferProviderConfigurator;
use KnpU\OAuth2ClientBundle\DependencyInjection\Providers\CanvasLMSProviderConfigurator;
use KnpU\OAuth2ClientBundle\DependencyInjection\Providers\CleverProviderConfigurator;
Expand Down Expand Up @@ -94,6 +95,7 @@ class KnpUOAuth2ClientExtension extends Extension
'azure' => AzureProviderConfigurator::class,
'bitbucket' => BitbucketProviderConfigurator::class,
'box' => BoxProviderConfigurator::class,
'buddy' => BuddyProviderConfigurator::class,
'buffer' => BufferProviderConfigurator::class,
'canvas_lms' => CanvasLMSProviderConfigurator::class,
'clever' => CleverProviderConfigurator::class,
Expand Down
60 changes: 60 additions & 0 deletions src/DependencyInjection/Providers/BuddyProviderConfigurator.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
<?php

/*
* OAuth2 Client Bundle
* Copyright (c) KnpUniversity <http://knpuniversity.com/>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/

namespace KnpU\OAuth2ClientBundle\DependencyInjection\Providers;

use Symfony\Component\Config\Definition\Builder\NodeBuilder;

class BuddyProviderConfigurator implements ProviderConfiguratorInterface
{
public function buildConfiguration(NodeBuilder $node)
{
$node
->scalarNode('base_api_url')
->info('Base API URL, modify this for self-hosted instances')
->defaultValue('https://api.buddy.works')
->cannotBeEmpty()
->end();
}

public function getProviderClass(array $config)
{
return 'Buddy\OAuth2\Client\Provider\Buddy';
}

public function getProviderOptions(array $config)
{
return [
'clientId' => $config['client_id'],
'clientSecret' => $config['client_secret'],
'baseApiUrl' => $config['base_api_url'],
];
}

public function getPackagistName()
{
return 'buddy-works/oauth2-client';
}

public function getLibraryHomepage()
{
return 'https://github.com/buddy-works/oauth2-client';
}

public function getProviderDisplayName()
{
return 'Buddy';
}

public function getClientClass(array $config)
{
return 'KnpU\OAuth2ClientBundle\Client\Provider\BuddyClient';
}
}

0 comments on commit 4c36a34

Please sign in to comment.