Merge pull request #451 from beyondcode/refactor/app-providers

[2.x] Refactor App Providers
This commit is contained in:
rennokki 2020-08-13 15:23:09 +03:00 committed by GitHub
commit 08b836b245
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 27 additions and 27 deletions

View File

@ -40,7 +40,7 @@ return [
|
*/
'app' => \BeyondCode\LaravelWebSockets\Apps\ConfigAppProvider::class,
'app' => \BeyondCode\LaravelWebSockets\Apps\ConfigAppManager::class,
/*
|--------------------------------------------------------------------------

View File

@ -35,17 +35,17 @@ class App
public static function findById($appId)
{
return app(AppProvider::class)->findById($appId);
return app(AppManager::class)->findById($appId);
}
public static function findByKey(string $appKey): ?self
{
return app(AppProvider::class)->findByKey($appKey);
return app(AppManager::class)->findByKey($appKey);
}
public static function findBySecret(string $appSecret): ?self
{
return app(AppProvider::class)->findBySecret($appSecret);
return app(AppManager::class)->findBySecret($appSecret);
}
public function __construct($appId, string $appKey, string $appSecret)

View File

@ -2,7 +2,7 @@
namespace BeyondCode\LaravelWebSockets\Apps;
interface AppProvider
interface AppManager
{
/** @return array[BeyondCode\LaravelWebSockets\AppProviders\App] */
public function all(): array;

View File

@ -4,7 +4,7 @@ namespace BeyondCode\LaravelWebSockets\Apps;
use Illuminate\Support\Collection;
class ConfigAppProvider implements AppProvider
class ConfigAppManager implements AppManager
{
/** @var Collection */
protected $apps;
@ -14,7 +14,7 @@ class ConfigAppProvider implements AppProvider
$this->apps = collect(config('websockets.apps'));
}
/** @return array[\BeyondCode\LaravelWebSockets\AppProviders\App] */
/** @return array[\BeyondCode\LaravelWebSockets\Apps\App] */
public function all(): array
{
return $this->apps

View File

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

View File

@ -2,20 +2,20 @@
namespace BeyondCode\LaravelWebSockets\Statistics\Rules;
use BeyondCode\LaravelWebSockets\Apps\AppProvider;
use BeyondCode\LaravelWebSockets\Apps\AppManager;
use Illuminate\Contracts\Validation\Rule;
class AppId implements Rule
{
public function passes($attribute, $value)
{
$appProvider = app(AppProvider::class);
$manager = app(AppManager::class);
return $appProvider->findById($value) ? true : false;
return $manager->findById($value) ? true : false;
}
public function message()
{
return 'There is no app registered with the given id. Make sure the websockets config file contains an app for this id or that your custom AppProvider returns an app for this id.';
return 'There is no app registered with the given id. Make sure the websockets config file contains an app for this id or that your custom AppManager returns an app for this id.';
}
}

View File

@ -2,7 +2,7 @@
namespace BeyondCode\LaravelWebSockets;
use BeyondCode\LaravelWebSockets\Apps\AppProvider;
use BeyondCode\LaravelWebSockets\Apps\AppManager;
use BeyondCode\LaravelWebSockets\Dashboard\Http\Controllers\AuthenticateDashboard;
use BeyondCode\LaravelWebSockets\Dashboard\Http\Controllers\DashboardApiController;
use BeyondCode\LaravelWebSockets\Dashboard\Http\Controllers\SendMessage;
@ -101,7 +101,7 @@ class WebSocketsServiceProvider extends ServiceProvider
return new $channelManager;
});
$this->app->singleton(AppProvider::class, function () {
$this->app->singleton(AppManager::class, function () {
return $this->app->make(config('websockets.managers.app'));
});
}

View File

@ -2,25 +2,25 @@
namespace BeyondCode\LaravelWebSockets\Tests\ClientProviders;
use BeyondCode\LaravelWebSockets\Apps\ConfigAppProvider;
use BeyondCode\LaravelWebSockets\Apps\ConfigAppManager;
use BeyondCode\LaravelWebSockets\Tests\TestCase;
class ConfigAppProviderTest extends TestCase
class ConfigAppManagerTest extends TestCase
{
/** @var \BeyondCode\LaravelWebSockets\Apps\ConfigAppProvider */
protected $configAppProvider;
/** @var \BeyondCode\LaravelWebSockets\Apps\ConfigAppManager */
protected $appManager;
public function setUp(): void
{
parent::setUp();
$this->configAppProvider = new ConfigAppProvider();
$this->appManager = new ConfigAppManager;
}
/** @test */
public function it_can_get_apps_from_the_config_file()
{
$apps = $this->configAppProvider->all();
$apps = $this->appManager->all();
$this->assertCount(1, $apps);
@ -38,11 +38,11 @@ class ConfigAppProviderTest extends TestCase
/** @test */
public function it_can_find_app_by_id()
{
$app = $this->configAppProvider->findById(0000);
$app = $this->appManager->findById(0000);
$this->assertNull($app);
$app = $this->configAppProvider->findById(1234);
$app = $this->appManager->findById(1234);
$this->assertEquals('Test App', $app->name);
$this->assertEquals(1234, $app->id);
@ -55,11 +55,11 @@ class ConfigAppProviderTest extends TestCase
/** @test */
public function it_can_find_app_by_key()
{
$app = $this->configAppProvider->findByKey('InvalidKey');
$app = $this->appManager->findByKey('InvalidKey');
$this->assertNull($app);
$app = $this->configAppProvider->findByKey('TestKey');
$app = $this->appManager->findByKey('TestKey');
$this->assertEquals('Test App', $app->name);
$this->assertEquals(1234, $app->id);
@ -72,11 +72,11 @@ class ConfigAppProviderTest extends TestCase
/** @test */
public function it_can_find_app_by_secret()
{
$app = $this->configAppProvider->findBySecret('InvalidSecret');
$app = $this->appManager->findBySecret('InvalidSecret');
$this->assertNull($app);
$app = $this->configAppProvider->findBySecret('TestSecret');
$app = $this->appManager->findBySecret('TestSecret');
$this->assertEquals('Test App', $app->name);
$this->assertEquals(1234, $app->id);