xpost 0.1.4 → 0.1.21

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 (49) hide show
  1. checksums.yaml +5 -5
  2. data/.DS_Store +0 -0
  3. data/.gitignore +1 -2
  4. data/.rspec +0 -0
  5. data/Gemfile +0 -0
  6. data/LICENSE +0 -0
  7. data/README.md +0 -0
  8. data/TODO.md +1 -28
  9. data/lib/xpost.rb +6 -8
  10. data/lib/xpost/authentication.rb +0 -5
  11. data/lib/xpost/configuration.rb +0 -15
  12. data/lib/xpost/models.rb +5 -0
  13. data/lib/xpost/models/address.rb +38 -0
  14. data/lib/xpost/models/item.rb +31 -0
  15. data/lib/xpost/models/order.rb +54 -0
  16. data/lib/xpost/orders.rb +16 -57
  17. data/lib/xpost/version.rb +1 -1
  18. data/spec/{order/address/address_spec.rb → address_spec.rb} +0 -0
  19. data/spec/factories/addresses.rb +28 -46
  20. data/spec/factories/items.rb +10 -10
  21. data/spec/factories/orders.rb +16 -39
  22. data/spec/helpers.rb +0 -0
  23. data/spec/{order/items/item_spec.rb → item_spec.rb} +5 -5
  24. data/spec/line_item_spec.rb +16 -0
  25. data/spec/orders/order_create_spec.rb +46 -0
  26. data/spec/orders/order_for_pickup_spec.rb +17 -0
  27. data/spec/orders/{find_spec.rb → orders_find_spec.rb} +2 -3
  28. data/spec/orders/{track_spec.rb → orders_track_spec.rb} +2 -2
  29. data/spec/spec_helper.rb +0 -1
  30. data/spec/xpost_spec.rb +0 -27
  31. data/xpost.gemspec +2 -6
  32. metadata +17 -68
  33. data/lib/.DS_Store +0 -0
  34. data/lib/xpost/.DS_Store +0 -0
  35. data/lib/xpost/address.rb +0 -77
  36. data/lib/xpost/item.rb +0 -44
  37. data/lib/xpost/order.rb +0 -135
  38. data/lib/xpost/statuses.rb +0 -29
  39. data/sample/sample_essential_order_details.json +0 -63
  40. data/sample/sample_xpost_order-confirmed.json +0 -317
  41. data/sample/sample_xpost_order-for-pickup.json +0 -379
  42. data/sample/sample_xpost_order-pending.json +0 -306
  43. data/sample/webhook_sample.json +0 -105
  44. data/spec/order/cancel_spec.rb +0 -37
  45. data/spec/order/confirm_spec.rb +0 -38
  46. data/spec/order/create_spec.rb +0 -97
  47. data/spec/order/for_pickup_spec.rb +0 -42
  48. data/spec/order/get_shipping_label_spec.rb +0 -60
  49. data/spec/order/order_spec.rb +0 -96
@@ -1,17 +1,17 @@
1
1
  FactoryBot.define do
2
- factory :product_item, class: Xpost::Item do
3
- product_type { "product" }
4
- description { "orange shirt" }
5
- amount { 1000 }
2
+ factory :product_item, class: Xpost::Models::Item do
3
+ type "product"
4
+ description "orange shirt"
5
+ amount 1200
6
6
  initialize_with { new(attributes) }
7
7
  end
8
8
 
9
- factory :complete_product_item, class: Xpost::Item do
10
- product_type { "product" }
11
- description { "red shirt" }
12
- amount { 1000 }
13
- quantity { 1 }
14
- metadata { "Small" }
9
+ factory :complete_product_item, class: Xpost::Models::Item do
10
+ type "product"
11
+ description "red shirt"
12
+ amount 1000
13
+ quantity 1
14
+ metadata "Small"
15
15
  initialize_with { new(attributes) }
16
16
  end
17
17
  end
@@ -1,53 +1,30 @@
1
- require 'faker'
2
-
3
1
  FactoryBot.define do
4
- factory :order, class: Xpost::Order do
5
- email { "john@me.com" }
6
- buyer_name { "John Doe" }
7
- contact_number { "+6391712345678" }
8
- reference_id { "xport-test-#{Faker::Number.number(10)}" }
9
-
10
- shipment { "small-pouch" }
11
- total { 1000 }
12
- currency { "PHP" }
13
- payment_method { "cod" }
14
- payment_provider { "lbcx" }
15
-
16
- items { [build(:complete_product_item)] }
17
- delivery_address { build(:complete_address) }
18
- end
19
-
20
- factory :cod_order, class: Xpost::Order do
21
- email { "john@me.com" }
22
- buyer_name { "John Doe" }
23
- contact_number { "+6391712345678" }
24
- reference_id { "xport-test-#{Faker::Number.number(10)}" }
2
+ factory :order, class: Xpost::Models::Order do
3
+ email "john@me.com"
4
+ buyer_name "John Doe"
5
+ contact_number "+6391712345678"
25
6
 
26
- shipment { "small-pouch" }
27
- total { 1000 }
28
- currency { "PHP" }
29
- payment_method { "cod" }
30
- payment_provider { "lbcx" }
7
+ total 1500
8
+ currency "PHP"
9
+ payment_method "cod"
10
+ payment_provider "lbcx"
31
11
 
32
12
  items { [build(:complete_product_item)] }
33
13
  delivery_address { build(:complete_address) }
34
14
  end
35
15
 
36
- factory :cod_order_ready_for_pickup, class: Xpost::Order do
37
- email { "john@me.com" }
38
- buyer_name { "John Doe" }
39
- contact_number { "+6391712345678" }
40
- reference_id { "xport-test-#{Faker::Number.number(10)}" }
16
+ factory :cod_order, class: Xpost::Models::Order do
17
+ email "john@me.com"
18
+ buyer_name "John Doe"
19
+ contact_number "+6391712345678"
41
20
 
42
- shipment { "small-pouch" }
43
- total { 1000 }
44
- currency { "PHP" }
45
- payment_method { "cod" }
46
- payment_provider { "lbcx" }
21
+ total 1500
22
+ currency "PHP"
23
+ payment_method "cod"
24
+ payment_provider "lbcx"
47
25
 
48
26
  items { [build(:complete_product_item)] }
49
27
  delivery_address { build(:complete_address) }
50
- pickup_address { build(:complete_address_pickup) }
51
28
  end
52
29
 
53
30
  # factory :confirmable_order, class: Xpost::Models::Order do
data/spec/helpers.rb CHANGED
File without changes
@@ -5,14 +5,14 @@ RSpec.describe 'Item' do
5
5
  item = build(:product_item)
6
6
 
7
7
  expect(item).to be_valid
8
- expect(item.product_type).to eq "product"
8
+ expect(item.type).to eq "product"
9
9
  expect(item.description).to eq "orange shirt"
10
- expect(item.amount).to eq 1000
10
+ expect(item.amount).to eq 1200
11
11
  end
12
12
 
13
13
  it 'requires a valid item_type' do
14
- expect(build(:product_item, product_type: "product")).to be_valid
15
- expect(build(:product_item, product_type: "productz")).not_to be_valid
14
+ expect(build(:product_item, type: "product")).to be_valid
15
+ expect(build(:product_item, type: "productz")).not_to be_valid
16
16
  end
17
17
 
18
18
  describe 'with required parameters' do
@@ -34,7 +34,7 @@ RSpec.describe 'Item' do
34
34
  end
35
35
 
36
36
  it 'is invalid without the required parameters' do
37
- item = build(:complete_product_item, product_type: nil)
37
+ item = build(:complete_product_item, type: nil)
38
38
  expect(item).not_to be_valid
39
39
  end
40
40
 
@@ -0,0 +1,16 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe 'LineItem' do
4
+
5
+ describe 'with require parameters' do
6
+ # it 'is valid' do
7
+ # line_item = build(:line_item)
8
+ # expect(line_item).to be_valid
9
+ # end
10
+
11
+ # it 'is invalid with missing parameters' do
12
+ # line_item = build(:line_item, type: nil)
13
+ # expect(line_item).not_to be_valid
14
+ # end
15
+ end
16
+ end
@@ -0,0 +1,46 @@
1
+ require 'set'
2
+ require 'spec_helper'
3
+
4
+ RSpec.describe "Orders.create" do
5
+ before(:each) do
6
+ @order = build(:order)
7
+ end
8
+
9
+ it 'requires a delivery address' do
10
+ order_without_delivery_address = build(:order, delivery_address: nil)
11
+ order_with_delivery_address = build(:order)
12
+ expect(order_without_delivery_address).not_to be_valid
13
+ expect(order_with_delivery_address).to be_valid
14
+ end
15
+
16
+ it 'requires a payment method' do
17
+ expect(@order.payment_method).to be_present
18
+ expect(@order.payment_provider).to be_present
19
+ end
20
+
21
+ it 'requires at least one product in line items' do
22
+ expect(@order.items.count).to eq 1
23
+ expect(@order.items.first.description).to eq "red shirt"
24
+ end
25
+
26
+ # TODO: Skipping calls for now to prevent multiple
27
+ # orders from being added to the staging site.
28
+
29
+
30
+ # it 'creates an order' do
31
+ # auth_token = Xpost::Authentication.local_auth
32
+ # @res = Xpost::Orders.create(auth_token, @order)
33
+ # expect(@res[:tracking_number]).to eq 200
34
+ # end
35
+
36
+ # describe 'returning a valid order object' do
37
+ # before(:each) do
38
+ # auth_token = Xpost::Authentication.local_auth
39
+ # @res = Xpost::Orders.create(auth_token, @order)
40
+ # end
41
+
42
+ # it 'has a tracking number'
43
+ # it 'has a status of confirming'
44
+ # end
45
+
46
+ end
@@ -0,0 +1,17 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe "@order.for_pickup" do
4
+ before do
5
+ Xpost.configure do |config|
6
+ config.api_key = 'api_key'
7
+ config.secret_key = 'secret_key'
8
+ config.staging_url = "https://api.staging.lbcx.ph/v1"
9
+ config.production_url = "https://api.staging.lbcx.ph/v1"
10
+ end
11
+ @auth_token = Xpost::Authentication.authenticate(Xpost.configuration.api_key, Xpost.configuration.secret_key)
12
+ end
13
+
14
+ it 'already has a delivery address'
15
+ it 'requires a pickup address'
16
+
17
+ end
@@ -3,8 +3,8 @@ require 'spec_helper'
3
3
  RSpec.describe "Orders.find" do
4
4
  before do
5
5
  Xpost.configure do |config|
6
- config.api_key = ENV['XPOST_STAGING_API_KEY']
7
- config.secret_key = ENV['XPOST_STAGING_SECRET_KEY']
6
+ config.api_key = 'api_key'
7
+ config.secret_key = 'secret_key'
8
8
  config.staging_url = "https://api.staging.lbcx.ph/v1"
9
9
  config.production_url = "https://api.staging.lbcx.ph/v1"
10
10
  end
@@ -16,7 +16,6 @@ RSpec.describe "Orders.find" do
16
16
  order = Xpost::Orders.find(@auth_token, tracking_number)
17
17
 
18
18
  expect(order[:id]).to eq 761174
19
- expect(order[:tracking_number]).to eq "0076-1174-PSAT"
20
19
  end
21
20
 
22
21
  it 'fails on an invalid order' do
@@ -3,8 +3,8 @@ require 'spec_helper'
3
3
  RSpec.describe "Orders.track" do
4
4
  before do
5
5
  Xpost.configure do |config|
6
- config.api_key = ENV['XPOST_STAGING_API_KEY']
7
- config.secret_key = ENV['XPOST_STAGING_SECRET_KEY']
6
+ config.api_key = 'api_key'
7
+ config.secret_key = 'secret_key'
8
8
  config.staging_url = "https://api.staging.lbcx.ph/v1"
9
9
  config.production_url = "https://api.staging.lbcx.ph/v1"
10
10
  end
data/spec/spec_helper.rb CHANGED
@@ -1,6 +1,5 @@
1
1
  require 'bundler/setup'
2
2
  require 'factory_bot'
3
- require 'dotenv/load'
4
3
  require 'xpost'
5
4
 
6
5
  require 'helpers'
data/spec/xpost_spec.rb CHANGED
@@ -33,32 +33,5 @@ RSpec.describe Xpost do
33
33
  end
34
34
  end
35
35
  end
36
-
37
- describe 'Statuses' do
38
- before do
39
- Xpost.configure do |config|
40
- config.api_key = ENV['XPOST_STAGING_API_KEY']
41
- config.secret_key = ENV['XPOST_STAGING_SECRET_KEY']
42
- config.staging_url = "https://api.staging.lbcx.ph/v1"
43
- config.production_url = "https://api.staging.lbcx.ph/v1"
44
- end
45
- @auth_token = Xpost::Authentication.authenticate(Xpost.configuration.api_key, Xpost.configuration.secret_key)
46
- end
47
-
48
- it 'returns statuses' do
49
- statuses = Xpost::Statuses.all(@auth_token)
50
-
51
- expect(statuses.count).to_not eq 0
52
- expect(statuses.first[:name]).to eq "pending"
53
- expect(statuses.first[:label]).to eq "Pending"
54
- end
55
-
56
- it 'fails to retrieve statuses with an invalid auth_token' do
57
- statuses = Xpost::Statuses.all("random_invalid_auth_token")
58
-
59
- expect(statuses[:status]).to eq 401
60
- expect(statuses[:message]).to eq "Unauthorized"
61
- end
62
- end
63
36
  end
64
37
 
data/xpost.gemspec CHANGED
@@ -9,7 +9,7 @@ Gem::Specification.new do |s|
9
9
  s.email = 'david@xpanse.ph'
10
10
 
11
11
  s.summary = "xpost Ruby API"
12
- s.date = '2018-08-09'
12
+ s.date = '2018-04-27'
13
13
  s.description = "A quick wrapped of the xpost API written by xpanse."
14
14
  s.homepage = 'http://rubygems.org/gems/xpost'
15
15
  s.license = 'MIT'
@@ -17,16 +17,12 @@ Gem::Specification.new do |s|
17
17
  s.files = `git ls-files`.split("\n")
18
18
  s.require_paths = ["lib"]
19
19
 
20
- s.add_runtime_dependency 'activemodel', '~> 6.0'
21
-
20
+ s.add_dependency 'activemodel', '~> 5.2'
22
21
  s.add_dependency 'typhoeus', '~> 1.3'
23
22
  s.add_dependency 'factory_bot', '~> 4.8'
24
- s.add_dependency 'fast_jsonapi', '~> 1.3'
25
23
  # s.add_dependency 'vcr', '~> 4.0'
26
24
 
27
25
  s.add_development_dependency 'bundler', "~> 1.16"
28
- s.add_development_dependency 'faker', "~> 1.9"
29
26
  s.add_development_dependency 'rake', "~> 12.3"
30
27
  s.add_development_dependency 'rspec', '~> 3.2'
31
- s.add_development_dependency 'dotenv', '~> 2.5'
32
28
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: xpost
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.21
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Marquez
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-08-09 00:00:00.000000000 Z
11
+ date: 2018-04-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activemodel
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '6.0'
19
+ version: '5.2'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '6.0'
26
+ version: '5.2'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: typhoeus
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -52,20 +52,6 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '4.8'
55
- - !ruby/object:Gem::Dependency
56
- name: fast_jsonapi
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - "~>"
60
- - !ruby/object:Gem::Version
61
- version: '1.3'
62
- type: :runtime
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - "~>"
67
- - !ruby/object:Gem::Version
68
- version: '1.3'
69
55
  - !ruby/object:Gem::Dependency
70
56
  name: bundler
71
57
  requirement: !ruby/object:Gem::Requirement
@@ -80,20 +66,6 @@ dependencies:
80
66
  - - "~>"
81
67
  - !ruby/object:Gem::Version
82
68
  version: '1.16'
83
- - !ruby/object:Gem::Dependency
84
- name: faker
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - "~>"
88
- - !ruby/object:Gem::Version
89
- version: '1.9'
90
- type: :development
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - "~>"
95
- - !ruby/object:Gem::Version
96
- version: '1.9'
97
69
  - !ruby/object:Gem::Dependency
98
70
  name: rake
99
71
  requirement: !ruby/object:Gem::Requirement
@@ -122,20 +94,6 @@ dependencies:
122
94
  - - "~>"
123
95
  - !ruby/object:Gem::Version
124
96
  version: '3.2'
125
- - !ruby/object:Gem::Dependency
126
- name: dotenv
127
- requirement: !ruby/object:Gem::Requirement
128
- requirements:
129
- - - "~>"
130
- - !ruby/object:Gem::Version
131
- version: '2.5'
132
- type: :development
133
- prerelease: false
134
- version_requirements: !ruby/object:Gem::Requirement
135
- requirements:
136
- - - "~>"
137
- - !ruby/object:Gem::Version
138
- version: '2.5'
139
97
  description: A quick wrapped of the xpost API written by xpanse.
140
98
  email: david@xpanse.ph
141
99
  executables: []
@@ -149,36 +107,26 @@ files:
149
107
  - LICENSE
150
108
  - README.md
151
109
  - TODO.md
152
- - lib/.DS_Store
153
110
  - lib/xpost.rb
154
- - lib/xpost/.DS_Store
155
- - lib/xpost/address.rb
156
111
  - lib/xpost/authentication.rb
157
112
  - lib/xpost/configuration.rb
158
- - lib/xpost/item.rb
159
- - lib/xpost/order.rb
113
+ - lib/xpost/models.rb
114
+ - lib/xpost/models/address.rb
115
+ - lib/xpost/models/item.rb
116
+ - lib/xpost/models/order.rb
160
117
  - lib/xpost/orders.rb
161
- - lib/xpost/statuses.rb
162
118
  - lib/xpost/version.rb
163
- - sample/sample_essential_order_details.json
164
- - sample/sample_xpost_order-confirmed.json
165
- - sample/sample_xpost_order-for-pickup.json
166
- - sample/sample_xpost_order-pending.json
167
- - sample/webhook_sample.json
119
+ - spec/address_spec.rb
168
120
  - spec/factories/addresses.rb
169
121
  - spec/factories/items.rb
170
122
  - spec/factories/orders.rb
171
123
  - spec/helpers.rb
172
- - spec/order/address/address_spec.rb
173
- - spec/order/cancel_spec.rb
174
- - spec/order/confirm_spec.rb
175
- - spec/order/create_spec.rb
176
- - spec/order/for_pickup_spec.rb
177
- - spec/order/get_shipping_label_spec.rb
178
- - spec/order/items/item_spec.rb
179
- - spec/order/order_spec.rb
180
- - spec/orders/find_spec.rb
181
- - spec/orders/track_spec.rb
124
+ - spec/item_spec.rb
125
+ - spec/line_item_spec.rb
126
+ - spec/orders/order_create_spec.rb
127
+ - spec/orders/order_for_pickup_spec.rb
128
+ - spec/orders/orders_find_spec.rb
129
+ - spec/orders/orders_track_spec.rb
182
130
  - spec/spec_helper.rb
183
131
  - spec/xpost_spec.rb
184
132
  - xpost.gemspec
@@ -201,7 +149,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
201
149
  - !ruby/object:Gem::Version
202
150
  version: '0'
203
151
  requirements: []
204
- rubygems_version: 3.0.1
152
+ rubyforge_project:
153
+ rubygems_version: 2.6.14
205
154
  signing_key:
206
155
  specification_version: 4
207
156
  summary: xpost Ruby API