Packages
ex_aws
0.4.8
2.7.0
2.6.1
2.6.0
2.5.11
2.5.10
2.5.9
2.5.8
2.5.7
2.5.6
2.5.5
2.5.4
2.5.3
2.5.2
2.5.1
2.5.0
2.4.4
2.4.3
2.4.2
2.4.1
2.4.0
2.3.4
2.3.3
2.3.2
2.3.1
2.3.0
2.2.10
2.2.9
2.2.8
2.2.7
2.2.6
2.2.5
2.2.4
2.2.3
2.2.2
2.2.1
2.2.0
2.1.9
2.1.8
2.1.7
2.1.6
2.1.5
2.1.4
2.1.3
2.1.2
2.1.1
2.1.0
2.0.2
2.0.1
2.0.0
1.1.5
1.1.4
1.1.3
1.1.2
1.1.1
1.1.0
1.0.0
1.0.0-rc.4
1.0.0-rc.3
1.0.0-rc.1
1.0.0-beta3
1.0.0-beta2
1.0.0-beta1
1.0.0-beta0
0.5.0
0.4.19
0.4.18
0.4.17
0.4.15
0.4.14
0.4.13
0.4.11
0.4.10
0.4.9
0.4.8
0.4.7
0.4.6
0.4.5
0.4.4
0.4.3
0.4.2
0.4.1
0.4.0
0.3.1
0.3.0
0.2.0
0.1.2
0.1.1
0.1.0
0.0.5
0.0.4
0.0.3
AWS client for Elixir. Currently supports Dynamo, DynamoStreams, EC2, Firehose, Kinesis, KMS, Lambda, RRDS, Route53, S3, SES, SNS, SQS, STS and others.
Current section
Files
Jump to
Current section
Files
lib/ex_aws/dynamo/request.ex
defmodule ExAws.Dynamo.Request do
@moduledoc false
def request(client, action, data) do
{operation, http_method} = ExAws.Dynamo.Impl |> ExAws.Actions.get(action)
headers = [
{"x-amz-target", operation},
{"content-type", "application/x-amz-json-1.0"},
{"x-amz-content-sha256", ""}
]
ExAws.Request.request(http_method, client.config |> url, data, headers, client)
|> parse(client.config)
end
def parse({:error, result}, _), do: {:error, result}
def parse({:ok, %{body: body}}, config) do
{:ok, config[:json_codec].decode!(body)}
end
defp url(%{scheme: scheme, host: host, port: port}) do
[scheme, host, port |> port, "/"]
|> IO.iodata_to_binary
end
defp port(80), do: ""
defp port(p), do: ":#{p}"
end