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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 06254144445b337f4c922aa9e52b5a764b01a69904e50a7b9c284845f5448d56
4
- data.tar.gz: 65b3112a520cde29312a12d664bbaa7b58b8d3685f06118fb21da390c18697a3
3
+ metadata.gz: 73f0cba24ef67b7f92782800786a5c0e21d530d07688e20402cd595dfaf58076
4
+ data.tar.gz: fcc2fb0d1069874b5f23d4931ac0fb919ecea707e9485159db7fe6984caf44bc
5
5
  SHA512:
6
- metadata.gz: f306abd563ad8ed44deec0429b581db0950022ba1a0c4aeebe9ba42ace0fbef5919ddfb3f67e724430b236d9b96c1dc345586a5623fec910f987c7afd80b2978
7
- data.tar.gz: e4ecbdf1e822c6994930670c4d72af4f5899457eb12a2ff3ec72d087647befaab54c054cd0db5be3acdf9b0290e724c1f95e15052249b74c243e277c834f41f3
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.2)
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 (6.1.5)
12
- activesupport (= 6.1.5)
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.5)
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.6)
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
@@ -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
@@ -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
- prefix_options, query_options = split_options(options[:params])
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
@@ -1,3 +1,3 @@
1
1
  module ShiprocketAPI
2
- VERSION = "0.5.3"
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", ">= 4.1.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,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: shiprocket_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.3
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-12 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
@@ -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