pin_payment 0.5.1 → 0.5.2
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/Gemfile +1 -0
- data/Gemfile.lock +6 -3
- data/lib/pin_payment.rb +1 -0
- data/lib/pin_payment/base.rb +4 -0
- data/lib/pin_payment/charge.rb +9 -0
- data/lib/pin_payment/customer.rb +4 -0
- data/lib/pin_payment/refund.rb +13 -2
- data/lib/pin_payment/transfer.rb +3 -3
- data/lib/pin_payment/version.rb +1 -1
- data/pin_payment.gemspec +2 -2
- data/test/fixtures/responses.yml +2 -0
- data/test/test_pin_customer.rb +15 -0
- data/test/test_pin_setup.rb +1 -1
- metadata +14 -15
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 1dfb1ab658537697e3c6f11264745662ee3e35dd
         | 
| 4 | 
            +
              data.tar.gz: 20fc251cc598cda75a17a8c0a5eff56c4d2c9643
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: ee665c32242d24ebd7d57803f733c434e12af65236de28da4d0b8f05fd58499c63798ecc02ca2701778a2b6c76f38d80e8c0950b47ed094165ad96ac56cfce35
         | 
| 7 | 
            +
              data.tar.gz: b6951a24fda40f460075767ae4fddb3970020268cc9c7baa23f2692a738204fb3efcc8bbec49283ba16deffb59458d41c6652c3b395c440d622d04815cce9d3d
         | 
    
        data/Gemfile
    CHANGED
    
    
    
        data/Gemfile.lock
    CHANGED
    
    | @@ -1,20 +1,23 @@ | |
| 1 1 | 
             
            PATH
         | 
| 2 2 | 
             
              remote: .
         | 
| 3 3 | 
             
              specs:
         | 
| 4 | 
            -
                pin_payment (0.5. | 
| 4 | 
            +
                pin_payment (0.5.2)
         | 
| 5 5 |  | 
| 6 6 | 
             
            GEM
         | 
| 7 7 | 
             
              remote: https://rubygems.org/
         | 
| 8 8 | 
             
              specs:
         | 
| 9 9 | 
             
                fakeweb (1.3.0)
         | 
| 10 | 
            +
                minitest (5.11.3)
         | 
| 10 11 | 
             
                rake (10.0.4)
         | 
| 11 | 
            -
                yard (0.8.6.1)
         | 
| 12 12 |  | 
| 13 13 | 
             
            PLATFORMS
         | 
| 14 14 | 
             
              ruby
         | 
| 15 15 |  | 
| 16 16 | 
             
            DEPENDENCIES
         | 
| 17 17 | 
             
              fakeweb
         | 
| 18 | 
            +
              minitest
         | 
| 18 19 | 
             
              pin_payment!
         | 
| 19 20 | 
             
              rake
         | 
| 20 | 
            -
             | 
| 21 | 
            +
             | 
| 22 | 
            +
            BUNDLED WITH
         | 
| 23 | 
            +
               1.17.2
         | 
    
        data/lib/pin_payment.rb
    CHANGED
    
    
    
        data/lib/pin_payment/base.rb
    CHANGED
    
    | @@ -23,6 +23,10 @@ module PinPayment | |
| 23 23 | 
             
                def self.get uri, options = {}
         | 
| 24 24 | 
             
                  fetch Net::HTTP::Get, uri, options
         | 
| 25 25 | 
             
                end
         | 
| 26 | 
            +
                
         | 
| 27 | 
            +
                def self.delete uri, options = {}
         | 
| 28 | 
            +
                  fetch Net::HTTP::Delete, uri, options
         | 
| 29 | 
            +
                end
         | 
| 26 30 |  | 
| 27 31 | 
             
                def self.fetch klass, uri, options
         | 
| 28 32 | 
             
                  client             = Net::HTTP.new(uri.host, uri.port)
         | 
    
        data/lib/pin_payment/charge.rb
    CHANGED
    
    | @@ -47,6 +47,15 @@ module PinPayment | |
| 47 47 | 
             
                  Refund.create self
         | 
| 48 48 | 
             
                end
         | 
| 49 49 |  | 
| 50 | 
            +
                # Fetches all refunds of your charge using the pin API.
         | 
| 51 | 
            +
                #
         | 
| 52 | 
            +
                # @return [Array<PinPayment::Refund>]
         | 
| 53 | 
            +
                # TODO: pagination
         | 
| 54 | 
            +
                def refunds
         | 
| 55 | 
            +
                  response = Charge.get(URI.parse(PinPayment.api_url).tap{|uri| uri.path = "/1/charges/#{token}/refunds" })
         | 
| 56 | 
            +
                  response.map{|x| Refund.new(x.delete('token'), x) }
         | 
| 57 | 
            +
                end
         | 
| 58 | 
            +
             | 
| 50 59 | 
             
                # @return [Boolean]
         | 
| 51 60 | 
             
                def success?
         | 
| 52 61 | 
             
                  success == true
         | 
    
        data/lib/pin_payment/customer.rb
    CHANGED
    
    | @@ -14,6 +14,10 @@ module PinPayment | |
| 14 14 | 
             
                  response   = post(URI.parse(PinPayment.api_url).tap{|uri| uri.path = '/1/customers' }, options)
         | 
| 15 15 | 
             
                  new(response.delete('token'), response)
         | 
| 16 16 | 
             
                end
         | 
| 17 | 
            +
                
         | 
| 18 | 
            +
                def self.delete_customer(token)
         | 
| 19 | 
            +
                	delete(URI.parse(PinPayment.api_url).tap{|uri| uri.path = "/1/customers/#{token}" })
         | 
| 20 | 
            +
                end
         | 
| 17 21 |  | 
| 18 22 | 
             
                # Update a customer using the pin API.
         | 
| 19 23 | 
             
                #
         | 
    
        data/lib/pin_payment/refund.rb
    CHANGED
    
    | @@ -7,9 +7,20 @@ module PinPayment | |
| 7 7 | 
             
                #
         | 
| 8 8 | 
             
                # @param [String, PinPayment::Charge] charge_or_token the charge (or token of the charge) to refund
         | 
| 9 9 | 
             
                # @return [PinPayment::Refund]
         | 
| 10 | 
            -
                def self.create  | 
| 10 | 
            +
                def self.create refund_data
         | 
| 11 | 
            +
                  charge_or_token = refund_data.is_a?(Hash) ? refund_data[:charge] : refund_data
         | 
| 11 12 | 
             
                  token = charge_or_token.is_a?(Charge) ? charge_or_token.token : charge_or_token
         | 
| 12 | 
            -
                   | 
| 13 | 
            +
                  options = refund_data.is_a?(Hash) && refund_data[:amount] ? { amount: refund_data[:amount] } : {}
         | 
| 14 | 
            +
                  response = post(URI.parse(PinPayment.api_url).tap{|uri| uri.path = "/1/charges/#{token}/refunds" }, options)
         | 
| 15 | 
            +
                  new(response.delete('token'), response)
         | 
| 16 | 
            +
                end
         | 
| 17 | 
            +
             | 
| 18 | 
            +
                # Fetches a refund using the Pin API.
         | 
| 19 | 
            +
                #
         | 
| 20 | 
            +
                # @param [String] token the charge token
         | 
| 21 | 
            +
                # @return [PinPayment::Refund]
         | 
| 22 | 
            +
                def self.find token
         | 
| 23 | 
            +
                  response = get(URI.parse(PinPayment.api_url).tap{ |uri| uri.path = "/1/refunds/#{token}" })
         | 
| 13 24 | 
             
                  new(response.delete('token'), response)
         | 
| 14 25 | 
             
                end
         | 
| 15 26 |  | 
    
        data/lib/pin_payment/transfer.rb
    CHANGED
    
    | @@ -1,8 +1,8 @@ | |
| 1 1 | 
             
            module PinPayment
         | 
| 2 2 | 
             
              class Transfer < Base
         | 
| 3 3 |  | 
| 4 | 
            -
                attr_accessor :description, :amount, :currency, :recipient, :token
         | 
| 5 | 
            -
                protected     :description=, :amount=, :currency=, :recipient=, :token=
         | 
| 4 | 
            +
                attr_accessor :description, :amount, :currency, :recipient, :token, :status, :paid_at, :total_debits, :total_credits
         | 
| 5 | 
            +
                protected     :description=, :amount=, :currency=, :recipient=, :token=, :status=, :paid_at=, :total_debits=, :total_credits=
         | 
| 6 6 |  | 
| 7 7 | 
             
                # Uses the pin API to create a transfer.
         | 
| 8 8 | 
             
                #
         | 
| @@ -45,7 +45,7 @@ module PinPayment | |
| 45 45 | 
             
                protected
         | 
| 46 46 |  | 
| 47 47 | 
             
                def self.attributes
         | 
| 48 | 
            -
                  [:token, :description, :amount, :currency, :recipient]
         | 
| 48 | 
            +
                  [:token, :description, :amount, :currency, :recipient, :status, :paid_at, :total_debits, :total_credits]
         | 
| 49 49 | 
             
                end
         | 
| 50 50 |  | 
| 51 51 | 
             
                class LineItem < Base
         | 
    
        data/lib/pin_payment/version.rb
    CHANGED
    
    
    
        data/pin_payment.gemspec
    CHANGED
    
    | @@ -14,9 +14,9 @@ spec = Gem::Specification.new do |s| | |
| 14 14 |  | 
| 15 15 | 
             
              s.add_development_dependency('fakeweb')
         | 
| 16 16 | 
             
              s.add_development_dependency('rake')
         | 
| 17 | 
            -
              s.add_development_dependency(' | 
| 17 | 
            +
              s.add_development_dependency('minitest')
         | 
| 18 18 |  | 
| 19 | 
            -
              s.required_ruby_version = '>=  | 
| 19 | 
            +
              s.required_ruby_version = '>= 2.3.0'
         | 
| 20 20 |  | 
| 21 21 | 
             
              s.files         = `git ls-files`.split("\n")
         | 
| 22 22 | 
             
              s.test_files    = `git ls-files -- test/*`.split("\n")
         | 
    
        data/test/fixtures/responses.yml
    CHANGED
    
    | @@ -12,6 +12,8 @@ customer: | |
| 12 12 | 
             
              created: '{"response":{"token":"cus__03Cn1lSk3offZ0IGkwpCg","email":"foo@example.com","created_at":"2013-06-12T10:08:30Z","card":{"token":"card_qMwnMfpG-olOhfJeyxmrcg","display_number":"XXXX-XXXX-XXXX-0000","scheme":"master","address_line1":"123 Main St","address_line2":"","address_city":"Melbourne","address_postcode":"3000","address_state":"Victoria","address_country":"Australia"}}}'
         | 
| 13 13 | 
             
              all: '{"response":[{"token":"cus_OEHdj9KE_OiC9eig0h3IEA","email":"user1@example.com","created_at":"2013-06-25T04:14:35Z","card":{"token":"card_7rviJ2IZM__WC9Dnj0RHJA","display_number":"XXXX-XXXX-XXXX-0000","scheme":"visa","address_line1":"123 Main St","address_line2":"","address_city":"Melbourne","address_postcode":"3000","address_state":"Victoria","address_country":"Australia"}},{"token":"cus_cO2VtF4YzK6i1QBcLsdzOA","email":"user2@example.com","created_at":"2013-06-24T05:53:42Z","card":{"token":"card_bVou2J4hzbDIwe-sQ3ZqdQ","display_number":"XXXX-XXXX-XXXX-0000","scheme":"visa","address_line1":"123 Main St","address_line2":"","address_city":"Melbourne","address_postcode":"3000","address_state":"Victoria","address_country":"Australia"}}],"count":2,"pagination":{"current":1,"previous":null,"next":null,"per_page":25,"pages":1,"count":2}}'
         | 
| 14 14 | 
             
              create_with_card: '{"response":{"token":"cus_XZg1ULpWaROQCOT5PdwLkQ","email":"roland@pin.net.au","created_at":"2013-06-27T00:24:43Z","card":{"token":"card_nytGw7koRg23EEp9NTmz9w","display_number":"XXXX-XXXX-XXXX-0000","scheme":"master","address_line1":"42 Sevenoaks St","address_line2":null,"address_city":"Lathlain","address_postcode":"6454","address_state":"WA","address_country":"Australia"}}}'
         | 
| 15 | 
            +
              deleted: '{"response":{}}'
         | 
| 16 | 
            +
              delete_not_found: '{"error":"resource_not_found","error_description":"No resource was found at this URL."}'
         | 
| 15 17 | 
             
            refund:
         | 
| 16 18 | 
             
              success: '{"response":{"token":"rf_wMYx5YHKaZAwQgj5rtNuTg","success":null,"amount":1000,"currency":"USD","charge":"ch_BjGW-S6WUisI6mOgpDRimg","created_at":"2013-06-25T03:16:33Z","error_message":null,"status_message":"Pending"}}'
         | 
| 17 19 | 
             
              duplicate: '{"error":"invalid_resource","error_description":"One or more parameters were missing or invalid.","messages":{"charge":["You have tried to refund more than the original charge"]}}'
         | 
    
        data/test/test_pin_customer.rb
    CHANGED
    
    | @@ -16,6 +16,21 @@ class TestPinCustomer < MiniTest::Unit::TestCase | |
| 16 16 | 
             
                customer = created_customer
         | 
| 17 17 | 
             
                assert_kind_of PinPayment::Customer, customer
         | 
| 18 18 | 
             
              end
         | 
| 19 | 
            +
              
         | 
| 20 | 
            +
              def test_delete_success
         | 
| 21 | 
            +
              	customer = created_customer
         | 
| 22 | 
            +
                FakeWeb.register_uri(:delete, "https://test-api.pin.net.au/1/customers/#{customer.token}", body: fixtures['responses']['customer']['deleted'])
         | 
| 23 | 
            +
                response = PinPayment::Customer.delete_customer(customer.token)
         | 
| 24 | 
            +
                assert_empty response
         | 
| 25 | 
            +
              end
         | 
| 26 | 
            +
              
         | 
| 27 | 
            +
              def test_delete_not_found
         | 
| 28 | 
            +
              	token = 'none-existing-token'
         | 
| 29 | 
            +
                FakeWeb.register_uri(:delete, "https://test-api.pin.net.au/1/customers/#{token}", body: fixtures['responses']['customer']['delete_not_found'])
         | 
| 30 | 
            +
                assert_raises PinPayment::Error::ResourceNotFound do
         | 
| 31 | 
            +
                  PinPayment::Customer.delete_customer(token)
         | 
| 32 | 
            +
                end
         | 
| 33 | 
            +
              end
         | 
| 19 34 |  | 
| 20 35 | 
             
              def test_direct_update
         | 
| 21 36 | 
             
                customer = created_customer
         | 
    
        data/test/test_pin_setup.rb
    CHANGED
    
    | @@ -21,7 +21,7 @@ class TestPinSetup < MiniTest::Unit::TestCase | |
| 21 21 | 
             
                oldurl = PinPayment.api_url
         | 
| 22 22 | 
             
                assert_equal 'https://test-api.pin.net.au', PinPayment.api_url
         | 
| 23 23 | 
             
                PinPayment.api_url = 'foo'
         | 
| 24 | 
            -
                assert_equal 'foo', PinPayment.api_url
         | 
| 24 | 
            +
                assert_equal 'https://foo', PinPayment.api_url
         | 
| 25 25 | 
             
                PinPayment.api_url = oldurl
         | 
| 26 26 | 
             
              end
         | 
| 27 27 | 
             
            end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,55 +1,55 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: pin_payment
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.5. | 
| 4 | 
            +
              version: 0.5.2
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Danial Pearce
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date:  | 
| 11 | 
            +
            date: 2019-03-27 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: fakeweb
         | 
| 15 15 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 16 16 | 
             
                requirements:
         | 
| 17 | 
            -
                - -  | 
| 17 | 
            +
                - - ">="
         | 
| 18 18 | 
             
                  - !ruby/object:Gem::Version
         | 
| 19 19 | 
             
                    version: '0'
         | 
| 20 20 | 
             
              type: :development
         | 
| 21 21 | 
             
              prerelease: false
         | 
| 22 22 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 23 23 | 
             
                requirements:
         | 
| 24 | 
            -
                - -  | 
| 24 | 
            +
                - - ">="
         | 
| 25 25 | 
             
                  - !ruby/object:Gem::Version
         | 
| 26 26 | 
             
                    version: '0'
         | 
| 27 27 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 28 28 | 
             
              name: rake
         | 
| 29 29 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 30 30 | 
             
                requirements:
         | 
| 31 | 
            -
                - -  | 
| 31 | 
            +
                - - ">="
         | 
| 32 32 | 
             
                  - !ruby/object:Gem::Version
         | 
| 33 33 | 
             
                    version: '0'
         | 
| 34 34 | 
             
              type: :development
         | 
| 35 35 | 
             
              prerelease: false
         | 
| 36 36 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 37 37 | 
             
                requirements:
         | 
| 38 | 
            -
                - -  | 
| 38 | 
            +
                - - ">="
         | 
| 39 39 | 
             
                  - !ruby/object:Gem::Version
         | 
| 40 40 | 
             
                    version: '0'
         | 
| 41 41 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 42 | 
            -
              name:  | 
| 42 | 
            +
              name: minitest
         | 
| 43 43 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 44 44 | 
             
                requirements:
         | 
| 45 | 
            -
                - -  | 
| 45 | 
            +
                - - ">="
         | 
| 46 46 | 
             
                  - !ruby/object:Gem::Version
         | 
| 47 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 54 | 
             
                    version: '0'
         | 
| 55 55 | 
             
            description: Pin is the easiest way to accept payments online.  See https://pin.net.au/
         | 
| @@ -60,7 +60,7 @@ executables: [] | |
| 60 60 | 
             
            extensions: []
         | 
| 61 61 | 
             
            extra_rdoc_files: []
         | 
| 62 62 | 
             
            files:
         | 
| 63 | 
            -
            - .gitignore
         | 
| 63 | 
            +
            - ".gitignore"
         | 
| 64 64 | 
             
            - Gemfile
         | 
| 65 65 | 
             
            - Gemfile.lock
         | 
| 66 66 | 
             
            - LICENSE
         | 
| @@ -100,17 +100,17 @@ require_paths: | |
| 100 100 | 
             
            - lib
         | 
| 101 101 | 
             
            required_ruby_version: !ruby/object:Gem::Requirement
         | 
| 102 102 | 
             
              requirements:
         | 
| 103 | 
            -
              - -  | 
| 103 | 
            +
              - - ">="
         | 
| 104 104 | 
             
                - !ruby/object:Gem::Version
         | 
| 105 | 
            -
                  version:  | 
| 105 | 
            +
                  version: 2.3.0
         | 
| 106 106 | 
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 107 107 | 
             
              requirements:
         | 
| 108 | 
            -
              - -  | 
| 108 | 
            +
              - - ">="
         | 
| 109 109 | 
             
                - !ruby/object:Gem::Version
         | 
| 110 110 | 
             
                  version: '0'
         | 
| 111 111 | 
             
            requirements: []
         | 
| 112 112 | 
             
            rubyforge_project: 
         | 
| 113 | 
            -
            rubygems_version: 2. | 
| 113 | 
            +
            rubygems_version: 2.5.1
         | 
| 114 114 | 
             
            signing_key: 
         | 
| 115 115 | 
             
            specification_version: 4
         | 
| 116 116 | 
             
            summary: Ruby bindings for the Pin API
         | 
| @@ -126,4 +126,3 @@ test_files: | |
| 126 126 | 
             
            - test/test_pin_refund.rb
         | 
| 127 127 | 
             
            - test/test_pin_setup.rb
         | 
| 128 128 | 
             
            - test/test_pin_transfer.rb
         | 
| 129 | 
            -
            has_rdoc: 
         |