shiprocket_api 0.5.3 → 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 +4 -4
- data/Gemfile.lock +9 -9
- data/lib/dev/config.rb +1 -1
- data/lib/shiprocket_api/resources/base.rb +10 -11
- data/lib/shiprocket_api/resources/return_order.rb +8 -9
- data/lib/shiprocket_api/return_order_collection.rb +36 -0
- data/lib/shiprocket_api/version.rb +1 -1
- data/lib/shiprocket_api.rb +1 -0
- data/shiprocket_api.gemspec +22 -21
- metadata +26 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 73f0cba24ef67b7f92782800786a5c0e21d530d07688e20402cd595dfaf58076
|
4
|
+
data.tar.gz: fcc2fb0d1069874b5f23d4931ac0fb919ecea707e9485159db7fe6984caf44bc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 44f0fab7e4580de012143c99846fb25c8a343960baa239c23ee993b007e05c2e4951d88a2fee4eb74737710c60f730a472b58b537e1fd30c2f6b0f184bfc5487
|
7
|
+
data.tar.gz: adf0558e26c6a57bb2e75d7e46bcc82ab9b2fe45a53c429ca7b93617cd1d3a38e07170dc1cb850ba397f1ba09db1f9b4c424f0029e909ea07d7f772f3e7d6c93
|
data/Gemfile.lock
CHANGED
@@ -1,29 +1,28 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
shiprocket_api (0.5.
|
4
|
+
shiprocket_api (0.5.3)
|
5
5
|
activeresource (>= 4.1.0)
|
6
6
|
http
|
7
7
|
|
8
8
|
GEM
|
9
9
|
remote: https://rubygems.org/
|
10
10
|
specs:
|
11
|
-
activemodel (
|
12
|
-
activesupport (=
|
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 (
|
18
|
-
activemodel (>=
|
17
|
+
activeresource (6.0.0)
|
18
|
+
activemodel (>= 6.0)
|
19
19
|
activemodel-serializers-xml (~> 1.0)
|
20
|
-
activesupport (>=
|
21
|
-
activesupport (
|
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
26
|
addressable (2.8.0)
|
28
27
|
public_suffix (>= 2.0.2, < 5.0)
|
29
28
|
builder (3.2.4)
|
@@ -81,7 +80,7 @@ GEM
|
|
81
80
|
pry-byebug (3.9.0)
|
82
81
|
byebug (~> 11.0)
|
83
82
|
pry (~> 0.13.0)
|
84
|
-
public_suffix (4.0.
|
83
|
+
public_suffix (4.0.7)
|
85
84
|
rake (12.3.3)
|
86
85
|
rb-fsevent (0.11.1)
|
87
86
|
rb-inotify (0.10.1)
|
@@ -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
124
|
2.3.8
|
data/lib/dev/config.rb
CHANGED
@@ -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 =
|
9
|
-
|
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
|
-
|
16
|
+
connection.bearer_token = session.token
|
17
17
|
end
|
18
|
-
|
18
|
+
|
19
19
|
def clear_session
|
20
20
|
self.session = nil
|
21
|
-
|
21
|
+
connection.bearer_token = nil
|
22
22
|
end
|
23
23
|
|
24
24
|
def with_temp_session(email:, password:, &block)
|
25
|
-
raise ArgumentError,
|
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
|
@@ -7,6 +7,8 @@ module ShiprocketAPI
|
|
7
7
|
|
8
8
|
has_many :order_items, class_name: 'ShiprocketAPI::OrderItem'
|
9
9
|
|
10
|
+
self.collection_parser = ReturnOrderCollection
|
11
|
+
|
10
12
|
DEFAULT_ATTRS = {
|
11
13
|
order_id: '',
|
12
14
|
order_date: '',
|
@@ -52,15 +54,7 @@ module ShiprocketAPI
|
|
52
54
|
|
53
55
|
def find_every(options)
|
54
56
|
set_prefix_to_list_all do
|
55
|
-
|
56
|
-
path = collection_path(prefix_options, query_options)
|
57
|
-
instantiate_collection((format.decode(connection.get(path, headers).body)['data'] || []), query_options,
|
58
|
-
prefix_options)
|
59
|
-
rescue ActiveResource::ResourceNotFound
|
60
|
-
# Swallowing ResourceNotFound exceptions and return nil - as per
|
61
|
-
# ActiveRecord.
|
62
|
-
set_prefix_to_add
|
63
|
-
nil
|
57
|
+
super
|
64
58
|
end
|
65
59
|
end
|
66
60
|
end
|
@@ -77,3 +71,8 @@ module ShiprocketAPI
|
|
77
71
|
end
|
78
72
|
end
|
79
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
|
data/lib/shiprocket_api.rb
CHANGED
data/shiprocket_api.gemspec
CHANGED
@@ -1,37 +1,38 @@
|
|
1
1
|
require_relative 'lib/shiprocket_api/version'
|
2
2
|
|
3
3
|
Gem::Specification.new do |spec|
|
4
|
-
spec.name =
|
4
|
+
spec.name = 'shiprocket_api'
|
5
5
|
spec.version = ShiprocketAPI::VERSION
|
6
|
-
spec.authors = [
|
7
|
-
spec.email = [
|
6
|
+
spec.authors = ['Andy Chong']
|
7
|
+
spec.email = ['andygg1996personal@gmail.com']
|
8
8
|
|
9
|
-
spec.summary =
|
10
|
-
spec.homepage =
|
11
|
-
spec.license =
|
12
|
-
spec.required_ruby_version = Gem::Requirement.new(
|
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[
|
14
|
+
spec.metadata['allowed_push_host'] = 'https://rubygems.org/'
|
15
15
|
|
16
|
-
spec.metadata[
|
17
|
-
spec.metadata[
|
18
|
-
spec.metadata[
|
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
|
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 =
|
25
|
+
spec.bindir = 'exe'
|
26
26
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
27
|
-
spec.require_paths = [
|
27
|
+
spec.require_paths = ['lib']
|
28
28
|
|
29
|
-
spec.add_dependency
|
30
|
-
spec.add_dependency
|
29
|
+
spec.add_dependency 'activeresource', '>= 4.1.0'
|
30
|
+
spec.add_dependency 'http'
|
31
31
|
|
32
|
-
spec.add_development_dependency
|
33
|
-
spec.add_development_dependency
|
34
|
-
spec.add_development_dependency
|
35
|
-
spec.add_development_dependency
|
36
|
-
spec.add_development_dependency
|
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,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: shiprocket_api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
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: 2022-04-
|
11
|
+
date: 2022-04-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activeresource
|
@@ -39,21 +39,21 @@ dependencies:
|
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: dotenv
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - "
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
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: '
|
54
|
+
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
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
|
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:
|
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
|