blob: d2062bf2658c9a8aacba3fee9d73cf7ef03acd32 (
plain) (
tree)
|
|
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
|