From d8aa521f6021ca0249e67e325ffcb4dfe502d99a Mon Sep 17 00:00:00 2001 From: DieMyst Date: Thu, 26 Nov 2020 15:14:12 +0300 Subject: [PATCH] refactor air scripts --- src/AirScripts/CallPeers.elm | 31 +++++++++++++++++++++++++++++++ src/Modules/Air.elm | 28 +++------------------------- src/Nodes/Air.elm | 9 +++++++++ src/Services/Air.elm | 28 +++------------------------- 4 files changed, 46 insertions(+), 50 deletions(-) create mode 100644 src/AirScripts/CallPeers.elm create mode 100644 src/Nodes/Air.elm diff --git a/src/AirScripts/CallPeers.elm b/src/AirScripts/CallPeers.elm new file mode 100644 index 0000000..31ec0b3 --- /dev/null +++ b/src/AirScripts/CallPeers.elm @@ -0,0 +1,31 @@ +module AirScripts.CallPeers exposing (..) + +import Air exposing (Air) +import Air exposing (Air, callBI, fold, next, par, relayEvent, seq, set) +import Json.Encode exposing (list, string) + +air : String -> String -> (String, String, String) -> List String -> Air +air peerId relayId (event, service, fnName) peers = + let + clientIdSet = + set "clientId" <| string peerId + + relayIdSet = + set "relayId" <| string relayId + + peersSet = + set "peers" <| list string peers + + airScript = + seq + (callBI "relayId" ( "op", "identity" ) [] Nothing) + (fold "peers" "p" <| + par + (seq + (callBI "p" ( service, fnName ) [] (Just "result")) + (relayEvent event [ "p", "result" ]) + ) + (next "p") + ) + in + clientIdSet <| relayIdSet <| peersSet <| airScript \ No newline at end of file diff --git a/src/Modules/Air.elm b/src/Modules/Air.elm index acc1cb7..66ef7da 100644 --- a/src/Modules/Air.elm +++ b/src/Modules/Air.elm @@ -1,31 +1,9 @@ module Modules.Air exposing (..) -import Air exposing (Air, callBI, fold, next, par, relayEvent, seq, set) -import Json.Encode exposing (list, string) +import Air exposing (Air) +import AirScripts.CallPeers air : String -> String -> List String -> Air air peerId relayId peers = - let - clientIdSet = - set "clientId" <| string peerId - - relayIdSet = - set "relayId" <| string relayId - - peersSet = - set "peers" <| list string peers - - airScript = - seq - (callBI "relayId" ( "op", "identity" ) [] Nothing) - (fold "peers" "p" <| - par - (seq - (callBI "p" ( "dist", "get_modules" ) [] (Just "modules")) - (relayEvent "modules_discovered" [ "p", "modules" ]) - ) - (next "p") - ) - in - clientIdSet <| relayIdSet <| peersSet <| airScript + AirScripts.CallPeers.air peerId relayId ("modules_discovered", "dist", "get_modules") peers diff --git a/src/Nodes/Air.elm b/src/Nodes/Air.elm new file mode 100644 index 0000000..e180b24 --- /dev/null +++ b/src/Nodes/Air.elm @@ -0,0 +1,9 @@ +module Nodes.Air exposing (..) + +import Air exposing (Air) +import AirScripts.CallPeers + + +air : String -> String -> List String -> Air +air peerId relayId peers = + AirScripts.CallPeers.air peerId relayId ("peer_identity", "op", "identify") peers \ No newline at end of file diff --git a/src/Services/Air.elm b/src/Services/Air.elm index 212c71c..9a536f7 100644 --- a/src/Services/Air.elm +++ b/src/Services/Air.elm @@ -1,31 +1,9 @@ module Services.Air exposing (..) -import Air exposing (Air, callBI, fold, next, par, relayEvent, seq, set) -import Json.Encode exposing (list, string) +import Air exposing (Air) +import AirScripts.CallPeers air : String -> String -> List String -> Air air peerId relayId peers = - let - clientIdSet = - set "clientId" <| string peerId - - relayIdSet = - set "relayId" <| string relayId - - peersSet = - set "peers" <| list string peers - - airScript = - seq - (callBI "relayId" ( "op", "identity" ) [] Nothing) - (fold "peers" "p" <| - par - (seq - (callBI "p" ( "srv", "get_interfaces" ) [] (Just "interfaces")) - (relayEvent "services_discovered" [ "p", "interfaces" ]) - ) - (next "p") - ) - in - clientIdSet <| relayIdSet <| peersSet <| airScript + AirScripts.CallPeers.air peerId relayId ("services_discovered", "srv", "get_interfaces") peers