Class: ShiprocketAPI::Base
- Inherits:
-
ActiveResource::Base
- Object
- ActiveResource::Base
- ShiprocketAPI::Base
show all
- Extended by:
- ThreadsafeAttributes
- Defined in:
- lib/shiprocket_api/resources/base.rb
Direct Known Subclasses
Awb, Channel, CourierServiceability, CustomOrder, ForwardShipment, Label, OrderItem, Pickup, PickupLocation, ReturnOrder, Session, Tracking
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
#initialize(attributes = {}, persisted = false) ⇒ Base
Returns a new instance of Base.
49
50
51
52
|
# File 'lib/shiprocket_api/resources/base.rb', line 49
def initialize(attributes = {}, persisted = false)
attributes = self.class::DEFAULT_ATTRS.merge(attributes) if defined?(self.class::DEFAULT_ATTRS)
super
end
|
Class Method Details
.clear_session ⇒ Object
25
26
27
28
|
# File 'lib/shiprocket_api/resources/base.rb', line 25
def clear_session
self.session = nil
connection.bearer_token = nil
end
|
.create_session(email: ShiprocketAPI.config.email, password: ShiprocketAPI.config.password) ⇒ Object
16
17
18
19
20
21
22
23
|
# File 'lib/shiprocket_api/resources/base.rb', line 16
def create_session(email: ShiprocketAPI.config.email, password: ShiprocketAPI.config.password)
cache_key = Digest::SHA2.new(256).hexdigest("#{email}-#{password}")
self.session = cache.fetch(cache_key, expires_in: 9.days) do
Session.create(email: email, password: password)
end
connection.bearer_token = session.token
end
|
.set_prefix(prefix) ⇒ Object
39
40
41
42
43
44
45
46
|
# File 'lib/shiprocket_api/resources/base.rb', line 39
def set_prefix(prefix)
ori_prefix = self.prefix
self.prefix = prefix
result = yield
result
ensure
self.prefix = ori_prefix
end
|
.temp_session(email:, password:, &block) ⇒ Object
30
31
32
33
34
35
36
37
|
# File 'lib/shiprocket_api/resources/base.rb', line 30
def temp_session(email:, password:, &block)
raise ArgumentError, 'A block must be given' unless block
create_session(email: email, password: password)
yield
ensure
create_session
end
|