Sha256: d276aaa3574c9f947149e19607cbf4a14221b703c5ddad516e6ca1f6df44fb6b

Contents?: true

Size: 779 Bytes

Versions: 5

Compression:

Stored size: 779 Bytes

Contents

# frozen_string_literal: true

require 'time'
require 'fractal_api/base_model'
require 'fractal_api/paginator'

module FractalApi
  module Forecasting
    class Forecast < BaseModel
      attributes :id, :bank_id, :account_id,
                 :name, :date, :type, :source

      def self.all(company_id, filters = {})
        filters = filters.transform_keys { |key| key_transformer.transform(key) }

        Paginator.new('/forecasting/v2/forecasts', self) do |url|
          get(
            url,
            params: filters,
            headers: { 'X-Company-Id' => company_id }
          )
        end
      end

      def self.build(json:)
        super.tap do |record|
          record.date = Time.parse(record.date) if record.date
        end
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
fractal_api-0.1.6 lib/fractal_api/forecasting/forecast.rb
fractal_api-0.1.5 lib/fractal_api/forecasting/forecast.rb
fractal_api-0.1.4 lib/fractal_api/forecasting/forecast.rb
fractal_api-0.1.3 lib/fractal_api/forecasting/forecast.rb
fractal_api-0.1.2 lib/fractal_api/forecasting/forecast.rb