blob: d2062bf2658c9a8aacba3fee9d73cf7ef03acd32 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
defmodule MatrixAppServiceWeb.V1.TransactionController do
@moduledoc """
Controller for transactions.
"""
use MatrixAppServiceWeb, :controller
alias MatrixAppService.Event
require Logger
@doc """
https://matrix.org/docs/spec/application_service/r0.1.2#put-matrix-app-v1-transactions-txnid
"""
def push(conn, %{"events" => events}) do
adapter =
conn.private[:transaction_adapter] ||
MatrixAppServiceWeb.Endpoint.config(:transaction_adapter) ||
raise "MatrixAppService: config key room_adapter missing"
# Enum.each(events, &create_event(&1, adapter))
Enum.each(events, fn event_params ->
with {:ok, event} <- Event.new(event_params) do
adapter.new_event(event)
else
error -> Logger.error(inspect(error))
end
end)
send_resp(conn, 200, "{}")
end
end
|