Add initial implementatin of client /sync endpoint without 'since'
parameter
This commit is contained in:
parent
5f0fd7fabe
commit
7a1bf01869
7 changed files with 121 additions and 12 deletions
|
@ -4,8 +4,8 @@ defmodule Architex.Event.Formatters do
|
|||
"""
|
||||
alias Architex.Event
|
||||
|
||||
@spec for_client(Event.t()) :: map()
|
||||
def for_client(%Event{
|
||||
@spec messages_response(Event.t()) :: map()
|
||||
def messages_response(%Event{
|
||||
content: content,
|
||||
type: type,
|
||||
id: event_id,
|
||||
|
@ -30,6 +30,27 @@ defmodule Architex.Event.Formatters do
|
|||
data
|
||||
end
|
||||
|
||||
def sync_response(%Event{
|
||||
content: content,
|
||||
type: type,
|
||||
id: event_id,
|
||||
sender: sender,
|
||||
origin_server_ts: origin_server_ts,
|
||||
unsigned: unsigned
|
||||
}) do
|
||||
data = %{
|
||||
content: content,
|
||||
type: type,
|
||||
event_id: event_id,
|
||||
sender: to_string(sender),
|
||||
origin_server_ts: origin_server_ts
|
||||
}
|
||||
|
||||
data = if unsigned, do: Map.put(data, :unsigned, unsigned), else: data
|
||||
|
||||
data
|
||||
end
|
||||
|
||||
@spec as_pdu(Event.t()) :: map()
|
||||
def as_pdu(%Event{
|
||||
auth_events: auth_events,
|
||||
|
|
|
@ -70,8 +70,6 @@ defmodule Architex.Room do
|
|||
|
||||
@spec get_messages(Room.t(), Messages.t()) :: {[Event.t()], integer() | nil, integer() | nil}
|
||||
def get_messages(room, %Messages{from: from, to: to, dir: dir, limit: limit}) do
|
||||
limit = limit || 10
|
||||
|
||||
events =
|
||||
room
|
||||
|> Ecto.assoc(:events)
|
||||
|
@ -90,6 +88,8 @@ defmodule Architex.Room do
|
|||
|
||||
# When 'from' is empty, we return events from the start or end
|
||||
# of the room's history.
|
||||
# TODO: Might actually not be needed, could be that Quaternion is passing
|
||||
# an empty string because the /sync call fails.
|
||||
@spec events_from(Ecto.Query.t(), String.t(), String.t()) :: Ecto.Query.t()
|
||||
defp events_from(query, "", _), do: query
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue