<?php
namespace Common\Settings\Validators;
use Common\Admin\Analytics\Actions\BuildGoogleAnalyticsReport;
use Exception;
use Illuminate\Support\Arr;
use Illuminate\Support\Facades\Config;
class AnalyticsCredentialsValidator
{
const KEYS = [
'analytics_property_id',
'analytics.tracking_code',
'certificate',
];
public function fails($settings): array|false
{
$this->setConfigDynamically($settings);
try {
(new BuildGoogleAnalyticsReport([]))->execute();
} catch (Exception $e) {
return [
'analytics_group' => "Invalid credentials: {$e->getMessage()}",
];
}
return false;
}
private function setConfigDynamically(array $settings): void
{
if ($propertyId = Arr::get($settings, 'analytics_property_id')) {
Config::set('services.google.analytics_property_id', $propertyId);
}
}
}