rms_web_service 0.1.3 → 0.1.4
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
[![Gem Version](https://badge.fury.io/rb/rms_web_service.svg)](http://badge.fury.io/rb/rms_web_service)
|
6
6
|
[![Build Status](https://travis-ci.org/kamiya54/rms_web_service.svg)](https://travis-ci.org/kamiya54/rms_web_service)
|
7
|
+
[![Coverage Status](https://coveralls.io/repos/kamiya54/rms_web_service/badge.png)](https://coveralls.io/r/kamiya54/rms_web_service)
|
8
|
+
[![Code Climate](https://codeclimate.com/github/kamiya54/rms_web_service/badges/gpa.svg)](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
|