Add exposed Event module

pull/1/head
Bram van den Heuvel 2023-03-24 14:14:15 +01:00
parent 098b38170a
commit e2ae6f582e
1 changed files with 87 additions and 0 deletions

87
src/Matrix/Event.elm Normal file
View File

@ -0,0 +1,87 @@
module Matrix.Event exposing
( Event, contentType, content, stateKey
, eventId, roomId, sender, originServerTs, redactedBecause
)
{-| This module allows you to read Matrix events.
# Event
@docs Event, contentType, content, stateKey
## Getting metadata
@docs eventId, roomId, sender, originServerTs, redactedBecause
-}
import Internal.Event as Internal
import Json.Encode as E
import Time
{-| The `Event` type relates to an event type in a room.
-}
type alias Event =
Internal.Event
{-| Get the content of an event as a JSON Value type.
-}
content : Event -> E.Value
content =
Internal.content
{-| Get the event's id.
-}
eventId : Event -> String
eventId =
Internal.eventId
{-| Timestamp of when this event was first received on the original homeserver.
-}
originServerTs : Event -> Time.Posix
originServerTs =
Internal.originServerTs
{-| Room ID of the room that the event is in.
-}
roomId : Event -> String
roomId =
Internal.roomId
{-| String representation of the user who sent the message in this room.
-}
sender : Event -> String
sender =
Internal.sender
{-| The optional statekey of the event.
Whether this contains a value also dictates whether it is a state event or a message event.
-}
stateKey : Event -> Maybe String
stateKey =
Internal.stateKey
{-| This is the type of the event's content. For example, `m.room.message` indicates that it was a message.
-}
contentType : Event -> String
contentType =
Internal.contentType
{-| In case the event was redacted, this event will point you to the event that redacted it.
-}
redactedBecause : Event -> Maybe Event
redactedBecause =
Internal.redactedBecause