This is an automated email from the ASF dual-hosted git repository.

marat pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-karavan.git


The following commit(s) were added to refs/heads/main by this push:
     new afc93e5e Push notification
afc93e5e is described below

commit afc93e5e67db6004724bbcfc744cb8eedb350bde
Author: Marat Gubaidullin <ma...@talismancloud.io>
AuthorDate: Wed May 29 16:09:30 2024 -0400

    Push notification
---
 .../camel/karavan/manager/NotificationManager.java | 24 ++++++++++++++++------
 .../camel/karavan/project/ProjectService.java      |  3 +--
 2 files changed, 19 insertions(+), 8 deletions(-)

diff --git 
a/karavan-app/src/main/java/org/apache/camel/karavan/manager/NotificationManager.java
 
b/karavan-app/src/main/java/org/apache/camel/karavan/manager/NotificationManager.java
index 544515df..a4236dd9 100644
--- 
a/karavan-app/src/main/java/org/apache/camel/karavan/manager/NotificationManager.java
+++ 
b/karavan-app/src/main/java/org/apache/camel/karavan/manager/NotificationManager.java
@@ -16,14 +16,18 @@
  */
 package org.apache.camel.karavan.manager;
 
+import io.quarkus.vertx.ConsumeEvent;
 import io.vertx.core.eventbus.DeliveryOptions;
 import io.vertx.core.json.JsonObject;
 import io.vertx.mutiny.core.eventbus.EventBus;
 import jakarta.enterprise.context.ApplicationScoped;
 import jakarta.inject.Inject;
+import org.apache.camel.karavan.project.model.Project;
 
 import java.util.UUID;
 
+import static org.apache.camel.karavan.project.ProjectEvents.COMMIT_HAPPENED;
+
 @ApplicationScoped
 public class NotificationManager {
 
@@ -35,19 +39,27 @@ public class NotificationManager {
     @Inject
     EventBus eventBus;
 
+    @ConsumeEvent(value = COMMIT_HAPPENED, blocking = true, ordered = true)
+    public void onCommitHappened(JsonObject event) throws Exception {
+        JsonObject pj = event.getJsonObject("project");
+        Project p = pj.mapTo(Project.class);
+        String eventId = event.getString("eventId");
+        sendSystem(eventId, "commit", Project.class.getSimpleName(), 
JsonObject.mapFrom(p));
+    }
+
     public void send(String userId, String eventId, String evenName, String 
className, JsonObject data) {
         eventBus.publish(userId, data, new DeliveryOptions()
-                        .addHeader(NOTIFICATION_HEADER_EVENT_ID, eventId != 
null ? eventId : UUID.randomUUID().toString())
-                        .addHeader(NOTIFICATION_HEADER_EVENT_NAME, evenName)
-                        .addHeader(NOTIFICATION_HEADER_CLASS_NAME, className)
+                .addHeader(NOTIFICATION_HEADER_EVENT_ID, eventId != null ? 
eventId : UUID.randomUUID().toString())
+                .addHeader(NOTIFICATION_HEADER_EVENT_NAME, evenName)
+                .addHeader(NOTIFICATION_HEADER_CLASS_NAME, className)
         );
     }
 
     public void sendSystem(String eventId, String evenName, String className, 
JsonObject data) {
         eventBus.publish(NOTIFICATION_ADDRESS_SYSTEM, data, new 
DeliveryOptions()
-                        .addHeader(NOTIFICATION_HEADER_EVENT_ID, eventId != 
null ? eventId : UUID.randomUUID().toString())
-                        .addHeader(NOTIFICATION_HEADER_EVENT_NAME, evenName)
-                        .addHeader(NOTIFICATION_HEADER_CLASS_NAME, className)
+                .addHeader(NOTIFICATION_HEADER_EVENT_ID, eventId != null ? 
eventId : UUID.randomUUID().toString())
+                .addHeader(NOTIFICATION_HEADER_EVENT_NAME, evenName)
+                .addHeader(NOTIFICATION_HEADER_CLASS_NAME, className)
         );
     }
 }
\ No newline at end of file
diff --git 
a/karavan-projects/src/main/java/org/apache/camel/karavan/project/ProjectService.java
 
b/karavan-projects/src/main/java/org/apache/camel/karavan/project/ProjectService.java
index b40cd925..c9d27808 100644
--- 
a/karavan-projects/src/main/java/org/apache/camel/karavan/project/ProjectService.java
+++ 
b/karavan-projects/src/main/java/org/apache/camel/karavan/project/ProjectService.java
@@ -74,8 +74,7 @@ public class ProjectService {
         p.setLastCommitTimestamp(lastUpdate);
         projectsCache.saveProject(p);
         if (userId != null) {
-//            notificationService.sendSystem(eventId, COMMIT_HAPPENED, 
Project.class.getSimpleName(), JsonObject.mapFrom(p));
-            eventBus.publish(COMMIT_HAPPENED, JsonObject.mapFrom(p));
+            eventBus.publish(COMMIT_HAPPENED, JsonObject.of("eventId", 
eventId, "project", JsonObject.mapFrom(p)));
         }
     }
 

Reply via email to