rms_web_service 0.1.3 → 0.1.4
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 +4 -4
- data/.coveralls.yml +1 -0
- data/.travis.yml +1 -0
- data/Gemfile +2 -0
- data/README.md +4 -2
- data/lib/rms_web_service/response/item/error.rb +12 -3
- data/lib/rms_web_service/response/item/error/const.rb +64 -0
- data/lib/rms_web_service/response/item/parser.rb +2 -3
- data/lib/rms_web_service/version.rb +1 -1
- data/spec/fixtures/update.xml +1 -1
- data/spec/rms_web_service/response/item/delete_spec.rb +20 -2
- data/spec/rms_web_service/response/item/error_spec.rb +15 -3
- data/spec/rms_web_service/response/item/get_spec.rb +22 -3
- data/spec/rms_web_service/response/item/insert_spec.rb +20 -2
- data/spec/rms_web_service/response/item/items_update_spec.rb +21 -4
- data/spec/rms_web_service/response/item/parser_spec.rb +15 -0
- data/spec/rms_web_service/response/item/search_spec.rb +21 -4
- data/spec/rms_web_service/response/item/update_spec.rb +20 -2
- data/spec/spec_helper.rb +3 -0
- metadata +6 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5e4456d8e87be3c43e71ff4c8dcdaa64ae6f0737
|
4
|
+
data.tar.gz: bdb5461405ef0f45c0d67d5531079706bb5b5ec3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: df03d83ad6a75e22409231907ac76793c8da2ebc28137ce7c3bf5db96f103cb2312b3d6307299eef595f32641a921e65e3f1126488b60ed4705cacbdd9fe949d
|
7
|
+
data.tar.gz: 37f4d4611fc5f8fb063303c94a08701ae0155d8f0dcbaeb18aa82968ef5a058e513c8231f956e85ccb125ebc239850ccc06f7df403ec4e79f810545070575c01
|
data/.coveralls.yml
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
service_name: travis-ci
|
data/.travis.yml
CHANGED
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -4,12 +4,14 @@ RMS Webservice APIのRubyラッパーです。
|
|
4
4
|
|
5
5
|
[](http://badge.fury.io/rb/rms_web_service)
|
6
6
|
[](https://travis-ci.org/kamiya54/rms_web_service)
|
7
|
+
[](https://coveralls.io/r/kamiya54/rms_web_service)
|
8
|
+
[](https://codeclimate.com/github/kamiya54/rms_web_service)
|
7
9
|
|
8
10
|
#### ご注意
|
9
11
|
|
10
|
-
*
|
12
|
+
* 楽天市場出店者のみが利用できるAPIです。
|
11
13
|
* 現在一部機能のみサポートしています。
|
12
|
-
*
|
14
|
+
* 非公式です。
|
13
15
|
|
14
16
|
## Installation
|
15
17
|
|
@@ -1,9 +1,18 @@
|
|
1
|
+
#encoding: utf-8
|
1
2
|
module RmsWebService
|
2
3
|
module Response
|
3
4
|
module Item
|
4
|
-
class Error
|
5
|
-
|
6
|
-
|
5
|
+
class Error
|
6
|
+
require 'rms_web_service/response/item/error/const'
|
7
|
+
def self.parse(xml)
|
8
|
+
raise ArgumentError, "Argument must be a String class. but argument is #{xml.class}." unless xml.class == String
|
9
|
+
hash = Hash.new
|
10
|
+
Nokogiri::XML.parse(xml).xpath("//errorMessage").children.each {|att| hash.store(att.name.underscore, att.content)}
|
11
|
+
if hash['field_id'] && ::FIELDID_LIST["#{hash['field_id']}"].present?
|
12
|
+
hash.store("field", ::FIELDID_LIST["#{hash['field_id']}"][0].underscore)
|
13
|
+
hash.store("field_name", ::FIELDID_LIST["#{hash['field_id']}"][1].underscore)
|
14
|
+
end
|
15
|
+
return hash
|
7
16
|
end
|
8
17
|
end
|
9
18
|
end
|
@@ -0,0 +1,64 @@
|
|
1
|
+
#encoding: utf-8
|
2
|
+
FIELDID_LIST = {
|
3
|
+
"501" => ['itemUrl', '商品管理番号'],
|
4
|
+
"502" => ['itemName', '商品名'],
|
5
|
+
"503" => ['itemPrice', '販売価格'],
|
6
|
+
"504" => ['genreId', '全商品ディレクトリID'],
|
7
|
+
"505" => ['itemLayout','商品情報レイアウト'],
|
8
|
+
"506" => ['isIncludedTax', '消費税'],
|
9
|
+
"507" => ['isIncludedPostage', '送料'],
|
10
|
+
"508" => ['isIncludedCashOnDeliveryPostage', '代引き手数料'],
|
11
|
+
"509" => ['inventoryType', '在庫タイプ'],
|
12
|
+
"510" => ['orderLimit ', '注文受付数'],
|
13
|
+
"511" => ['isDepot', '倉庫指定'],
|
14
|
+
"512" => ['isSaleButton', '注文ボタン'],
|
15
|
+
"513" => ['isDocumentButton', '資料請求ボタン'],
|
16
|
+
"514" => ['isInquiryButton', '商品問い合わせボタン'],
|
17
|
+
"515" => ['isAvailableForMobile', 'モバイル表示'],
|
18
|
+
"516" => ['isNoshiEnable', 'のし対応'],
|
19
|
+
"517" => ['pointRate', 'ポイント変倍率'],
|
20
|
+
"518" => ['pointRateStart', 'ポイント変倍適応期間(開始)'],
|
21
|
+
"518" => ['pointRateEnd', 'ポイント変倍適応期間(終了)'],
|
22
|
+
"519" => ['imageAlt', '商品画像名(ALT)'],
|
23
|
+
"520" => ['itemNumber', '商品番号'],
|
24
|
+
"521" => ['descriptionForPC', 'PC用商品説明文'],
|
25
|
+
"522" => ['descriptionForMobile', 'モバイル用商品説明文'],
|
26
|
+
"523" => ['displayPrice', '表示価格'],
|
27
|
+
"524" => ['imageUrl', '商品画像URL'],
|
28
|
+
"525" => ['movieUrl', '動画URL'],
|
29
|
+
"526" => ['catchCopyForPC', 'PC用キャッチコピー'],
|
30
|
+
"527" => ['catchCopyForMobile', 'モバイル用キャッチコピー'],
|
31
|
+
"528" => ['descriptionBySalesMethod', 'PC用販売説明文'],
|
32
|
+
"529" => ['postage', '個別送料'],
|
33
|
+
"530" => ['postageSegment1', '送料区分1'],
|
34
|
+
"531" => ['postageSegment2', '送料区分2'],
|
35
|
+
"532" => ['isTimeSale', '期間限定販売フラグ'],
|
36
|
+
"532" => ['timeSaleStartDateTime', '期間限定販売開始日'],
|
37
|
+
"532" => ['timeSaleEndDateTime', '期間限定販売終了日'],
|
38
|
+
"534" => ['inventoryQuantityFlag', '在庫数表示'],
|
39
|
+
"535" => ['horizontalName', '項目選択肢別在庫用縦軸選択肢項目名'],
|
40
|
+
"536" => ['verticalName', '項目選択肢別在庫用横軸選択肢項目名'],
|
41
|
+
"537" => ['inventoryDisplayFlag', '項目選択肢別在庫用残り表示閾値'],
|
42
|
+
"540" => ['catalogId', 'カタログID'],
|
43
|
+
"542" => ['isBackorder', '在庫切れ時の注文受付'],
|
44
|
+
"543" => ['normalDeliveryDateId', '在庫あり時納期管理番号'],
|
45
|
+
"544" => ['backorderDeliveryDateId', '在庫切れ時納期管理番号'],
|
46
|
+
"552" => ['tagId', 'タグID'],
|
47
|
+
"553" => ['reviewDisp', 'レビュー表示'],
|
48
|
+
"554" => ['asurakuDeliveryId', 'あす楽配送管理番号'],
|
49
|
+
"556" => ['sizeChartLinkCode', 'サイズ表リンクコード'],
|
50
|
+
"557" => ['isStockNoticeButton', '再入荷のお知らせボタン'],
|
51
|
+
"565" => ['isUnavailableForSearch', 'サーチ非表示'],
|
52
|
+
"568" => ['displayPriceId ', '二重価格文言ID'],
|
53
|
+
"570" => ['descriptionForSmartPhone', 'スマートフォン用商品説明文'],
|
54
|
+
"702" => ['optionStyle', '選択肢スタイル'],
|
55
|
+
"703" => ['optionName', 'Select/Checkbox用項目名'],
|
56
|
+
"704" => ['value', 'Select/Checkbox用選択肢'],
|
57
|
+
"705" => ['optionNameHorizontal', '項目選択肢別在庫用横軸選択肢'],
|
58
|
+
"706" => ['childNoHorizontal', '項目選択肢別在庫用横軸選択肢子番号'],
|
59
|
+
"707" => ['optionNameVertical', '項目選択肢別在庫用縦軸選択肢'],
|
60
|
+
"708" => ['childNoVertical', '項目選択肢別在庫用縦軸選択肢子番号'],
|
61
|
+
"709" => ['isBackorderAvailable', '項目選択肢別在庫用取り寄せ可能表示'],
|
62
|
+
"710" => ['inventoryCount', '在庫数'],
|
63
|
+
"711" => ['isRestoreInventoryFlag', '在庫戻し設定']
|
64
|
+
}
|
@@ -8,7 +8,7 @@ module RmsWebService
|
|
8
8
|
@status = Item::Status.new(xml)
|
9
9
|
@code = @parsed_xml.xpath("//code").first.content if @parsed_xml.xpath("//code").present?
|
10
10
|
@errors = []
|
11
|
-
@parsed_xml.xpath("//errorMessages").each {|error| @errors << Error.
|
11
|
+
@parsed_xml.xpath("//errorMessages").children.each {|error| @errors << Error.parse(error.to_s)} if @parsed_xml.xpath("//errorMessages").present?
|
12
12
|
end
|
13
13
|
|
14
14
|
def set_attributes(args)
|
@@ -16,8 +16,7 @@ module RmsWebService
|
|
16
16
|
end
|
17
17
|
|
18
18
|
def set_attribute(name, content)
|
19
|
-
|
20
|
-
self.define_singleton_method(att) {content}
|
19
|
+
self.define_singleton_method(name.underscore) {content}
|
21
20
|
end
|
22
21
|
end
|
23
22
|
end
|
data/spec/fixtures/update.xml
CHANGED
@@ -9,7 +9,7 @@
|
|
9
9
|
</status>
|
10
10
|
<itemUpdateResult>
|
11
11
|
<code>code</code>
|
12
|
-
<errorMessages><errorMessage><errorId>errorId</errorId><fieldId>
|
12
|
+
<errorMessages><errorMessage><errorId>errorId</errorId><fieldId>503</fieldId><msg>error message</msg><listIndex>1</listIndex><listIndex2>2</listIndex2></errorMessage></errorMessages>
|
13
13
|
<item>
|
14
14
|
<itemUrl>yyy</itemUrl>
|
15
15
|
</item>
|
@@ -2,6 +2,24 @@ require 'spec_helper'
|
|
2
2
|
require 'rms_web_service'
|
3
3
|
|
4
4
|
describe RmsWebService::Response::Item::Delete do
|
5
|
-
|
6
|
-
|
5
|
+
let(:api) {described_class.new(fixture('delete.xml'))}
|
6
|
+
|
7
|
+
describe 'attributes' do
|
8
|
+
it 'should respond to SystemResult' do
|
9
|
+
expect(api).to respond_to :status
|
10
|
+
end
|
11
|
+
|
12
|
+
it 'should respond to ItemDeleteResult' do
|
13
|
+
expect(api).to respond_to :code
|
14
|
+
expect(api).to respond_to :success?
|
15
|
+
end
|
16
|
+
|
17
|
+
it 'should respond to Item' do
|
18
|
+
expect(api).to respond_to :item_url
|
19
|
+
end
|
20
|
+
|
21
|
+
it 'should respond to ErrorMessage' do
|
22
|
+
expect(api).to respond_to :errors
|
23
|
+
end
|
24
|
+
end
|
7
25
|
end
|
@@ -1,8 +1,20 @@
|
|
1
|
+
#encoding: utf-8
|
1
2
|
require 'spec_helper'
|
2
3
|
require 'rms_web_service'
|
3
4
|
|
4
5
|
describe RWS::Response::Item::Error do
|
5
|
-
|
6
|
-
|
7
|
-
it {is_expected.to
|
6
|
+
let(:res) {{"error_id"=>"errorId", "field_id"=>"503", "msg"=>"error message", "list_index"=>"1", "list_index2"=>"2", "field"=>"item_price", "field_name"=>"販売価格"}}
|
7
|
+
subject {described_class.parse(fixture('update.xml').read)}
|
8
|
+
it("should return formatted error") {is_expected.to eq res}
|
9
|
+
|
10
|
+
describe 'optional attributes' do
|
11
|
+
it {is_expected.to include("field")}
|
12
|
+
it {is_expected.to include("field_name")}
|
13
|
+
end
|
14
|
+
|
15
|
+
describe 'invalid argument' do
|
16
|
+
it "" do
|
17
|
+
expect{described_class.parse(Array.new)}.to raise_error ArgumentError
|
18
|
+
end
|
19
|
+
end
|
8
20
|
end
|
@@ -2,7 +2,26 @@ require 'spec_helper'
|
|
2
2
|
require 'rms_web_service'
|
3
3
|
|
4
4
|
describe RmsWebService::Response::Item::Get do
|
5
|
-
|
6
|
-
|
7
|
-
|
5
|
+
let(:api) {described_class.new(fixture('get.xml'))}
|
6
|
+
|
7
|
+
describe 'attributes' do
|
8
|
+
it 'should respond to SystemResult' do
|
9
|
+
expect(api).to respond_to :status
|
10
|
+
end
|
11
|
+
|
12
|
+
it 'should respond to ItemGetResult' do
|
13
|
+
expect(api).to respond_to :code
|
14
|
+
expect(api).to respond_to :success?
|
15
|
+
end
|
16
|
+
|
17
|
+
it 'should respond to Item' do
|
18
|
+
expect(api).to respond_to :item_url
|
19
|
+
expect(api).to respond_to :item_name
|
20
|
+
expect(api).to respond_to :item_price
|
21
|
+
end
|
22
|
+
|
23
|
+
it 'should not respond to ErrorMessage' do
|
24
|
+
expect(api).not_to respond_to :errors
|
25
|
+
end
|
26
|
+
end
|
8
27
|
end
|
@@ -2,6 +2,24 @@ require 'spec_helper'
|
|
2
2
|
require 'rms_web_service'
|
3
3
|
|
4
4
|
describe RmsWebService::Response::Item::Insert do
|
5
|
-
|
6
|
-
|
5
|
+
let(:api) {described_class.new(fixture('insert.xml'))}
|
6
|
+
|
7
|
+
describe 'attributes' do
|
8
|
+
it 'should respond to SystemResult' do
|
9
|
+
expect(api).to respond_to :status
|
10
|
+
end
|
11
|
+
|
12
|
+
it 'should respond to ItemDeleteResult' do
|
13
|
+
expect(api).to respond_to :code
|
14
|
+
expect(api).to respond_to :success?
|
15
|
+
end
|
16
|
+
|
17
|
+
it 'should respond to Item' do
|
18
|
+
expect(api).to respond_to :item_url
|
19
|
+
end
|
20
|
+
|
21
|
+
it 'should respond to ErrorMessage' do
|
22
|
+
expect(api).to respond_to :errors
|
23
|
+
end
|
24
|
+
end
|
7
25
|
end
|
@@ -2,10 +2,27 @@ require 'spec_helper'
|
|
2
2
|
require 'rms_web_service'
|
3
3
|
|
4
4
|
describe RmsWebService::Response::Item::ItemsUpdate do
|
5
|
-
subject(:
|
6
|
-
it {is_expected.to respond_to(:status)}
|
7
|
-
it {is_expected.to_not respond_to(:code, :success?, :errors, :item_url)}
|
5
|
+
subject(:api) {described_class.new(fixture('items_update.xml'))}
|
8
6
|
it 'should be an array of RWS::Response::Item::Update' do
|
9
|
-
expect(
|
7
|
+
expect(api[0]).to be_a RWS::Response::Item::Update
|
8
|
+
end
|
9
|
+
|
10
|
+
describe 'attributes' do
|
11
|
+
it 'should respond to SystemResult' do
|
12
|
+
expect(api).to respond_to :status
|
13
|
+
end
|
14
|
+
|
15
|
+
it 'should not respond to ItemsUpdateResult' do
|
16
|
+
expect(api).not_to respond_to :code
|
17
|
+
expect(api).not_to respond_to :success?
|
18
|
+
end
|
19
|
+
|
20
|
+
it 'should not respond to Item' do
|
21
|
+
expect(api).not_to respond_to :item_url
|
22
|
+
end
|
23
|
+
|
24
|
+
it 'should not respond to ErrorMessage' do
|
25
|
+
expect(api).not_to respond_to :errors
|
26
|
+
end
|
10
27
|
end
|
11
28
|
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe RmsWebService::Response::Item::Parser do
|
4
|
+
describe "initialize" do
|
5
|
+
subject {::RWS::Response::Item::Update.new(fixture('update.xml'))}
|
6
|
+
it {is_expected.to be_a ::RWS::Response::Item::Parser}
|
7
|
+
end
|
8
|
+
|
9
|
+
describe "#errors" do
|
10
|
+
let(:api) {::RWS::Response::Item::Update.new(fixture('update.xml'))}
|
11
|
+
it "" do
|
12
|
+
expect(api.errors).to be_a Array
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -2,10 +2,27 @@ require 'spec_helper'
|
|
2
2
|
require 'rms_web_service'
|
3
3
|
|
4
4
|
describe RmsWebService::Response::Item::Search do
|
5
|
-
subject(:
|
6
|
-
it {is_expected.to respond_to(:status, :success?, :code)}
|
7
|
-
it {is_expected.to_not respond_to(:item_url, :errors)}
|
5
|
+
subject(:api) {described_class.new(fixture('search.xml'))}
|
8
6
|
it 'should be an array of RWS::Response::Item::Get' do
|
9
|
-
expect(
|
7
|
+
expect(api[0]).to be_a RWS::Response::Item::Get
|
8
|
+
end
|
9
|
+
|
10
|
+
describe 'attributes' do
|
11
|
+
it 'should respond to SystemResult' do
|
12
|
+
expect(api).to respond_to :status
|
13
|
+
end
|
14
|
+
|
15
|
+
it 'should respond to ItemSearchResult' do
|
16
|
+
expect(api).to respond_to :code
|
17
|
+
expect(api).to respond_to :success?
|
18
|
+
end
|
19
|
+
|
20
|
+
it 'should not respond to Item' do
|
21
|
+
expect(api).not_to respond_to :item_url
|
22
|
+
end
|
23
|
+
|
24
|
+
it 'should not respond to ErrorMessage' do
|
25
|
+
expect(api).not_to respond_to :errors
|
26
|
+
end
|
10
27
|
end
|
11
28
|
end
|
@@ -2,6 +2,24 @@ require 'spec_helper'
|
|
2
2
|
require 'rms_web_service'
|
3
3
|
|
4
4
|
describe RmsWebService::Response::Item::Update do
|
5
|
-
|
6
|
-
|
5
|
+
let(:api) {described_class.new(fixture('update.xml'))}
|
6
|
+
|
7
|
+
describe 'attributes' do
|
8
|
+
it 'should respond to SystemResult' do
|
9
|
+
expect(api).to respond_to :status
|
10
|
+
end
|
11
|
+
|
12
|
+
it 'should respond to ItemDeleteResult' do
|
13
|
+
expect(api).to respond_to :code
|
14
|
+
expect(api).to respond_to :success?
|
15
|
+
end
|
16
|
+
|
17
|
+
it 'should respond to Item' do
|
18
|
+
expect(api).to respond_to :item_url
|
19
|
+
end
|
20
|
+
|
21
|
+
it 'should respond to ErrorMessage' do
|
22
|
+
expect(api).to respond_to :errors
|
23
|
+
end
|
24
|
+
end
|
7
25
|
end
|
data/spec/spec_helper.rb
CHANGED
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.1.
|
4
|
+
version: 0.1.4
|
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-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
@@ -129,6 +129,7 @@ executables: []
|
|
129
129
|
extensions: []
|
130
130
|
extra_rdoc_files: []
|
131
131
|
files:
|
132
|
+
- .coveralls.yml
|
132
133
|
- .gitignore
|
133
134
|
- .rspec
|
134
135
|
- .travis.yml
|
@@ -145,6 +146,7 @@ files:
|
|
145
146
|
- lib/rms_web_service/response/item.rb
|
146
147
|
- lib/rms_web_service/response/item/delete.rb
|
147
148
|
- lib/rms_web_service/response/item/error.rb
|
149
|
+
- lib/rms_web_service/response/item/error/const.rb
|
148
150
|
- lib/rms_web_service/response/item/get.rb
|
149
151
|
- lib/rms_web_service/response/item/insert.rb
|
150
152
|
- lib/rms_web_service/response/item/items_update.rb
|
@@ -168,6 +170,7 @@ files:
|
|
168
170
|
- spec/rms_web_service/response/item/get_spec.rb
|
169
171
|
- spec/rms_web_service/response/item/insert_spec.rb
|
170
172
|
- spec/rms_web_service/response/item/items_update_spec.rb
|
173
|
+
- spec/rms_web_service/response/item/parser_spec.rb
|
171
174
|
- spec/rms_web_service/response/item/search_spec.rb
|
172
175
|
- spec/rms_web_service/response/item/status_spec.rb
|
173
176
|
- spec/rms_web_service/response/item/update_spec.rb
|
@@ -212,6 +215,7 @@ test_files:
|
|
212
215
|
- spec/rms_web_service/response/item/get_spec.rb
|
213
216
|
- spec/rms_web_service/response/item/insert_spec.rb
|
214
217
|
- spec/rms_web_service/response/item/items_update_spec.rb
|
218
|
+
- spec/rms_web_service/response/item/parser_spec.rb
|
215
219
|
- spec/rms_web_service/response/item/search_spec.rb
|
216
220
|
- spec/rms_web_service/response/item/status_spec.rb
|
217
221
|
- spec/rms_web_service/response/item/update_spec.rb
|