Current section
Files
Jump to
Current section
Files
lib/faas_base/azure/request.ex
defmodule FaasBase.Azure.Request do
@moduledoc """
A request for Azure Functions.
## properties
- `:method` - Http method as an atom(`:get`, `:post`, etc.)
- `:url` - request url
- `:headers` - Http headers as map
- `:body` - Http body as string
- `:params` - Http params as map
- `:query` - Http query as map
- `:method_name` - Http query as string
"""
defstruct [
:method,
:url,
:headers,
:body,
:params,
:query,
:method_name
]
@doc """
create request from event
"""
def to_request(event) do
%{"Data" => %{"req" => request}, "Metadata" => metadata} = event
%__MODULE__{
method:
case request |> Map.get("Method") do
nil -> nil
method -> method |> String.downcase() |> String.to_atom()
end,
url: request |> Map.get("Url"),
headers: metadata |> Map.get("Headers"),
body: request |> Map.get("Body"),
params: request |> Map.get("Params"),
query: request |> Map.get("Query"),
method_name: metadata |> Map.get("sys", %{}) |> Map.get("MethodName")
}
end
end