This commit is contained in:
freek 2018-12-03 11:58:42 +01:00
parent f617240543
commit 62d9dff008
9 changed files with 63 additions and 4 deletions

View File

@ -16,6 +16,7 @@ return [
'key' => env('PUSHER_APP_KEY'),
'secret' => env('PUSHER_APP_SECRET'),
'enable_client_messages' => false,
'enable_statistics' => true,
],
],

View File

@ -0,0 +1,26 @@
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateWebSocketsStatisticsEntriesTable extends Migration
{
/**
* Run the migrations.
*/
public function up()
{
Schema::create('websockets_statistics_entries', function (Blueprint $table) {
$table->increments('id');
$table->nullableTimestamps();
});
}
/**
* Reverse the migrations.
*/
public function down()
{
Schema::dropIfExists('websockets_statistics_entries');
}
}

View File

@ -21,6 +21,9 @@ class App
/** @var bool */
public $clientMessagesEnabled = false;
/** @var bool */
public $statisticsEnabled = true;
public static function findById($appId)
{
return app(AppProvider::class)->findById($appId);
@ -61,4 +64,11 @@ class App
return $this;
}
public function enableStatistics(bool $enabled = true)
{
$this->statisticsEnabled = $enabled;
return $this;
}
}

View File

@ -44,7 +44,7 @@ class ConfigAppProvider implements AppProvider
protected function instanciate(?array $appAttributes): ?App
{
if (! $appAttributes) {
if (!$appAttributes) {
return null;
}
@ -58,9 +58,10 @@ class ConfigAppProvider implements AppProvider
$app->setName($appAttributes['name']);
}
if ($appAttributes['enable_client_messages'] ?? false) {
$app->enableClientMessages();
}
$app
->enableClientMessages($appAttributes['enable_client_messages'])
->enableStatistics($appAttributes['enable_statistics']);
return $app;
}

View File

@ -0,0 +1,12 @@
<?php
namespace BeyondCode\LaravelWebSockets\Statistics;
use Illuminate\Database\Eloquent\Model;
class WebSocketsStatisticsEntry extends Model
{
protected $guarded = [];
protected $table = 'websockets_statistics_entries';
}

View File

@ -21,6 +21,12 @@ class WebSocketsServiceProvider extends ServiceProvider
__DIR__.'/../config/websockets.php' => base_path('config/websockets.php'),
], 'config');
if (! class_exists('CreateWebSocketsStatisticsEntries')) {
$this->publishes([
__DIR__.'/../database/migrations/cretae_websockets_statistics_entries_table.php.stub' => database_path('migrations/'.date('Y_m_d_His', time()).'_cretae_websockets_statistics_entries_table.php'),
], 'migrations');
}
$this->registerRouteMacro();
$this->registerDashboardGate();

View File

@ -32,5 +32,6 @@ class ConfigAppProviderTest extends TestCase
$this->assertEquals('TestKey', $app->key);
$this->assertEquals('TestSecret', $app->secret);
$this->assertFalse($app->clientMessagesEnabled);
$this->assertTrue($app->statisticsEnabled);
}
}

View File

@ -35,6 +35,7 @@ class PusherClientMessageTest extends TestCase
'key' => 'TestKey',
'secret' => 'TestSecret',
'enable_client_messages' => true,
'enable_statistics' => true,
],
]);

View File

@ -41,6 +41,7 @@ abstract class TestCase extends \Orchestra\Testbench\TestCase
'key' => 'TestKey',
'secret' => 'TestSecret',
'enable_client_messages' => false,
'enable_statistics' => true,
],
]);
}