github.com/simpleiot/simpleiot@v0.18.3/frontend/src/Api/Auth.elm (about) 1 module Api.Auth exposing 2 ( User 3 , decode 4 , encode 5 , login 6 ) 7 8 import Api.Data exposing (Data) 9 import Http 10 import Json.Decode as Decode 11 import Json.Decode.Pipeline exposing (required) 12 import Json.Encode as Encode 13 import Url.Builder 14 15 16 type alias User = 17 { token : String 18 , email : String 19 } 20 21 22 decode : Decode.Decoder User 23 decode = 24 Decode.succeed User 25 |> required "token" Decode.string 26 |> required "email" Decode.string 27 28 29 encode : User -> Encode.Value 30 encode user = 31 Encode.object 32 [ ( "token", Encode.string user.token ) 33 , ( "email", Encode.string user.email ) 34 ] 35 36 37 login : 38 { user : { user | email : String, password : String } 39 , onResponse : Data User -> msg 40 } 41 -> Cmd msg 42 login options = 43 Http.post 44 { body = 45 Http.multipartBody 46 [ Http.stringPart "email" options.user.email 47 , Http.stringPart "password" options.user.password 48 ] 49 , url = Url.Builder.absolute [ "v1", "auth" ] [] 50 , expect = Api.Data.expectJson options.onResponse decode 51 }