Better generation of installation ID.

This commit is contained in:
James Cole 2020-06-06 06:57:44 +02:00
parent d493820cc8
commit f5c075936f
4 changed files with 42 additions and 10 deletions

View File

@ -23,6 +23,7 @@ declare(strict_types=1);
namespace FireflyIII\Console\Commands;
use FireflyIII\Support\System\GeneratesInstallationId;
use Illuminate\Console\Command;
/**
@ -32,6 +33,8 @@ use Illuminate\Console\Command;
*/
class UpgradeFireflyInstructions extends Command
{
use GeneratesInstallationId;
/**
* The console command description.
*
@ -50,6 +53,7 @@ class UpgradeFireflyInstructions extends Command
*/
public function handle(): int
{
$this->generateInstallationId();
if ('update' === (string) $this->argument('task')) {
$this->updateInstructions();
}
@ -64,6 +68,7 @@ class UpgradeFireflyInstructions extends Command
app('telemetry')->feature('system.database.driver', env('DB_CONNECTION', '(unknown)'));
app('telemetry')->feature('system.os.is_docker', $isDocker);
app('telemetry')->feature('system.command.executed', $this->signature);
return 0;
}

View File

@ -26,8 +26,7 @@ namespace FireflyIII\Http\Middleware;
use Closure;
use FireflyIII\Exceptions\FireflyException;
use Log;
use Ramsey\Uuid\Uuid;
use FireflyIII\Support\System\GeneratesInstallationId;
/**
*
@ -35,6 +34,7 @@ use Ramsey\Uuid\Uuid;
*/
class InstallationId
{
use GeneratesInstallationId;
/**
* Handle an incoming request.
*
@ -48,13 +48,7 @@ class InstallationId
*/
public function handle($request, Closure $next)
{
$config = app('fireflyconfig')->get('installation_id', null);
if (null === $config) {
$uuid5 = Uuid::uuid5(Uuid::NAMESPACE_URL, 'firefly-iii.org');
$uniqueId = (string) $uuid5;
Log::info(sprintf('Created Firefly III installation ID %s', $uniqueId));
app('fireflyconfig')->set('installation_id', $uniqueId);
}
$this->generateInstallationId();
return $next($request);
}

View File

@ -0,0 +1,28 @@
<?php
declare(strict_types=1);
namespace FireflyIII\Support\System;
use Log;
use Ramsey\Uuid\Uuid;
/**
* Trait GeneratesInstallationId
*/
trait GeneratesInstallationId
{
/**
*
*/
protected function generateInstallationId(): void
{
$config = app('fireflyconfig')->get('installation_id', null);
if (null === $config) {
$uuid5 = Uuid::uuid5(Uuid::NAMESPACE_URL, 'firefly-iii.org');
$uniqueId = (string) $uuid5;
Log::info(sprintf('Created Firefly III installation ID %s', $uniqueId));
app('fireflyconfig')->set('installation_id', $uniqueId);
}
}
}

View File

@ -24,6 +24,7 @@ namespace FireflyIII\Support;
use Carbon\Carbon;
use FireflyIII\Models\Telemetry as TelemetryModel;
use FireflyIII\Support\System\GeneratesInstallationId;
use JsonException;
use Log;
@ -32,6 +33,7 @@ use Log;
*/
class Telemetry
{
use GeneratesInstallationId;
/**
* Feature telemetry stores a $value for the given $feature.
* Will only store the given $feature / $value combination once.
@ -166,9 +168,12 @@ class Telemetry
*/
private function storeEntry(string $type, string $name, string $value): void
{
$this->generateInstallationId();
$config = app('fireflyconfig')->get('installation_id', null);
$installationId = null !== $config ? $config->data : 'empty';
TelemetryModel::create(
[
'installation_id' => \FireflyConfig::get('installation_id', '')->data,
'installation_id' => $installationId,
'key' => $name,
'type' => $type,
'value' => $value,