Skip to content

Support possibility to create flow in a step by step manner #18

@dany52

Description

@dany52

instead of "tree style" like

 flow = FlowBuilder

            .from(SHOWING_WELCOME).transit(
                onCardPresent.to(WAITING_FOR_PIN).transit(
                    onPinProvided.to(CHECKING_PIN).transit(
                        onPinValid.to(SHOWING_MAIN_MENU).transit(
                            onMenuShowBalance.to(SHOWING_BALANCE).transit(
                                onCancel.to(SHOWING_MAIN_MENU)
                            ),
                            onMenuWithdrawCash.to(SHOWING_WITHDRAW_MENU).transit(
                                onCancel.to(SHOWING_MAIN_MENU),
                                onConfirm.to(SHOWING_TAKE_CASH).transit(
                                    onCashExtracted.to(SHOWING_MAIN_MENU)
                                )
                            ),
                            onMenuExit.to(RETURNING_CARD)
                        ),
                        onPinInvalid.to(SHOWING_PIN_INVALID).transit(
                            onTryAgain.to(WAITING_FOR_PIN),
                            onNoMoreTries.to(SHOWING_CARD_LOCKED).transit(
                                onConfirm.to(SHOWING_WELCOME)
                            ),
                            onCancel.to(RETURNING_CARD)
                        )
                    ),
                    onCancel.to(RETURNING_CARD).transit(
                        onCardExtracted.to(SHOWING_WELCOME)
                    )
                )
            )
                                  ...

something like

flow = FlowBuilder.register(SHOWING_WELCOME,
                onCardPresent.to(WAITING_FOR_PIN)
);

FlowBuilder.register(WAITING_FOR_PIN,
                onPinProvided.to(CHECKING_PIN),
                onCancel.to(RETURNING_CARD)
);
                      ...
FlowBuilder.register(SHOWING_PIN_INVALID,
                 onTryAgain.to(WAITING_FOR_PIN),
                 onNoMoreTries.to(SHOWING_CARD_LOCKED),
                 onCancel.to(RETURNING_CARD)
);
                      ...                                  ...

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions