Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .github/workflows/litteralis_import.yml
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,10 @@ jobs:
- name: Run import
run: make ci_litteralis_import BIN_PHP="php" BIN_CONSOLE="php bin/console" BIN_COMPOSER="composer"

- name: Run communication import
if: ${{ vars.APP_LITTERALIS_COMMUNICATION_ENABLED_ORGS != '' && vars.APP_LITTERALIS_COMMUNICATION_ENABLED_ORGS != '[]' }}
run: make ci_litteralis_import_communication BIN_PHP="php" BIN_CONSOLE="php bin/console"

- name: Get log file path
id: logfile
if: ${{ !cancelled() }}
Expand Down
2 changes: 2 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -289,6 +289,8 @@ ci_litteralis_import: ## Run CI steps for Litteralis Import workflow
scalingo login --ssh --ssh-identity ~/.ssh/id_rsa
./tools/scalingodbtunnel dialog --host-url --port 10000 & ./tools/wait-for-it.sh 127.0.0.1:10000
make console CMD="app:litteralis:import"

ci_litteralis_import_communication: ## Run CI steps for Litteralis Communication Import workflow
make console CMD="app:litteralis:import-communication"

ci_bdtopo_migrate: ## Run CI steps for BD TOPO Migrate workflow
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,15 @@ public function configure(array $enabledOrgs, LitteralisCredentials $credentials

foreach ($enabledOrgs as $name) {
$orgCredentials = $credentials->getCredentials($name);

if (empty($orgCredentials)) {
throw new \RuntimeException(\sprintf(
'Organization "%s": missing credentials (check APP_LITTERALIS_ORG_%s_CREDENTIALS)',
$name,
strtoupper($name),
));
}

$client = $this->clientFactory->create($orgCredentials);
$this->clients[$name] = $client;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ class LitteralisCredentialsEnvVarProcessor implements EnvVarProcessorInterface
public function __construct(
private readonly string $dialogOrgId,
private readonly ?array $litteralisEnabledOrgs,
private readonly ?array $litteralisCommunicationEnabledOrgs,
) {
}

Expand All @@ -21,7 +22,12 @@ public function getEnv(string $prefix, string $name, \Closure $getEnv): Litteral

$orgEnvPrefix = $name;

foreach (($this->litteralisEnabledOrgs ?? []) as $orgName) {
$allOrgNames = array_unique(array_merge(
$this->litteralisEnabledOrgs ?? [],
$this->litteralisCommunicationEnabledOrgs ?? [],
));

foreach ($allOrgNames as $orgName) {
$orgEnvName = \sprintf('%s%s_ID', $orgEnvPrefix, strtoupper($orgName));
$orgIdEnv = $getEnv($orgEnvName);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,16 +17,18 @@ public function testProvidedTypes(): void
$processor = new LitteralisCredentialsEnvVarProcessor(
$this->dialogOrgId,
litteralisEnabledOrgs: [],
litteralisCommunicationEnabledOrgs: [],
);

$this->assertEquals(['litteralis_credentials' => 'string'], $processor->getProvidedTypes());
}

private function doTest(array $enabledOrgs, array $getEnvReturnValues, ?LitteralisCredentials $expectedCredentials = null): void
private function doTest(array $enabledOrgs, array $getEnvReturnValues, ?LitteralisCredentials $expectedCredentials = null, array $communicationEnabledOrgs = []): void
{
$processor = new LitteralisCredentialsEnvVarProcessor(
$this->dialogOrgId,
litteralisEnabledOrgs: $enabledOrgs,
litteralisCommunicationEnabledOrgs: $communicationEnabledOrgs,
);

$value = $processor->getEnv(
Expand Down Expand Up @@ -68,6 +70,23 @@ public function testEnvValid(): void
);
}

public function testEnvValidWithCommunicationOrgs(): void
{
$this->doTest(
['test'],
[
['APP_LITTERALIS_ORG_TEST_ID', '1442d806-559c-41a9-aa4b-cdd18195a38f'],
['APP_LITTERALIS_ORG_TEST_CREDENTIALS', 'testuser:testpass'],
['APP_LITTERALIS_ORG_SAVOIE_ID', 'b556d806-559c-41a9-aa4b-cdd18195a38f'],
['APP_LITTERALIS_ORG_SAVOIE_CREDENTIALS', 'savoieuser:savoiepass'],
],
(new LitteralisCredentials())
->add('test', '1442d806-559c-41a9-aa4b-cdd18195a38f', 'testuser:testpass')
->add('savoie', 'b556d806-559c-41a9-aa4b-cdd18195a38f', 'savoieuser:savoiepass'),
communicationEnabledOrgs: ['savoie'],
);
}

public function testGetEnvInvalidOrgIdMissing(): void
{
$this->expectException(\RuntimeException::class);
Expand Down
Loading