22 lines
683 B
Elm
22 lines
683 B
Elm
module Scylla.AccountData exposing (..)
|
|
import Scylla.Sync exposing (SyncResponse, AccountData, JoinedRoom, roomAccountData)
|
|
import Json.Decode as Decode
|
|
import Json.Encode as Encode
|
|
import Dict exposing (Dict)
|
|
|
|
type alias DirectMessages = Dict String String
|
|
type alias DirectMessagesRaw = Dict String (List String)
|
|
|
|
directMessagesDecoder : Decode.Decoder DirectMessages
|
|
directMessagesDecoder =
|
|
Decode.dict (Decode.list Decode.string)
|
|
|> Decode.map (invertDirectMessages)
|
|
|
|
invertDirectMessages : DirectMessagesRaw -> DirectMessages
|
|
invertDirectMessages dmr =
|
|
Dict.foldl
|
|
(\k lv acc -> List.foldl (\v -> Dict.insert v k) acc lv)
|
|
Dict.empty
|
|
dmr
|
|
|