def handle_resource("HandleMessage", _, _, data) do
Logger.info("Handling Message")
- {:ok, data, []}
+ {:ok, data, [{:next_event, :internal, :noop}]}
end
def handle_resource("Abort", _, _, data) do
{:ok, data, []}
end
+ def handle_resource(resource, _, state, data) do
+ Logger.info("No specific resource handler for #{resource} in state #{state}")
+ {:ok, data, []}
+ end
+
def handle_info({:set_session_id, id}, "Init", %SL{data: %Sess{} = sess} = data) do
{:ok, %SL{data | data: %Sess{sess | id: id}}, [{:next_event, :internal, :welcome}]}
end
"Next": "Established",
"Catch": [
{
- "ErrorEquals": [":abort"],
+ "ErrorEquals": [":abort", ":invalid_credentials"],
"Next": "Abort"
}
]
{
"StringEquals": ":good_bye",
"Next": "GoodBye"
+ },
+ {
+ "StringEquals": ":abort",
+ "Next": "Abort"
}
]
-
},
"HandleMessage": {
- "Type": "Task",
+ "Type": "Choice",
"Resource": "HandleMessage",
- "TransitionEvent": ":handled",
+ "Choices": [
+ {
+ "StringEquals": ":noop",
+ "Next": "Established"
+ },
+ {
+ "StringEquals": ":event",
+ "Next": "BroadcastEvent"
+ },
+ {
+ "StringEquals": ":yield",
+ "Next": "Yield"
+ },
+ {
+ "StringEquals": ":published",
+ "Next": "Published"
+ },
+ {
+ "StringEquals": ":unsubscribed",
+ "Next": "Unsubscribed"
+ },
+ {
+ "StringEquals": ":subscribed",
+ "Next": "Subscribed"
+ },
+ {
+ "StringEquals": ":result",
+ "Next": "Result"
+ },
+ {
+ "StringEquals": ":registered",
+ "Next": "Registered"
+ },
+ {
+ "StringEquals": ":unregistered",
+ "Next": "Unregistered"
+ },
+ {
+ "StringEquals": ":invocation",
+ "Next": "Invocation"
+ }
+ ]
+ },
+ "Yield": {
+ "Type": "Task",
+ "Resource": "YieldResult",
+ "TransitionEvent": ":yielded",
+ "Next": "Established"
+ },
+ "BroadcastEvent": {
+ "Type": "Task",
+ "Resource": "HandleBroadcast",
+ "Next": "Established"
+ },
+ "Subscribed": {
+ "Type": "Task",
+ "Resource": "HandleSubscribed",
+ "Next": "Established"
+ },
+ "Published": {
+ "Type": "Task",
+ "Resource": "HandlePublished",
+ "Next": "Established"
+ },
+ "Unsubscribed": {
+ "Type": "Task",
+ "Resource": "HandleUnsubscribed",
+ "Next": "Established"
+ },
+ "Subscribed": {
+ "Type": "Task",
+ "Resource": "HandleSubscribed",
+ "Next": "Established"
+ },
+ "Result": {
+ "Type": "Task",
+ "Resource": "HandleResult",
+ "Next": "Established"
+ },
+ "Registered": {
+ "Type": "Task",
+ "Resource": "HandleRegistered",
+ "Next": "Established"
+ },
+ "Unregistered": {
+ "Type": "Task",
+ "Resource": "HandleUnregistered",
+ "Next": "Established"
+ },
+ "Invocation": {
+ "Type": "Task",
+ "Resource": "HandleInvocation",
"Next": "Established"
},
"GoodBye": {