square 0.0.2 → 0.0.3
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/README.md +41 -2
- data/VERSION +1 -1
- data/lib/square/connect/bank_account.rb +3 -2
- data/lib/square/connect/connections/bank_accounts.rb +16 -0
- data/lib/square/connect/connections/payments.rb +9 -0
- data/lib/square/connect/connections/settlements.rb +9 -0
- data/lib/square/connect/merchant.rb +1 -2
- data/lib/square/connect/node.rb +1 -1
- data/lib/square/connect/payment.rb +3 -3
- data/lib/square/connect/refund.rb +18 -19
- data/lib/square/connect/settlement.rb +4 -1
- data/spec/mock_response/bank_account/mine.json +10 -0
- data/spec/mock_response/settlements/single.json +11 -0
- data/spec/square/connect/bank_account_spec.rb +31 -0
- data/spec/square/connect/merchant_spec.rb +10 -0
- data/spec/square/connect/node_spec.rb +0 -4
- data/spec/square/connect/payment_spec.rb +1 -1
- data/spec/square/connect/settlement_spec.rb +31 -0
- data/square.gemspec +1 -0
- metadata +20 -1
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 97640cf10444f7f9e41bb8fc733f6e4a058a5334
         | 
| 4 | 
            +
              data.tar.gz: f564a55d6901749b0955f43e0d7fa69aa1f1e4c4
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 6ca3a04861c402d4770a156b4a0c371d449e75519a352ab67f95e70bccebdca813f825c4396f32ebbb23ae6f7f85201956d8f9949e6d204a60421c76f7a23655
         | 
| 7 | 
            +
              data.tar.gz: 8c6f1eb1b9f612bb30f4c3655ca7c371ebc2e45d6336a67863102fb7fdbdb1f7081df2f055e70238d1a7d92bdade5a5fe7626fae49a5702564b8a88acdecf6be
         | 
    
        data/README.md
    CHANGED
    
    | @@ -1,6 +1,8 @@ | |
| 1 1 | 
             
            # Square
         | 
| 2 2 |  | 
| 3 | 
            -
             | 
| 3 | 
            +
            Square API Client
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            https://connect.squareup.com
         | 
| 4 6 |  | 
| 5 7 | 
             
            ## Installation
         | 
| 6 8 |  | 
| @@ -18,7 +20,44 @@ Or install it yourself as: | |
| 18 20 |  | 
| 19 21 | 
             
            ## Usage
         | 
| 20 22 |  | 
| 21 | 
            -
             | 
| 23 | 
            +
            ### OAuth 2.0
         | 
| 24 | 
            +
             | 
| 25 | 
            +
                client = Square::Client.new(
         | 
| 26 | 
            +
                  '<your-client-id>',
         | 
| 27 | 
            +
                  redirect_uri: 'https://example.client.com/callback'
         | 
| 28 | 
            +
                )
         | 
| 29 | 
            +
             | 
| 30 | 
            +
                ## Authorization Request
         | 
| 31 | 
            +
                redirect_to client.authorization_uri
         | 
| 32 | 
            +
             | 
| 33 | 
            +
                ## Token Request
         | 
| 34 | 
            +
                client.authorization_code = '<your-authorization-code>'
         | 
| 35 | 
            +
                access_token = client.access_token!
         | 
| 36 | 
            +
             | 
| 37 | 
            +
            ### Connect API
         | 
| 38 | 
            +
             | 
| 39 | 
            +
                me = Square::Connect::Merchant.me access_token
         | 
| 40 | 
            +
             | 
| 41 | 
            +
                ## Merchant API
         | 
| 42 | 
            +
                me = me.fetch
         | 
| 43 | 
            +
             | 
| 44 | 
            +
                ## Payments API
         | 
| 45 | 
            +
                payments = me.payments
         | 
| 46 | 
            +
             | 
| 47 | 
            +
                ## Payment API
         | 
| 48 | 
            +
                payment = me.payment '<payment-id>'
         | 
| 49 | 
            +
             | 
| 50 | 
            +
                ## Refunds API
         | 
| 51 | 
            +
                refunds = me.refunds
         | 
| 52 | 
            +
             | 
| 53 | 
            +
                ## Settlements API
         | 
| 54 | 
            +
                settlements = me.settlements
         | 
| 55 | 
            +
             | 
| 56 | 
            +
                ## Settlement API
         | 
| 57 | 
            +
                settlement = me.settlement '<settlement-id>'
         | 
| 58 | 
            +
             | 
| 59 | 
            +
                ## Bank Account API
         | 
| 60 | 
            +
                bank_account = me.bank_account '<bank-accout-id>'
         | 
| 22 61 |  | 
| 23 62 | 
             
            ## Contributing
         | 
| 24 63 |  | 
    
        data/VERSION
    CHANGED
    
    | @@ -1 +1 @@ | |
| 1 | 
            -
            0.0. | 
| 1 | 
            +
            0.0.3
         | 
| @@ -6,9 +6,9 @@ module Square | |
| 6 6 | 
             
                  def initialize(*args)
         | 
| 7 7 | 
             
                    super do |attributes|
         | 
| 8 8 | 
             
                      self.merchant = if attributes[:merchant_id]
         | 
| 9 | 
            -
                        Merchant.new attributes[:merchant_id]
         | 
| 9 | 
            +
                        Merchant.new attributes[:merchant_id], access_token
         | 
| 10 10 | 
             
                      else
         | 
| 11 | 
            -
                        Merchant. | 
| 11 | 
            +
                        Merchant.me access_token
         | 
| 12 12 | 
             
                      end
         | 
| 13 13 | 
             
                      self.bank_name = attributes[:bank_name]
         | 
| 14 14 | 
             
                      self.name = attributes[:name]
         | 
| @@ -16,6 +16,7 @@ module Square | |
| 16 16 | 
             
                      self.routing_number = attributes[:routing_number]
         | 
| 17 17 | 
             
                      self.account_number_suffix = attributes[:account_number_suffix]
         | 
| 18 18 | 
             
                      self.currency_code = attributes[:currency_code]
         | 
| 19 | 
            +
                      self.endpoint = endpoint_for merchant.identifier, :bank_accounts, identifier
         | 
| 19 20 | 
             
                    end
         | 
| 20 21 | 
             
                  end
         | 
| 21 22 | 
             
                end
         | 
| @@ -0,0 +1,16 @@ | |
| 1 | 
            +
            module Square
         | 
| 2 | 
            +
              module Connect
         | 
| 3 | 
            +
                module Connections
         | 
| 4 | 
            +
                  module BankAccounts
         | 
| 5 | 
            +
                    def bank_account(bank_account_id, params = nil)
         | 
| 6 | 
            +
                      access_token_required!
         | 
| 7 | 
            +
                      BankAccount.new(
         | 
| 8 | 
            +
                        bank_account_id,
         | 
| 9 | 
            +
                        merchant_id: identifier,
         | 
| 10 | 
            +
                        access_token: access_token
         | 
| 11 | 
            +
                      ).fetch
         | 
| 12 | 
            +
                    end
         | 
| 13 | 
            +
                  end
         | 
| 14 | 
            +
                end
         | 
| 15 | 
            +
              end
         | 
| 16 | 
            +
            end
         | 
| @@ -1,11 +1,10 @@ | |
| 1 | 
            -
            require 'square/connect/connections'
         | 
| 2 | 
            -
             | 
| 3 1 | 
             
            module Square
         | 
| 4 2 | 
             
              module Connect
         | 
| 5 3 | 
             
                class Merchant < Node
         | 
| 6 4 | 
             
                  include Connections::Payments
         | 
| 7 5 | 
             
                  include Connections::Refunds
         | 
| 8 6 | 
             
                  include Connections::Settlements
         | 
| 7 | 
            +
                  include Connections::BankAccounts
         | 
| 9 8 |  | 
| 10 9 | 
             
                  attr_accessor :name, :email, :country_code, :language_code
         | 
| 11 10 |  | 
    
        data/lib/square/connect/node.rb
    CHANGED
    
    | @@ -7,8 +7,8 @@ module Square | |
| 7 7 | 
             
                    attributes = args.extract_options!
         | 
| 8 8 | 
             
                    self.identifier = attributes[:id] || attributes[:identifier] || args.first
         | 
| 9 9 | 
             
                    self.access_token = tokenize attributes[:access_token] || args.second
         | 
| 10 | 
            -
                    self.endpoint = endpoint_for identifier
         | 
| 11 10 | 
             
                    yield attributes if block_given?
         | 
| 11 | 
            +
                    self.endpoint ||= endpoint_for identifier
         | 
| 12 12 | 
             
                  end
         | 
| 13 13 |  | 
| 14 14 | 
             
                  def fetch
         | 
| @@ -26,12 +26,12 @@ module Square | |
| 26 26 | 
             
                  def initialize(*args)
         | 
| 27 27 | 
             
                    super do |attributes|
         | 
| 28 28 | 
             
                      self.merchant = if attributes[:merchant_id]
         | 
| 29 | 
            -
                        Merchant.new attributes[:merchant_id]
         | 
| 29 | 
            +
                        Merchant.new attributes[:merchant_id], access_token
         | 
| 30 30 | 
             
                      else
         | 
| 31 | 
            -
                        Merchant. | 
| 31 | 
            +
                        Merchant.me access_token
         | 
| 32 32 | 
             
                      end
         | 
| 33 33 | 
             
                      self.creator = if attributes[:creator_id]
         | 
| 34 | 
            -
                        Merchant.new attributes[:creator_id]
         | 
| 34 | 
            +
                        Merchant.new attributes[:creator_id], access_token
         | 
| 35 35 | 
             
                      end
         | 
| 36 36 | 
             
                      self.created_at = if attributes[:created_at]
         | 
| 37 37 | 
             
                        Time.parse attributes[:created_at]
         | 
| @@ -1,27 +1,26 @@ | |
| 1 1 | 
             
            module Square
         | 
| 2 2 | 
             
              module Connect
         | 
| 3 | 
            -
                class Refund | 
| 4 | 
            -
                  attr_accessor :type, :reason, :refunded_money, :created_at, :processed_at, :payment
         | 
| 3 | 
            +
                class Refund
         | 
| 4 | 
            +
                  attr_accessor :identifier, :type, :reason, :refunded_money, :created_at, :processed_at, :payment
         | 
| 5 5 |  | 
| 6 | 
            -
                  def initialize( | 
| 7 | 
            -
                     | 
| 8 | 
            -
             | 
| 9 | 
            -
             | 
| 10 | 
            -
             | 
| 11 | 
            -
             | 
| 12 | 
            -
             | 
| 13 | 
            -
             | 
| 14 | 
            -
             | 
| 15 | 
            -
             | 
| 16 | 
            -
             | 
| 17 | 
            -
             | 
| 18 | 
            -
             | 
| 19 | 
            -
                        end
         | 
| 20 | 
            -
                      end
         | 
| 21 | 
            -
                      self.payment = if attributes[:payment_id]
         | 
| 22 | 
            -
                        Payment.new attributes[:payment_id]
         | 
| 6 | 
            +
                  def initialize(attributes = {})
         | 
| 7 | 
            +
                    self.identifier = attributes[:id]
         | 
| 8 | 
            +
                    self.type = attributes[:type]
         | 
| 9 | 
            +
                    self.reason = attributes[:reason]
         | 
| 10 | 
            +
                    self.refunded_money = if attributes[:refunded_money].present?
         | 
| 11 | 
            +
                      Money.new attributes[:refunded_money]
         | 
| 12 | 
            +
                    end
         | 
| 13 | 
            +
                    [
         | 
| 14 | 
            +
                      :created_at,
         | 
| 15 | 
            +
                      :processed_at
         | 
| 16 | 
            +
                    ].each do |time_key|
         | 
| 17 | 
            +
                      if attributes[time_key]
         | 
| 18 | 
            +
                        self.send "#{time_key}=", Time.parse(attributes[time_key])
         | 
| 23 19 | 
             
                      end
         | 
| 24 20 | 
             
                    end
         | 
| 21 | 
            +
                    self.payment = if attributes[:payment_id]
         | 
| 22 | 
            +
                      Payment.new attributes[:payment_id]
         | 
| 23 | 
            +
                    end
         | 
| 25 24 | 
             
                  end
         | 
| 26 25 | 
             
                end
         | 
| 27 26 | 
             
              end
         | 
| @@ -10,7 +10,7 @@ module Square | |
| 10 10 | 
             
                        Time.parse attributes[:initiated_at]
         | 
| 11 11 | 
             
                      end
         | 
| 12 12 | 
             
                      self.bank_account = if attributes[:bank_account_id]
         | 
| 13 | 
            -
                        BankAccount.new attributes[:bank_account_id]
         | 
| 13 | 
            +
                        BankAccount.new attributes[:bank_account_id], access_token
         | 
| 14 14 | 
             
                      end
         | 
| 15 15 | 
             
                      self.total_money = if attributes[:total_money]
         | 
| 16 16 | 
             
                        Money.new attributes[:total_money]
         | 
| @@ -18,6 +18,9 @@ module Square | |
| 18 18 | 
             
                      self.entries = Array(attributes[:entries]).collect do |entry_attributes|
         | 
| 19 19 | 
             
                        SettlementEntry.new entry_attributes
         | 
| 20 20 | 
             
                      end
         | 
| 21 | 
            +
             | 
| 22 | 
            +
                      merchnat_id = attributes[:merchant_id] || :me
         | 
| 23 | 
            +
                      self.endpoint = endpoint_for merchnat_id, :settlements, identifier
         | 
| 21 24 | 
             
                    end
         | 
| 22 25 | 
             
                  end
         | 
| 23 26 | 
             
                end
         | 
| @@ -0,0 +1,31 @@ | |
| 1 | 
            +
            require 'spec_helper'
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            describe Square::Connect::BankAccount do
         | 
| 4 | 
            +
              let(:klass) { Square::Connect::BankAccount }
         | 
| 5 | 
            +
              let(:identifier) { 'bank_account_id' }
         | 
| 6 | 
            +
              let(:merchant_id) { 'merchant_id' }
         | 
| 7 | 
            +
              let(:access_token) { 'access_token' }
         | 
| 8 | 
            +
             | 
| 9 | 
            +
              describe '#initialize' do
         | 
| 10 | 
            +
                context 'when merchant_id given' do
         | 
| 11 | 
            +
                  subject { klass.new identifier, merchant_id: merchant_id }
         | 
| 12 | 
            +
                  its(:endpoint) { should == File.join(Square::Connect::ROOT_URL, "#{merchant_id}/bank_accounts/#{identifier}") }
         | 
| 13 | 
            +
                end
         | 
| 14 | 
            +
             | 
| 15 | 
            +
                context 'otherwise' do
         | 
| 16 | 
            +
                  subject { klass.new identifier }
         | 
| 17 | 
            +
                  its(:endpoint) { should == File.join(Square::Connect::ROOT_URL, "me/bank_accounts/#{identifier}") }
         | 
| 18 | 
            +
                end
         | 
| 19 | 
            +
              end
         | 
| 20 | 
            +
             | 
| 21 | 
            +
              describe '#fetch' do
         | 
| 22 | 
            +
                let(:instance) { klass.new identifier, access_token }
         | 
| 23 | 
            +
             | 
| 24 | 
            +
                it do
         | 
| 25 | 
            +
                  settlement = mock_request "me/bank_accounts/#{identifier}", 'bank_account/mine' do
         | 
| 26 | 
            +
                    instance.fetch
         | 
| 27 | 
            +
                  end
         | 
| 28 | 
            +
                  settlement.should be_a klass
         | 
| 29 | 
            +
                end
         | 
| 30 | 
            +
              end
         | 
| 31 | 
            +
            end
         | 
| @@ -42,6 +42,16 @@ describe Square::Connect::Merchant do | |
| 42 42 | 
             
                end
         | 
| 43 43 | 
             
              end
         | 
| 44 44 |  | 
| 45 | 
            +
              describe '#fetch' do
         | 
| 46 | 
            +
                it do
         | 
| 47 | 
            +
                  merchant = mock_request identifier, 'merchant/me' do
         | 
| 48 | 
            +
                    instance = klass.new identifier, access_token
         | 
| 49 | 
            +
                    instance.fetch
         | 
| 50 | 
            +
                  end
         | 
| 51 | 
            +
                  merchant.should be_a klass
         | 
| 52 | 
            +
                end
         | 
| 53 | 
            +
              end
         | 
| 54 | 
            +
             | 
| 45 55 | 
             
              describe '.me' do
         | 
| 46 56 | 
             
                subject { klass.me access_token }
         | 
| 47 57 | 
             
                its(:identifier) { should == :me }
         | 
| @@ -0,0 +1,31 @@ | |
| 1 | 
            +
            require 'spec_helper'
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            describe Square::Connect::Settlement do
         | 
| 4 | 
            +
              let(:klass) { Square::Connect::Settlement }
         | 
| 5 | 
            +
              let(:identifier) { 'settlement_id' }
         | 
| 6 | 
            +
              let(:merchant_id) { 'merchant_id' }
         | 
| 7 | 
            +
              let(:access_token) { 'access_token' }
         | 
| 8 | 
            +
             | 
| 9 | 
            +
              describe '#initialize' do
         | 
| 10 | 
            +
                context 'when merchant_id given' do
         | 
| 11 | 
            +
                  subject { klass.new identifier, access_token, merchant_id: merchant_id }
         | 
| 12 | 
            +
                  its(:endpoint) { should == File.join(Square::Connect::ROOT_URL, "#{merchant_id}/settlements/#{identifier}") }
         | 
| 13 | 
            +
                end
         | 
| 14 | 
            +
             | 
| 15 | 
            +
                context 'otherwise' do
         | 
| 16 | 
            +
                  subject { klass.new identifier, access_token }
         | 
| 17 | 
            +
                  its(:endpoint) { should == File.join(Square::Connect::ROOT_URL, "me/settlements/#{identifier}") }
         | 
| 18 | 
            +
                end
         | 
| 19 | 
            +
              end
         | 
| 20 | 
            +
             | 
| 21 | 
            +
              describe '#fetch' do
         | 
| 22 | 
            +
                let(:instance) { klass.new identifier, access_token }
         | 
| 23 | 
            +
             | 
| 24 | 
            +
                it do
         | 
| 25 | 
            +
                  settlement = mock_request "me/settlements/#{identifier}", 'settlements/single' do
         | 
| 26 | 
            +
                    instance.fetch
         | 
| 27 | 
            +
                  end
         | 
| 28 | 
            +
                  settlement.should be_a klass
         | 
| 29 | 
            +
                end
         | 
| 30 | 
            +
              end
         | 
| 31 | 
            +
            end
         | 
    
        data/square.gemspec
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: square
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.0. | 
| 4 | 
            +
              version: 0.0.3
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - nov
         | 
| @@ -80,6 +80,20 @@ dependencies: | |
| 80 80 | 
             
                - - '>='
         | 
| 81 81 | 
             
                  - !ruby/object:Gem::Version
         | 
| 82 82 | 
             
                    version: '0'
         | 
| 83 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 84 | 
            +
              name: webmock
         | 
| 85 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 86 | 
            +
                requirements:
         | 
| 87 | 
            +
                - - '>='
         | 
| 88 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 89 | 
            +
                    version: '0'
         | 
| 90 | 
            +
              type: :development
         | 
| 91 | 
            +
              prerelease: false
         | 
| 92 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 93 | 
            +
                requirements:
         | 
| 94 | 
            +
                - - '>='
         | 
| 95 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 96 | 
            +
                    version: '0'
         | 
| 83 97 | 
             
            description: Square API client
         | 
| 84 98 | 
             
            email:
         | 
| 85 99 | 
             
            - nov@matake.jp
         | 
| @@ -98,6 +112,7 @@ files: | |
| 98 112 | 
             
            - lib/square/connect.rb
         | 
| 99 113 | 
             
            - lib/square/connect/bank_account.rb
         | 
| 100 114 | 
             
            - lib/square/connect/connections.rb
         | 
| 115 | 
            +
            - lib/square/connect/connections/bank_accounts.rb
         | 
| 101 116 | 
             
            - lib/square/connect/connections/payments.rb
         | 
| 102 117 | 
             
            - lib/square/connect/connections/refunds.rb
         | 
| 103 118 | 
             
            - lib/square/connect/connections/settlements.rb
         | 
| @@ -118,6 +133,7 @@ files: | |
| 118 133 | 
             
            - lib/square/oauth2/access_token.rb
         | 
| 119 134 | 
             
            - lib/square/oauth2/client.rb
         | 
| 120 135 | 
             
            - spec/helpers/webmock_helper.rb
         | 
| 136 | 
            +
            - spec/mock_response/bank_account/mine.json
         | 
| 121 137 | 
             
            - spec/mock_response/error/unauthorized.json
         | 
| 122 138 | 
             
            - spec/mock_response/invalid_grant.json
         | 
| 123 139 | 
             
            - spec/mock_response/merchant/me.json
         | 
| @@ -125,14 +141,17 @@ files: | |
| 125 141 | 
             
            - spec/mock_response/payments/single.json
         | 
| 126 142 | 
             
            - spec/mock_response/refunds/list.json
         | 
| 127 143 | 
             
            - spec/mock_response/settlements/list.json
         | 
| 144 | 
            +
            - spec/mock_response/settlements/single.json
         | 
| 128 145 | 
             
            - spec/mock_response/token.json
         | 
| 129 146 | 
             
            - spec/spec_helper.rb
         | 
| 147 | 
            +
            - spec/square/connect/bank_account_spec.rb
         | 
| 130 148 | 
             
            - spec/square/connect/connections/payments_spec.rb
         | 
| 131 149 | 
             
            - spec/square/connect/connections/refunds_spec.rb
         | 
| 132 150 | 
             
            - spec/square/connect/connections/settlements_spec.rb
         | 
| 133 151 | 
             
            - spec/square/connect/merchant_spec.rb
         | 
| 134 152 | 
             
            - spec/square/connect/node_spec.rb
         | 
| 135 153 | 
             
            - spec/square/connect/payment_spec.rb
         | 
| 154 | 
            +
            - spec/square/connect/settlement_spec.rb
         | 
| 136 155 | 
             
            - spec/square/oauth2/access_token_spec.rb
         | 
| 137 156 | 
             
            - spec/square/oauth2/client_spec.rb
         | 
| 138 157 | 
             
            - square.gemspec
         |