Add http for sending typing indicators.
This commit is contained in:
parent
6d39279591
commit
7f0624f112
|
@ -77,6 +77,7 @@ update msg model = case msg of
|
|||
SendRoomText r -> updateSendRoomText model r
|
||||
SendRoomTextResponse r -> (model, Cmd.none)
|
||||
ReceiveCompletedReadMarker r -> (model, Cmd.none)
|
||||
ReceiveCompletedTypingIndicator r -> (model, Cmd.none)
|
||||
ReceiveStoreData d -> updateStoreData model d
|
||||
|
||||
updateStoreData : Model -> Json.Encode.Value -> (Model, Cmd Msg)
|
||||
|
|
|
@ -5,7 +5,7 @@ import Scylla.Route exposing (RoomId)
|
|||
import Scylla.Sync exposing (syncResponseDecoder)
|
||||
import Scylla.Login exposing (loginResponseDecoder, Username, Password)
|
||||
import Scylla.UserData exposing (userDataDecoder, UserData)
|
||||
import Json.Encode exposing (object, string, int)
|
||||
import Json.Encode exposing (object, string, int, bool)
|
||||
import Http exposing (request, emptyBody, jsonBody, expectJson, expectWhatever)
|
||||
|
||||
fullClientUrl : ApiUrl -> ApiUrl
|
||||
|
@ -99,3 +99,14 @@ setReadMarkers apiUrl token roomId fullyRead readReceipt =
|
|||
, timeout = Nothing
|
||||
, tracker = Nothing
|
||||
}
|
||||
|
||||
sendTypingIndicator : ApiUrl -> ApiToken -> RoomId -> Username -> Bool -> Int -> Cmd Msg
|
||||
sendTypingIndicator apiUrl token room user isTyping timeout = request
|
||||
{ method = "PUT"
|
||||
, headers = authenticatedHeaders token
|
||||
, url = (fullClientUrl apiUrl) ++ "/rooms/" ++ room ++ "/typing/" ++ user
|
||||
, body = jsonBody <| object [ ("timeout", int timeout), ("typing", bool isTyping) ]
|
||||
, expect = expectWhatever ReceiveCompletedTypingIndicator
|
||||
, timeout = Nothing
|
||||
, tracker = Nothing
|
||||
}
|
||||
|
|
|
@ -47,6 +47,7 @@ type Msg =
|
|||
| ReceiveUserData Username (Result Http.Error UserData)
|
||||
| ReceiveCompletedReadMarker (Result Http.Error ())
|
||||
| ReceiveStoreData Json.Decode.Value
|
||||
| ReceiveCompletedTypingIndicator (Result Http.Error ()) -- HTTP, typing indicator request completed
|
||||
|
||||
displayName : Model -> Username -> String
|
||||
displayName m s = Maybe.withDefault (senderName s) <| Maybe.andThen .displayName <| Dict.get s m.userData
|
||||
|
|
Loading…
Reference in New Issue
Block a user