Search in sources :

Example 1 with Exposed

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);
}
Also used : FormResponse(org.finos.symphony.toolkit.workflow.response.FormResponse) EntityJson(org.finos.symphony.toolkit.json.EntityJson) Button(org.finos.symphony.toolkit.workflow.form.Button) ButtonList(org.finos.symphony.toolkit.workflow.form.ButtonList) ErrorResponse(org.finos.symphony.toolkit.workflow.response.ErrorResponse) Exposed(org.finos.symphony.toolkit.workflow.java.Exposed)

Example 2 with Exposed

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;
}
Also used : HashTagDef(org.finos.symphony.toolkit.workflow.content.HashTagDef) ErrorResponse(org.finos.symphony.toolkit.workflow.response.ErrorResponse) Exposed(org.finos.symphony.toolkit.workflow.java.Exposed)

Aggregations

Exposed (org.finos.symphony.toolkit.workflow.java.Exposed)2 ErrorResponse (org.finos.symphony.toolkit.workflow.response.ErrorResponse)2 EntityJson (org.finos.symphony.toolkit.json.EntityJson)1 HashTagDef (org.finos.symphony.toolkit.workflow.content.HashTagDef)1 Button (org.finos.symphony.toolkit.workflow.form.Button)1 ButtonList (org.finos.symphony.toolkit.workflow.form.ButtonList)1 FormResponse (org.finos.symphony.toolkit.workflow.response.FormResponse)1