fractal_api 0.1.1 → 0.1.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.lock +7 -3
- data/lib/fractal_api.rb +4 -0
- data/lib/fractal_api/client.rb +6 -4
- data/lib/fractal_api/errors.rb +2 -0
- data/lib/fractal_api/forecasting/balance.rb +32 -0
- data/lib/fractal_api/forecasting/forecast.rb +32 -0
- data/lib/fractal_api/forecasting/transaction.rb +33 -0
- data/lib/fractal_api/version.rb +1 -1
- metadata +5 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 3f69db059dd2de004347bdda6abab14f73c54a42e1977d6443daca3dc39cf8ea
         | 
| 4 | 
            +
              data.tar.gz: 7bd7622a2f7a8771de1ba1aff2fee460115b30f46375d88535e204e0a22f22e5
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: e7ce8cd567a6268bc854f41cf163f8f98ac0919fe41e1369025dfac13a4ce3e41fd87f1d0ae71037003f9b12de1fc6fba38cf9ffa892d92b31281f1953b183dc
         | 
| 7 | 
            +
              data.tar.gz: d6411a3228f4d22eef65e90dbbdb0fb03138ed797e565c82d3159118e09c56b6be340140393bdef76898c08f5afb52c037e33a5ed381b69c4336d0677345ebbe
         | 
    
        data/Gemfile.lock
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            PATH
         | 
| 2 2 | 
             
              remote: .
         | 
| 3 3 | 
             
              specs:
         | 
| 4 | 
            -
                fractal_api (0.1. | 
| 4 | 
            +
                fractal_api (0.1.2)
         | 
| 5 5 | 
             
                  faraday
         | 
| 6 6 | 
             
                  faraday_middleware
         | 
| 7 7 | 
             
                  faraday_middleware-multi_json
         | 
| @@ -17,11 +17,15 @@ GEM | |
| 17 17 | 
             
                  rexml
         | 
| 18 18 | 
             
                diff-lcs (1.4.4)
         | 
| 19 19 | 
             
                dotenv (2.7.6)
         | 
| 20 | 
            -
                faraday (1. | 
| 20 | 
            +
                faraday (1.4.1)
         | 
| 21 | 
            +
                  faraday-excon (~> 1.1)
         | 
| 21 22 | 
             
                  faraday-net_http (~> 1.0)
         | 
| 23 | 
            +
                  faraday-net_http_persistent (~> 1.1)
         | 
| 22 24 | 
             
                  multipart-post (>= 1.2, < 3)
         | 
| 23 | 
            -
                  ruby2_keywords
         | 
| 25 | 
            +
                  ruby2_keywords (>= 0.0.4)
         | 
| 26 | 
            +
                faraday-excon (1.1.0)
         | 
| 24 27 | 
             
                faraday-net_http (1.0.1)
         | 
| 28 | 
            +
                faraday-net_http_persistent (1.1.0)
         | 
| 25 29 | 
             
                faraday_middleware (1.0.0)
         | 
| 26 30 | 
             
                  faraday (~> 1.0)
         | 
| 27 31 | 
             
                faraday_middleware-multi_json (0.0.6)
         | 
    
        data/lib/fractal_api.rb
    CHANGED
    
    | @@ -10,6 +10,9 @@ require 'fractal_api/consent' | |
| 10 10 | 
             
            require 'fractal_api/bank_account'
         | 
| 11 11 | 
             
            require 'fractal_api/balance'
         | 
| 12 12 | 
             
            require 'fractal_api/transaction'
         | 
| 13 | 
            +
            require 'fractal_api/forecasting/forecast'
         | 
| 14 | 
            +
            require 'fractal_api/forecasting/balance'
         | 
| 15 | 
            +
            require 'fractal_api/forecasting/transaction'
         | 
| 13 16 |  | 
| 14 17 | 
             
            module FractalApi
         | 
| 15 18 | 
             
              module_function
         | 
| @@ -38,6 +41,7 @@ module FractalApi | |
| 38 41 |  | 
| 39 42 | 
             
                yield
         | 
| 40 43 |  | 
| 44 | 
            +
              ensure
         | 
| 41 45 | 
             
                Thread.current[:fractal_api_token] = nil
         | 
| 42 46 | 
             
              end
         | 
| 43 47 |  | 
    
        data/lib/fractal_api/client.rb
    CHANGED
    
    | @@ -49,13 +49,15 @@ module FractalApi | |
| 49 49 |  | 
| 50 50 | 
             
                  case response.status
         | 
| 51 51 | 
             
                  when 400
         | 
| 52 | 
            -
                    raise InvalidRequestError, response.body
         | 
| 52 | 
            +
                    raise InvalidRequestError, response.body.inspect
         | 
| 53 53 | 
             
                  when 401
         | 
| 54 | 
            -
                    raise APIKeyError, response.body
         | 
| 54 | 
            +
                    raise APIKeyError, response.body.inspect
         | 
| 55 55 | 
             
                  when 403
         | 
| 56 | 
            -
                    raise UnauthorizedError, response.body
         | 
| 56 | 
            +
                    raise UnauthorizedError, response.body.inspect
         | 
| 57 | 
            +
                  when 404
         | 
| 58 | 
            +
                    raise NotFoundError, response.body.inspect
         | 
| 57 59 | 
             
                  else
         | 
| 58 | 
            -
                    raise GenericError, response.body
         | 
| 60 | 
            +
                    raise GenericError, "#{response.status}: #{response.body.inspect}"
         | 
| 59 61 | 
             
                  end
         | 
| 60 62 | 
             
                end
         | 
| 61 63 | 
             
              end
         | 
    
        data/lib/fractal_api/errors.rb
    CHANGED
    
    
| @@ -0,0 +1,32 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            require 'time'
         | 
| 4 | 
            +
            require 'fractal_api/base_model'
         | 
| 5 | 
            +
            require 'fractal_api/paginator'
         | 
| 6 | 
            +
             | 
| 7 | 
            +
            module FractalApi
         | 
| 8 | 
            +
              module Forecasting
         | 
| 9 | 
            +
                class Balance < BaseModel
         | 
| 10 | 
            +
                  attributes :id, :bank_id, :forecast_id, :account_id,
         | 
| 11 | 
            +
                             :amount, :currency, :date, :type, :source
         | 
| 12 | 
            +
             | 
| 13 | 
            +
                  def self.all(company_id, filters = {})
         | 
| 14 | 
            +
                    filters = filters.transform_keys { |key| key_transformer.transform(key) }
         | 
| 15 | 
            +
             | 
| 16 | 
            +
                    Paginator.new('/forecasting/v2/balances', self) do |url|
         | 
| 17 | 
            +
                      get(
         | 
| 18 | 
            +
                        url,
         | 
| 19 | 
            +
                        params: filters,
         | 
| 20 | 
            +
                        headers: { 'X-Company-Id' => company_id }
         | 
| 21 | 
            +
                      )
         | 
| 22 | 
            +
                    end
         | 
| 23 | 
            +
                  end
         | 
| 24 | 
            +
             | 
| 25 | 
            +
                  def self.build(json:)
         | 
| 26 | 
            +
                    super.tap do |record|
         | 
| 27 | 
            +
                      record.date = Time.parse(record.date) if record.date
         | 
| 28 | 
            +
                    end
         | 
| 29 | 
            +
                  end
         | 
| 30 | 
            +
                end
         | 
| 31 | 
            +
              end
         | 
| 32 | 
            +
            end
         | 
| @@ -0,0 +1,32 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            require 'time'
         | 
| 4 | 
            +
            require 'fractal_api/base_model'
         | 
| 5 | 
            +
            require 'fractal_api/paginator'
         | 
| 6 | 
            +
             | 
| 7 | 
            +
            module FractalApi
         | 
| 8 | 
            +
              module Forecasting
         | 
| 9 | 
            +
                class Forecast < BaseModel
         | 
| 10 | 
            +
                  attributes :id, :bank_id, :account_id,
         | 
| 11 | 
            +
                             :name, :date, :type, :source
         | 
| 12 | 
            +
             | 
| 13 | 
            +
                  def self.all(company_id, filters = {})
         | 
| 14 | 
            +
                    filters = filters.transform_keys { |key| key_transformer.transform(key) }
         | 
| 15 | 
            +
             | 
| 16 | 
            +
                    Paginator.new('/forecasting/v2/forecasts', self) do |url|
         | 
| 17 | 
            +
                      get(
         | 
| 18 | 
            +
                        url,
         | 
| 19 | 
            +
                        params: filters,
         | 
| 20 | 
            +
                        headers: { 'X-Company-Id' => company_id }
         | 
| 21 | 
            +
                      )
         | 
| 22 | 
            +
                    end
         | 
| 23 | 
            +
                  end
         | 
| 24 | 
            +
             | 
| 25 | 
            +
                  def self.build(json:)
         | 
| 26 | 
            +
                    super.tap do |record|
         | 
| 27 | 
            +
                      record.date = Time.parse(record.date) if record.date
         | 
| 28 | 
            +
                    end
         | 
| 29 | 
            +
                  end
         | 
| 30 | 
            +
                end
         | 
| 31 | 
            +
              end
         | 
| 32 | 
            +
            end
         | 
| @@ -0,0 +1,33 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            require 'time'
         | 
| 4 | 
            +
            require 'fractal_api/base_model'
         | 
| 5 | 
            +
            require 'fractal_api/paginator'
         | 
| 6 | 
            +
             | 
| 7 | 
            +
            module FractalApi
         | 
| 8 | 
            +
              module Forecasting
         | 
| 9 | 
            +
                class Transaction < BaseModel
         | 
| 10 | 
            +
                  attributes :id, :bank_id, :forecast_id, :account_id,
         | 
| 11 | 
            +
                             :value_date, :amount, :currency,
         | 
| 12 | 
            +
                             :type, :merchant, :category, :reasons, :source
         | 
| 13 | 
            +
             | 
| 14 | 
            +
                  def self.all(company_id, filters = {})
         | 
| 15 | 
            +
                    filters = filters.transform_keys { |key| key_transformer.transform(key) }
         | 
| 16 | 
            +
             | 
| 17 | 
            +
                    Paginator.new('/forecasting/v2/transactions', self) do |url|
         | 
| 18 | 
            +
                      get(
         | 
| 19 | 
            +
                        url,
         | 
| 20 | 
            +
                        params: filters,
         | 
| 21 | 
            +
                        headers: { 'X-Company-Id' => company_id }
         | 
| 22 | 
            +
                      )
         | 
| 23 | 
            +
                    end
         | 
| 24 | 
            +
                  end
         | 
| 25 | 
            +
             | 
| 26 | 
            +
                  def self.build(json:)
         | 
| 27 | 
            +
                    super.tap do |record|
         | 
| 28 | 
            +
                      record.value_date = Time.parse(record.value_date) if record.value_date
         | 
| 29 | 
            +
                    end
         | 
| 30 | 
            +
                  end
         | 
| 31 | 
            +
                end
         | 
| 32 | 
            +
              end
         | 
| 33 | 
            +
            end
         | 
    
        data/lib/fractal_api/version.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: fractal_api
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.1. | 
| 4 | 
            +
              version: 0.1.2
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Finpoint
         | 
| 8 8 | 
             
            autorequire:
         | 
| 9 9 | 
             
            bindir: exe
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2021-04- | 
| 11 | 
            +
            date: 2021-04-19 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: faraday
         | 
| @@ -197,6 +197,9 @@ files: | |
| 197 197 | 
             
            - lib/fractal_api/consent.rb
         | 
| 198 198 | 
             
            - lib/fractal_api/errors.rb
         | 
| 199 199 | 
             
            - lib/fractal_api/faraday_auth.rb
         | 
| 200 | 
            +
            - lib/fractal_api/forecasting/balance.rb
         | 
| 201 | 
            +
            - lib/fractal_api/forecasting/forecast.rb
         | 
| 202 | 
            +
            - lib/fractal_api/forecasting/transaction.rb
         | 
| 200 203 | 
             
            - lib/fractal_api/merchant.rb
         | 
| 201 204 | 
             
            - lib/fractal_api/paged_response.rb
         | 
| 202 205 | 
             
            - lib/fractal_api/paginator.rb
         |