diff options
Diffstat (limited to 'lib/matrix_app_service_web/controllers/v1/transaction_controller.ex')
-rw-r--r-- | lib/matrix_app_service_web/controllers/v1/transaction_controller.ex | 87 |
1 files changed, 10 insertions, 77 deletions
diff --git a/lib/matrix_app_service_web/controllers/v1/transaction_controller.ex b/lib/matrix_app_service_web/controllers/v1/transaction_controller.ex index 4d45819..d2062bf 100644 --- a/lib/matrix_app_service_web/controllers/v1/transaction_controller.ex +++ b/lib/matrix_app_service_web/controllers/v1/transaction_controller.ex @@ -3,82 +3,8 @@ defmodule MatrixAppServiceWeb.V1.TransactionController do Controller for transactions. """ use MatrixAppServiceWeb, :controller - - # %{"access_token" => access_token, - # "events" => [ - # %{"age" => 199, - # "content" => %{ - # "body" => "test", - # "msgtype" => "m.room.message"}, - # "event_id" => "$pMDN7TcsCapjLRYoITwryk0anpQGs60y2Eng3lxropc", - # "origin_server_ts" => 1588950428966, - # "room_id" => "!SrVtqmyqzuaMnfVImP:matrix.imago.local", - # "sender" => "@alice:matrix.imago.local", - # "type" => "m.room.message", - # "unsigned" => %{"age" => 199}, - # "user_id" => "@alice:matrix.imago.local"}], - # "txn_id" => "269"} - - defp create_event( - %{ - "age" => age, - "content" => content, - "event_id" => event_id, - "origin_server_ts" => origin_server_ts, - "room_id" => room_id, - "sender" => sender, - "state_key" => state_key, - "type" => type, - "unsigned" => unsigned, - "user_id" => user_id - }, - adapter - ) do - event = %MatrixAppService.Event{ - age: age, - content: content, - event_id: event_id, - origin_server_ts: origin_server_ts, - room_id: room_id, - sender: sender, - state_key: state_key, - type: type, - unsigned: unsigned, - user_id: user_id - } - - adapter.new_event(event) - end - - defp create_event( - %{ - "age" => age, - "content" => content, - "event_id" => event_id, - "origin_server_ts" => origin_server_ts, - "room_id" => room_id, - "sender" => sender, - "type" => type, - "unsigned" => unsigned, - "user_id" => user_id - }, - adapter - ) do - event = %MatrixAppService.Event{ - age: age, - content: content, - event_id: event_id, - origin_server_ts: origin_server_ts, - room_id: room_id, - sender: sender, - state_key: nil, - type: type, - unsigned: unsigned, - user_id: user_id - } - - adapter.new_event(event) - end + alias MatrixAppService.Event + require Logger @doc """ https://matrix.org/docs/spec/application_service/r0.1.2#put-matrix-app-v1-transactions-txnid @@ -89,7 +15,14 @@ defmodule MatrixAppServiceWeb.V1.TransactionController do MatrixAppServiceWeb.Endpoint.config(:transaction_adapter) || raise "MatrixAppService: config key room_adapter missing" - Enum.each(events, &create_event(&1, adapter)) + # 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 |