diff --git a/libs/chat-workflow/src/main/java/org/finos/springbot/workflow/response/WorkResponse.java b/libs/chat-workflow/src/main/java/org/finos/springbot/workflow/response/WorkResponse.java index e12e9c7b..254583bc 100644 --- a/libs/chat-workflow/src/main/java/org/finos/springbot/workflow/response/WorkResponse.java +++ b/libs/chat-workflow/src/main/java/org/finos/springbot/workflow/response/WorkResponse.java @@ -24,6 +24,7 @@ public class WorkResponse extends DataResponse { public static final String DEFAULT_FORM_TEMPLATE_VIEW = "default-view"; public static final String ERRORS_KEY = "errors"; public static final String OBJECT_KEY = "form"; + public static final String SUMMARY_KEY = "summary-key"; private final WorkMode mode; private final Class formClass; @@ -45,6 +46,13 @@ public WorkResponse(Addressable to, Object o, WorkMode m) { this(to, o, m, null, null); } + /** + * Call this contructor to create a work response with summary + */ + public WorkResponse(Addressable to, Object o, WorkMode m, String summary) { + this(to, createEntityMapWithSummay(o, null, null, summary), getTemplateNameForObject(m, o), m, o.getClass()); + } + public static Map createEntityMap(Object o, ButtonList buttons, ErrorMap errors) { Map json = new HashMap<>(); json.put(ButtonList.KEY, buttons == null ? new ButtonList() : buttons); @@ -52,6 +60,13 @@ public static Map createEntityMap(Object o, ButtonList buttons, json.put(OBJECT_KEY, o); return json; } + + public static Map createEntityMapWithSummay(Object o, ButtonList buttons, ErrorMap errors, String summary) { + Map map = createEntityMap(o, buttons, errors); + map.put(SUMMARY_KEY, summary); + + return map; + } public static String getTemplateNameForObject(WorkMode m, Object o) { return getTemplateNameForClass(m, o.getClass()); diff --git a/libs/teams/teams-chat-workflow-spring-boot-starter/src/main/java/org/finos/springbot/teams/handlers/TeamsResponseHandler.java b/libs/teams/teams-chat-workflow-spring-boot-starter/src/main/java/org/finos/springbot/teams/handlers/TeamsResponseHandler.java index 79f54c07..af2d1cac 100644 --- a/libs/teams/teams-chat-workflow-spring-boot-starter/src/main/java/org/finos/springbot/teams/handlers/TeamsResponseHandler.java +++ b/libs/teams/teams-chat-workflow-spring-boot-starter/src/main/java/org/finos/springbot/teams/handlers/TeamsResponseHandler.java @@ -219,11 +219,14 @@ private BiFunction handle }; } - protected CompletableFuture sendCardResponse(JsonNode json, TeamsAddressable address, Map data) throws Exception { + protected CompletableFuture sendCardResponse(JsonNode json, TeamsAddressable address, Map data) throws Exception { Activity out = Activity.createMessageActivity(); Attachment body = new Attachment(); body.setContentType("application/vnd.microsoft.card.adaptive"); body.setContent(json); + if(data.containsKey(WorkResponse.SUMMARY_KEY)) { + out.setSummary(data.get(WorkResponse.SUMMARY_KEY).toString()); + } out.getAttachments().add(body); return ah.handleActivity(out, address); } diff --git a/libs/teams/teams-chat-workflow-spring-boot-starter/src/main/java/org/finos/springbot/teams/messages/MessageActivityHandler.java b/libs/teams/teams-chat-workflow-spring-boot-starter/src/main/java/org/finos/springbot/teams/messages/MessageActivityHandler.java index 45eb10bd..e1b197ce 100644 --- a/libs/teams/teams-chat-workflow-spring-boot-starter/src/main/java/org/finos/springbot/teams/messages/MessageActivityHandler.java +++ b/libs/teams/teams-chat-workflow-spring-boot-starter/src/main/java/org/finos/springbot/teams/messages/MessageActivityHandler.java @@ -61,7 +61,7 @@ public MessageActivityHandler( @Override protected CompletableFuture onMessageActivity(TurnContext turnContext) { return CompletableFuture.completedFuture(null) - .thenRun(() -> handleActivity(turnContext)); + .thenRun(() -> CompletableFuture.runAsync(() -> handleActivity(turnContext))); } protected void handleActivity(TurnContext turnContext) {