renaming clients to apps

This commit is contained in:
freek 2018-12-01 13:57:02 +01:00
parent 0bff2f9f14
commit e90e86798c
13 changed files with 59 additions and 59 deletions

View File

@ -1,6 +1,6 @@
<?php
use BeyondCode\LaravelWebSockets\ClientProviders\ConfigClientProvider;
use BeyondCode\LaravelWebSockets\Apps\ConfigAppProvider;
return [
@ -10,12 +10,12 @@ return [
*
* You should make sure that the app id is numeric.
*/
'clients' => [
'apps' => [
[
'id' => env('PUSHER_APP_ID'),
'name' => env('APP_NAME'),
'app_id' => env('PUSHER_APP_ID'),
'app_key' => env('PUSHER_APP_KEY'),
'app_secret' => env('PUSHER_APP_SECRET')
'key' => env('PUSHER_APP_KEY'),
'ecret' => env('PUSHER_APP_SECRET')
],
],
@ -26,7 +26,7 @@ return [
* You can create a custom provider by implementing the
* `ClientProvier` interface.
*/
'client_provider' => ConfigClientProvider::class,
'client_provider' => ConfigAppProvider::class,
/*
* This array contains the hosts of which you want to allow incoming requests.

View File

@ -1,10 +1,10 @@
<?php
namespace BeyondCode\LaravelWebSockets\ClientProviders;
namespace BeyondCode\LaravelWebSockets\Apps;
use BeyondCode\LaravelWebSockets\Exceptions\InvalidClient;
class Client
class App
{
/** @var int */
public $appId;
@ -18,14 +18,14 @@ class Client
/** @var string|null */
public $name;
public static function findByAppId(int $appId)
public static function findById(int $appId)
{
return app(ClientProvider::class)->findByAppId($appId);
return app(AppProvider::class)->findById($appId);
}
public static function findByAppKey(string $appKey): ?Client
public static function findByKey(string $appKey): ?App
{
return app(ClientProvider::class)->findByAppKey($appKey);
return app(AppProvider::class)->findByKey($appKey);
}
public function __construct($appId, string $appKey, string $appSecret, ?string $name)

13
src/Apps/AppProvider.php Normal file
View File

@ -0,0 +1,13 @@
<?php
namespace BeyondCode\LaravelWebSockets\Apps;
interface AppProvider
{
/** @return array[BeyondCode\LaravelWebSockets\ClientProviders\Client] */
public function all(): array;
public function findById(int $appId): ?App;
public function findByKey(string $appKey): ?App;
}

View File

@ -1,10 +1,10 @@
<?php
namespace BeyondCode\LaravelWebSockets\ClientProviders;
namespace BeyondCode\LaravelWebSockets\Apps;
use Illuminate\Support\Collection;
class ConfigClientProvider implements ClientProvider
class ConfigAppProvider implements AppProvider
{
/** @var Collection */
protected $clients;
@ -23,34 +23,35 @@ class ConfigClientProvider implements ClientProvider
})
->toArray();
}
public function findByAppId(int $appId): ?Client
public function findById(int $appId): ?App
{
$clientAttributes = $this
->clients
->firstWhere('app_id', $appId);
->firstWhere('id', $appId);
return $this->instanciate($clientAttributes);
}
public function findByAppKey(string $appKey): ?Client
public function findByKey(string $appKey): ?App
{
$clientAttributes = $this
->clients
->firstWhere('app_key', $appKey);
->firstWhere('key', $appKey);
return $this->instanciate($clientAttributes);
}
protected function instanciate(?array $clientAttributes): ?Client
protected function instanciate(?array $clientAttributes): ?App
{
if (! $clientAttributes) {
return null;
}
return new Client(
$clientAttributes['app_id'],
$clientAttributes['app_key'],
$clientAttributes['app_secret'],
return new App(
$clientAttributes['id'],
$clientAttributes['key'],
$clientAttributes['secret'],
$clientAttributes['name'] ?? null
);
}

View File

@ -1,14 +0,0 @@
<?php
namespace BeyondCode\LaravelWebSockets\ClientProviders;
interface ClientProvider
{
/** @return array[BeyondCode\LaravelWebSockets\ClientProviders\Client] */
public function all(): array;
public function findByAppId(int $appId): ?Client;
public function findByAppKey(string $appKey): ?Client;
}

View File

@ -3,11 +3,11 @@
namespace BeyondCode\LaravelWebSockets\Dashboard\Http\Controllers;
use Illuminate\Http\Request;
use BeyondCode\LaravelWebSockets\ClientProviders\ClientProvider;
use BeyondCode\LaravelWebSockets\Apps\AppProvider;
class ShowDashboard
{
public function __invoke(Request $request, ClientProvider $clients)
public function __invoke(Request $request, AppProvider $clients)
{
return view('websockets::dashboard', [
'clients' => $clients->all(),

View File

@ -2,7 +2,7 @@
namespace BeyondCode\LaravelWebSockets\HttpApi\Controllers;
use BeyondCode\LaravelWebSockets\ClientProviders\Client;
use BeyondCode\LaravelWebSockets\Apps\App;
use BeyondCode\LaravelWebSockets\Dashboard\DashboardLogger;
use BeyondCode\LaravelWebSockets\Events\ExceptionThrown;
use BeyondCode\LaravelWebSockets\QueryParameters;
@ -77,7 +77,7 @@ abstract class Controller implements HttpServerInterface
public function ensureValidAppId(string $appId)
{
if (!$client = Client::findByAppId($appId)) {
if (!$client = App::findById($appId)) {
throw new HttpException(401, "Unknown app id `{$appId}` provided.");
}
@ -95,7 +95,7 @@ abstract class Controller implements HttpServerInterface
"&auth_version={$request->get('auth_version')}" .
"&body_md5={$bodyMd5}";
$authSignature = hash_hmac('sha256', $signature, Client::findByAppId($request->get('appId'))->appSecret);
$authSignature = hash_hmac('sha256', $signature, App::findById($request->get('appId'))->appSecret);
if ($authSignature !== $request->get('auth_signature')) {
throw new HttpException(401, 'Invalid auth signature provided.');

View File

@ -10,7 +10,7 @@ use BeyondCode\LaravelWebSockets\QueryParameters;
use Exception;
use Ratchet\ConnectionInterface;
use Ratchet\RFC6455\Messaging\MessageInterface;
use BeyondCode\LaravelWebSockets\ClientProviders\Client;
use BeyondCode\LaravelWebSockets\Apps\App;
use BeyondCode\LaravelWebSockets\WebSockets\Channels\ChannelManager;
use BeyondCode\LaravelWebSockets\WebSockets\Exceptions\UnknownAppKey;
use Ratchet\WebSocket\MessageComponentInterface;
@ -58,7 +58,7 @@ class WebSocketHandler implements MessageComponentInterface
{
$appKey = QueryParameters::create($connection->httpRequest)->get('appKey');
if (!$client = Client::findByAppKey($appKey)) {
if (!$client = App::findByKey($appKey)) {
throw new UnknownAppKey($appKey);
}

View File

@ -9,7 +9,7 @@ use BeyondCode\LaravelWebSockets\Dashboard\Http\Middleware\Authorize;
use BeyondCode\LaravelWebSockets\Server\Router;
use Illuminate\Support\Facades\Gate;
use Illuminate\Support\Facades\Route;
use BeyondCode\LaravelWebSockets\ClientProviders\ClientProvider;
use BeyondCode\LaravelWebSockets\Apps\AppProvider;
use Illuminate\Support\ServiceProvider;
use BeyondCode\LaravelWebSockets\WebSockets\Channels\ChannelManager;
@ -44,7 +44,7 @@ class WebSocketsServiceProvider extends ServiceProvider
return new ChannelManager();
});
$this->app->singleton(ClientProvider::class, function() {
$this->app->singleton(AppProvider::class, function() {
return app(config('websockets.client_provider'));
});
}

View File

@ -2,7 +2,7 @@
namespace BeyondCode\LaravelWebSockets\Tests\ClientProviders;
use BeyondCode\LaravelWebSockets\ClientProviders\Client;
use BeyondCode\LaravelWebSockets\Apps\App;
use BeyondCode\LaravelWebSockets\Exceptions\InvalidClient;
use BeyondCode\LaravelWebSockets\Tests\TestCase;
@ -11,7 +11,7 @@ class ClientTest extends TestCase
/** @test */
public function it_can_create_a_client()
{
new Client(1, 'appKey', 'appSecret', 'new');
new App(1, 'appKey', 'appSecret', 'new');
$this->markTestAsPassed();
}
@ -21,7 +21,7 @@ class ClientTest extends TestCase
{
$this->expectException(InvalidClient::class);
new Client(1, '', 'appSecret', 'new');
new App(1, '', 'appSecret', 'new');
}
/** @test */
@ -29,7 +29,7 @@ class ClientTest extends TestCase
{
$this->expectException(InvalidClient::class);
new Client(1, 'appKey', '', 'new');
new App(1, 'appKey', '', 'new');
}
/** @test */
@ -37,6 +37,6 @@ class ClientTest extends TestCase
{
$this->expectException(InvalidClient::class);
new Client('appId', 'appKey', '', 'new');
new App('appId', 'appKey', '', 'new');
}
}

View File

@ -2,19 +2,19 @@
namespace BeyondCode\LaravelWebSockets\Tests\ClientProviders;
use BeyondCode\LaravelWebSockets\ClientProviders\ConfigClientProvider;
use BeyondCode\LaravelWebSockets\Apps\ConfigAppProvider;
use BeyondCode\LaravelWebSockets\Tests\TestCase;
class ConfigClientProviderTest extends TestCase
{
/** @var \BeyondCode\LaravelWebSockets\ClientProviders\ConfigClientProvider */
/** @var \BeyondCode\LaravelWebSockets\Apps\ConfigAppProvider */
protected $configClientProvider;
public function setUp()
{
parent::setUp();
$this->configClientProvider = new ConfigClientProvider();
$this->configClientProvider = new ConfigAppProvider();
}
/** @test */

View File

@ -2,7 +2,7 @@
namespace BeyondCode\LaravelWebSockets\Tests;
use BeyondCode\LaravelWebSockets\ClientProviders\Client;
use BeyondCode\LaravelWebSockets\Apps\App;
use BeyondCode\LaravelWebSockets\WebSockets\Exceptions\UnknownAppKey;
use BeyondCode\LaravelWebSockets\Tests\Mocks\Message;
@ -34,7 +34,7 @@ class ConnectionTest extends TestCase
$this->pusherServer->onOpen($connection);
$this->assertInstanceOf(Client::class, $connection->client);
$this->assertInstanceOf(App::class, $connection->client);
$this->assertSame(1234, $connection->client->appId);
$this->assertSame('TestKey', $connection->client->appKey);
$this->assertSame('TestSecret', $connection->client->appSecret);

View File

@ -38,9 +38,9 @@ abstract class TestCase extends \Orchestra\Testbench\TestCase
$app['config']->set('websockets.clients', [
[
'name' => 'Test Client',
'app_id' => 1234,
'app_key' => 'TestKey',
'app_secret' => 'TestSecret'
'id' => 1234,
'key' => 'TestKey',
'secret' => 'TestSecret'
]
]);
}