defmodule VtexWs.Services.Vtex do @moduledoc "Módulo responsável por lidar com todas as requisições entre o VtexWs e o endpoint Vtex de cada cliente." @doc "Retorna uma categoria por ID." def get_category_by_app!(id, app) do HTTPoison.get("#{app.vtex_url}/api/catalog_system/pvt/category/#{id}", vtex_headers(app)) |> elem(1) end @doc "Retorna um produto por ID." def get_product_by_app!(product_id, app) do HTTPoison.get("#{app.vtex_url}/api/catalog_system/pvt/sku/stockkeepingunitbyid/#{product_id}", vtex_headers(app)) |> elem(1) end @doc "Retorna o preço de um produto pelo SKU." def get_product_price_by_app!(sku, app) do HTTPoison.get("#{app.vtex_url}/api/pricing/pvt/price-sheet/#{sku}", vtex_headers(app)) |> elem(1) end @doc "Retorna o estoque de um produto pelo SKU." def get_product_stock_in_store_by_app!(sku, app) do HTTPoison.get("#{app.vtex_url}/api/logistics/pvt/inventory/skus/#{sku}", vtex_headers(app)) |> elem(1) end defp vtex_headers(app) do [ {"X-VTEX-API-AppKey", app.vtex_app_key}, {"X-VTEX-API-AppToken", app.vtex_app_token} ] end end