smartsend-ruby 0.4.3 → 0.5.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/.ruby-version +1 -0
- data/README.md +3 -0
- data/lib/smartsend/client.rb +13 -7
- data/lib/smartsend/label.rb +16 -0
- data/lib/smartsend/version.rb +1 -1
- data/lib/smartsend.rb +1 -0
- data/test/test_label.rb +16 -0
- metadata +5 -1
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: d36b8c30a86a4866accdd796d49fde62d5e2fe8454460d1a28d21620f52d57db
         | 
| 4 | 
            +
              data.tar.gz: 00c0cf8b2b5f219f03b4ccdc06aecdf3353c183909dd417721a19a927e784c2e
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 6462b9a13139bf477a86c27aa5a5bdbdd5b53c56923b94f4fece41108bbc6373f2522a056ed7c7b5220dc07eeedabccd9daa57f487b7bf66591fd7be49af3e26
         | 
| 7 | 
            +
              data.tar.gz: 89df2896fa3dac223e5333cd43f7c2cbca5b2fcef7a5f3a33d82d5f3bb66b1be33500153a3d361c9e5db8a14f2a8fc5e0fa7f520fa29bd084da54528cd83c6aa
         | 
    
        data/.ruby-version
    ADDED
    
    | @@ -0,0 +1 @@ | |
| 1 | 
            +
            2.5
         | 
    
        data/README.md
    CHANGED
    
    
    
        data/lib/smartsend/client.rb
    CHANGED
    
    | @@ -3,17 +3,23 @@ require 'logger' | |
| 3 3 |  | 
| 4 4 | 
             
            class Smartsend::Client
         | 
| 5 5 |  | 
| 6 | 
            -
              def initialize(account=nil)
         | 
| 6 | 
            +
              def initialize(account=nil, debug: false)
         | 
| 7 7 | 
             
                @account = account || Smartsend.account
         | 
| 8 | 
            +
                @debug = debug
         | 
| 8 9 | 
             
              end
         | 
| 9 10 |  | 
| 10 11 | 
             
              def post(path, params)
         | 
| 12 | 
            +
                debug("POST #{path}")
         | 
| 13 | 
            +
                debug(params)
         | 
| 14 | 
            +
             | 
| 11 15 | 
             
                request do
         | 
| 12 16 | 
             
                  http.post(url(path), json: params)
         | 
| 13 17 | 
             
                end
         | 
| 14 18 | 
             
              end
         | 
| 15 19 |  | 
| 16 20 | 
             
              def get(path)
         | 
| 21 | 
            +
                debug("GET #{path}")
         | 
| 22 | 
            +
             | 
| 17 23 | 
             
                request do
         | 
| 18 24 | 
             
                  http.get(url(path))
         | 
| 19 25 | 
             
                end
         | 
| @@ -26,8 +32,8 @@ class Smartsend::Client | |
| 26 32 | 
             
              def request
         | 
| 27 33 | 
             
                response = yield
         | 
| 28 34 |  | 
| 29 | 
            -
                 | 
| 30 | 
            -
                 | 
| 35 | 
            +
                debug(response)
         | 
| 36 | 
            +
                debug(response.body.to_s)
         | 
| 31 37 |  | 
| 32 38 | 
             
                case response.code
         | 
| 33 39 | 
             
                when (200..299)
         | 
| @@ -68,16 +74,16 @@ class Smartsend::Client | |
| 68 74 |  | 
| 69 75 | 
             
              private
         | 
| 70 76 |  | 
| 77 | 
            +
              def debug(value)
         | 
| 78 | 
            +
                Logger.new($stdout).debug(value) if @debug
         | 
| 79 | 
            +
              end
         | 
| 80 | 
            +
             | 
| 71 81 | 
             
              BASE_URL = 'http://smartsend-prod.apigee.net/api/v1'.freeze
         | 
| 72 82 |  | 
| 73 83 | 
             
              def url(path)
         | 
| 74 84 | 
             
                "#{BASE_URL}/#{path}?api_token=#{@account.api_token}"
         | 
| 75 85 | 
             
              end
         | 
| 76 86 |  | 
| 77 | 
            -
              def logger
         | 
| 78 | 
            -
                Logger.new($stdout)
         | 
| 79 | 
            -
              end
         | 
| 80 | 
            -
             | 
| 81 87 | 
             
              def user_agent_string
         | 
| 82 88 | 
             
                (["Ruby/#{Smartsend::VERSION}"] + @account.user_agents.to_a).join(' ')
         | 
| 83 89 | 
             
              end
         | 
| @@ -0,0 +1,16 @@ | |
| 1 | 
            +
            class Smartsend::Label
         | 
| 2 | 
            +
              attr_accessor :tracking_code, :url, :pdf
         | 
| 3 | 
            +
             | 
| 4 | 
            +
              def self.find_by_tracking_code(tracking_code, account: nil)
         | 
| 5 | 
            +
                response = Smartsend::Client.new(account, debug: true).get("shipments/tracking/#{tracking_code}/labels")
         | 
| 6 | 
            +
             | 
| 7 | 
            +
                if response.success?
         | 
| 8 | 
            +
                  label = new
         | 
| 9 | 
            +
                  label.tracking_code = tracking_code
         | 
| 10 | 
            +
                  label.url = response.dig('data', 'pdf', 'link')
         | 
| 11 | 
            +
                  label.pdf = response.dig('data', 'pdf', 'base_64_encoded')
         | 
| 12 | 
            +
                  label
         | 
| 13 | 
            +
                end
         | 
| 14 | 
            +
              end
         | 
| 15 | 
            +
             | 
| 16 | 
            +
            end
         | 
    
        data/lib/smartsend/version.rb
    CHANGED
    
    
    
        data/lib/smartsend.rb
    CHANGED
    
    | @@ -39,6 +39,7 @@ require_relative 'smartsend/services' | |
| 39 39 | 
             
            require_relative 'smartsend/parcel'
         | 
| 40 40 | 
             
            require_relative 'smartsend/parcel_item'
         | 
| 41 41 | 
             
            require_relative 'smartsend/client'
         | 
| 42 | 
            +
            require_relative 'smartsend/label'
         | 
| 42 43 | 
             
            require_relative 'smartsend/account'
         | 
| 43 44 | 
             
            require_relative 'smartsend/version'
         | 
| 44 45 | 
             
            require_relative 'smartsend/request_error'
         | 
    
        data/test/test_label.rb
    ADDED
    
    | @@ -0,0 +1,16 @@ | |
| 1 | 
            +
            require 'minitest/autorun'
         | 
| 2 | 
            +
            require 'smartsend'
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            class ShipmentTest < Minitest::Test
         | 
| 5 | 
            +
             | 
| 6 | 
            +
              def test_find_label
         | 
| 7 | 
            +
                Smartsend.configure(
         | 
| 8 | 
            +
                  api_token: ENV['SMARTSEND_TOKEN'],
         | 
| 9 | 
            +
                )
         | 
| 10 | 
            +
             | 
| 11 | 
            +
                assert_raises Smartsend::NotFoundError do
         | 
| 12 | 
            +
                  Smartsend::Label.find_by_tracking_code('123')
         | 
| 13 | 
            +
                end
         | 
| 14 | 
            +
              end
         | 
| 15 | 
            +
             | 
| 16 | 
            +
            end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: smartsend-ruby
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0. | 
| 4 | 
            +
              version: 0.5.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Aske Hansen
         | 
| @@ -31,6 +31,7 @@ extensions: [] | |
| 31 31 | 
             
            extra_rdoc_files: []
         | 
| 32 32 | 
             
            files:
         | 
| 33 33 | 
             
            - ".gitignore"
         | 
| 34 | 
            +
            - ".ruby-version"
         | 
| 34 35 | 
             
            - Gemfile
         | 
| 35 36 | 
             
            - Gemfile.lock
         | 
| 36 37 | 
             
            - MIT-LICENSE
         | 
| @@ -42,6 +43,7 @@ files: | |
| 42 43 | 
             
            - lib/smartsend/address.rb
         | 
| 43 44 | 
             
            - lib/smartsend/agent.rb
         | 
| 44 45 | 
             
            - lib/smartsend/client.rb
         | 
| 46 | 
            +
            - lib/smartsend/label.rb
         | 
| 45 47 | 
             
            - lib/smartsend/parcel.rb
         | 
| 46 48 | 
             
            - lib/smartsend/parcel_item.rb
         | 
| 47 49 | 
             
            - lib/smartsend/receiver.rb
         | 
| @@ -52,6 +54,7 @@ files: | |
| 52 54 | 
             
            - lib/smartsend/version.rb
         | 
| 53 55 | 
             
            - smartsend-ruby.gemspec
         | 
| 54 56 | 
             
            - test/test_account.rb
         | 
| 57 | 
            +
            - test/test_label.rb
         | 
| 55 58 | 
             
            - test/test_shipment.rb
         | 
| 56 59 | 
             
            - test/test_smartsend.rb
         | 
| 57 60 | 
             
            homepage: https://github.com/smartsendio/smartsend-ruby
         | 
| @@ -80,5 +83,6 @@ specification_version: 4 | |
| 80 83 | 
             
            summary: Smartsend.io api client
         | 
| 81 84 | 
             
            test_files:
         | 
| 82 85 | 
             
            - test/test_account.rb
         | 
| 86 | 
            +
            - test/test_label.rb
         | 
| 83 87 | 
             
            - test/test_shipment.rb
         | 
| 84 88 | 
             
            - test/test_smartsend.rb
         |