use of org.finos.symphony.toolkit.workflow.java.Exposed in project spring-bot by finos.
the class WebHookOps method template.
@Exposed(description = "Change the template used by the last called webhook", addToHelp = true, isButton = true, isMessage = true)
public static Response template(SymphonyHistory hist, Addressable a, Workflow wf) {
Optional<EntityJson> ej = hist.getLastEntityJsonFromHistory(ActiveWebHooks.class, a);
if (ej.isEmpty()) {
return new ErrorResponse(wf, a, "No webhooks defined");
}
Optional<WebHook> activeHook = hist.getFromEntityJson(ej.get(), WebHook.class);
if (activeHook.isEmpty()) {
return new ErrorResponse(wf, a, "Active Hook not set");
}
Template t = activeHook.get().getTemplate();
ButtonList bl = new ButtonList();
bl.add(new Button(TEMPLATE_UPDATE, Type.ACTION, "Update Template"));
return new FormResponse(wf, a, ej.get(), "Template Edit", "Update the template used by " + activeHook.get().getDisplayName(), t, true, bl);
}
use of org.finos.symphony.toolkit.workflow.java.Exposed in project spring-bot by finos.
the class WebHookOps method newhook.
@Exposed(addToHelp = true, isButton = false, description = "Create a New Webhook receiver. e.g. <b>/newhook #somesubjecthashtag Your Hook Title</b>", isMessage = true)
public static ActiveWebHooks newhook(Workflow wf, HashTag ht, Message m, Helpers h, Room r, Addressable a, SymphonyRooms sr, SymphonyHistory hist, ResponseHandler rh) {
ActiveWebHooks webhooks = hist.getLastFromHistory(ActiveWebHooks.class, a).orElse(new ActiveWebHooks());
String display = m.without(Word.of("newhook")).without(Word.of("/newhook")).only(Word.class).stream().map(w -> w.getText() + " ").reduce("", String::concat).trim();
String hookId = h.createHookId(ht.getName(), display);
for (WebHook w : webhooks.getWebhooks()) {
if (w.getHashTag().equals(ht)) {
rh.accept(new ErrorResponse(wf, a, "A webhook with this tag already exists: " + ht.getId()));
return webhooks;
}
}
String streamId = r == null ? sr.getStreamFor(a) : sr.getStreamFor(r);
String url = h.createHookUrl(streamId, hookId);
WebHook out = new WebHook();
out.setDisplayName(display);
out.setHookId(new HashTagDef(hookId));
out.setHashTag(ht);
out.setUrl(url);
webhooks.getWebhooks().add(out);
return webhooks;
}
Aggregations