diff --git a/src/Config.elm b/src/Config.elm index 6a35ec7..8f51f39 100644 --- a/src/Config.elm +++ b/src/Config.elm @@ -1,8 +1,9 @@ module Config exposing (..) + type alias Config = - { peerId: String - , relayId: String + { peerId : String + , relayId : String } diff --git a/src/HubPage/Model.elm b/src/HubPage/Model.elm index eadc3e3..d1c4f50 100644 --- a/src/HubPage/Model.elm +++ b/src/HubPage/Model.elm @@ -1,5 +1,5 @@ module HubPage.Model exposing (..) + type alias Model = - { - } \ No newline at end of file + {} diff --git a/src/HubPage/Msg.elm b/src/HubPage/Msg.elm index 2d720c0..d39058b 100644 --- a/src/HubPage/Msg.elm +++ b/src/HubPage/Msg.elm @@ -1,3 +1,5 @@ module HubPage.Msg exposing (..) -type Msg = NoOp \ No newline at end of file + +type Msg + = NoOp diff --git a/src/HubPage/Update.elm b/src/HubPage/Update.elm index 8fb77df..90b0e28 100644 --- a/src/HubPage/Update.elm +++ b/src/HubPage/Update.elm @@ -1 +1 @@ -module HubPage.Update exposing (..) \ No newline at end of file +module HubPage.Update exposing (..) diff --git a/src/HubPage/View.elm b/src/HubPage/View.elm index 5d02681..f1a1bf6 100644 --- a/src/HubPage/View.elm +++ b/src/HubPage/View.elm @@ -8,6 +8,7 @@ import Modules.View import Services.Model exposing (ServiceInfo) import Services.View + servicesExample : List ServiceInfo servicesExample = [ { name = "SQLite", author = "Company Inc", instanceNumber = 2 } @@ -16,6 +17,7 @@ servicesExample = , { name = "Imagemagick", author = "Magic Corp", instanceNumber = 0 } ] + modulesExample : List ModuleInfo modulesExample = [ { name = "sqlite3", instanceNumber = 2 } @@ -26,8 +28,10 @@ modulesExample = , { name = "basic_auth", instanceNumber = 0 } ] + view : Model -> Html msg -view model = Html.div [] - [ Services.View.view {services = servicesExample} - , Modules.View.view {modules = modulesExample } - ] \ No newline at end of file +view model = + Html.div [] + [ Services.View.view { services = servicesExample } + , Modules.View.view { modules = modulesExample } + ] diff --git a/src/Instances/Model.elm b/src/Instances/Model.elm index de56bb5..dfdad73 100644 --- a/src/Instances/Model.elm +++ b/src/Instances/Model.elm @@ -1,10 +1,9 @@ module Instances.Model exposing (..) -type alias Instance = - { - } +type alias Instance = + {} + type alias Model = - { - } \ No newline at end of file + {} diff --git a/src/Instances/Msg.elm b/src/Instances/Msg.elm index b95517a..c898635 100644 --- a/src/Instances/Msg.elm +++ b/src/Instances/Msg.elm @@ -1,3 +1,5 @@ module Instances.Msg exposing (..) -type Msg = NoOp \ No newline at end of file + +type Msg + = NoOp diff --git a/src/Instances/Update.elm b/src/Instances/Update.elm index 3e01102..50e09d2 100644 --- a/src/Instances/Update.elm +++ b/src/Instances/Update.elm @@ -1 +1 @@ -module Instances.Update exposing (..) \ No newline at end of file +module Instances.Update exposing (..) diff --git a/src/Instances/View.elm b/src/Instances/View.elm index 3578704..8ca8869 100644 --- a/src/Instances/View.elm +++ b/src/Instances/View.elm @@ -1 +1 @@ -module Instances.View exposing (..) \ No newline at end of file +module Instances.View exposing (..) diff --git a/src/Model.elm b/src/Model.elm index 879de55..bbd4fe6 100644 --- a/src/Model.elm +++ b/src/Model.elm @@ -29,7 +29,9 @@ type Route type alias PeerData = { services : List Service - , modules: List String } + , modules : List String + } + emptyPeerData : PeerData emptyPeerData = diff --git a/src/ModulePage/Model.elm b/src/ModulePage/Model.elm index b671b1c..115a629 100644 --- a/src/ModulePage/Model.elm +++ b/src/ModulePage/Model.elm @@ -1 +1 @@ -module ModulePage.Model exposing (..) \ No newline at end of file +module ModulePage.Model exposing (..) diff --git a/src/ModulePage/Msg.elm b/src/ModulePage/Msg.elm index 214a076..3dd25f5 100644 --- a/src/ModulePage/Msg.elm +++ b/src/ModulePage/Msg.elm @@ -1 +1 @@ -module ModulePage.Msg exposing (..) \ No newline at end of file +module ModulePage.Msg exposing (..) diff --git a/src/ModulePage/Update.elm b/src/ModulePage/Update.elm index c7efc61..b9a6bde 100644 --- a/src/ModulePage/Update.elm +++ b/src/ModulePage/Update.elm @@ -1 +1 @@ -module ModulePage.Update exposing (..) \ No newline at end of file +module ModulePage.Update exposing (..) diff --git a/src/ModulePage/View.elm b/src/ModulePage/View.elm index ab4fdf5..79f2bb0 100644 --- a/src/ModulePage/View.elm +++ b/src/ModulePage/View.elm @@ -1 +1 @@ -module ModulePage.View exposing (..) \ No newline at end of file +module ModulePage.View exposing (..) diff --git a/src/Modules/Air.elm b/src/Modules/Air.elm index 08ba9e9..acc1cb7 100644 --- a/src/Modules/Air.elm +++ b/src/Modules/Air.elm @@ -3,6 +3,7 @@ module Modules.Air exposing (..) import Air exposing (Air, callBI, fold, next, par, relayEvent, seq, set) import Json.Encode exposing (list, string) + air : String -> String -> List String -> Air air peerId relayId peers = let @@ -17,15 +18,14 @@ air peerId relayId peers = airScript = seq - (callBI "relayId" ( "op", "identity" ) [ ] Nothing) + (callBI "relayId" ( "op", "identity" ) [] Nothing) (fold "peers" "p" <| par (seq - (callBI "p" ( "dist", "get_modules" ) [ ] (Just "modules")) + (callBI "p" ( "dist", "get_modules" ) [] (Just "modules")) (relayEvent "modules_discovered" [ "p", "modules" ]) ) (next "p") ) in - clientIdSet <| relayIdSet <| peersSet <| airScript - + clientIdSet <| relayIdSet <| peersSet <| airScript diff --git a/src/Modules/Model.elm b/src/Modules/Model.elm index f427f8d..e4c79ee 100644 --- a/src/Modules/Model.elm +++ b/src/Modules/Model.elm @@ -1,10 +1,12 @@ module Modules.Model exposing (..) + type alias ModuleInfo = - { name: String - , instanceNumber: Int + { name : String + , instanceNumber : Int } + type alias Model = { modules : List ModuleInfo - } \ No newline at end of file + } diff --git a/src/Modules/Msg.elm b/src/Modules/Msg.elm index 619e210..ebb92cd 100644 --- a/src/Modules/Msg.elm +++ b/src/Modules/Msg.elm @@ -1 +1 @@ -module Modules.Msg exposing (..) \ No newline at end of file +module Modules.Msg exposing (..) diff --git a/src/Modules/Update.elm b/src/Modules/Update.elm index 3d01d65..4a097fd 100644 --- a/src/Modules/Update.elm +++ b/src/Modules/Update.elm @@ -1 +1 @@ -module Modules.Update exposing (..) \ No newline at end of file +module Modules.Update exposing (..) diff --git a/src/Modules/View.elm b/src/Modules/View.elm index 588e859..c696404 100644 --- a/src/Modules/View.elm +++ b/src/Modules/View.elm @@ -4,17 +4,21 @@ import Html exposing (Html) import Modules.Model exposing (Model, ModuleInfo) import Palette exposing (classes) import Utils.Utils exposing (instancesText) + + view : Model -> Html msg view model = let - modulesView = List.map viewService model.modules + modulesView = + List.map viewService model.modules in - Html.div [classes "cf ph2-ns"] modulesView + Html.div [ classes "cf ph2-ns" ] modulesView + viewService : ModuleInfo -> Html msg viewService service = - Html.div [classes "fl w-third-ns pa2"] - [ Html.div [classes "fl w-100 br2 ba solid pa2 mh2"] - [ Html.p [classes "tl di"] [Html.span [classes "b pl2"] [Html.text service.name], Html.span [classes "di fr pr2"] [instancesText service.instanceNumber]] - ] - ] \ No newline at end of file + Html.div [ classes "fl w-third-ns pa2" ] + [ Html.div [ classes "fl w-100 br2 ba solid pa2 mh2" ] + [ Html.p [ classes "tl di" ] [ Html.span [ classes "b pl2" ] [ Html.text service.name ], Html.span [ classes "di fr pr2" ] [ instancesText service.instanceNumber ] ] + ] + ] diff --git a/src/Palette.elm b/src/Palette.elm index 1a835e6..9cba777 100644 --- a/src/Palette.elm +++ b/src/Palette.elm @@ -19,11 +19,13 @@ limitations under the License. import Html exposing (Html) import Html.Attributes exposing (classList) -classes: String -> Html.Attribute msg + +classes : String -> Html.Attribute msg classes cls = classList <| - List.map (\s -> (s, True)) <| - String.split " " cls + List.map (\s -> ( s, True )) <| + String.split " " cls + shortHashRaw size hash = String.concat diff --git a/src/Route.elm b/src/Route.elm index c117f3f..2e70887 100644 --- a/src/Route.elm +++ b/src/Route.elm @@ -20,6 +20,7 @@ routeParser = parse url = Maybe.withDefault (Page "") <| Url.Parser.parse routeParser url + routeView : Route -> Html msg routeView route = case route of @@ -27,19 +28,22 @@ routeView route = case page of "hub" -> HubPage.view {} + _ -> Html.text ("undefined page: " ++ page) - Peer peer -> Html.text peer + routeCommand : Model -> Route -> Cmd msg routeCommand m r = case r of Page s -> let - _ = Debug.log "page" s + _ = + Debug.log "page" s + clientId = set "clientId" <| Encode.string m.peerId diff --git a/src/ServicePage/Model.elm b/src/ServicePage/Model.elm index 9f543f1..2b7bdfd 100644 --- a/src/ServicePage/Model.elm +++ b/src/ServicePage/Model.elm @@ -1 +1 @@ -module ServicePage.Model exposing (..) \ No newline at end of file +module ServicePage.Model exposing (..) diff --git a/src/ServicePage/Msg.elm b/src/ServicePage/Msg.elm index 35ed775..a7d8e2b 100644 --- a/src/ServicePage/Msg.elm +++ b/src/ServicePage/Msg.elm @@ -1 +1 @@ -module ServicePage.Msg exposing (..) \ No newline at end of file +module ServicePage.Msg exposing (..) diff --git a/src/ServicePage/Update.elm b/src/ServicePage/Update.elm index 1f1048c..32801c5 100644 --- a/src/ServicePage/Update.elm +++ b/src/ServicePage/Update.elm @@ -1 +1 @@ -module ServicePage.Update exposing (..) \ No newline at end of file +module ServicePage.Update exposing (..) diff --git a/src/ServicePage/View.elm b/src/ServicePage/View.elm index 33bf747..b38f39b 100644 --- a/src/ServicePage/View.elm +++ b/src/ServicePage/View.elm @@ -1 +1 @@ -module ServicePage.View exposing (..) \ No newline at end of file +module ServicePage.View exposing (..) diff --git a/src/Services/Air.elm b/src/Services/Air.elm index 4258f64..212c71c 100644 --- a/src/Services/Air.elm +++ b/src/Services/Air.elm @@ -3,6 +3,7 @@ module Services.Air exposing (..) import Air exposing (Air, callBI, fold, next, par, relayEvent, seq, set) import Json.Encode exposing (list, string) + air : String -> String -> List String -> Air air peerId relayId peers = let @@ -17,15 +18,14 @@ air peerId relayId peers = airScript = seq - (callBI "relayId" ( "op", "identity" ) [ ] Nothing) + (callBI "relayId" ( "op", "identity" ) [] Nothing) (fold "peers" "p" <| par (seq - (callBI "p" ( "srv", "get_interfaces" ) [ ] (Just "interfaces")) + (callBI "p" ( "srv", "get_interfaces" ) [] (Just "interfaces")) (relayEvent "services_discovered" [ "p", "interfaces" ]) ) (next "p") ) in - clientIdSet <| relayIdSet <| peersSet <| airScript - + clientIdSet <| relayIdSet <| peersSet <| airScript diff --git a/src/Services/Model.elm b/src/Services/Model.elm index 104ca10..480013b 100644 --- a/src/Services/Model.elm +++ b/src/Services/Model.elm @@ -1,34 +1,40 @@ module Services.Model exposing (..) + type alias Signature = - { arguments: List (List String) - , name: String - , output_types: List String + { arguments : List (List String) + , name : String + , output_types : List String } + type alias Record = - { fields: List (List String) - , id: Int - , name: String + { fields : List (List String) + , id : Int + , name : String } + type alias Interface = - { function_signatures: List Signature - , record_types: List Record + { function_signatures : List Signature + , record_types : List Record } + type alias Service = - { service_id: String - , blueprint_id: String - , interface: Interface + { service_id : String + , blueprint_id : String + , interface : Interface } + type alias ServiceInfo = - { name: String, - author: String, - instanceNumber: Int + { name : String + , author : String + , instanceNumber : Int } + type alias Model = { services : List ServiceInfo - } \ No newline at end of file + } diff --git a/src/Services/Msg.elm b/src/Services/Msg.elm index 9f7fb93..ff7af3b 100644 --- a/src/Services/Msg.elm +++ b/src/Services/Msg.elm @@ -1 +1 @@ -module Services.Msg exposing (..) \ No newline at end of file +module Services.Msg exposing (..) diff --git a/src/Services/Update.elm b/src/Services/Update.elm index 48cc8c5..a2e4d70 100644 --- a/src/Services/Update.elm +++ b/src/Services/Update.elm @@ -1 +1 @@ -module Services.Update exposing (..) \ No newline at end of file +module Services.Update exposing (..) diff --git a/src/Services/View.elm b/src/Services/View.elm index 4698ee4..cfb89ab 100644 --- a/src/Services/View.elm +++ b/src/Services/View.elm @@ -5,18 +5,22 @@ import Palette exposing (classes) import Services.Model exposing (Model, ServiceInfo) import Utils.Utils exposing (instancesText) + view : Model -> Html msg view model = let - servicesView = List.map viewService model.services + servicesView = + List.map viewService model.services in - Html.div [classes "cf ph2-ns"] servicesView + Html.div [ classes "cf ph2-ns" ] servicesView + viewService : ServiceInfo -> Html msg viewService service = - Html.div [classes "fl w-third-ns pa2"] - [ Html.div [classes "fl w-100 br2 ba solid ma2 pa3"] - [ Html.div [classes "w-100 mb2 b"] [Html.text service.name] - , Html.div [classes "w-100 mb4"] [Html.text ("By " ++ service.author)] - , Html.div [classes "w-100"] [instancesText service.instanceNumber]] - ] \ No newline at end of file + Html.div [ classes "fl w-third-ns pa2" ] + [ Html.div [ classes "fl w-100 br2 ba solid ma2 pa3" ] + [ Html.div [ classes "w-100 mb2 b" ] [ Html.text service.name ] + , Html.div [ classes "w-100 mb4" ] [ Html.text ("By " ++ service.author) ] + , Html.div [ classes "w-100" ] [ instancesText service.instanceNumber ] + ] + ] diff --git a/src/Update.elm b/src/Update.elm index 98fe657..b39d954 100644 --- a/src/Update.elm +++ b/src/Update.elm @@ -29,11 +29,12 @@ import Route import Services.Air import Url + maybeValueToString : Maybe Value -> String maybeValueToString mv = case mv of Just v -> - case (decodeValue string v) of + case decodeValue string v of Ok value -> value @@ -43,31 +44,39 @@ maybeValueToString mv = Nothing -> "" + + -- list of lists of strings in json to list of strings from first element if it is an array + + maybeValueToListString : Maybe Value -> List String maybeValueToListString mv = case mv of Just v -> - case (decodeValue (list (list string)) v) of + case decodeValue (list (list string)) v of Ok value -> Maybe.withDefault [] (List.head value) Err error -> let - _ = Debug.log "error" error + _ = + Debug.log "error" error in - case (decodeValue (list string) v) of - Ok value -> - value - Err err -> - let - _ = Debug.log "err" err - in - ["error"] + case decodeValue (list string) v of + Ok value -> + value + + Err err -> + let + _ = + Debug.log "err" err + in + [ "error" ] Nothing -> [] + update : Msg -> Model -> ( Model, Cmd Msg ) update msg model = case msg of @@ -95,37 +104,60 @@ update msg model = AquamarineEvent { name, peer, peers, services, modules } -> case name of "peers_discovered" -> - -- TODO call different function to parse args and change model let - peersMap = List.map (\p -> Tuple.pair p emptyPeerData) (withDefault [] peers) - newDict = Dict.fromList (peersMap) - updatedDict = Dict.union model.discoveredPeers newDict + peersMap = + List.map (\p -> Tuple.pair p emptyPeerData) (withDefault [] peers) + + newDict = + Dict.fromList peersMap + + updatedDict = + Dict.union model.discoveredPeers newDict in - -- TODO get data from args, propagate ( { model | discoveredPeers = updatedDict }, Cmd.none ) "services_discovered" -> let - newServices = Maybe.withDefault [] services - empty = emptyPeerData - up = (\old -> Just (Maybe.withDefault {empty | services = newServices} (Maybe.map (\o -> {o | services = newServices}) old))) - updatedDict = Dict.update peer up model.discoveredPeers - _ = Debug.log "discovered" updatedDict + newServices = + Maybe.withDefault [] services + + empty = + emptyPeerData + + up = + \old -> Just (Maybe.withDefault { empty | services = newServices } (Maybe.map (\o -> { o | services = newServices }) old)) + + updatedDict = + Dict.update peer up model.discoveredPeers + + _ = + Debug.log "discovered" updatedDict in - ( { model | discoveredPeers = updatedDict }, Cmd.none ) + ( { model | discoveredPeers = updatedDict }, Cmd.none ) + "modules_discovered" -> let - newModules = Maybe.withDefault [] modules - empty = emptyPeerData - up = (\old -> Just (Maybe.withDefault {empty | modules = newModules} (Maybe.map (\o -> {o | modules = newModules}) old))) - updatedDict = Dict.update peer up model.discoveredPeers - _ = Debug.log "discovered" updatedDict + newModules = + Maybe.withDefault [] modules + + empty = + emptyPeerData + + up = + \old -> Just (Maybe.withDefault { empty | modules = newModules } (Maybe.map (\o -> { o | modules = newModules }) old)) + + updatedDict = + Dict.update peer up model.discoveredPeers + + _ = + Debug.log "discovered" updatedDict in - ( { model | discoveredPeers = updatedDict }, Cmd.none ) + ( { model | discoveredPeers = updatedDict }, Cmd.none ) _ -> let - _ = Debug.log "event in ELM" name + _ = + Debug.log "event in ELM" name in ( model, Cmd.none ) diff --git a/src/Utils/Utils.elm b/src/Utils/Utils.elm index d082413..8d42fca 100644 --- a/src/Utils/Utils.elm +++ b/src/Utils/Utils.elm @@ -2,12 +2,15 @@ module Utils.Utils exposing (..) import Html exposing (Html) + instancesText : Int -> Html msg instancesText num = let - strNum = String.fromInt num + strNum = + String.fromInt num in - if num == 1 then - Html.text (strNum ++ " instance") - else - Html.text (strNum ++ " instances") + if num == 1 then + Html.text (strNum ++ " instance") + + else + Html.text (strNum ++ " instances") diff --git a/src/View.elm b/src/View.elm index f57bca4..27146a4 100644 --- a/src/View.elm +++ b/src/View.elm @@ -39,24 +39,27 @@ title _ = body : Model -> Html Msg body model = let - a = 1 - url = model.url - newUrl = { url | path = "/hub"} + a = + 1 + + url = + model.url + + newUrl = + { url | path = "/hub" } in - layout <| - List.concat - [ - [ header [ classes "w-100 bt bb b--black-10" ] [ routeView (Page "hub") ] ] ++ - [ header [ classes "w-100 bt bb b--black-10", onClick Click ] [ text "GET SERVICES" ] ] - ] + layout <| + List.concat + [ [ header [ classes "w-100 bt bb b--black-10" ] [ routeView (Page "hub") ] ] + ++ [ header [ classes "w-100 bt bb b--black-10", onClick Click ] [ text "GET SERVICES" ] ] + ] layout : List (Html Msg) -> Html Msg layout elms = div [ classes "mw9 center w-70" ] [ div [ classes "fl w-100 pa2" ] - ([ - ] + ([] ++ elms ) ]