Packages

Synapse API client for Elixir.

Current section

Files

Jump to
ex_synapse lib ex_synapse transactions.ex
Raw

lib/ex_synapse/transactions.ex

defmodule ExSynapse.Transactions do
@moduledoc "Transaction resources are generic transaction classes that store basic information regarding a user's transaction."
alias ExSynapse.Utils
def get_all_user_transactions(user_id, opts \\ []) do
query_params = Keyword.take(opts, [:page, :per_page])
ExSynapse.request :get,
request_url(endpoint(user_id), query_params),
[],
opts
end
def get_all_node_transactions(user_id, node_id, opts \\ []) do
query_params = Keyword.take(opts, [:page, :per_page])
ExSynapse.request :get,
request_url(endpoint(user_id, node_id), query_params),
[],
opts
end
def create_transaction(user_id, node_id, data, opts \\ []) do
ExSynapse.request :post, endpoint(user_id, node_id), data, opts
end
def get_transaction(user_id, node_id, trans_id, opts \\ []) do
query_params = Keyword.take(opts, [:page, :per_page])
ExSynapse.request :get,
request_url(endpoint(user_id, node_id, trans_id),
query_params),
[],
opts
end
def comment_on_status(user_id, node_id, trans_id, data, opts \\ []) do
ExSynapse.request :post, endpoint(user_id, node_id, trans_id), data, opts
end
def delete_transaction(user_id, node_id, trans_id, opts \\ []) do
ExSynapse.request :delete, endpoint(user_id, node_id, trans_id), [], opts
end
defp endpoint(user_id) do
"/users/#{user_id}/trans"
end
defp endpoint(user_id, node_id) do
"/users/#{user_id}/nodes/#{node_id}/trans"
end
defp endpoint(user_id, node_id, trans_id) do
Path.join endpoint(user_id, node_id), trans_id
end
defp request_url(resource_url, []) do
resource_url
end
defp request_url(resource_url, query_params) do
"#{resource_url}?#{Utils.encode query_params}"
end
end