Class: NzPostApi::Resources::ParcelTrack
- Inherits:
-
Object
- Object
- NzPostApi::Resources::ParcelTrack
- Defined in:
- lib/nz_post_api/resources/parcel_track.rb
Instance Method Summary collapse
- #base_url ⇒ Object
-
#initialize(client) ⇒ ParcelTrack
constructor
A new instance of ParcelTrack.
- #subscribe(tracking_reference:, notification_endpoint:) ⇒ Object
- #track(tracking_reference) ⇒ Object
- #unsubscribe(subscription_guid:) ⇒ Object
Constructor Details
#initialize(client) ⇒ ParcelTrack
Returns a new instance of ParcelTrack.
10 11 12 |
# File 'lib/nz_post_api/resources/parcel_track.rb', line 10 def initialize(client) @client = client end |
Instance Method Details
#base_url ⇒ Object
6 7 8 |
# File 'lib/nz_post_api/resources/parcel_track.rb', line 6 def base_url "#{@client.base_url}/parceltrack/3.0/parcels" end |
#subscribe(tracking_reference:, notification_endpoint:) ⇒ Object
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/nz_post_api/resources/parcel_track.rb', line 28 def subscribe(tracking_reference:, notification_endpoint:) payload = { tracking_reference: tracking_reference, notification_endpoint: notification_endpoint } response = @client.connection.post("#{base_url.sub('parcels', 'subscription/webhook/')}", payload) if response.success? Objects::ParcelTrackSubscription.new(response.body) else raise NzPostApi::Error.new( "Failed to subscribe to parcel: #{response.status} - #{response.body}", response_http_code: response.status, response_body: response.body ) end end |
#track(tracking_reference) ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/nz_post_api/resources/parcel_track.rb', line 14 def track(tracking_reference) response = @client.connection.get("#{base_url}/#{tracking_reference}") if response.success? Objects::ParcelTrack.new(response.body["results"]) else raise NzPostApi::Error.new( "Failed to track parcel: #{response.status} - #{response.body}", response_http_code: response.status, response_body: response.body ) end end |
#unsubscribe(subscription_guid:) ⇒ Object
46 47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/nz_post_api/resources/parcel_track.rb', line 46 def unsubscribe(subscription_guid:) response = @client.connection.delete("#{base_url.sub('parcels', 'subscription/webhook')}/#{subscription_guid}") if response.success? true else raise NzPostApi::Error.new( "Failed to unsubscribe from parcel: #{response.status} - #{response.body}", response_http_code: response.status, response_body: response.body ) end end |