shiprocket_api 0.5.3 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
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