rms_web_service 0.0.2 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +11 -14
- data/lib/rms_web_service/{item.rb → client/item.rb} +16 -17
- data/lib/rms_web_service/client.rb +5 -0
- data/lib/rms_web_service/response/item/delete.rb +15 -0
- data/lib/rms_web_service/response/item/get.rb +15 -0
- data/lib/rms_web_service/response/item/insert.rb +15 -0
- data/lib/rms_web_service/response/item/items_update.rb +14 -0
- data/lib/rms_web_service/response/item/search.rb +15 -0
- data/lib/rms_web_service/response/item/update.rb +16 -0
- data/lib/rms_web_service/response/item.rb +6 -0
- data/lib/rms_web_service/response.rb +14 -0
- data/lib/rms_web_service/version.rb +1 -1
- data/lib/rms_web_service.rb +2 -3
- data/spec/rms_web_service/client/item_spec.rb +122 -0
- metadata +14 -24
- data/lib/rms_web_service/item/delete.rb +0 -13
- data/lib/rms_web_service/item/get.rb +0 -13
- data/lib/rms_web_service/item/insert.rb +0 -13
- data/lib/rms_web_service/item/items_update.rb +0 -12
- data/lib/rms_web_service/item/response.rb +0 -14
- data/lib/rms_web_service/item/search.rb +0 -13
- data/lib/rms_web_service/item/update.rb +0 -14
- data/spec/rms_web_service/item/delete_spec.rb +0 -31
- data/spec/rms_web_service/item/get_spec.rb +0 -30
- data/spec/rms_web_service/item/insert_spec.rb +0 -34
- data/spec/rms_web_service/item/items_update_spec.rb +0 -34
- data/spec/rms_web_service/item/search_spec.rb +0 -31
- data/spec/rms_web_service/item/update_spec.rb +0 -31
- data/spec/rms_web_service/item_spec.rb +0 -21
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fb7f1ea6f7988ece4163aa6e2348519ba888c98b
|
4
|
+
data.tar.gz: 6539c446b7d4f32bff75671535d7f663fba222a0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
-
|
34
|
+
サービスIDとライセンスキーを設定したクライアントインスタンスを生成します。各キーはRMSより発行できます。
|
35
35
|
|
36
36
|
```ruby
|
37
|
-
RmsWebService.
|
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::Item
|
42
|
+
RmsWebService::Client::ItemのインスタンスがAPIの各メソッドを持っています。パラメータを渡す場合はハッシュ、複数のItemを渡す場合は配列を使用します。
|
46
43
|
|
47
|
-
|
44
|
+
各メソッドのレスポンスがどのようなメソッドを持つかは公式ドキュメントをご覧ください。更新に失敗した場合のみ、`errorMessages`に設定されているエラー関係のメソッドをサポートします。
|
48
45
|
|
49
46
|
```ruby
|
50
47
|
# item.get
|
51
|
-
item =
|
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 =
|
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 =
|
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 =
|
65
|
+
item = client.delete(:item_url => "test001")
|
69
66
|
p item.system_status # => "OK"
|
70
67
|
|
71
68
|
# item.search
|
72
|
-
items =
|
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 =
|
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
|
-
|
15
|
-
class
|
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'] =
|
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,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
|
data/lib/rms_web_service.rb
CHANGED
@@ -1,12 +1,11 @@
|
|
1
1
|
require "rms_web_service/version"
|
2
2
|
require "rms_web_service/configuration"
|
3
|
-
require "rms_web_service/
|
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
|
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
|
+
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/
|
143
|
-
- lib/rms_web_service/item
|
144
|
-
- lib/rms_web_service/item/
|
145
|
-
- lib/rms_web_service/item/
|
146
|
-
- lib/rms_web_service/item/
|
147
|
-
- lib/rms_web_service/item/
|
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
|