Current section
Files
Jump to
Current section
Files
lib/itemLookup.ex
defmodule Ampex.ItemLookup do
import SweetXml
alias Ampex.Utils
@base_url "http://webservices.amazon.com/onca/xml"
def find_product(asin) do
html = api_call(asin)
html.body |> xpath(~x"//ItemLookupResponse/Items/Item", title: ~x"./ItemAttributes/Title/text()", image: ~x"./LargeImage/URL/text()")
end
def api_call(asin) do
HTTPoison.start
html = HTTPoison.get! generate_query(asin)
end
def generate_query(asin) do
params_string = Ampex.Utils.combine_params(generate_params(asin))
signature = Ampex.Utils.sign_request(Enum.join(["GET", "webservices.amazon.com", "/onca/xml", params_string], "\n"))
full_url = @base_url <> "?" <> params_string <> "&Signature=" <> signature
end
def generate_params(asin) do
%{
"AssociateTag" => System.get_env("AWS_ASSOCIATE"),
"AWSAccessKeyId" => System.get_env("AWS_KEY"),
"Service" => "AWSECommerceService",
"Version" => "2013-08-01",
"Operation" => "ItemLookup",
"ItemId" => asin,
"ResponseGroup" => "Medium",
"Timestamp" => Ampex.Utils.generate_timestamp
}
end
end