google-content-api 0.1.4 → 0.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 278179a947b6f244964810163fb76c4985ed1fe3
|
4
|
+
data.tar.gz: c352bae8e0dbb96a9179842c66cd4e2d795107b6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 53a3567008c4d40d0465fe32dc5eed8373e5a08d64e01c09c34a0735683f4efdd01909cf8a279c9abbe460f3dc182c3feb083e36209086857f2f9cea803759b2
|
7
|
+
data.tar.gz: 0f8c585dfdece74743c610d7323e5d3154f76503df62151ff8d7fd76de554db6e0ec70fe5b22959200049fd90cb6a5fe8c476f0620a204de12db67d654610ead
|
data/lib/google_content_api.rb
CHANGED
@@ -24,6 +24,8 @@ module GoogleContentApi
|
|
24
24
|
if options[:language].nil? || options[:country].nil? || options[:item_id].nil?
|
25
25
|
|
26
26
|
"#{base_url}/items/products/generic/online:#{options[:language].downcase}:#{options[:country].upcase}:#{options[:item_id]}?warnings"
|
27
|
+
when "item_to_update"
|
28
|
+
"#{base_url}/items/products/schema/online:#{options[:language].downcase}:#{options[:country].upcase}:#{options[:item_id]}"
|
27
29
|
else
|
28
30
|
raise "unknown zone"
|
29
31
|
end
|
@@ -25,6 +25,7 @@ module GoogleContentApi
|
|
25
25
|
def update_products(sub_account_id, products, dry_run = false)
|
26
26
|
token = Authorization.fetch_token
|
27
27
|
products_url = GoogleContentApi.urls("products", sub_account_id, :dry_run => dry_run)
|
28
|
+
@sub_account_id = sub_account_id
|
28
29
|
xml = update_product_items_batch_xml(products)
|
29
30
|
Faraday.headers = {
|
30
31
|
"Content-Type" => "application/atom+xml",
|
@@ -66,7 +67,7 @@ module GoogleContentApi
|
|
66
67
|
def create_item_xml(item)
|
67
68
|
item[:id] = item_url(item[:id])
|
68
69
|
|
69
|
-
|
70
|
+
NokogiriwXML::Builder.new do |xml|
|
70
71
|
xml.entry(
|
71
72
|
'xmlns' => 'http://www.w3.org/2005/Atom',
|
72
73
|
'xmlns:app' => 'http://www.w3.org/2007/app',
|
@@ -101,16 +102,16 @@ module GoogleContentApi
|
|
101
102
|
end.to_xml
|
102
103
|
end
|
103
104
|
|
104
|
-
def add_mandatory_values(xml, attributes, opts)
|
105
|
-
xml['batch'].id_ attributes[:id]
|
106
|
-
xml['sc'].id_ attributes[:id]
|
107
|
-
xml.title_ attributes[:title]
|
108
|
-
xml.content_ attributes[:description], :type => 'text'
|
105
|
+
def add_mandatory_values(xml, attributes, opts = {})
|
109
106
|
if opts[:type] == 'UPDATE'
|
110
|
-
xml.
|
107
|
+
xml.id_ GoogleContentApi.urls("item_to_update", @sub_account_id, :language => attributes[:content_language], :country => attributes[:target_country], :item_id => attributes[:id])
|
111
108
|
else
|
112
|
-
xml
|
109
|
+
xml['batch'].id_ attributes[:id]
|
113
110
|
end
|
111
|
+
xml['sc'].id_ attributes[:id]
|
112
|
+
xml.title_ attributes[:title]
|
113
|
+
xml.content_ attributes[:description], :type => 'text'
|
114
|
+
xml.link_(:rel => 'alternate', :type => 'text/html', :href => attributes[:link])
|
114
115
|
xml['sc'].image_link_ attributes[:image]
|
115
116
|
xml['sc'].content_language_ attributes[:content_language]
|
116
117
|
xml['sc'].target_country_ attributes[:target_country]
|
@@ -119,7 +120,7 @@ module GoogleContentApi
|
|
119
120
|
xml['scp'].price_ attributes[:price], :unit => attributes[:currency]
|
120
121
|
end
|
121
122
|
|
122
|
-
def add_optional_values(xml, attributes, opts)
|
123
|
+
def add_optional_values(xml, attributes, opts = {})
|
123
124
|
if attributes[:expiration_date]
|
124
125
|
xml['sc'].expiration_date_ attributes[:expiration_date]
|
125
126
|
end
|
@@ -82,8 +82,8 @@ describe GoogleContentApi::Product do
|
|
82
82
|
it "creates an xml with all given product attributes" do
|
83
83
|
result_xml = subject.send(:update_product_items_batch_xml, [product_attributes])
|
84
84
|
result_xml.should match 'batch:operation type="UPDATE"'
|
85
|
-
result_xml.
|
86
|
-
result_xml.should match '
|
85
|
+
result_xml.should_not match 'batch:id'
|
86
|
+
result_xml.should match 'items/products/schema/online'
|
87
87
|
product_attributes.each{ |attribute,value| result_xml.should match /#{value}/ }
|
88
88
|
end
|
89
89
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: google-content-api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- DaWanda GmbH
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-03-
|
11
|
+
date: 2014-03-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|