diff --git a/.idea/Easy_solution.iml b/.idea/Easy_solution.iml
index 5c18800..1edceab 100644
--- a/.idea/Easy_solution.iml
+++ b/.idea/Easy_solution.iml
@@ -19,6 +19,8 @@
+
+
diff --git a/.idea/php.xml b/.idea/php.xml
index 26549ad..3dac51b 100644
--- a/.idea/php.xml
+++ b/.idea/php.xml
@@ -181,6 +181,10 @@
+
+
+
+
diff --git a/composer.json b/composer.json
index 8d433df..cd41d70 100644
--- a/composer.json
+++ b/composer.json
@@ -52,6 +52,7 @@
"symfony/ux-turbo": "^2.24",
"symfony/validator": "7.4.*",
"symfony/web-link": "7.4.*",
+ "symfony/webhook": "7.4.*",
"symfony/yaml": "7.4.*",
"twig/twig": "^2.12|^3.0"
},
diff --git a/config/reference.php b/config/reference.php
index 6cab768..41d3386 100644
--- a/config/reference.php
+++ b/config/reference.php
@@ -676,7 +676,7 @@ use Symfony\Component\Config\Loader\ParamConfigurator as Param;
* }>,
* },
* webhook?: bool|array{ // Webhook configuration
- * enabled?: bool|Param, // Default: false
+ * enabled?: bool|Param, // Default: true
* message_bus?: scalar|Param|null, // The message bus to use. // Default: "messenger.default_bus"
* routing?: array,
* },
* remote-event?: bool|array{ // RemoteEvent configuration
- * enabled?: bool|Param, // Default: false
+ * enabled?: bool|Param, // Default: true
* },
* json_streamer?: bool|array{ // JSON streamer configuration
* enabled?: bool|Param, // Default: false
diff --git a/src/Controller/OrganizationController.php b/src/Controller/OrganizationController.php
index bd09428..00e805f 100644
--- a/src/Controller/OrganizationController.php
+++ b/src/Controller/OrganizationController.php
@@ -9,8 +9,8 @@ use App\Form\OrganizationForm;
use App\Repository\OrganizationsRepository;
use App\Repository\UsersOrganizationsRepository;
use App\Service\ActionService;
-use App\Service\AwsService;
use App\Service\LoggerService;
+use App\Webhook\OrganizationNotifier;
use App\Service\OrganizationsService;
use App\Service\UserOrganizationService;
use App\Service\UserService;
@@ -37,7 +37,9 @@ class OrganizationController extends AbstractController
private readonly ActionService $actionService,
private readonly UserOrganizationService $userOrganizationService,
private readonly OrganizationsRepository $organizationsRepository,
- private readonly LoggerService $loggerService, private readonly UsersOrganizationsRepository $usersOrganizationsRepository)
+ private readonly LoggerService $loggerService,
+ private readonly UsersOrganizationsRepository $usersOrganizationsRepository,
+ private readonly OrganizationNotifier $organizationNotifier)
{
}
@@ -111,6 +113,8 @@ class OrganizationController extends AbstractController
$this->entityManager->persist($organization);
$this->entityManager->flush();
+ //webhook notify
+ $this->organizationNotifier->notifyOrganizationCreated($organization);
// Loggers...
$this->loggerService->logOrganizationInformation($organization->getId(), $actingUser->getUserIdentifier(), "Organization Created via ajax");
diff --git a/src/EventListener/LogoutSubscriber.php b/src/EventListener/LogoutSubscriber.php
index c5b7051..da6a644 100644
--- a/src/EventListener/LogoutSubscriber.php
+++ b/src/EventListener/LogoutSubscriber.php
@@ -43,7 +43,7 @@ class LogoutSubscriber implements EventSubscriberInterface
$params['redirect_app'] = $redirectApp;
}
- $easycheckLogoutUrl = $this->easycheckUrl . '/logout?' . http_build_query($params);
+ $easycheckLogoutUrl = rtrim($this->easycheckUrl, '/'). '/logout?' . http_build_query($params);
$this->logger->info('Redirecting to EasyCheck logout', [
'url' => $easycheckLogoutUrl,
diff --git a/src/Webhook/OrganizationNotifier.php b/src/Webhook/OrganizationNotifier.php
new file mode 100644
index 0000000..d8b5ec3
--- /dev/null
+++ b/src/Webhook/OrganizationNotifier.php
@@ -0,0 +1,45 @@
+easycheckUrl, '/'). '/webhook/organization_created',
+ secret: $this->webhookSecret,
+ );
+
+ $event = new RemoteEvent(
+ name: 'organization_created',
+ id: uniqid('', true),
+ payload: [
+ 'orgId' => $organizations->getId(),
+ 'orgName' => $organizations->getName(),
+ 'orgEmail' => $organizations->getEmail(),
+ 'orgNumber' => $organizations->getNumber(),
+ 'orgAddress' => $organizations->getAddress(),
+ 'orgLogo' => $organizations->getLogoUrl(),
+ 'created_at' => time(),
+ ]
+ );
+
+ $this->messageBus->dispatch(
+ new SendWebhookMessage($subscriber, $event)
+ );
+ }
+}
\ No newline at end of file