find peers by blueprint id

This commit is contained in:
DieMyst
2020-11-27 16:03:18 +03:00
parent 39cb18306e
commit 75b2a7b5fb
2 changed files with 15 additions and 4 deletions

View File

@@ -21,6 +21,7 @@
"elm/url": "1.0.0",
"elm-community/graph": "6.0.0",
"elm-community/intdict": "3.0.0",
"elm-community/list-extra": "8.2.4",
"ivadzy/bbase64": "1.1.1",
"lukewestby/elm-string-interpolate": "1.0.4",
"mpizenberg/elm-pointer-events": "4.0.2",

View File

@@ -25,14 +25,11 @@ import Json.Decode exposing (decodeValue, list, string)
import Json.Encode exposing (Value)
import List.Unique exposing (filterDuplicates)
import Maybe exposing (withDefault)
import Model exposing (Model, emptyPeerData)
import Modules.Air
import Model exposing (Model, PeerData, emptyPeerData)
import Msg exposing (..)
import Nodes.Air
import Nodes.Model exposing (Identify)
import Port exposing (sendAir)
import Route
import Services.Air
import Services.Model exposing (Service)
import Url
@@ -183,3 +180,16 @@ getAllModules model =
modulesUnique = filterDuplicates (flatten)
in
modulesUnique
peersByBlueprintId : Model -> String -> List String
peersByBlueprintId model blueprintId =
let
list = Dict.toList model.discoveredPeers
found = list |> List.filter (\(peer, pd) -> existsByBlueprintId blueprintId pd.blueprints) |> List.map (\(peer, _) -> peer)
in
found
existsByBlueprintId : String -> List Blueprint -> Bool
existsByBlueprintId id bps =
bps |> List.any (\b -> b.id == id)