Sha256: 99599356c97afe520afd797c254549864734b016be02e1d1aa7ebd6189d9fe73

Contents?: true

Size: 903 Bytes

Versions: 5

Compression:

Stored size: 903 Bytes

Contents

# typed: strict
# frozen_string_literal: true

require_relative "../objects/recurring_expense"

module LunchMoney
  module Calls
    # https://lunchmoney.dev/#recurring-expenses
    class RecurringExpenses < LunchMoney::Calls::Base
      sig do
        params(
          start_date: T.nilable(String),
          end_date: T.nilable(String),
        ).returns(T.any(T::Array[LunchMoney::Objects::RecurringExpense], LunchMoney::Errors))
      end
      def recurring_expenses(start_date: nil, end_date: nil)
        params = clean_params({ start_date:, end_date: })
        response = get("recurring_expenses", query_params: params)

        api_errors = errors(response)
        return api_errors if api_errors.present?

        response.body[:recurring_expenses].map do |recurring_expense|
          LunchMoney::Objects::RecurringExpense.new(**recurring_expense)
        end
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
lunchmoney-1.4.0 lib/lunchmoney/calls/recurring_expenses.rb
lunchmoney-1.2.0 lib/lunchmoney/calls/recurring_expenses.rb
lunchmoney-1.1.2 lib/lunchmoney/calls/recurring_expenses.rb
lunchmoney-1.1.1 lib/lunchmoney/calls/recurring_expenses.rb
lunchmoney-1.1.0 lib/lunchmoney/calls/recurring_expenses.rb