use of org.finos.symphony.toolkit.json.EntityJson in project spring-bot by finos.
the class ElementsHandler method accept.
@SuppressWarnings("unchecked")
@Override
public void accept(V4Event t) {
try {
V4SymphonyElementsAction action = t.getPayload().getSymphonyElementsAction();
if (action != null) {
Map<String, Object> formValues = (Map<String, Object>) action.getFormValues();
String verb = (String) formValues.get("action");
String formId = action.getFormId();
Object currentForm;
if (hasFormData(formValues)) {
currentForm = formConverter.convert(formValues, formId);
} else {
currentForm = null;
}
EntityJson data = retrieveData(action.getFormMessageId());
Addressable rr = ruBuilder.loadRoomById(action.getStream().getStreamId());
User u = ruBuilder.loadUserById(t.getInitiator().getUser().getUserId());
// if we're not in a room, address the user directly.
rr = rr == null ? u : rr;
Errors e = ErrorHelp.createErrorHolder();
if (validated(currentForm, e)) {
FormAction ea = new FormAction(rr, u, currentForm, verb, data);
try {
Action.CURRENT_ACTION.set(ea);
for (ActionConsumer c : elementsConsumers) {
try {
c.accept(ea);
} catch (Exception ee) {
LOG.error("Failed to handle consumer " + c, ee);
}
}
} finally {
Action.CURRENT_ACTION.set(Action.NULL_ACTION);
}
} else {
WorkResponse fr = new WorkResponse(rr, currentForm, WorkMode.EDIT, ButtonList.of(new Button(verb, Button.Type.ACTION, "Retry")), convertErrorsToMap(e));
rh.accept(fr);
}
}
} catch (Exception e) {
LOG.error("Couldn't handle event " + t, e);
}
}
use of org.finos.symphony.toolkit.json.EntityJson 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.json.EntityJson in project spring-bot by finos.
the class SymphonyHistoryImpl method getEntityJsonFromHistory.
@Override
public List<EntityJson> getEntityJsonFromHistory(Tag t, Addressable address, Instant since) {
MessageSearchQuery msq = createMessageSearchQuery(null, address, since, t);
V4MessageList out = messageApi.v1MessageSearchPost(msq, null, null, 0, 50, null, null);
return out.stream().map(msg -> getEntityJson(msg)).filter(e -> e != null).collect(Collectors.toList());
}
use of org.finos.symphony.toolkit.json.EntityJson in project spring-bot by finos.
the class SymphonyHistoryImpl method getEntityJsonFromHistory.
@Override
public <X> List<EntityJson> getEntityJsonFromHistory(Class<X> type, Addressable address, Instant since) {
MessageSearchQuery msq = createMessageSearchQuery(type, address, since, null);
V4MessageList out = messageApi.v1MessageSearchPost(msq, null, null, 0, 50, null, null);
return out.stream().map(msg -> getEntityJson(msg)).filter(e -> e != null).collect(Collectors.toList());
}
use of org.finos.symphony.toolkit.json.EntityJson in project spring-bot by finos.
the class TestTableEdit method add.
protected void add(String testStem, Object toChange, Object newRow, String spel) throws Exception {
EntityJson ej = new EntityJson();
ej.put(WorkResponse.OBJECT_KEY, toChange);
FormAction ea = new FormAction(room, u, toChange, spel + TableAddRow.ACTION_SUFFIX, ej);
addRows.accept(ea);
// should get a new form back.
String jsonStr = testTemplating("abc123", testStem + "1.ml", testStem + "1.json");
EntityJson json = ejc.readValue(jsonStr);
ea = new FormAction(room, u, newRow, spel + TableAddRow.DO_SUFFIX, json);
Mockito.reset(messagesApi);
addRows.accept(ea);
testTemplating("abc123", testStem + "2.ml", testStem + "2.json");
}
Aggregations