canceraiddev / elm-aws-amplify / AWS.Amplify

Amplify component that handles refresh of expired cognito credentials.

Setup


type alias Config =
{ pinpointProjectId : String
, awsRegion : String
, clientInfo : ClientInfo
, cmds : { authConfigureFailed : AWS.Http.Error AWS.Http.AWSAppError -> Platform.Cmd.Cmd Msg
, analyticsConfigureFailed : AWS.Http.Error AWS.Http.AWSAppError -> Platform.Cmd.Cmd Msg
, recordFailed : AWS.Http.Error AWS.Http.AWSAppError -> Platform.Cmd.Cmd Msg
, fetchNewCredentialsFailed : AWS.Http.Error AWS.Http.AWSAppError -> Platform.Cmd.Cmd Msg } 
}

Static configuration settings


type alias Model =
{ seed : Random.Pcg.Extended.Seed
, sessionId : String
, sessionStartTime : Time.Posix
, authIdentity : RemoteData (AWS.Http.Error AWS.Http.AWSAppError) Auth.Identity
, analytics : RemoteData (AWS.Http.Error AWS.Http.AWSAppError) ()
, queue : Dict String AmplifyEvent 
}

Model datatype

init : { awsRegion : String, identityPoolId : String, time : Time.Posix, seed : Random.Pcg.Extended.Seed } -> ( Model, Platform.Cmd.Cmd Msg )

Initialise Model and fetch identity and credentials

Update

update : Config -> Msg -> Model -> ( Model, Platform.Cmd.Cmd Msg )

Update


type Msg

Opaque Msg datatype

Record Events

record : Event -> Platform.Cmd.Cmd Msg

Record event.

Events are stored in a queue if the identity, credentials, or analytics are loading.

recordWithHooks : Event -> EventHooks -> Platform.Cmd.Cmd Msg

Record event with hooks.

Used for running a command when a record request has finished successfully or failed.


type alias Event =
{ name : String
, attributes : Dict String String 
}

Event datatype


type alias EventHooks =
{ recorded : Platform.Cmd.Cmd Msg
, recordFailed : AWS.Http.Error AWS.Http.AWSAppError -> Platform.Cmd.Cmd Msg 
}

EventHooks datatype