Search in sources :

Example 6 with FormAction

use of org.finos.symphony.toolkit.workflow.actions.FormAction in project spring-bot by finos.

the class TestTableEdit method editRow.

protected void editRow(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 + TableEditRow.EDIT_SUFFIX, ej);
    editRow.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 + TableEditRow.UPDATE_SUFFIX, json);
    Mockito.reset(messagesApi);
    editRow.accept(ea);
    testTemplating("abc123", testStem + "2.ml", testStem + "2.json");
}
Also used : EntityJson(org.finos.symphony.toolkit.json.EntityJson) FormAction(org.finos.symphony.toolkit.workflow.actions.FormAction)

Example 7 with FormAction

use of org.finos.symphony.toolkit.workflow.actions.FormAction in project spring-bot by finos.

the class EntityMapResolverFactory method createResolver.

@Override
public WorkflowResolver createResolver(ChatHandlerExecutor che) {
    return new WorkflowResolver() {

        @Override
        public Optional<Object> resolve(MethodParameter mp) {
            if (che.action() instanceof FormAction) {
                Class<?> t = mp.getParameterType();
                FormAction fa = (FormAction) che.action();
                Map<String, Object> entityMap = fa.getData();
                return entityMap.values().stream().filter(v -> v.getClass().isAssignableFrom(t)).findFirst();
            } else {
                return Optional.empty();
            }
        }

        @Override
        public boolean canResolve(MethodParameter mp) {
            return resolve(mp).isPresent();
        }
    };
}
Also used : Map(java.util.Map) FormAction(org.finos.symphony.toolkit.workflow.actions.FormAction) ChatHandlerExecutor(org.finos.symphony.toolkit.workflow.java.mapping.ChatHandlerExecutor) MethodParameter(org.springframework.core.MethodParameter) Optional(java.util.Optional) FormAction(org.finos.symphony.toolkit.workflow.actions.FormAction) MethodParameter(org.springframework.core.MethodParameter)

Aggregations

FormAction (org.finos.symphony.toolkit.workflow.actions.FormAction)7 EntityJson (org.finos.symphony.toolkit.json.EntityJson)5 Map (java.util.Map)3 Action (org.finos.symphony.toolkit.workflow.actions.Action)2 SimpleMessageAction (org.finos.symphony.toolkit.workflow.actions.SimpleMessageAction)2 User (org.finos.symphony.toolkit.workflow.content.User)2 V4SymphonyElementsAction (com.symphony.api.model.V4SymphonyElementsAction)1 HashMap (java.util.HashMap)1 Optional (java.util.Optional)1 ActionConsumer (org.finos.symphony.toolkit.workflow.actions.consumers.ActionConsumer)1 ChatRequest (org.finos.symphony.toolkit.workflow.annotations.ChatRequest)1 ChatVariable (org.finos.symphony.toolkit.workflow.annotations.ChatVariable)1 WorkMode (org.finos.symphony.toolkit.workflow.annotations.WorkMode)1 Addressable (org.finos.symphony.toolkit.workflow.content.Addressable)1 Chat (org.finos.symphony.toolkit.workflow.content.Chat)1 Message (org.finos.symphony.toolkit.workflow.content.Message)1 StartClaim (org.finos.symphony.toolkit.workflow.fixture.StartClaim)1 TestObject (org.finos.symphony.toolkit.workflow.fixture.TestObject)1 TestObjects (org.finos.symphony.toolkit.workflow.fixture.TestObjects)1 Button (org.finos.symphony.toolkit.workflow.form.Button)1