rms_web_service 0.0.2 → 0.1.0

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: 48677c86bf718efe72101c4ceb6ef142e9326b4a
4
- data.tar.gz: 813da41d26251b10ed74baf5871261c8b815d870
3
+ metadata.gz: fb7f1ea6f7988ece4163aa6e2348519ba888c98b
4
+ data.tar.gz: 6539c446b7d4f32bff75671535d7f663fba222a0
5
5
  SHA512:
6
- metadata.gz: 0b4cbad54e393a229ccd5c51ebb8216c4b8986ced086dbdd2836af3ad4e766499dc87e20e460a0b40f5edaba4fe5bd2c8fc94df2e2967164951e41e67506f27a
7
- data.tar.gz: 9be9a613238343dcad86e5f6b75b3cb1bf09780de4c60db32a4c7408303f37db8288dfd6eb65e9e3adfd902d90f372846dc513083ac4a5c55d61d94d747d97f2
6
+ metadata.gz: 8c235fe917086bcfe5b579146412d8ad912f7a7d284ccb3cdbff4fd4b66d699e0ff3b2fa60fdab481c6cf3c936541a5eb7c5c2bdb93bb302479cb11c79bce081
7
+ data.tar.gz: 1ba6f120e7d6bf9e00aa3f6042f66e48c78cc8a6c43058d76b07bd73609bbc1e509d28041ce45ceedbdcd90edc32042d5b849ad3fc5c8e872e8372aaf447859a
data/README.md CHANGED
@@ -31,32 +31,29 @@ Or install it yourself as:
31
31
 
32
32
  現在、itemAPIのみサポートしています。パラメータについては公式ドキュメントを参照してください。
33
33
 
34
- `RmsWebService.configuration`でサービスIDとライセンスキーを設定できます。各キーはRMSより発行できます。
34
+ サービスIDとライセンスキーを設定したクライアントインスタンスを生成します。各キーはRMSより発行できます。
35
35
 
36
36
  ```ruby
37
- RmsWebService.configure do |c|
38
- c.service_secret = "dummy_service_secret"
39
- c.license_key = "dummy_license_key"
40
- end
37
+ client = RmsWebService::Client::Item.new(service_secret: "dummy_service_secret", license_key: "dummy_license_key")
41
38
  ```
42
39
 
43
- ### RmsWebService::Item
40
+ ### RmsWebService::Client::Item
44
41
 
45
- RmsWebService::ItemAPIの各メソッドを持っています。パラメータを渡す場合はハッシュ、複数のItemを渡す場合は配列を使用します。
42
+ RmsWebService::Client::ItemのインスタンスがAPIの各メソッドを持っています。パラメータを渡す場合はハッシュ、複数のItemを渡す場合は配列を使用します。
46
43
 
47
- 各メソッドが返すインスタンスがどのようなメソッドを持つかは公式ドキュメントを見るのが早いと思います。更新に失敗した場合のみ、`errorMessages`に設定されているエラー関係のメソッドをサポートします。
44
+ 各メソッドのレスポンスがどのようなメソッドを持つかは公式ドキュメントをご覧ください。更新に失敗した場合のみ、`errorMessages`に設定されているエラー関係のメソッドをサポートします。
48
45
 
49
46
  ```ruby
50
47
  # item.get
51
- item = RmsWebService::Item.get(:item_url => "ed-60c-w")
48
+ item = client.get(:item_url => "ed-60c-w")
52
49
  p item.item_name # => "ed-60c-w"
53
50
 
54
51
  # item.update
55
- item = RmsWebService::Item.update({:item_url => "ed-60c-w", :item_price => 43800})
52
+ item = client.update({:item_url => "ed-60c-w", :item_price => 43800})
56
53
  p item.system_status # => "OK"
57
54
 
58
55
  # item.insert
59
- item = RmsWebService::Item.insert({
56
+ item = client.insert({
60
57
  :item_url => "test001",
61
58
  :item_name => "test001",
62
59
  :item_price => "100000",
@@ -65,17 +62,17 @@ item = RmsWebService::Item.insert({
65
62
  p item.system_status # => "OK"
66
63
 
67
64
  # item.delete
68
- item = RmsWebService::Item.delete(:item_url => "test001")
65
+ item = client.delete(:item_url => "test001")
69
66
  p item.system_status # => "OK"
70
67
 
71
68
  # item.search
72
- items = RmsWebService::Item.search(:item_name => "空気清浄機")
69
+ items = client.search(:item_name => "空気清浄機")
73
70
  items.each do |item|
74
71
  p item.item_name
75
72
  end
76
73
 
77
74
  # items.update
78
- items = RmsWebService::Item.items_update([
75
+ items = client.items_update([
79
76
  {:item_url => "ed-60c-w", :item_price => 43800},
80
77
  {:item_url => "noexist", :item_price => 10800}
81
78
  ])
@@ -2,21 +2,21 @@ require 'nokogiri'
2
2
  require 'faraday'
3
3
  require 'active_support'
4
4
  require 'active_support/core_ext'
5
- require 'rms_web_service/item/response'
6
- require 'rms_web_service/item/get'
7
- require 'rms_web_service/item/insert'
8
- require 'rms_web_service/item/update'
9
- require 'rms_web_service/item/delete'
10
- require 'rms_web_service/item/search'
11
- require 'rms_web_service/item/items_update'
12
5
 
13
6
  module RmsWebService
14
- class Item
15
- class << self
7
+ module Client
8
+ class Item
9
+ Endpoint = "https://api.rms.rakuten.co.jp/es/1.0/"
10
+ attr_accessor :configuration
11
+
12
+ def initialize(args={})
13
+ @configuration = ::RmsWebService::Configuration.new(args)
14
+ end
15
+
16
16
  def connection(method)
17
17
  connection = Faraday.new(:url => endpoint(method)) do |c|
18
18
  c.adapter Faraday.default_adapter
19
- c.headers['Authorization'] = RmsWebService.configuration.encoded_keys
19
+ c.headers['Authorization'] = self.configuration.encoded_keys
20
20
  end
21
21
  end
22
22
 
@@ -26,7 +26,7 @@ module RmsWebService
26
26
 
27
27
  def get(args)
28
28
  request = connection('item/get').get {|req| req.params['itemUrl'] = args[:item_url]}
29
- return Get.new(request.body)
29
+ return ::RmsWebService::Response::Item::Get.new(request.body)
30
30
  end
31
31
 
32
32
  def insert(args)
@@ -41,7 +41,7 @@ module RmsWebService
41
41
  end
42
42
 
43
43
  request = connection("item/insert").post {|req| req.body = xml_object.to_xml}
44
- return Insert.new(request.body)
44
+ return ::RmsWebService::Response::Item::Insert.new(request.body)
45
45
  end
46
46
 
47
47
  def update(args)
@@ -56,7 +56,7 @@ module RmsWebService
56
56
  end
57
57
 
58
58
  request = connection("item/update").post {|req| req.body = xml_object.to_xml}
59
- return Update.new(request.body)
59
+ return ::RmsWebService::Response::Item::Update.new(request.body)
60
60
  end
61
61
 
62
62
  def delete(args)
@@ -71,7 +71,7 @@ module RmsWebService
71
71
  end
72
72
 
73
73
  request = connection("item/delete").post {|req| req.body = xml_object.to_xml}
74
- return Delete.new(request.body)
74
+ return ::RmsWebService::Response::Item::Delete.new(request.body)
75
75
  end
76
76
 
77
77
  def search(args)
@@ -79,7 +79,7 @@ module RmsWebService
79
79
  args.each {|key, value| req.params["#{key.to_s.camelize(:lower)}"] = args[:"#{key}"]}
80
80
  end
81
81
 
82
- return Search.new(request.body)
82
+ return ::RmsWebService::Response::Item::Search.new(request.body)
83
83
  end
84
84
 
85
85
  def items_update(args)
@@ -98,9 +98,8 @@ module RmsWebService
98
98
  end
99
99
 
100
100
  request = connection("items/update").post {|req| req.body = xml_object.to_xml}
101
- return ItemsUpdate.new(request.body)
101
+ return ::RmsWebService::Response::Item::ItemsUpdate.new(request.body)
102
102
  end
103
103
  end
104
104
  end
105
105
  end
106
-
@@ -0,0 +1,5 @@
1
+ require 'rms_web_service/client/item'
2
+ module RmsWebService
3
+ module Client
4
+ end
5
+ end
@@ -0,0 +1,15 @@
1
+ module RmsWebService
2
+ module Response
3
+ module Item
4
+ class Delete
5
+ include ::RmsWebService::Response
6
+ def initialize(xml)
7
+ xml = Nokogiri::XML.parse(xml)
8
+ set_attributes xml.xpath("//status").children
9
+ set_attributes xml.xpath("//item").children
10
+ set_attribute("code", xml.xpath("//code").first.content)
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,15 @@
1
+ module RmsWebService
2
+ module Response
3
+ module Item
4
+ class Get
5
+ include ::RmsWebService::Response
6
+ def initialize(xml)
7
+ xml = Nokogiri::XML.parse(xml)
8
+ set_attributes xml.xpath("//status").children
9
+ set_attributes xml.xpath("//item").children
10
+ set_attribute("code", xml.xpath("//code").first.content) if xml.xpath("//code").present?
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,15 @@
1
+ module RmsWebService
2
+ module Response
3
+ module Item
4
+ class Insert
5
+ include ::RmsWebService::Response
6
+ def initialize(xml)
7
+ xml = Nokogiri::XML.parse(xml)
8
+ set_attributes xml.xpath("//status").children
9
+ set_attributes xml.xpath("//item").children
10
+ set_attribute("code", xml.xpath("//code").first.content)
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,14 @@
1
+ module RmsWebService
2
+ module Response
3
+ module Item
4
+ class ItemsUpdate < Array
5
+ include ::RmsWebService::Response
6
+ def initialize(xml)
7
+ xml = Nokogiri::XML.parse(xml)
8
+ set_attributes xml.xpath("//status").children
9
+ xml.xpath("//itemsUpdateResult").children.each {|item| self << Update.new(item.to_xml)}
10
+ end
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,15 @@
1
+ module RmsWebService
2
+ module Response
3
+ module Item
4
+ class Search < ::Array
5
+ include ::RmsWebService::Response
6
+ def initialize(xml)
7
+ xml = Nokogiri::XML.parse(xml)
8
+ set_attributes xml.xpath("//status").children
9
+ set_attribute("code", xml.xpath("//code").first.content)
10
+ xml.xpath("//items").children.each {|item| self << Get.new(item.to_xml)}
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,16 @@
1
+ module RmsWebService
2
+ module Response
3
+ module Item
4
+ class Update
5
+ include ::RmsWebService::Response
6
+ def initialize(xml)
7
+ xml = Nokogiri::XML.parse(xml)
8
+ set_attributes xml.xpath("//status").children
9
+ set_attributes xml.xpath("//item").children
10
+ set_attributes xml.xpath("//errorMessage").children if xml.xpath("//errorMessage").present?
11
+ set_attribute("code", xml.xpath("//code").first.content)
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,6 @@
1
+ require 'rms_web_service/response/item/get'
2
+ require 'rms_web_service/response/item/insert'
3
+ require 'rms_web_service/response/item/update'
4
+ require 'rms_web_service/response/item/delete'
5
+ require 'rms_web_service/response/item/search'
6
+ require 'rms_web_service/response/item/items_update'
@@ -0,0 +1,14 @@
1
+ require 'rms_web_service/response/item'
2
+
3
+ module RmsWebService
4
+ module Response
5
+ def set_attributes(args)
6
+ args.each {|s| set_attribute(s.name, s.content)}
7
+ end
8
+
9
+ def set_attribute(name, content)
10
+ att = name.gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').gsub(/([a-z\d])([A-Z])/,'\1_\2').tr("-", "_").downcase
11
+ self.define_singleton_method(att) {content}
12
+ end
13
+ end
14
+ end
@@ -1,3 +1,3 @@
1
1
  module RmsWebService
2
- VERSION = "0.0.2"
2
+ VERSION = "0.1.0"
3
3
  end
@@ -1,12 +1,11 @@
1
1
  require "rms_web_service/version"
2
2
  require "rms_web_service/configuration"
3
- require "rms_web_service/item"
3
+ require "rms_web_service/client"
4
+ require "rms_web_service/response"
4
5
 
5
6
  RWS = RmsWebService
6
7
 
7
8
  module RmsWebService
8
- Endpoint = "https://api.rms.rakuten.co.jp/es/1.0/"
9
-
10
9
  @@configuration = Configuration.new
11
10
 
12
11
  def configure(&block)
@@ -0,0 +1,122 @@
1
+ require 'spec_helper'
2
+ require 'rms_web_service'
3
+
4
+ describe RmsWebService::Client::Item do
5
+ subject(:client) {described_class.new(:service_secret => service_secret, :license_key => license_key)}
6
+ let(:service_secret) {'dummy_service_secret'}
7
+ let(:license_key) {'dummy_license_key'}
8
+
9
+ describe '.new' do
10
+ it { is_expected.to be_a RmsWebService::Client::Item }
11
+ end
12
+
13
+ describe '.configuration' do
14
+ subject {client.configuration}
15
+ it { is_expected.to be_a RmsWebService::Configuration }
16
+ end
17
+
18
+ describe '.connection' do
19
+ subject {client.connection("item/get")}
20
+ it { is_expected.to be_a Faraday::Connection }
21
+ end
22
+
23
+ describe '.get' do
24
+ let(:api) {client.get(:item_url => 'test001')}
25
+ before do
26
+ stub_request(:get, "https://api.rms.rakuten.co.jp/es/1.0/item/get?itemUrl=test001")
27
+ .to_return(:status => 200, body: fixture('get.xml'))
28
+ end
29
+
30
+ it 'should have methods to return parameters of "get" response' do
31
+ expect(api).to be_a RmsWebService::Response::Item::Get
32
+ expect(api.respond_to?(:code)).to be_truthy
33
+ expect(api.respond_to?(:system_status)).to be_truthy
34
+ expect(api.respond_to?(:item_url)).to be_truthy
35
+ end
36
+ end
37
+
38
+ describe '.delete' do
39
+ let(:api) {client.delete(:item_url => 'test001')}
40
+ before do
41
+ stub_request(:post, "https://api.rms.rakuten.co.jp/es/1.0/item/delete")
42
+ .to_return(:status => 200, body: fixture('delete.xml'))
43
+ end
44
+
45
+ it 'should have methods to return parameters of "delete" response' do
46
+ expect(api).to be_a RmsWebService::Response::Item::Delete
47
+ expect(api.respond_to?(:code)).to be_truthy
48
+ expect(api.respond_to?(:system_status)).to be_truthy
49
+ expect(api.respond_to?(:item_url)).to be_truthy
50
+ end
51
+ end
52
+
53
+ describe '.insert' do
54
+ let(:api) {client.insert({
55
+ :item_url => 'test001',
56
+ :item_name => 'test001',
57
+ :genre_id => '560420'
58
+ })}
59
+ before do
60
+ stub_request(:post, "https://api.rms.rakuten.co.jp/es/1.0/item/insert")
61
+ .to_return(:status => 200, body: fixture('insert.xml'))
62
+ end
63
+
64
+ it 'should have methods to return parameters of "insert" response' do
65
+ expect(api).to be_a RmsWebService::Response::Item::Insert
66
+ expect(api.respond_to?(:code)).to be_truthy
67
+ expect(api.respond_to?(:system_status)).to be_truthy
68
+ expect(api.respond_to?(:item_url)).to be_truthy
69
+ end
70
+ end
71
+
72
+ describe '.update' do
73
+ let(:api) {client.update({:item_url => 'test001', :item_price => '10000'})}
74
+ before do
75
+ stub_request(:post, "https://api.rms.rakuten.co.jp/es/1.0/item/update")
76
+ .to_return(:status => 200, body: fixture('update.xml'))
77
+ end
78
+
79
+ it 'should have methods to return parameters of "update" response' do
80
+ expect(api).to be_a RmsWebService::Response::Item::Update
81
+ expect(api.respond_to?(:code)).to be_truthy
82
+ expect(api.respond_to?(:system_status)).to be_truthy
83
+ expect(api.respond_to?(:item_url)).to be_truthy
84
+ expect(api.respond_to?(:error_id)).to be_truthy
85
+ end
86
+ end
87
+
88
+ describe '.search' do
89
+ let(:api) {client.search(:item_name => 'test001', :item_price_from => 1)}
90
+ before do
91
+ stub_request(:get, "https://api.rms.rakuten.co.jp/es/1.0/item/search?itemName=test001&itemPriceFrom=1")
92
+ .to_return(:status => 200, body: fixture('search.xml'))
93
+ end
94
+
95
+ it 'should have methods to return parameters of "search" response' do
96
+ expect(api).to be_a RmsWebService::Response::Item::Search
97
+ expect(api[0]).to be_a RmsWebService::Response::Item::Get
98
+ expect(api.respond_to?(:code)).to be_truthy
99
+ expect(api.respond_to?(:system_status)).to be_truthy
100
+ expect(api[0].respond_to?(:item_url)).to be_truthy
101
+ end
102
+ end
103
+
104
+ describe '.items_update' do
105
+ let(:api) {client.items_update([
106
+ {:item_url => 'test001', :item_price => 100},
107
+ {:item_url => 'test002', :item_price => 200}
108
+ ])}
109
+ before do
110
+ stub_request(:post, "https://api.rms.rakuten.co.jp/es/1.0/items/update")
111
+ .to_return(:status => 200, body: fixture('items_update.xml'))
112
+ end
113
+
114
+ it 'should have methods to return parameters of "items.update" response' do
115
+ expect(api).to be_a RmsWebService::Response::Item::ItemsUpdate
116
+ expect(api[0]).to be_a RmsWebService::Response::Item::Update
117
+ expect(api.respond_to?(:system_status)).to be_truthy
118
+ expect(api[0].respond_to?(:item_url)).to be_truthy
119
+ expect(api[0].respond_to?(:code)).to be_truthy
120
+ end
121
+ end
122
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rms_web_service
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - kamiya54
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-09-11 00:00:00.000000000 Z
11
+ date: 2014-09-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -138,15 +138,17 @@ files:
138
138
  - README.md
139
139
  - Rakefile
140
140
  - lib/rms_web_service.rb
141
+ - lib/rms_web_service/client.rb
142
+ - lib/rms_web_service/client/item.rb
141
143
  - lib/rms_web_service/configuration.rb
142
- - lib/rms_web_service/item.rb
143
- - lib/rms_web_service/item/delete.rb
144
- - lib/rms_web_service/item/get.rb
145
- - lib/rms_web_service/item/insert.rb
146
- - lib/rms_web_service/item/items_update.rb
147
- - lib/rms_web_service/item/response.rb
148
- - lib/rms_web_service/item/search.rb
149
- - lib/rms_web_service/item/update.rb
144
+ - lib/rms_web_service/response.rb
145
+ - lib/rms_web_service/response/item.rb
146
+ - lib/rms_web_service/response/item/delete.rb
147
+ - lib/rms_web_service/response/item/get.rb
148
+ - lib/rms_web_service/response/item/insert.rb
149
+ - lib/rms_web_service/response/item/items_update.rb
150
+ - lib/rms_web_service/response/item/search.rb
151
+ - lib/rms_web_service/response/item/update.rb
150
152
  - lib/rms_web_service/version.rb
151
153
  - rms_web_service.gemspec
152
154
  - spec/fixtures/delete.xml
@@ -156,14 +158,8 @@ files:
156
158
  - spec/fixtures/items_update.xml
157
159
  - spec/fixtures/search.xml
158
160
  - spec/fixtures/update.xml
161
+ - spec/rms_web_service/client/item_spec.rb
159
162
  - spec/rms_web_service/configuration_spec.rb
160
- - spec/rms_web_service/item/delete_spec.rb
161
- - spec/rms_web_service/item/get_spec.rb
162
- - spec/rms_web_service/item/insert_spec.rb
163
- - spec/rms_web_service/item/items_update_spec.rb
164
- - spec/rms_web_service/item/search_spec.rb
165
- - spec/rms_web_service/item/update_spec.rb
166
- - spec/rms_web_service/item_spec.rb
167
163
  - spec/rms_web_service_spec.rb
168
164
  - spec/spec_helper.rb
169
165
  homepage: https://github.com/kamiya54/rms_web_service
@@ -198,13 +194,7 @@ test_files:
198
194
  - spec/fixtures/items_update.xml
199
195
  - spec/fixtures/search.xml
200
196
  - spec/fixtures/update.xml
197
+ - spec/rms_web_service/client/item_spec.rb
201
198
  - spec/rms_web_service/configuration_spec.rb
202
- - spec/rms_web_service/item/delete_spec.rb
203
- - spec/rms_web_service/item/get_spec.rb
204
- - spec/rms_web_service/item/insert_spec.rb
205
- - spec/rms_web_service/item/items_update_spec.rb
206
- - spec/rms_web_service/item/search_spec.rb
207
- - spec/rms_web_service/item/update_spec.rb
208
- - spec/rms_web_service/item_spec.rb
209
199
  - spec/rms_web_service_spec.rb
210
200
  - spec/spec_helper.rb
@@ -1,13 +0,0 @@
1
- module RmsWebService
2
- class Item
3
- class Delete
4
- include Response
5
- def initialize(xml)
6
- xml = Nokogiri::XML.parse(xml)
7
- set_attributes xml.xpath("//status").children
8
- set_attributes xml.xpath("//item").children
9
- set_attribute("code", xml.xpath("//code").first.content)
10
- end
11
- end
12
- end
13
- end
@@ -1,13 +0,0 @@
1
- module RmsWebService
2
- class Item
3
- class Get
4
- include Response
5
- def initialize(xml)
6
- xml = Nokogiri::XML.parse(xml)
7
- set_attributes xml.xpath("//status").children
8
- set_attributes xml.xpath("//item").children
9
- set_attribute("code", xml.xpath("//code").first.content) if xml.xpath("//code").present?
10
- end
11
- end
12
- end
13
- end
@@ -1,13 +0,0 @@
1
- module RmsWebService
2
- class Item
3
- class Insert
4
- include Response
5
- def initialize(xml)
6
- xml = Nokogiri::XML.parse(xml)
7
- set_attributes xml.xpath("//status").children
8
- set_attributes xml.xpath("//item").children
9
- set_attribute("code", xml.xpath("//code").first.content)
10
- end
11
- end
12
- end
13
- end
@@ -1,12 +0,0 @@
1
- module RmsWebService
2
- class Item
3
- class ItemsUpdate < Array
4
- include Response
5
- def initialize(xml)
6
- xml = Nokogiri::XML.parse(xml)
7
- set_attributes xml.xpath("//status").children
8
- xml.xpath("//itemsUpdateResult").children.each {|item| self << Update.new(item.to_xml)}
9
- end
10
- end
11
- end
12
- end
@@ -1,14 +0,0 @@
1
- module RmsWebService
2
- class Item
3
- module Response
4
- def set_attributes(args)
5
- args.each {|s| set_attribute(s.name, s.content)}
6
- end
7
-
8
- def set_attribute(name, content)
9
- att = name.gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').gsub(/([a-z\d])([A-Z])/,'\1_\2').tr("-", "_").downcase
10
- self.define_singleton_method(att) {content}
11
- end
12
- end
13
- end
14
- end
@@ -1,13 +0,0 @@
1
- module RmsWebService
2
- class Item
3
- class Search < ::Array
4
- include Response
5
- def initialize(xml)
6
- xml = Nokogiri::XML.parse(xml)
7
- set_attributes xml.xpath("//status").children
8
- set_attribute("code", xml.xpath("//code").first.content)
9
- xml.xpath("//items").children.each {|item| self << Get.new(item.to_xml)}
10
- end
11
- end
12
- end
13
- end
@@ -1,14 +0,0 @@
1
- module RmsWebService
2
- class Item
3
- class Update
4
- include Response
5
- def initialize(xml)
6
- xml = Nokogiri::XML.parse(xml)
7
- set_attributes xml.xpath("//status").children
8
- set_attributes xml.xpath("//item").children
9
- set_attributes xml.xpath("//errorMessage").children if xml.xpath("//errorMessage").present?
10
- set_attribute("code", xml.xpath("//code").first.content)
11
- end
12
- end
13
- end
14
- end
@@ -1,31 +0,0 @@
1
- require 'spec_helper'
2
- require 'rms_web_service/item'
3
-
4
- describe RmsWebService::Item::Delete do
5
- describe '.delete' do
6
- let(:api) {RmsWebService::Item.delete({:item_url => 'test001'})}
7
-
8
- before :all do
9
- RmsWebService.configure do |c|
10
- c.service_secret = 'dummy_service_secret'
11
- c.license_key = 'dummy_license_key'
12
- end
13
- end
14
-
15
- before :each do
16
- stub_request(:post, "https://api.rms.rakuten.co.jp/es/1.0/item/delete")
17
- .to_return(:status => 200, body: fixture('delete.xml'))
18
- end
19
-
20
-
21
- it 'return instance of RmsWebService::Item::Delete' do
22
- expect(api).to be_a RmsWebService::Item::Delete
23
- end
24
-
25
- it "have methods to return parameters of response" do
26
- expect(api.respond_to?(:code)).to be_truthy
27
- expect(api.respond_to?(:system_status)).to be_truthy
28
- expect(api.respond_to?(:item_url)).to be_truthy
29
- end
30
- end
31
- end
@@ -1,30 +0,0 @@
1
- require 'spec_helper'
2
- require 'rms_web_service/item'
3
-
4
- describe RmsWebService::Item::Get do
5
- describe '.get' do
6
- let(:api) {RmsWebService::Item.get(:item_url => 'test001')}
7
-
8
- before do
9
- RmsWebService.configure do |c|
10
- c.service_secret = 'dummy_service_secret'
11
- c.license_key = 'dummy_license_key'
12
- end
13
- end
14
-
15
- before :each do
16
- stub_request(:get, "https://api.rms.rakuten.co.jp/es/1.0/item/get?itemUrl=test001")
17
- .to_return(:status => 200, body: fixture('get.xml'))
18
- end
19
-
20
- it 'return instance of RmsWebService::Item::Get' do
21
- expect(api).to be_a RmsWebService::Item::Get
22
- end
23
-
24
- it "have methods to return parameters of response" do
25
- expect(api.respond_to?(:code)).to be_truthy
26
- expect(api.respond_to?(:system_status)).to be_truthy
27
- expect(api.respond_to?(:item_url)).to be_truthy
28
- end
29
- end
30
- end
@@ -1,34 +0,0 @@
1
- require 'spec_helper'
2
- require 'rms_web_service/item'
3
-
4
- describe RmsWebService::Item::Insert do
5
- describe '.insert' do
6
- let(:api) {RmsWebService::Item.insert({
7
- :item_url => 'test001',
8
- :item_name => 'test001',
9
- :genre_id => '560420'
10
- })}
11
-
12
- before :all do
13
- RmsWebService.configure do |c|
14
- c.service_secret = 'dummy_service_secret'
15
- c.license_key = 'dummy_license_key'
16
- end
17
- end
18
-
19
- before :each do
20
- stub_request(:post, "https://api.rms.rakuten.co.jp/es/1.0/item/insert")
21
- .to_return(:status => 200, body: fixture('insert.xml'))
22
- end
23
-
24
- it 'return instance of RmsWebService::Item::Insert' do
25
- expect(api).to be_a RmsWebService::Item::Insert
26
- end
27
-
28
- it "have methods to return parameters of response" do
29
- expect(api.respond_to?(:code)).to be_truthy
30
- expect(api.respond_to?(:system_status)).to be_truthy
31
- expect(api.respond_to?(:item_url)).to be_truthy
32
- end
33
- end
34
- end
@@ -1,34 +0,0 @@
1
- require 'spec_helper'
2
- require 'rms_web_service/item'
3
-
4
- describe RmsWebService::Item::ItemsUpdate do
5
- describe '.update_items' do
6
- let(:api) {RmsWebService::Item.items_update([
7
- {:item_url => 'test001', :item_price => 100},
8
- {:item_url => 'test002', :item_price => 200}
9
- ])}
10
-
11
- before do
12
- RmsWebService.configure do |c|
13
- c.service_secret = 'dummy_service_secret'
14
- c.license_key = 'dummy_license_key'
15
- end
16
- end
17
-
18
- before :each do
19
- stub_request(:post, "https://api.rms.rakuten.co.jp/es/1.0/items/update")
20
- .to_return(:status => 200, body: fixture('items_update.xml'))
21
- end
22
-
23
- it 'return Array of RmsWebService::Response' do
24
- expect(api).to be_a RmsWebService::Item::ItemsUpdate
25
- expect(api[0]).to be_a RmsWebService::Item::Update
26
- end
27
-
28
- it "have methods to return parameters of response" do
29
- expect(api.respond_to?(:system_status)).to be_truthy
30
- expect(api[0].respond_to?(:item_url)).to be_truthy
31
- expect(api[0].respond_to?(:code)).to be_truthy
32
- end
33
- end
34
- end
@@ -1,31 +0,0 @@
1
- require 'spec_helper'
2
- require 'rms_web_service/item'
3
-
4
- describe RmsWebService::Item::Search do
5
- describe '.search' do
6
- let(:api) {RmsWebService::Item.search(:item_name => 'test001', :item_price_from => 1)}
7
-
8
- before do
9
- RmsWebService.configure do |c|
10
- c.service_secret = 'dummy_service_secret'
11
- c.license_key = 'dummy_license_key'
12
- end
13
- end
14
-
15
- before :each do
16
- stub_request(:get, "https://api.rms.rakuten.co.jp/es/1.0/item/search?itemName=test001&itemPriceFrom=1")
17
- .to_return(:status => 200, body: fixture('search.xml'))
18
- end
19
-
20
- it 'return Array of RmsWebService::Response' do
21
- expect(api).to be_a RmsWebService::Item::Search
22
- expect(api[0]).to be_a RmsWebService::Item::Get
23
- end
24
-
25
- it "have methods to return parameters of response" do
26
- expect(api.respond_to?(:code)).to be_truthy
27
- expect(api.respond_to?(:system_status)).to be_truthy
28
- expect(api[0].respond_to?(:item_url)).to be_truthy
29
- end
30
- end
31
- end
@@ -1,31 +0,0 @@
1
- require 'spec_helper'
2
- require 'rms_web_service/item'
3
-
4
- describe RmsWebService::Item::Update do
5
- describe '.update' do
6
- let(:api) {RmsWebService::Item.update({:item_url => 'test001', :item_price => '10000'})}
7
-
8
- before :all do
9
- RmsWebService.configure do |c|
10
- c.service_secret = 'dummy_service_secret'
11
- c.license_key = 'dummy_license_key'
12
- end
13
- end
14
-
15
- before :each do
16
- stub_request(:post, "https://api.rms.rakuten.co.jp/es/1.0/item/update")
17
- .to_return(:status => 200, body: fixture('update.xml'))
18
- end
19
-
20
- it 'return instance of RmsWebService::Item::Update' do
21
- expect(api).to be_a RmsWebService::Item::Update
22
- end
23
-
24
- it "have methods to return parameters of response" do
25
- expect(api.respond_to?(:code)).to be_truthy
26
- expect(api.respond_to?(:system_status)).to be_truthy
27
- expect(api.respond_to?(:item_url)).to be_truthy
28
- expect(api.respond_to?(:error_id)).to be_truthy
29
- end
30
- end
31
- end
@@ -1,21 +0,0 @@
1
- require 'spec_helper'
2
- require 'rms_web_service/item'
3
-
4
- describe RmsWebService::Item do
5
- describe '.connection' do
6
- before do
7
- RmsWebService.configure do |c|
8
- c.service_secret = 'dummy_service_secret'
9
- c.license_key = 'dummy_license_key'
10
- end
11
- end
12
-
13
- it 'return instance of Faraday::Connection' do
14
- expect(RmsWebService::Item.connection("item/get")).to be_a Faraday::Connection
15
- end
16
-
17
- it 'have a collect endpoint' do
18
- expect(RmsWebService::Item.endpoint("item/get")).to eq "https://api.rms.rakuten.co.jp/es/1.0/item/get"
19
- end
20
- end
21
- end