split scripts

This commit is contained in:
DieMyst 2020-12-07 14:31:02 +03:00
parent 79ef5c9516
commit fe55eb869c
3 changed files with 58 additions and 15 deletions

View File

@ -3,15 +3,26 @@ module AirScripts.GetAll exposing (..)
import Air exposing (Air, callBI, fold, next, par, relayEvent, seq, set) import Air exposing (Air, callBI, fold, next, par, relayEvent, seq, set)
import Json.Encode exposing (list, string) import Json.Encode exposing (list, string)
askRelayScript : Air askRelaySchema : Air
askRelayScript = askRelaySchema =
(seq (seq
(callBI "relayId" ( "op", "identity" ) [] Nothing) (callBI "relayId" ( "op", "identity" ) [] Nothing)
(askAllAndSend "relayId") (askAllAndSend "relayId")
) )
askPeersScript : Air askRelayScript : String -> String -> Air
askPeersScript = askRelayScript peerId relayId =
let
clientIdSet =
set "clientId" <| string peerId
relayIdSet =
set "relayId" <| string relayId
in
clientIdSet <| relayIdSet <| askRelaySchema
askPeersSchema : Air
askPeersSchema =
(fold "knownPeers" "p" <| (fold "knownPeers" "p" <|
par par
(seq (seq
@ -21,8 +32,22 @@ askPeersScript =
(next "p") (next "p")
) )
findAndAskNeighbours : Air askPeersScript : String -> String -> List String -> Air
findAndAskNeighbours = askPeersScript peerId relayId peers =
let
clientIdSet =
set "clientId" <| string peerId
relayIdSet =
set "relayId" <| string relayId
peersSet =
set "knownPeers" <| list string peers
in
clientIdSet <| relayIdSet <| peersSet <| askPeersSchema
findAndAskNeighboursSchema : Air
findAndAskNeighboursSchema =
seq seq
(callBI "relayId" ( "op", "identity" ) [] Nothing) (callBI "relayId" ( "op", "identity" ) [] Nothing)
(seq (seq
@ -40,6 +65,17 @@ findAndAskNeighbours =
(next "n") (next "n")
)) ))
findAndAskNeighboursScript : String -> String ->Air
findAndAskNeighboursScript peerId relayId =
let
clientIdSet =
set "clientId" <| string peerId
relayIdSet =
set "relayId" <| string relayId
in
clientIdSet <| relayIdSet <| findAndAskNeighboursSchema
air : String -> String -> List String -> Air air : String -> String -> List String -> Air
air peerId relayId peers = air peerId relayId peers =
let let
@ -54,17 +90,17 @@ air peerId relayId peers =
askRelay = (\innerAir -> askRelay = (\innerAir ->
par par
askRelayScript askRelaySchema
innerAir innerAir
) )
askPeers = (\innerAir -> askPeers = (\innerAir ->
par par
askPeersScript askPeersSchema
innerAir innerAir
) )
in in
clientIdSet <| relayIdSet <| peersSet <| (askRelay <| askPeers <| findAndAskNeighbours) clientIdSet <| relayIdSet <| peersSet <| (askRelay <| askPeers <| findAndAskNeighboursSchema)
askAllAndSend : String -> Air askAllAndSend : String -> Air
askAllAndSend var = askAllAndSend var =

View File

@ -48,18 +48,25 @@ routeView model route =
Module moduleName -> Module moduleName ->
ModulePage.view model moduleName ModulePage.view model moduleName
getAllCmd : String -> String -> List String -> Cmd msg
getAllCmd peerId relayId knownPeers =
Cmd.batch
[ sendAir (GetAll.askRelayScript peerId relayId)
, sendAir (GetAll.askPeersScript peerId relayId knownPeers)
, sendAir (GetAll.findAndAskNeighboursScript peerId relayId)
]
routeCommand : Model -> Route -> Cmd msg routeCommand : Model -> Route -> Cmd msg
routeCommand m r = routeCommand m r =
case r of case r of
Page _ -> Page _ ->
sendAir (GetAll.air m.peerId m.relayId m.knownPeers) getAllCmd m.peerId m.relayId m.knownPeers
Peer _ -> Peer _ ->
sendAir (GetAll.air m.peerId m.relayId m.knownPeers) getAllCmd m.peerId m.relayId m.knownPeers
Blueprint _ -> Blueprint _ ->
sendAir (GetAll.air m.peerId m.relayId m.knownPeers) getAllCmd m.peerId m.relayId m.knownPeers
Module _ -> Module _ ->
sendAir (GetAll.air m.peerId m.relayId m.knownPeers) getAllCmd m.peerId m.relayId m.knownPeers

View File

@ -27,7 +27,7 @@ import Modules.Model exposing (Module)
import Msg exposing (..) import Msg exposing (..)
import Nodes.Model exposing (Identify) import Nodes.Model exposing (Identify)
import Port exposing (sendAir) import Port exposing (sendAir)
import Route import Route exposing (getAllCmd)
import Service.Model exposing (Service) import Service.Model exposing (Service)
import Url import Url
@ -74,7 +74,7 @@ update msg model =
|> List.filter (\( _, data ) -> List.isEmpty data.identify.external_addresses) |> List.filter (\( _, data ) -> List.isEmpty data.identify.external_addresses)
|> List.map Tuple.first |> List.map Tuple.first
in in
( { model | discoveredPeers = updatedDict }, sendAir (AirScripts.GetAll.air model.peerId model.relayId emptyPeers) ) ( { model | discoveredPeers = updatedDict }, getAllCmd model.peerId model.relayId [] )
"all_info" -> "all_info" ->
let let