From ca8d0fb608008683af0c07bb0928d72d601ab2f2 Mon Sep 17 00:00:00 2001 From: tuutti Date: Thu, 25 Apr 2024 16:26:20 +0300 Subject: [PATCH] UHF-9833: Added support for services --- documentation/environment-resolver.md | 3 ++- fixtures/environments.json | 22 +++++++------------ src/Environment/Environment.php | 6 ++--- src/Environment/EnvironmentResolver.php | 4 +--- .../{EnvironmentMetadata.php => Services.php} | 4 ++-- 5 files changed, 16 insertions(+), 23 deletions(-) rename src/Environment/{EnvironmentMetadata.php => Services.php} (93%) diff --git a/documentation/environment-resolver.md b/documentation/environment-resolver.md index 67f33f5..91e2cab 100644 --- a/documentation/environment-resolver.md +++ b/documentation/environment-resolver.md @@ -6,6 +6,7 @@ ## Usage ### Environment resolver + ```php // See \Drupal\helfi_api_base\Environment\Project for all available project constants. $projectName = \Drupal\helfi_api_base\Environment\Project::ASUMINEN; @@ -27,7 +28,7 @@ $internalUrl = $environment->getInternalAddress('fi'); // 'https://helfi-asumine $path = $environment->getPath('fi'); // '/fi/dev-asuminen'. $domain = $environment->getDomain(); // 'nginx-asuminen-dev.agw.arodevtest.hel.fi'. $baseUrl = $environment->getBaseUrl(); // 'https://nginx-asuminen-dev.agw.arodevtest.hel.fi' -/** @var \Drupal\helfi_api_base\Environment\EnvironmentMetadata $environmentMetadata */ +/** @var \Drupal\helfi_api_base\Environment\Services $environmentMetadata */ $environmentMetadata = $environment->getMetadata(); ``` diff --git a/fixtures/environments.json b/fixtures/environments.json index 86647a1..7f7fb58 100644 --- a/fixtures/environments.json +++ b/fixtures/environments.json @@ -18,8 +18,7 @@ "protocol": "http", "domain": "helfi-asuminen", "port": 8080 - }, - "meta": {} + } }, "test": { "path": { @@ -34,8 +33,7 @@ "internal_address": { "protocol": "https", "domain": "nginx-asuminen-test.apps.arodevtest.hel.fi" - }, - "meta": {} + } }, "stage": { "path": { @@ -50,8 +48,7 @@ "internal_address": { "protocol": "https", "domain": "nginx-asuminen-staging.apps.platta.hel.fi" - }, - "meta": {} + } }, "prod": { "path": { @@ -66,8 +63,7 @@ "internal_address": { "protocol": "https", "domain": "nginx-asuminen-prod.apps.platta.hel.fi" - }, - "meta": {} + } } } }, @@ -91,12 +87,10 @@ "domain": "helfi-etusivu", "port": 8080 }, - "meta": { - "services": { - "elastic-proxy": { - "protocol": "http", - "domain": "helfi-etusivu-elastic" - } + "services": { + "elastic-proxy": { + "protocol": "http", + "domain": "helfi-etusivu-elastic" } } }, diff --git a/src/Environment/Environment.php b/src/Environment/Environment.php index 4bfc571..fbe5c45 100644 --- a/src/Environment/Environment.php +++ b/src/Environment/Environment.php @@ -22,8 +22,8 @@ final class Environment { * Environment resolver identifier for the project. * @param \Drupal\helfi_api_base\Environment\EnvironmentEnum $environment * The environment name. - * @param \Drupal\helfi_api_base\Environment\EnvironmentMetadata|null $environmentMetadata - * The environment metadata. + * @param \Drupal\helfi_api_base\Environment\Services|null $services + * The environment services. */ public function __construct( private readonly Address $address, @@ -31,7 +31,7 @@ public function __construct( private readonly array $paths, private readonly string $id, private readonly EnvironmentEnum $environment, - private readonly ?EnvironmentMetadata $environmentMetadata = NULL, + private readonly ?Services $services = NULL, ) { } diff --git a/src/Environment/EnvironmentResolver.php b/src/Environment/EnvironmentResolver.php index 18dd5e4..769f93b 100644 --- a/src/Environment/EnvironmentResolver.php +++ b/src/Environment/EnvironmentResolver.php @@ -94,15 +94,13 @@ private function populateEnvironments(string $pathOrJson) : void { throw new \InvalidArgumentException('Project missing "address", "internal_address" or "paths" setting.'); } - $environmentMeta = !empty($settings['meta']) ? EnvironmentMetadata::createFromArray($settings['meta']) : NULL; - $project->addEnvironment($environment, new Environment( new Address(...$settings['address']), new Address(...$settings['internal_address']), $settings['path'], $id, EnvironmentEnum::tryFrom($environment), - $environmentMeta, + Services::createFromArray($services['services'] ?? []), )); } $this->projects[$id] = $project; diff --git a/src/Environment/EnvironmentMetadata.php b/src/Environment/Services.php similarity index 93% rename from src/Environment/EnvironmentMetadata.php rename to src/Environment/Services.php index 1323f65..fc97b04 100644 --- a/src/Environment/EnvironmentMetadata.php +++ b/src/Environment/Services.php @@ -7,7 +7,7 @@ /** * A value object to store environment metadata. */ -final class EnvironmentMetadata { +final class Services { /** * Constructs a new instance. @@ -23,7 +23,7 @@ private function __construct( * @param array $data * The data. * - * @return \Drupal\helfi_api_base\Environment\EnvironmentMetadata|null + * @return \Drupal\helfi_api_base\Environment\Services|null * The self or null. */ public static function createFromArray(array $data) : ? self {