Packages
ex_aws
2.1.0
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/operation/query.ex
defmodule ExAws.Operation.Query do
@moduledoc """
Datastructure representing an operation on a Query based AWS service
These include:
- SQS
- SNS
- SES
"""
defstruct path: "/",
params: %{},
service: nil,
action: nil,
parser: &ExAws.Utils.identity/2
@type t :: %__MODULE__{}
end
defimpl ExAws.Operation, for: ExAws.Operation.Query do
def perform(operation, config) do
data = operation.params |> URI.encode_query()
url =
operation
|> Map.delete(:params)
|> ExAws.Request.Url.build(config)
headers = [
{"content-type", "application/x-www-form-urlencoded"}
]
result = ExAws.Request.request(:post, url, data, headers, config, operation.service)
parser = operation.parser
cond do
is_function(parser, 2) ->
parser.(result, operation.action)
is_function(parser, 3) ->
parser.(result, operation.action, config)
true ->
result
end
end
def stream!(_, _), do: nil
end