walmart_open 0.0.8 → 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.
Files changed (33) hide show
  1. data/README.md +0 -101
  2. data/lib/walmart_open/client.rb +0 -17
  3. data/lib/walmart_open/config.rb +1 -17
  4. data/lib/walmart_open/connection_manager.rb +5 -15
  5. data/lib/walmart_open/errors.rb +0 -6
  6. data/lib/walmart_open/request.rb +13 -6
  7. data/lib/walmart_open/requests/feed.rb +2 -2
  8. data/lib/walmart_open/requests/lookup.rb +2 -2
  9. data/lib/walmart_open/requests/search.rb +2 -2
  10. data/lib/walmart_open/requests/taxonomy.rb +2 -2
  11. data/lib/walmart_open/version.rb +1 -1
  12. data/spec/walmart_open/client_spec.rb +0 -18
  13. data/spec/walmart_open/config_spec.rb +2 -9
  14. data/spec/walmart_open/connection_manager_spec.rb +3 -10
  15. metadata +2 -27
  16. data/lib/walmart_open/auth_token.rb +0 -25
  17. data/lib/walmart_open/commerce_request.rb +0 -23
  18. data/lib/walmart_open/order.rb +0 -55
  19. data/lib/walmart_open/order_item.rb +0 -17
  20. data/lib/walmart_open/order_results.rb +0 -40
  21. data/lib/walmart_open/order_xml_builder.rb +0 -62
  22. data/lib/walmart_open/ordered_item.rb +0 -31
  23. data/lib/walmart_open/product_request.rb +0 -28
  24. data/lib/walmart_open/requests/place_order.rb +0 -58
  25. data/lib/walmart_open/requests/token.rb +0 -30
  26. data/lib/walmart_open/shipping_address.rb +0 -46
  27. data/spec/walmart_open/auth_token_spec.rb +0 -53
  28. data/spec/walmart_open/order_item_spec.rb +0 -43
  29. data/spec/walmart_open/order_results_spec.rb +0 -83
  30. data/spec/walmart_open/order_spec.rb +0 -130
  31. data/spec/walmart_open/requests/place_order_spec.rb +0 -151
  32. data/spec/walmart_open/requests/token_spec.rb +0 -49
  33. data/spec/walmart_open/shipping_address_spec.rb +0 -142
@@ -1,43 +0,0 @@
1
- require "spec_helper"
2
- require "walmart_open/order_item"
3
-
4
- describe WalmartOpen::OrderItem do
5
- context ".new" do
6
- it "sets value correctly" do
7
- item_id = 10371356
8
- item_price = 1.23
9
- item_shipping_price = 2.20
10
- order_item = WalmartOpen::OrderItem.new(item_id, 1, item_price, item_shipping_price)
11
-
12
- expect(order_item.item_id).to eq(item_id)
13
- expect(order_item.quantity).to eq(1)
14
- expect(order_item.item_price).to eq(item_price)
15
- expect(order_item.shipping_price).to eq(item_shipping_price)
16
- expect(order_item).to be_valid
17
- end
18
-
19
- context "#valid?" do
20
- context "when required field are present" do
21
- it "returns true" do
22
- item_id = 10371356
23
- order_item = WalmartOpen::OrderItem.new(item_id, 1)
24
-
25
- expect(order_item.item_id).to eq(item_id)
26
- expect(order_item.quantity).to eq(1)
27
- expect(order_item).to be_valid
28
- end
29
- end
30
-
31
- context "when required field are not present" do
32
- it "returns false" do
33
- item_id = nil
34
- order_item = WalmartOpen::OrderItem.new(item_id, 1)
35
-
36
- expect(order_item.item_id).to eq(item_id)
37
- expect(order_item.quantity).to eq(1)
38
- expect(order_item).not_to be_valid
39
- end
40
- end
41
- end
42
- end
43
- end
@@ -1,83 +0,0 @@
1
- require "spec_helper"
2
- require "walmart_open/order_results"
3
-
4
- describe WalmartOpen::OrderResults do
5
- let(:order_results_1_item_attrs) do
6
- {
7
- "response" => {
8
- "orderId" =>"2677921715556",
9
- "partnerOrderId" =>"43",
10
- "items" => {
11
- "item" => {
12
- "itemId"=>"10371356",
13
- "quantity"=>"1",
14
- "itemPrice"=>"22.97"
15
- }
16
- },
17
- "total" => "29.95",
18
- "itemTotal" => "22.97",
19
- "shipping" =>"4.97",
20
- "salesTax" =>"2.01",
21
- "surcharge" =>"0.00"
22
- }
23
- }
24
- end
25
-
26
- let(:order_results_2_item_attrs) do
27
- {
28
- "response" => {
29
- "orderId" => "2677922016720",
30
- "partnerOrderId" => "44",
31
- "items" => {
32
- "item" => [
33
- {
34
- "itemId" => "20658394",
35
- "quantity" => "1",
36
- "itemPrice" => "12.99"
37
- },
38
- {
39
- "itemId" => "10371356",
40
- "quantity" => "1",
41
- "itemPrice" => "22.97"
42
- }
43
- ]
44
- },
45
- "total" => "39.11",
46
- "itemTotal" => "35.96",
47
- "shipping" => "0",
48
- "salesTax" => "3.15",
49
- "surcharge" => "0.00"
50
- }
51
- }
52
- end
53
-
54
- context ".new" do
55
- it "sets value correctly with one item" do
56
- res = WalmartOpen::OrderResults.new(order_results_1_item_attrs)
57
-
58
- expect(res.order_id).to eq(order_results_1_item_attrs["response"]["orderId"])
59
- expect(res.partner_order_id).to eq(order_results_1_item_attrs["response"]["partnerOrderId"])
60
- expect(res.total).to eq(order_results_1_item_attrs["response"]["itemTotal"])
61
- expect(res.shipping).to eq(order_results_1_item_attrs["response"]["shipping"])
62
- expect(res.sales_tax).to eq(order_results_1_item_attrs["response"]["salesTax"])
63
- expect(res.surcharge).to eq(order_results_1_item_attrs["response"]["surcharge"])
64
- expect(res.raw_attributes).to eq(order_results_1_item_attrs)
65
- expect(res.items.count).to eq(1)
66
- expect(res).not_to be_error
67
- end
68
-
69
- it "sets value correctly with multiple items" do
70
- res = WalmartOpen::OrderResults.new(order_results_2_item_attrs)
71
-
72
- expect(res.order_id).to eq(order_results_2_item_attrs["response"]["orderId"])
73
- expect(res.partner_order_id).to eq(order_results_2_item_attrs["response"]["partnerOrderId"])
74
- expect(res.total).to eq(order_results_2_item_attrs["response"]["itemTotal"])
75
- expect(res.shipping).to eq(order_results_2_item_attrs["response"]["shipping"])
76
- expect(res.sales_tax).to eq(order_results_2_item_attrs["response"]["salesTax"])
77
- expect(res.surcharge).to eq(order_results_2_item_attrs["response"]["surcharge"])
78
- expect(res.raw_attributes).to eq(order_results_2_item_attrs)
79
- expect(res.items.count).to eq(2)
80
- expect(res).not_to be_error
81
- end
82
- end
83
- end
@@ -1,130 +0,0 @@
1
- require "spec_helper"
2
- require "walmart_open/order"
3
-
4
- describe WalmartOpen::Order do
5
- # mix symbol key and string key for testing purpose
6
- let(:basic_order_params) do
7
- {
8
- billing_record_id: 1,
9
- partner_order_id: "42",
10
- partner_order_time: Time.now
11
- }
12
- end
13
-
14
- let(:shipping_addr_params) do
15
- {
16
- first_name: "Testfirstname",
17
- last_name: "Fong",
18
- street1: "Listia Inc, 200 Blossom Ln",
19
- street2: "street2 test",
20
- city: "Mountain View",
21
- state: "CA",
22
- zipcode: "94043",
23
- country: "USA",
24
- phone: "606-478-0850"
25
- }
26
- end
27
-
28
- let(:required_attrs) do
29
- [:billing_record_id, :first_name, :street1, :city, :state, :zipcode, :country, :phone]
30
- end
31
-
32
- let(:valid_order_params) { basic_order_params.merge(shipping_addr_params)}
33
-
34
- context "create order" do
35
- let(:order) { WalmartOpen::Order.new(valid_order_params) }
36
-
37
- context ".new" do
38
- it "sets value correctly" do
39
- expect(order.billing_record_id).to eql(valid_order_params[:billing_record_id])
40
- expect(order.partner_order_time).to eq(valid_order_params[:partner_order_time])
41
- expect(order.partner_order_id).to eq(valid_order_params[:partner_order_id])
42
-
43
- expect(order.shipping_address).to be_valid
44
- expect(order.shipping_address.first_name).to eql(valid_order_params[:first_name])
45
- expect(order.shipping_address.last_name).to eql(valid_order_params[:last_name])
46
- expect(order.shipping_address.phone).to eql(valid_order_params[:phone])
47
-
48
- expect(order.items).to be_empty
49
- end
50
-
51
- it "accepts string keys" do
52
- stringified_valid_attrs = valid_order_params.each_with_object({}) do |pair, obj|
53
- obj[pair.first.to_s] = pair.last
54
- end
55
- order = WalmartOpen::Order.new(stringified_valid_attrs)
56
-
57
- expect(order.billing_record_id).to eql(valid_order_params[:billing_record_id])
58
- expect(order.partner_order_time).to eq(valid_order_params[:partner_order_time])
59
- expect(order.partner_order_id).to eq(valid_order_params[:partner_order_id])
60
-
61
- expect(order.shipping_address).to be_valid
62
- expect(order.shipping_address.first_name).to eql(valid_order_params[:first_name])
63
- expect(order.shipping_address.last_name).to eql(valid_order_params[:last_name])
64
- expect(order.shipping_address.phone).to eql(valid_order_params[:phone])
65
-
66
- expect(order.items).to be_empty
67
- end
68
- end
69
-
70
- context "#add_item" do
71
- it "adds item object" do
72
- item = double
73
- order.add_item(item)
74
- expect(order.items).not_to be_empty
75
- end
76
-
77
- it "adds item by id" do
78
- order.add_item(1)
79
- expect(order.items).not_to be_empty
80
- end
81
- end
82
- end
83
-
84
- context "#valid?" do
85
- context "when required order params are present" do
86
- before do
87
- valid_order_params.delete(:last_name)
88
- valid_order_params.delete("street2")
89
- @order = WalmartOpen::Order.new(valid_order_params)
90
- @order.add_item(1)
91
- end
92
-
93
- it "returns true" do
94
- expect(@order).to be_valid
95
- end
96
- end
97
-
98
- context "when required order params are not present" do
99
- shared_examples_for "missing required key" do |optional_key|
100
- before do
101
- valid_order_params.delete(optional_key) if optional_key
102
- end
103
-
104
- it "returns false" do
105
- order = WalmartOpen::Order.new(valid_order_params)
106
- order.add_item(item_id) if item_id
107
-
108
- expect(order).not_to be_valid
109
- end
110
- end
111
-
112
- context "when order item present" do
113
- let(:item_id) { 1 }
114
- it_behaves_like "missing required key", :billing_record_id
115
- it_behaves_like "missing required key", :first_name
116
- it_behaves_like "missing required key", :street1
117
- it_behaves_like "missing required key", :city
118
- it_behaves_like "missing required key", :state
119
- it_behaves_like "missing required key", :zipcode
120
- it_behaves_like "missing required key", :country
121
- it_behaves_like "missing required key", :phone
122
- end
123
-
124
- context "when order item not present" do
125
- let(:item_id) {nil}
126
- it_behaves_like "missing required key", nil
127
- end
128
- end
129
- end
130
- end
@@ -1,151 +0,0 @@
1
- require "spec_helper"
2
- require "walmart_open/requests/place_order"
3
- require "walmart_open/order"
4
- require "walmart_open/client"
5
- require "walmart_open/errors"
6
-
7
- describe WalmartOpen::Requests::PlaceOrder do
8
- context "#submit" do
9
- let(:order_attrs) do
10
- {
11
- billing_id: 1,
12
- first_name: "James",
13
- last_name: "Fong",
14
- partner_order_id: "44",
15
- phone: "606-478-0850"
16
- }
17
- end
18
-
19
- let(:multiple_order_response) do
20
- {
21
- "response" => {
22
- "orderId" => "2677911169085",
23
- "partnerOrderId" => "8",
24
- "items" => {
25
- "item" => [
26
- {
27
- "itemId" => "25174174",
28
- "quantity" => "1",
29
- "itemPrice" => "214.99"
30
- },
31
- {
32
- "itemId" => "10371356",
33
- "quantity" => "1",
34
- "itemPrice" => "22.97"
35
- }
36
- ]
37
- },
38
- "total" => "259.38",
39
- "itemTotal" => "237.96",
40
- "shipping" => "0",
41
- "salesTax" => "21.42",
42
- "surcharge" => "0.00"
43
- }
44
- }
45
- end
46
-
47
- let(:single_order_response) do
48
- {
49
- "response" => {
50
- "orderId" => "2677913310915",
51
- "partnerOrderId" => "20",
52
- "items" => {
53
- "item" => {
54
- "itemId" => "10371356",
55
- "quantity" => "1",
56
- "itemPrice" => "22.97"
57
- }
58
- },
59
- "total" => "29.95",
60
- "itemTotal" => "22.97",
61
- "shipping" => "4.97",
62
- "salesTax" => "2.01",
63
- "surcharge" => "0.00"
64
- }
65
- }
66
- end
67
-
68
- let(:client) { WalmartOpen::Client.new }
69
- let(:order) { WalmartOpen::Order.new(order_attrs) }
70
- let(:order_req) { WalmartOpen::Requests::PlaceOrder.new(order) }
71
- let(:success_response) { double(success?: true) }
72
- let(:fail_response) { double(success?: false) }
73
-
74
- before do
75
- allow(order_req).to receive(:request_options).and_return({})
76
- end
77
-
78
- context "when response is success" do
79
- before do
80
- allow(HTTParty).to receive(:post).and_return(success_response)
81
- allow(success_response).to receive(:code).and_return(200)
82
- end
83
-
84
- context "when multiple orders" do
85
- before do
86
- allow(success_response).to receive(:parsed_response).and_return(multiple_order_response)
87
- end
88
-
89
- it "return response" do
90
- order = order_req.submit(client)
91
- expect(order.raw_attributes).to eq(multiple_order_response)
92
- end
93
- end
94
-
95
- context "when one order" do
96
- before do
97
- allow(success_response).to receive(:parsed_response).and_return(single_order_response)
98
- end
99
-
100
- it "return response" do
101
- order = order_req.submit(client)
102
- expect(order.raw_attributes).to eq(single_order_response)
103
- end
104
- end
105
- end
106
-
107
- context "when response is not success" do
108
- before do
109
- allow(HTTParty).to receive(:post).and_return(fail_response)
110
- end
111
-
112
- context "response has http code 400" do
113
- before do
114
- allow(fail_response).to receive(:code).and_return(400)
115
- allow(fail_response).to receive(:parsed_response).and_return({
116
- "errors" => {
117
- "error" => {
118
- "code" => "10020",
119
- "message" => "This order has already been executed"
120
- }
121
- }
122
- })
123
- end
124
-
125
- it "raises order error" do
126
- expect{
127
- order_req.submit(client)
128
- }.to raise_error(WalmartOpen::OrderError)
129
- end
130
- end
131
-
132
- context "response has http code not 400" do
133
- before do
134
- allow(fail_response).to receive(:code).and_return(403)
135
- allow(fail_response).to receive(:parsed_response).and_return({
136
- "errors" => [{
137
- "code" => 403,
138
- "message" => "Account Inactive"
139
- }]
140
- })
141
- end
142
-
143
- it "raises authentication error" do
144
- expect {
145
- order_req.submit(client)
146
- }.to raise_error(WalmartOpen::ServerError)
147
- end
148
- end
149
- end
150
- end
151
- end
@@ -1,49 +0,0 @@
1
- require "spec_helper"
2
- require "walmart_open/requests/token"
3
- require "walmart_open/client"
4
- require "walmart_open/errors"
5
-
6
- describe WalmartOpen::Requests::Token do
7
- context "#submit" do
8
- let(:client) {WalmartOpen::Client.new}
9
- let(:token_req) { WalmartOpen::Requests::Token.new }
10
- let(:success_response) { double(success?: true) }
11
- let(:fail_response) { double(success?: false) }
12
-
13
- context "when response is success" do
14
- before do
15
- allow(HTTParty).to receive(:post).and_return(success_response)
16
- attrs = {
17
- "token_type" => "bearer",
18
- "mapi" => "8tbvkxd6gu6zjzp6qbyeewb6",
19
- "access_token" => "k5pzg6jqtetygmrkm5y6qqnr",
20
- "expires_in" => 600
21
- }
22
- allow(success_response).to receive(:parsed_response).and_return(attrs)
23
- header_attrs = {"date"=> "Sun, 01 Dec 2013 07:25:35 GMT"}
24
- allow(success_response).to receive(:headers).and_return(header_attrs)
25
- end
26
-
27
- it "get response" do
28
- token = token_req.submit(client)
29
-
30
- expect(token.token_type).to eq("bearer")
31
- expect(token.access_token).to eq("k5pzg6jqtetygmrkm5y6qqnr")
32
- expect(token.time).to eq(Time.parse("Sun, 01 Dec 2013 07:25:35 GMT"))
33
- end
34
- end
35
-
36
- context "when response is not success" do
37
- before do
38
- allow(HTTParty).to receive(:post).and_return(fail_response)
39
- allow(fail_response).to receive(:parsed_response).and_return({"errors"=>[{"code"=>403, "message"=>"Account Inactive"}]})
40
- end
41
-
42
- it "get authentication error" do
43
- expect{
44
- token_req.submit(client)
45
- }.to raise_error(WalmartOpen::ServerError)
46
- end
47
- end
48
- end
49
- end