defmodule <%= app %>.Infrastructure.Adapters.RestConsumer.<%= name %>.<%= name %>Adapter do alias <%= app %>.Config.ConfigHolder #alias <%= app %>.Domain.Model.<%= name %> #alias <%= app %>.Infrastructure.Adapters.RestConsumer.<%= name %>.Data.<%= name %>Request ## TODO: Update behaviour # @behaviour <%= app %>.Domain.Behaviours.<%= name %>Behaviour def get() do %{<%= name_snake %>_url: urlchanged} = ConfigHolder.conf() headers = [] <%= if metrics do %>headers = :otel_propagator_text_map.inject(headers)<% end %> with {:ok, %Finch.Response{body: body}} <- Finch.build(:get, urlchanged, headers) |> Finch.request(HttpFinch), {:ok, response} <- Poison.decode(body) do {:ok, response} end end def post(body) do %{<%= name_snake %>_url: url} = ConfigHolder.conf() headers = [{"Content-Type", "application/json"}] <%= if metrics do %>headers = :otel_propagator_text_map.inject(headers)<% end %> #body = struct(<%= name %>Request, body) with {:ok, request} <- Poison.encode(body), {:ok, %Finch.Response{body: body, status: _}} <- Finch.build(:post, url, headers, request) |> Finch.request(HttpFinch) do #Poison.decode(body, as: %<%= name %>{}) Poison.decode(body) end end end