From 80920eeaea6329ba23a772e5ea3f6bbfbdbf5894 Mon Sep 17 00:00:00 2001 From: Yinghai Zhao Date: Sun, 15 Jan 2017 00:07:14 -0500 Subject: [PATCH 1/3] Add ItemLookup API. --- .../item_lookup.ex | 15 +++++++++++++++ mix.exs | 4 ++-- 2 files changed, 17 insertions(+), 2 deletions(-) create mode 100644 lib/amazon_product_advertising_client/item_lookup.ex diff --git a/lib/amazon_product_advertising_client/item_lookup.ex b/lib/amazon_product_advertising_client/item_lookup.ex new file mode 100644 index 0000000..517a175 --- /dev/null +++ b/lib/amazon_product_advertising_client/item_lookup.ex @@ -0,0 +1,15 @@ +defmodule AmazonProductAdvertisingClient.ItemLookup do + @moduledoc false + + alias __MODULE__ + alias AmazonProductAdvertisingClient.Config + defstruct "Availability": "Available", + "ItemId": nil, + "Operation": "ItemLookup", + "ResponseGroup": "ItemAttributes,Images", + "idType": "ASIN" + + def execute(search_params \\ %ItemLookup{}, config \\ %Config{}) do + AmazonProductAdvertisingClient.call_api search_params, config + end +end diff --git a/mix.exs b/mix.exs index 3ffc660..9a64d7d 100644 --- a/mix.exs +++ b/mix.exs @@ -6,8 +6,8 @@ defmodule AmazonProductAdvertisingClient.Mixfile do version: "0.1.3", elixir: "~> 1.3", description: "An Amazon Product Advertising API client for Elixir", - package: package, - deps: deps] + package: package(), + deps: deps()] end def application do From 456fa5fef79c8adf9c5be10475233be7054b3d88 Mon Sep 17 00:00:00 2001 From: Yinghai Zhao Date: Sun, 15 Jan 2017 12:27:58 -0500 Subject: [PATCH 2/3] Add ability to configure marketplace host. --- lib/amazon_product_advertising_client.ex | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/amazon_product_advertising_client.ex b/lib/amazon_product_advertising_client.ex index fbefbcc..9697e3d 100644 --- a/lib/amazon_product_advertising_client.ex +++ b/lib/amazon_product_advertising_client.ex @@ -7,7 +7,8 @@ defmodule AmazonProductAdvertisingClient do alias AmazonProductAdvertisingClient.Config @scheme "http" - @host "webservices.amazon.com" + @host Application.get_env(:amazon_product_advertising_client, :marketplace_host) || + "webservices.amazon.com" @path "/onca/xml" def call_api(request_params, config \\ %Config{}) do From 081679b56b0785ab9e80412e217f462974e6d739 Mon Sep 17 00:00:00 2001 From: Yinghai Zhao Date: Tue, 17 Jan 2017 22:03:56 -0500 Subject: [PATCH 3/3] Update API parameters and README. --- README.md | 5 +++-- lib/amazon_product_advertising_client.ex | 3 +-- lib/amazon_product_advertising_client/item_lookup.ex | 11 +++++++++-- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 5dd6b22..8042d81 100644 --- a/README.md +++ b/README.md @@ -5,9 +5,10 @@ Amazon Product Advertising Client # Configure Add your AWS authentication credentials to `config/config.exs`: -``` +```elixir config :amazon_product_advertising_client, associate_tag: "YourAssociateTag", aws_access_key_id: "YourAccessKeyID", - aws_secret_access_key: "YourSecretAccessKey" + aws_secret_access_key: "YourSecretAccessKey", + marketplace_host: "webservices.amazon.ca" # If not specified the default value is webservices.amazon.com ``` diff --git a/lib/amazon_product_advertising_client.ex b/lib/amazon_product_advertising_client.ex index 9697e3d..c541cac 100644 --- a/lib/amazon_product_advertising_client.ex +++ b/lib/amazon_product_advertising_client.ex @@ -7,8 +7,7 @@ defmodule AmazonProductAdvertisingClient do alias AmazonProductAdvertisingClient.Config @scheme "http" - @host Application.get_env(:amazon_product_advertising_client, :marketplace_host) || - "webservices.amazon.com" + @host Application.get_env(:amazon_product_advertising_client, :marketplace_host, "webservices.amazon.com") @path "/onca/xml" def call_api(request_params, config \\ %Config{}) do diff --git a/lib/amazon_product_advertising_client/item_lookup.ex b/lib/amazon_product_advertising_client/item_lookup.ex index 517a175..f73120a 100644 --- a/lib/amazon_product_advertising_client/item_lookup.ex +++ b/lib/amazon_product_advertising_client/item_lookup.ex @@ -3,11 +3,18 @@ defmodule AmazonProductAdvertisingClient.ItemLookup do alias __MODULE__ alias AmazonProductAdvertisingClient.Config - defstruct "Availability": "Available", + defstruct "Condition": "New", + "IncludeReviewsSummary": nil, + "MerchantId": nil, "ItemId": nil, "Operation": "ItemLookup", + "RelatedItemPage": nil, + "RelationshipType": nil, + "SearchIndex": nil, + "TruncateReviewsAt": nil, + "VariationPage": nil, "ResponseGroup": "ItemAttributes,Images", - "idType": "ASIN" + "IdType": "ASIN" def execute(search_params \\ %ItemLookup{}, config \\ %Config{}) do AmazonProductAdvertisingClient.call_api search_params, config