shiprocket_api 0.5.1 → 0.6.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: daaeb47a98dc3ffd00727499089bb409b69e4675b2bde2cf4b8af03f47f88529
4
- data.tar.gz: 3da69f20d46ae87a86442a104a1bbc7738996fe2b42fdd5a0a79dd80c550879f
3
+ metadata.gz: 73f0cba24ef67b7f92782800786a5c0e21d530d07688e20402cd595dfaf58076
4
+ data.tar.gz: fcc2fb0d1069874b5f23d4931ac0fb919ecea707e9485159db7fe6984caf44bc
5
5
  SHA512:
6
- metadata.gz: 8af0d4efaff52ee451c2ffe961e266400d680e755f871b63204bef4a4034a7d5fa2f324124264b720511a4424fa02d31ef57fdb0e145bc5b35bfe872ee53452f
7
- data.tar.gz: 863d695ae42750b80296109f1a6fa07165ec718557e997c84929e0fc147dd0aeba422802799fc0ae006eeed77d63a54bb3c40dbd723eefa04df12bf1c1d8640f
6
+ metadata.gz: 44f0fab7e4580de012143c99846fb25c8a343960baa239c23ee993b007e05c2e4951d88a2fee4eb74737710c60f730a472b58b537e1fd30c2f6b0f184bfc5487
7
+ data.tar.gz: adf0558e26c6a57bb2e75d7e46bcc82ab9b2fe45a53c429ca7b93617cd1d3a38e07170dc1cb850ba397f1ba09db1f9b4c424f0029e909ea07d7f772f3e7d6c93
data/Gemfile.lock CHANGED
@@ -1,40 +1,39 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- shiprocket_api (0.4.4)
5
- activeresource (~> 5.0)
4
+ shiprocket_api (0.5.3)
5
+ activeresource (>= 4.1.0)
6
6
  http
7
7
 
8
8
  GEM
9
9
  remote: https://rubygems.org/
10
10
  specs:
11
- activemodel (6.1.3.2)
12
- activesupport (= 6.1.3.2)
11
+ activemodel (7.0.2.4)
12
+ activesupport (= 7.0.2.4)
13
13
  activemodel-serializers-xml (1.0.2)
14
14
  activemodel (> 5.x)
15
15
  activesupport (> 5.x)
16
16
  builder (~> 3.1)
17
- activeresource (5.1.1)
18
- activemodel (>= 5.0, < 7)
17
+ activeresource (6.0.0)
18
+ activemodel (>= 6.0)
19
19
  activemodel-serializers-xml (~> 1.0)
20
- activesupport (>= 5.0, < 7)
21
- activesupport (6.1.3.2)
20
+ activesupport (>= 6.0)
21
+ activesupport (7.0.2.4)
22
22
  concurrent-ruby (~> 1.0, >= 1.0.2)
23
23
  i18n (>= 1.6, < 2)
24
24
  minitest (>= 5.1)
25
25
  tzinfo (~> 2.0)
26
- zeitwerk (~> 2.3)
27
- addressable (2.7.0)
26
+ addressable (2.8.0)
28
27
  public_suffix (>= 2.0.2, < 5.0)
29
28
  builder (3.2.4)
30
29
  byebug (11.1.3)
31
30
  coderay (1.1.2)
32
- concurrent-ruby (1.1.8)
31
+ concurrent-ruby (1.1.10)
33
32
  diff-lcs (1.3)
34
33
  domain_name (0.5.20190701)
35
34
  unf (>= 0.0.5, < 1.0.0)
36
35
  dotenv (2.7.6)
37
- ffi (1.13.1)
36
+ ffi (1.15.5)
38
37
  ffi-compiler (1.0.1)
39
38
  ffi (>= 1.0.0)
40
39
  rake
@@ -58,19 +57,19 @@ GEM
58
57
  http-cookie (~> 1.0)
59
58
  http-form_data (~> 2.2)
60
59
  http-parser (~> 1.2.0)
61
- http-cookie (1.0.3)
60
+ http-cookie (1.0.4)
62
61
  domain_name (~> 0.5)
63
62
  http-form_data (2.3.0)
64
63
  http-parser (1.2.3)
65
64
  ffi-compiler (>= 1.0, < 2.0)
66
- i18n (1.8.10)
65
+ i18n (1.10.0)
67
66
  concurrent-ruby (~> 1.0)
68
- listen (3.2.1)
67
+ listen (3.7.1)
69
68
  rb-fsevent (~> 0.10, >= 0.10.3)
70
69
  rb-inotify (~> 0.9, >= 0.9.10)
71
70
  lumberjack (1.2.4)
72
71
  method_source (1.0.0)
73
- minitest (5.14.4)
72
+ minitest (5.15.0)
74
73
  nenv (0.3.0)
75
74
  notiffany (0.1.3)
76
75
  nenv (~> 0.1)
@@ -81,9 +80,9 @@ GEM
81
80
  pry-byebug (3.9.0)
82
81
  byebug (~> 11.0)
83
82
  pry (~> 0.13.0)
84
- public_suffix (4.0.6)
83
+ public_suffix (4.0.7)
85
84
  rake (12.3.3)
86
- rb-fsevent (0.10.4)
85
+ rb-fsevent (0.11.1)
87
86
  rb-inotify (0.10.1)
88
87
  ffi (~> 1.0)
89
88
  rspec (3.9.0)
@@ -105,8 +104,8 @@ GEM
105
104
  concurrent-ruby (~> 1.0)
106
105
  unf (0.1.4)
107
106
  unf_ext
108
- unf_ext (0.0.7.7)
109
- zeitwerk (2.4.2)
107
+ unf_ext (0.0.8.1)
108
+ zeitwerk (2.5.4)
110
109
 
111
110
  PLATFORMS
112
111
  ruby
@@ -119,6 +118,7 @@ DEPENDENCIES
119
118
  rake (~> 12.0)
120
119
  rspec (~> 3.0)
121
120
  shiprocket_api!
121
+ zeitwerk
122
122
 
123
123
  BUNDLED WITH
124
- 2.1.4
124
+ 2.3.8
data/lib/dev/config.rb CHANGED
@@ -2,7 +2,7 @@ require "dotenv/load"
2
2
 
3
3
  def set_config
4
4
  ShiprocketAPI.configure do |config|
5
- config.email = ENV["SHIPROCKET_API_USERNAME"]
5
+ config.email = ENV["SHIPROCKET_API_EMAIL"]
6
6
  config.password = ENV["SHIPROCKET_API_PASSWORD"]
7
7
  end
8
8
  end
@@ -5,24 +5,24 @@ module ShiprocketAPI
5
5
  self.connection_class = ShiprocketAPI::Connection
6
6
  self.include_root_in_json = false
7
7
  self.include_format_in_path = false
8
- self.site = "https://apiv2.shiprocket.in"
9
- self.connection.auth_type = :bearer
8
+ self.site = 'https://apiv2.shiprocket.in'
9
+ connection.auth_type = :bearer
10
10
  self.prefix = '/v1/external'
11
11
  self.session = nil
12
12
 
13
13
  class << self
14
14
  def create_session(email: ShiprocketAPI.config.email, password: ShiprocketAPI.config.password)
15
15
  self.session = Session.create(email: email, password: password)
16
- self.connection.bearer_token = session.token
16
+ connection.bearer_token = session.token
17
17
  end
18
-
18
+
19
19
  def clear_session
20
20
  self.session = nil
21
- self.connection.bearer_token = nil
21
+ connection.bearer_token = nil
22
22
  end
23
23
 
24
24
  def with_temp_session(email:, password:, &block)
25
- raise ArgumentError, "A block must be given" unless block
25
+ raise ArgumentError, 'A block must be given' unless block
26
26
 
27
27
  create_session(email: email, password: password)
28
28
  yield
@@ -33,16 +33,15 @@ module ShiprocketAPI
33
33
  ori_prefix = self.prefix
34
34
  self.prefix = prefix
35
35
  result = yield
36
- self.prefix = ori_prefix
37
36
  result
37
+ ensure
38
+ self.prefix = ori_prefix
38
39
  end
39
40
  end
40
41
 
41
42
  def initialize(attributes = {}, persisted = false)
42
- if defined?(self.class::DEFAULT_ATTRS)
43
- attributes = self.class::DEFAULT_ATTRS.merge(attributes)
44
- end
43
+ attributes = self.class::DEFAULT_ATTRS.merge(attributes) if defined?(self.class::DEFAULT_ATTRS)
45
44
  super
46
45
  end
47
46
  end
48
- end
47
+ end
@@ -37,16 +37,16 @@ module ShiprocketAPI
37
37
  height: '',
38
38
  weight: ''
39
39
  }
40
- end
41
40
 
42
- def generate_awb(courier_id:)
43
- return false unless attributes['shipment_id'] && shipment_id != 0
41
+ def generate_awb(courier_id:)
42
+ return false unless attributes['shipment_id'] && shipment_id != 0
44
43
 
45
- self.awb = ::ShiprocketAPI::Awb.new(
46
- shipment_id: shipment_id,
47
- courier_id: courier_id,
48
- is_return: 0
49
- )
50
- awb.save
44
+ self.awb = ::ShiprocketAPI::Awb.new(
45
+ shipment_id: shipment_id,
46
+ courier_id: courier_id,
47
+ is_return: 0
48
+ )
49
+ awb.save
50
+ end
51
51
  end
52
52
  end
@@ -5,6 +5,10 @@ module ShiprocketAPI
5
5
  self.prefix += '/orders/create/return'
6
6
  self.element_name = ''
7
7
 
8
+ has_many :order_items, class_name: 'ShiprocketAPI::OrderItem'
9
+
10
+ self.collection_parser = ReturnOrderCollection
11
+
8
12
  DEFAULT_ATTRS = {
9
13
  order_id: '',
10
14
  order_date: '',
@@ -50,15 +54,7 @@ module ShiprocketAPI
50
54
 
51
55
  def find_every(options)
52
56
  set_prefix_to_list_all do
53
- prefix_options, query_options = split_options(options[:params])
54
- path = collection_path(prefix_options, query_options)
55
- instantiate_collection((format.decode(connection.get(path, headers).body)['data'] || []), query_options,
56
- prefix_options)
57
- rescue ActiveResource::ResourceNotFound
58
- # Swallowing ResourceNotFound exceptions and return nil - as per
59
- # ActiveRecord.
60
- set_prefix_to_add
61
- nil
57
+ super
62
58
  end
63
59
  end
64
60
  end
@@ -75,3 +71,8 @@ module ShiprocketAPI
75
71
  end
76
72
  end
77
73
  end
74
+
75
+ # reload!
76
+ # ShiprocketAPI::Base.create_session
77
+ # orders = ShiprocketAPI::ReturnOrder.all
78
+ # orders.fetch_next_page
@@ -0,0 +1,36 @@
1
+ module ShiprocketAPI
2
+ class ReturnOrderCollection < ActiveResource::Collection
3
+ def initialize(args)
4
+ @per_page = args.dig('meta', 'pagination', 'per_page')
5
+ @next_url = args.dig('meta', 'pagination', 'links', 'next')
6
+ @previous_url = args.dig('meta', 'pagination', 'links', 'previous')
7
+ super(args['data'])
8
+ end
9
+
10
+ def previous_page?
11
+ previous_url.present?
12
+ end
13
+
14
+ def next_page?
15
+ next_url.present?
16
+ end
17
+
18
+ def fetch_next_page
19
+ fetch_page(next_url)
20
+ end
21
+
22
+ def fetch_previous_page
23
+ fetch_page(previous_url)
24
+ end
25
+
26
+ private
27
+
28
+ def fetch_page(url)
29
+ return [] unless url.present?
30
+
31
+ resource_class.all(from: url + "&per_page=#{per_page}")
32
+ end
33
+
34
+ attr_reader :per_page, :next_url, :previous_url
35
+ end
36
+ end
@@ -1,17 +1,19 @@
1
- module Shared
2
- module OrderHelper
3
- def generate_label
4
- return false unless attributes['shipment_id'] && shipment_id != 0
1
+ module ShiprocketAPI
2
+ module Shared
3
+ module OrderHelper
4
+ def generate_label
5
+ return false unless attributes['shipment_id'] && shipment_id != 0
5
6
 
6
- self.label = ::ShiprocketAPI::Label.new(shipment_id: [shipment_id])
7
- label.save
8
- end
7
+ self.label = ::ShiprocketAPI::Label.new(shipment_id: [shipment_id])
8
+ label.save
9
+ end
9
10
 
10
- def create_pickup
11
- return false unless attributes['shipment_id'] && shipment_id != 0
11
+ def create_pickup
12
+ return false unless attributes['shipment_id'] && shipment_id != 0
12
13
 
13
- self.pickup = ::ShiprocketAPI::Pickup.new(shipment_id: [shipment_id])
14
- pickup.save
14
+ self.pickup = ::ShiprocketAPI::Pickup.new(shipment_id: [shipment_id])
15
+ pickup.save
16
+ end
15
17
  end
16
18
  end
17
19
  end
@@ -1,3 +1,3 @@
1
1
  module ShiprocketAPI
2
- VERSION = "0.5.1"
2
+ VERSION = "0.6.0"
3
3
  end
@@ -6,6 +6,7 @@ module ShiprocketAPI
6
6
  require 'shiprocket_api/configuration'
7
7
  require 'shiprocket_api/connection'
8
8
  require 'shiprocket_api/errors'
9
+ require 'shiprocket_api/return_order_collection'
9
10
 
10
11
  require 'shiprocket_api/shared/order_helper'
11
12
 
@@ -1,37 +1,38 @@
1
1
  require_relative 'lib/shiprocket_api/version'
2
2
 
3
3
  Gem::Specification.new do |spec|
4
- spec.name = "shiprocket_api"
4
+ spec.name = 'shiprocket_api'
5
5
  spec.version = ShiprocketAPI::VERSION
6
- spec.authors = ["Andy Chong"]
7
- spec.email = ["andygg1996personal@gmail.com"]
6
+ spec.authors = ['Andy Chong']
7
+ spec.email = ['andygg1996personal@gmail.com']
8
8
 
9
- spec.summary = "Ruby object based Sendle API wrapper."
10
- spec.homepage = "https://github.com/PostCo/sendle_api"
11
- spec.license = "MIT"
12
- spec.required_ruby_version = Gem::Requirement.new(">= 2.3.0")
9
+ spec.summary = 'Ruby object based Sendle API wrapper.'
10
+ spec.homepage = 'https://github.com/PostCo/sendle_api'
11
+ spec.license = 'MIT'
12
+ spec.required_ruby_version = Gem::Requirement.new('>= 2.3.0')
13
13
 
14
- spec.metadata["allowed_push_host"] = "https://rubygems.org/"
14
+ spec.metadata['allowed_push_host'] = 'https://rubygems.org/'
15
15
 
16
- spec.metadata["homepage_uri"] = spec.homepage
17
- spec.metadata["source_code_uri"] = "https://github.com/PostCo/shiprocket_api"
18
- spec.metadata["changelog_uri"] = "https://github.com/PostCo/shiprocket_api/releases"
16
+ spec.metadata['homepage_uri'] = spec.homepage
17
+ spec.metadata['source_code_uri'] = 'https://github.com/PostCo/shiprocket_api'
18
+ spec.metadata['changelog_uri'] = 'https://github.com/PostCo/shiprocket_api/releases'
19
19
 
20
20
  # Specify which files should be added to the gem when it is released.
21
21
  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
22
- spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
22
+ spec.files = Dir.chdir(File.expand_path(__dir__)) do
23
23
  `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
24
24
  end
25
- spec.bindir = "exe"
25
+ spec.bindir = 'exe'
26
26
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
27
- spec.require_paths = ["lib"]
27
+ spec.require_paths = ['lib']
28
28
 
29
- spec.add_dependency "activeresource", "~> 5.0"
30
- spec.add_dependency "http"
29
+ spec.add_dependency 'activeresource', '>= 4.1.0'
30
+ spec.add_dependency 'http'
31
31
 
32
- spec.add_development_dependency "rspec", "~> 3.2"
33
- spec.add_development_dependency "dotenv"
34
- spec.add_development_dependency "pry-byebug"
35
- spec.add_development_dependency "pry"
36
- spec.add_development_dependency "guard-rspec"
32
+ spec.add_development_dependency 'dotenv'
33
+ spec.add_development_dependency 'guard-rspec'
34
+ spec.add_development_dependency 'pry'
35
+ spec.add_development_dependency 'pry-byebug'
36
+ spec.add_development_dependency 'rspec', '~> 3.2'
37
+ spec.add_development_dependency 'zeitwerk'
37
38
  end
metadata CHANGED
@@ -1,29 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: shiprocket_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.1
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andy Chong
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-05-15 00:00:00.000000000 Z
11
+ date: 2022-04-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activeresource
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '5.0'
19
+ version: 4.1.0
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: '5.0'
26
+ version: 4.1.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: http
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -39,21 +39,21 @@ dependencies:
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
- name: rspec
42
+ name: dotenv
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: '3.2'
47
+ version: '0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - "~>"
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
- version: '3.2'
54
+ version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
- name: dotenv
56
+ name: guard-rspec
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - ">="
@@ -67,7 +67,7 @@ dependencies:
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
- name: pry-byebug
70
+ name: pry
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - ">="
@@ -81,7 +81,7 @@ dependencies:
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
83
  - !ruby/object:Gem::Dependency
84
- name: pry
84
+ name: pry-byebug
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - ">="
@@ -95,7 +95,21 @@ dependencies:
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
97
  - !ruby/object:Gem::Dependency
98
- name: guard-rspec
98
+ name: rspec
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '3.2'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '3.2'
111
+ - !ruby/object:Gem::Dependency
112
+ name: zeitwerk
99
113
  requirement: !ruby/object:Gem::Requirement
100
114
  requirements:
101
115
  - - ">="
@@ -146,6 +160,7 @@ files:
146
160
  - lib/shiprocket_api/resources/return_order.rb
147
161
  - lib/shiprocket_api/resources/session.rb
148
162
  - lib/shiprocket_api/resources/tracking.rb
163
+ - lib/shiprocket_api/return_order_collection.rb
149
164
  - lib/shiprocket_api/shared/order_helper.rb
150
165
  - lib/shiprocket_api/version.rb
151
166
  - shiprocket_api.gemspec
@@ -172,7 +187,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
172
187
  - !ruby/object:Gem::Version
173
188
  version: '0'
174
189
  requirements: []
175
- rubygems_version: 3.1.6
190
+ rubygems_version: 3.2.32
176
191
  signing_key:
177
192
  specification_version: 4
178
193
  summary: Ruby object based Sendle API wrapper.