Files
api/services/nginx/app/classes/edge_gateway_registry_service.php
T
Jeppe Bundgaard 7d450e285e Remove outdated edge gateway object classes, add new agent implementation
Transitioned from obsolete gateway object classes (`edge_gateway_shell_action_jobs_o`, `edge_gateway_shell_events_o`, `edge_gateway_shell_sessions_o`, `edge_gateway_update_jobs_o`) to the new agent implementation (`edge-gateway-agent/agent.php`).
2026-04-21 14:13:17 +02:00

93 lines
2.5 KiB
PHP

<?php
namespace classes;
use Exception;
class edge_gateway_registry_service
{
public function __construct(private readonly ?edge_gateway_manager $manager = null)
{
edge_gateway_schema_bootstrap::ensureTables();
}
public function createInstallToken(int $departmentId, ?string $label, ?int $createdBy = null): array
{
return $this->manager()->createInstallToken($departmentId, $label, $createdBy);
}
/**
* @throws Exception
*/
public function verifyInstallToken(string $plainToken): array
{
return $this->manager()->verifyInstallToken($plainToken);
}
/**
* @throws Exception
*/
public function claimGateway(
string $token,
string $hostname,
?string $installedVersion = null,
array $metadata = []
): array {
$payload = $this->manager()->claimGateway($token, $hostname, $installedVersion, $metadata);
unset($payload['broker_url']);
return $payload;
}
/**
* @throws Exception
*/
public function recordHeartbeat(int $gatewayId, string $plainToken, array $payload): array
{
return $this->manager()->recordHeartbeat($gatewayId, $plainToken, $payload);
}
/**
* @throws Exception
*/
public function updateGatewayMetadata(int $gatewayId, array $payload, ?int $userId = null): array
{
return $this->manager()->updateGatewayMetadata($gatewayId, $payload, $userId);
}
/**
* @return array<int,array<string,mixed>>
* @throws Exception
*/
public function setRelayBindings(int $gatewayId, array $bindings, ?int $userId = null): array
{
return $this->manager()->setRelayBindings($gatewayId, $bindings, $userId);
}
/**
* @throws Exception
*/
public function deleteGateway(int $gatewayId, ?int $userId = null): array
{
return $this->manager()->deleteGateway($gatewayId, $userId);
}
/**
* @throws Exception
*/
public function setDepartmentTransportMode(int $departmentId, string $transportMode, ?int $userId = null): array
{
return $this->manager()->setDepartmentTransportMode($departmentId, $transportMode, $userId);
}
public function getDepartmentTransportMode(int $departmentId): string
{
return $this->manager()->getDepartmentTransportMode($departmentId);
}
private function manager(): edge_gateway_manager
{
return $this->manager ?? new edge_gateway_manager();
}
}