You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

64 lines
1.1 KiB

module Model exposing (InitInfo, Model, initialModel)
import Browser.Navigation as Nav
import Http
import Navigation
import Url exposing (Url)
type alias Uuid =
String
type alias Model =
{ key : Nav.Key
, apiHost : String
, route : Navigation.Route
, httpError : Maybe Http.Error
, userUuid : Uuid
, session : Maybe String
}
type alias InitInfo =
{ navkey : Nav.Key
, route : Navigation.Route
, url : Url
, userUuid : String
}
initialModel : InitInfo -> Model
initialModel init =
Model
init.navkey
("//" ++ init.url.host ++ urlToPort init.url)
init.route
-- httpError
Maybe.Nothing
-- userUuid
init.userUuid
-- session
Maybe.Nothing
urlToPort : Url -> String
urlToPort url =
case url.port_ of
Just p ->
let
isDebug =
p == 8000
portToUse =
if isDebug then
8080
else
p
in
":" ++ String.fromInt portToUse
Nothing ->
""