lunchmoney 1.0.0 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/publish_gem.yml +1 -0
- data/Gemfile.lock +1 -1
- data/lib/lunchmoney/api.rb +34 -34
- data/lib/lunchmoney/calls/assets.rb +98 -0
- data/lib/lunchmoney/calls/base.rb +112 -0
- data/lib/lunchmoney/calls/budgets.rb +84 -0
- data/lib/lunchmoney/calls/categories.rb +196 -0
- data/lib/lunchmoney/calls/crypto.rb +50 -0
- data/lib/lunchmoney/calls/plaid_accounts.rb +40 -0
- data/lib/lunchmoney/calls/recurring_expenses.rb +29 -0
- data/lib/lunchmoney/calls/tags.rb +21 -0
- data/lib/lunchmoney/calls/transactions.rb +220 -0
- data/lib/lunchmoney/calls/users.rb +21 -0
- data/lib/lunchmoney/objects/asset.rb +91 -0
- data/lib/lunchmoney/objects/budget.rb +76 -0
- data/lib/lunchmoney/objects/category.rb +55 -0
- data/lib/lunchmoney/objects/child_category.rb +44 -0
- data/lib/lunchmoney/objects/child_transaction.rb +35 -0
- data/lib/lunchmoney/objects/config.rb +40 -0
- data/lib/lunchmoney/objects/crypto.rb +46 -0
- data/lib/lunchmoney/objects/crypto_base.rb +67 -0
- data/lib/lunchmoney/objects/data.rb +44 -0
- data/lib/lunchmoney/objects/object.rb +28 -0
- data/lib/lunchmoney/objects/plaid_account.rb +75 -0
- data/lib/lunchmoney/objects/recurring_expense.rb +68 -0
- data/lib/lunchmoney/objects/recurring_expense_base.rb +31 -0
- data/lib/lunchmoney/objects/split.rb +28 -0
- data/lib/lunchmoney/objects/tag.rb +24 -0
- data/lib/lunchmoney/objects/tag_base.rb +23 -0
- data/lib/lunchmoney/objects/transaction.rb +160 -0
- data/lib/lunchmoney/objects/transaction_base.rb +54 -0
- data/lib/lunchmoney/objects/transaction_modification_base.rb +32 -0
- data/lib/lunchmoney/objects/update_transaction.rb +47 -0
- data/lib/lunchmoney/objects/user.rb +38 -0
- data/lib/lunchmoney/version.rb +1 -1
- metadata +32 -32
- data/lib/lunchmoney/api_call.rb +0 -109
- data/lib/lunchmoney/assets/asset.rb +0 -89
- data/lib/lunchmoney/assets/asset_calls.rb +0 -96
- data/lib/lunchmoney/budget/budget.rb +0 -74
- data/lib/lunchmoney/budget/budget_calls.rb +0 -82
- data/lib/lunchmoney/budget/config.rb +0 -38
- data/lib/lunchmoney/budget/data.rb +0 -42
- data/lib/lunchmoney/categories/category/category.rb +0 -52
- data/lib/lunchmoney/categories/category/child_category.rb +0 -42
- data/lib/lunchmoney/categories/category_calls.rb +0 -195
- data/lib/lunchmoney/crypto/crypto/crypto.rb +0 -43
- data/lib/lunchmoney/crypto/crypto/crypto_base.rb +0 -65
- data/lib/lunchmoney/crypto/crypto_calls.rb +0 -49
- data/lib/lunchmoney/data_object.rb +0 -25
- data/lib/lunchmoney/plaid_accounts/plaid_account.rb +0 -73
- data/lib/lunchmoney/plaid_accounts/plaid_account_calls.rb +0 -38
- data/lib/lunchmoney/recurring_expenses/recurring_expense/recurring_expense.rb +0 -65
- data/lib/lunchmoney/recurring_expenses/recurring_expense/recurring_expense_base.rb +0 -29
- data/lib/lunchmoney/recurring_expenses/recurring_expense_calls.rb +0 -28
- data/lib/lunchmoney/tags/tag/tag.rb +0 -20
- data/lib/lunchmoney/tags/tag/tag_base.rb +0 -21
- data/lib/lunchmoney/tags/tag_calls.rb +0 -20
- data/lib/lunchmoney/transactions/transaction/child_transaction.rb +0 -31
- data/lib/lunchmoney/transactions/transaction/split.rb +0 -24
- data/lib/lunchmoney/transactions/transaction/transaction.rb +0 -156
- data/lib/lunchmoney/transactions/transaction/transaction_base.rb +0 -52
- data/lib/lunchmoney/transactions/transaction/transaction_modification_base.rb +0 -30
- data/lib/lunchmoney/transactions/transaction/update_transaction.rb +0 -43
- data/lib/lunchmoney/transactions/transaction_calls.rb +0 -218
- data/lib/lunchmoney/user/user.rb +0 -36
- data/lib/lunchmoney/user/user_calls.rb +0 -19
@@ -1,65 +0,0 @@
|
|
1
|
-
# typed: strict
|
2
|
-
# frozen_string_literal: true
|
3
|
-
|
4
|
-
module LunchMoney
|
5
|
-
# https://lunchmoney.dev/#recurring-expenses-object
|
6
|
-
class RecurringExpense < RecurringExpenseBase
|
7
|
-
sig { returns(Integer) }
|
8
|
-
attr_accessor :id
|
9
|
-
|
10
|
-
sig { returns(T.nilable(String)) }
|
11
|
-
attr_accessor :start_date, :end_date, :description, :original_name
|
12
|
-
|
13
|
-
sig { returns(String) }
|
14
|
-
attr_accessor :cadence, :billing_date, :type, :source, :created_at
|
15
|
-
|
16
|
-
sig { returns(T.nilable(Integer)) }
|
17
|
-
attr_accessor :plaid_account_id, :asset_id, :transaction_id, :category_id
|
18
|
-
|
19
|
-
sig do
|
20
|
-
params(
|
21
|
-
cadence: String,
|
22
|
-
payee: String,
|
23
|
-
amount: String,
|
24
|
-
currency: String,
|
25
|
-
billing_date: String,
|
26
|
-
type: String,
|
27
|
-
source: String,
|
28
|
-
id: Integer,
|
29
|
-
created_at: String,
|
30
|
-
category_id: T.nilable(Integer),
|
31
|
-
start_date: T.nilable(String),
|
32
|
-
end_date: T.nilable(String),
|
33
|
-
description: T.nilable(String),
|
34
|
-
original_name: T.nilable(String),
|
35
|
-
plaid_account_id: T.nilable(Integer),
|
36
|
-
asset_id: T.nilable(Integer),
|
37
|
-
transaction_id: T.nilable(Integer),
|
38
|
-
to_base: T.nilable(Number),
|
39
|
-
).void
|
40
|
-
end
|
41
|
-
def initialize(cadence:, payee:, amount:, currency:, billing_date:, type:, source:, id:, created_at:,
|
42
|
-
category_id: nil, start_date: nil, end_date: nil, description: nil, original_name: nil, plaid_account_id: nil,
|
43
|
-
asset_id: nil, transaction_id: nil, to_base: nil)
|
44
|
-
super(payee:, amount:, currency:, to_base:)
|
45
|
-
@cadence = cadence
|
46
|
-
@payee = payee
|
47
|
-
@amount = amount
|
48
|
-
@currency = currency
|
49
|
-
@billing_date = billing_date
|
50
|
-
@type = type
|
51
|
-
@source = source
|
52
|
-
@id = id
|
53
|
-
@category_id = category_id
|
54
|
-
@created_at = created_at
|
55
|
-
@start_date = start_date
|
56
|
-
@end_date = end_date
|
57
|
-
@description = description
|
58
|
-
@original_name = original_name
|
59
|
-
@plaid_account_id = plaid_account_id
|
60
|
-
@asset_id = asset_id
|
61
|
-
@transaction_id = transaction_id
|
62
|
-
@to_base = to_base
|
63
|
-
end
|
64
|
-
end
|
65
|
-
end
|
@@ -1,29 +0,0 @@
|
|
1
|
-
# typed: strict
|
2
|
-
# frozen_string_literal: true
|
3
|
-
|
4
|
-
module LunchMoney
|
5
|
-
# https://lunchmoney.dev/#recurring-expenses-object
|
6
|
-
class RecurringExpenseBase < LunchMoney::DataObject
|
7
|
-
sig { returns(String) }
|
8
|
-
attr_accessor :payee, :currency, :amount
|
9
|
-
|
10
|
-
sig { returns(T.nilable(Number)) }
|
11
|
-
attr_accessor :to_base
|
12
|
-
|
13
|
-
sig do
|
14
|
-
params(
|
15
|
-
payee: String,
|
16
|
-
amount: String,
|
17
|
-
currency: String,
|
18
|
-
to_base: T.nilable(Number),
|
19
|
-
).void
|
20
|
-
end
|
21
|
-
def initialize(payee:, amount:, currency:, to_base:)
|
22
|
-
super()
|
23
|
-
@payee = payee
|
24
|
-
@amount = amount
|
25
|
-
@currency = currency
|
26
|
-
@to_base = to_base
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
@@ -1,28 +0,0 @@
|
|
1
|
-
# typed: strict
|
2
|
-
# frozen_string_literal: true
|
3
|
-
|
4
|
-
require_relative "recurring_expense/recurring_expense_base"
|
5
|
-
require_relative "recurring_expense/recurring_expense"
|
6
|
-
|
7
|
-
module LunchMoney
|
8
|
-
# https://lunchmoney.dev/#recurring-expenses
|
9
|
-
class RecurringExpenseCalls < ApiCall
|
10
|
-
sig do
|
11
|
-
params(
|
12
|
-
start_date: T.nilable(String),
|
13
|
-
end_date: T.nilable(String),
|
14
|
-
).returns(T.any(T::Array[LunchMoney::RecurringExpense], LunchMoney::Errors))
|
15
|
-
end
|
16
|
-
def recurring_expenses(start_date: nil, end_date: nil)
|
17
|
-
params = clean_params({ start_date:, end_date: })
|
18
|
-
response = get("recurring_expenses", query_params: params)
|
19
|
-
|
20
|
-
api_errors = errors(response)
|
21
|
-
return api_errors if api_errors.present?
|
22
|
-
|
23
|
-
response.body[:recurring_expenses].map do |recurring_expense|
|
24
|
-
LunchMoney::RecurringExpense.new(**recurring_expense)
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|
@@ -1,20 +0,0 @@
|
|
1
|
-
# typed: strict
|
2
|
-
# frozen_string_literal: true
|
3
|
-
|
4
|
-
module LunchMoney
|
5
|
-
# https://lunchmoney.dev/#tags-object
|
6
|
-
class Tag < TagBase
|
7
|
-
sig { returns(T.nilable(String)) }
|
8
|
-
attr_accessor :description
|
9
|
-
|
10
|
-
sig { returns(T::Boolean) }
|
11
|
-
attr_accessor :archived
|
12
|
-
|
13
|
-
sig { params(id: Integer, name: String, archived: T::Boolean, description: T.nilable(String)).void }
|
14
|
-
def initialize(id:, name:, archived:, description: nil)
|
15
|
-
super(id:, name:)
|
16
|
-
@archived = archived
|
17
|
-
@description = description
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
@@ -1,21 +0,0 @@
|
|
1
|
-
# typed: strict
|
2
|
-
# frozen_string_literal: true
|
3
|
-
|
4
|
-
module LunchMoney
|
5
|
-
# https://lunchmoney.dev/#tags-object without some fields. This is used within field returns of other objects like
|
6
|
-
# field returns of other objects like transactions
|
7
|
-
class TagBase < LunchMoney::DataObject
|
8
|
-
sig { returns(Integer) }
|
9
|
-
attr_accessor :id
|
10
|
-
|
11
|
-
sig { returns(String) }
|
12
|
-
attr_accessor :name
|
13
|
-
|
14
|
-
sig { params(id: Integer, name: String).void }
|
15
|
-
def initialize(id:, name:)
|
16
|
-
super()
|
17
|
-
@id = id
|
18
|
-
@name = name
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
@@ -1,20 +0,0 @@
|
|
1
|
-
# typed: strict
|
2
|
-
# frozen_string_literal: true
|
3
|
-
|
4
|
-
require_relative "tag/tag_base"
|
5
|
-
require_relative "tag/tag"
|
6
|
-
|
7
|
-
module LunchMoney
|
8
|
-
# https://lunchmoney.dev/#tags
|
9
|
-
class TagCalls < ApiCall
|
10
|
-
sig { returns(T.any(T::Array[LunchMoney::Tag], LunchMoney::Errors)) }
|
11
|
-
def tags
|
12
|
-
response = get("tags")
|
13
|
-
|
14
|
-
api_errors = errors(response)
|
15
|
-
return api_errors if api_errors.present?
|
16
|
-
|
17
|
-
response.body.map { |tag| LunchMoney::Tag.new(**tag) }
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
@@ -1,31 +0,0 @@
|
|
1
|
-
# typed: strict
|
2
|
-
# frozen_string_literal: true
|
3
|
-
|
4
|
-
module LunchMoney
|
5
|
-
# Slimmed down version of https://lunchmoney.dev/#transaction-object used in the
|
6
|
-
# `children` field of a transaction object with an additional `formatted_date`` field
|
7
|
-
class ChildTransaction < TransactionBase
|
8
|
-
sig { returns(String) }
|
9
|
-
attr_accessor :formatted_date
|
10
|
-
|
11
|
-
sig do
|
12
|
-
params(
|
13
|
-
id: Integer,
|
14
|
-
date: String,
|
15
|
-
amount: String,
|
16
|
-
currency: String,
|
17
|
-
to_base: Number,
|
18
|
-
payee: String,
|
19
|
-
formatted_date: String,
|
20
|
-
notes: T.nilable(String),
|
21
|
-
asset_id: T.nilable(Integer),
|
22
|
-
plaid_account_id: T.nilable(Integer),
|
23
|
-
).void
|
24
|
-
end
|
25
|
-
def initialize(id:, date:, amount:, currency:, to_base:, payee:, formatted_date:, notes: nil, asset_id: nil,
|
26
|
-
plaid_account_id: nil)
|
27
|
-
super(id:, date:, amount:, currency:, to_base:, payee:, notes:, asset_id:, plaid_account_id:)
|
28
|
-
@formatted_date = formatted_date
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|
@@ -1,24 +0,0 @@
|
|
1
|
-
# typed: strict
|
2
|
-
# frozen_string_literal: true
|
3
|
-
|
4
|
-
module LunchMoney
|
5
|
-
# Object used to split a transaction when updating https://lunchmoney.dev/#update-transaction
|
6
|
-
class Split < TransactionModificationBase
|
7
|
-
sig { returns(T.any(Number, String)) }
|
8
|
-
attr_accessor :amount
|
9
|
-
|
10
|
-
sig do
|
11
|
-
params(
|
12
|
-
amount: T.any(Number, String),
|
13
|
-
payee: T.nilable(String),
|
14
|
-
date: T.nilable(String),
|
15
|
-
category_id: T.nilable(Integer),
|
16
|
-
notes: T.nilable(String),
|
17
|
-
).void
|
18
|
-
end
|
19
|
-
def initialize(amount:, payee: nil, date: nil, category_id: nil, notes: nil)
|
20
|
-
super(payee:, date:, category_id:, notes:)
|
21
|
-
@amount = amount
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
@@ -1,156 +0,0 @@
|
|
1
|
-
# typed: strict
|
2
|
-
# frozen_string_literal: true
|
3
|
-
|
4
|
-
module LunchMoney
|
5
|
-
# https://lunchmoney.dev/#transaction-object
|
6
|
-
class Transaction < TransactionBase
|
7
|
-
sig { returns(T.nilable(Integer)) }
|
8
|
-
attr_accessor :category_id,
|
9
|
-
:category_group_id,
|
10
|
-
:recurring_id,
|
11
|
-
:parent_id,
|
12
|
-
:group_id,
|
13
|
-
:external_id
|
14
|
-
|
15
|
-
sig { returns(String) }
|
16
|
-
attr_accessor :created_at,
|
17
|
-
:updated_at,
|
18
|
-
:status,
|
19
|
-
:source,
|
20
|
-
:display_name,
|
21
|
-
:account_display_name
|
22
|
-
|
23
|
-
sig { returns(T.nilable(String)) }
|
24
|
-
attr_accessor :category_name,
|
25
|
-
:category_group_name,
|
26
|
-
:original_name,
|
27
|
-
:recurring_payee,
|
28
|
-
:recurring_description,
|
29
|
-
:recurring_cadence,
|
30
|
-
:recurring_type,
|
31
|
-
:recurring_amount,
|
32
|
-
:recurring_currency,
|
33
|
-
:asset_institution_name,
|
34
|
-
:asset_name,
|
35
|
-
:asset_display_name,
|
36
|
-
:asset_status,
|
37
|
-
:plaid_account_name,
|
38
|
-
:plaid_account_mask,
|
39
|
-
:institution_name,
|
40
|
-
:plaid_account_display_name,
|
41
|
-
:plaid_metadata,
|
42
|
-
:display_notes
|
43
|
-
|
44
|
-
sig { returns(T::Boolean) }
|
45
|
-
attr_accessor :is_income, :exclude_from_budget, :exclude_from_totals, :is_pending, :has_children, :is_group
|
46
|
-
|
47
|
-
sig { returns(T::Array[LunchMoney::TagBase]) }
|
48
|
-
attr_accessor :tags
|
49
|
-
|
50
|
-
sig { returns(T.nilable(T::Array[LunchMoney::ChildTransaction])) }
|
51
|
-
attr_accessor :children
|
52
|
-
|
53
|
-
sig do
|
54
|
-
params(
|
55
|
-
id: Integer,
|
56
|
-
date: String,
|
57
|
-
amount: String,
|
58
|
-
currency: String,
|
59
|
-
to_base: Number,
|
60
|
-
payee: String,
|
61
|
-
is_income: T::Boolean,
|
62
|
-
exclude_from_budget: T::Boolean,
|
63
|
-
exclude_from_totals: T::Boolean,
|
64
|
-
created_at: String,
|
65
|
-
updated_at: String,
|
66
|
-
status: String,
|
67
|
-
is_pending: T::Boolean,
|
68
|
-
has_children: T::Boolean,
|
69
|
-
is_group: T::Boolean,
|
70
|
-
source: String,
|
71
|
-
display_name: String,
|
72
|
-
account_display_name: String,
|
73
|
-
tags: T::Array[LunchMoney::TagBase],
|
74
|
-
category_id: T.nilable(Integer),
|
75
|
-
category_name: T.nilable(String),
|
76
|
-
category_group_id: T.nilable(Integer),
|
77
|
-
category_group_name: T.nilable(String),
|
78
|
-
notes: T.nilable(String),
|
79
|
-
original_name: T.nilable(String),
|
80
|
-
recurring_id: T.nilable(Integer),
|
81
|
-
recurring_payee: T.nilable(String),
|
82
|
-
recurring_description: T.nilable(String),
|
83
|
-
recurring_cadence: T.nilable(String),
|
84
|
-
recurring_type: T.nilable(String),
|
85
|
-
recurring_amount: T.nilable(String),
|
86
|
-
recurring_currency: T.nilable(String),
|
87
|
-
parent_id: T.nilable(Integer),
|
88
|
-
group_id: T.nilable(Integer),
|
89
|
-
asset_id: T.nilable(Integer),
|
90
|
-
asset_institution_name: T.nilable(String),
|
91
|
-
asset_name: T.nilable(String),
|
92
|
-
asset_display_name: T.nilable(String),
|
93
|
-
asset_status: T.nilable(String),
|
94
|
-
plaid_account_id: T.nilable(Integer),
|
95
|
-
plaid_account_name: T.nilable(String),
|
96
|
-
plaid_account_mask: T.nilable(String),
|
97
|
-
institution_name: T.nilable(String),
|
98
|
-
plaid_account_display_name: T.nilable(String),
|
99
|
-
plaid_metadata: T.nilable(String),
|
100
|
-
display_notes: T.nilable(String),
|
101
|
-
external_id: T.nilable(Integer),
|
102
|
-
children: T.nilable(T::Array[LunchMoney::ChildTransaction]),
|
103
|
-
).void
|
104
|
-
end
|
105
|
-
def initialize(id:, date:, amount:, currency:, to_base:, payee:, is_income:, exclude_from_budget:,
|
106
|
-
exclude_from_totals:, created_at:, updated_at:, status:, is_pending:, has_children:, is_group:, source:,
|
107
|
-
display_name:, account_display_name:, tags:, category_id: nil, category_name: nil, category_group_id: nil,
|
108
|
-
category_group_name: nil, notes: nil, original_name: nil, recurring_id: nil, recurring_payee: nil,
|
109
|
-
recurring_description: nil, recurring_cadence: nil, recurring_type: nil, recurring_amount: nil,
|
110
|
-
recurring_currency: nil, parent_id: nil, group_id: nil, asset_id: nil, asset_institution_name: nil,
|
111
|
-
asset_name: nil, asset_display_name: nil, asset_status: nil, plaid_account_id: nil, plaid_account_name: nil,
|
112
|
-
plaid_account_mask: nil, institution_name: nil, plaid_account_display_name: nil, plaid_metadata: nil,
|
113
|
-
display_notes: nil, external_id: nil, children: nil)
|
114
|
-
super(id:, date:, amount:, currency:, to_base:, payee:, notes:, asset_id:, plaid_account_id:)
|
115
|
-
@is_income = is_income
|
116
|
-
@exclude_from_budget = exclude_from_budget
|
117
|
-
@exclude_from_totals = exclude_from_totals
|
118
|
-
@created_at = created_at
|
119
|
-
@updated_at = updated_at
|
120
|
-
@status = status
|
121
|
-
@is_pending = is_pending
|
122
|
-
@has_children = has_children
|
123
|
-
@is_group = is_group
|
124
|
-
@source = source
|
125
|
-
@display_name = display_name
|
126
|
-
@account_display_name = account_display_name
|
127
|
-
@tags = tags
|
128
|
-
@category_id = category_id
|
129
|
-
@category_name = category_name
|
130
|
-
@category_group_id = category_group_id
|
131
|
-
@category_group_name = category_group_name
|
132
|
-
@original_name = original_name
|
133
|
-
@recurring_id = recurring_id
|
134
|
-
@recurring_payee = recurring_payee
|
135
|
-
@recurring_description = recurring_description
|
136
|
-
@recurring_cadence = recurring_cadence
|
137
|
-
@recurring_type = recurring_type
|
138
|
-
@recurring_amount = recurring_amount
|
139
|
-
@recurring_currency = recurring_currency
|
140
|
-
@parent_id = parent_id
|
141
|
-
@group_id = group_id
|
142
|
-
@asset_institution_name = asset_institution_name
|
143
|
-
@asset_name = asset_name
|
144
|
-
@asset_display_name = asset_display_name
|
145
|
-
@asset_status = asset_status
|
146
|
-
@plaid_account_name = plaid_account_name
|
147
|
-
@plaid_account_mask = plaid_account_mask
|
148
|
-
@institution_name = institution_name
|
149
|
-
@plaid_account_display_name = plaid_account_display_name
|
150
|
-
@plaid_metadata = plaid_metadata
|
151
|
-
@display_notes = display_notes
|
152
|
-
@children = children
|
153
|
-
@external_id = external_id
|
154
|
-
end
|
155
|
-
end
|
156
|
-
end
|
@@ -1,52 +0,0 @@
|
|
1
|
-
# typed: strict
|
2
|
-
# frozen_string_literal: true
|
3
|
-
|
4
|
-
module LunchMoney
|
5
|
-
# Slimmed down version of https://lunchmoney.dev/#transaction-object used as a base for other transaction objects
|
6
|
-
class TransactionBase < LunchMoney::DataObject
|
7
|
-
sig { returns(Integer) }
|
8
|
-
attr_accessor :id
|
9
|
-
|
10
|
-
sig { returns(Number) }
|
11
|
-
attr_accessor :to_base
|
12
|
-
|
13
|
-
sig { returns(T.nilable(Integer)) }
|
14
|
-
attr_accessor :asset_id, :plaid_account_id
|
15
|
-
|
16
|
-
sig { returns(String) }
|
17
|
-
attr_accessor :date,
|
18
|
-
:amount,
|
19
|
-
:currency,
|
20
|
-
:payee
|
21
|
-
|
22
|
-
sig { returns(T.nilable(String)) }
|
23
|
-
attr_accessor :notes
|
24
|
-
|
25
|
-
sig do
|
26
|
-
params(
|
27
|
-
id: Integer,
|
28
|
-
date: String,
|
29
|
-
amount: String,
|
30
|
-
currency: String,
|
31
|
-
to_base: Number,
|
32
|
-
payee: String,
|
33
|
-
notes: T.nilable(String),
|
34
|
-
asset_id: T.nilable(Integer),
|
35
|
-
plaid_account_id: T.nilable(Integer),
|
36
|
-
).void
|
37
|
-
end
|
38
|
-
def initialize(id:, date:, amount:, currency:, to_base:, payee:, notes: nil, asset_id: nil,
|
39
|
-
plaid_account_id: nil)
|
40
|
-
super()
|
41
|
-
@id = id
|
42
|
-
@date = date
|
43
|
-
@amount = amount
|
44
|
-
@currency = currency
|
45
|
-
@to_base = to_base
|
46
|
-
@payee = payee
|
47
|
-
@notes = notes
|
48
|
-
@asset_id = asset_id
|
49
|
-
@plaid_account_id = plaid_account_id
|
50
|
-
end
|
51
|
-
end
|
52
|
-
end
|
@@ -1,30 +0,0 @@
|
|
1
|
-
# typed: strict
|
2
|
-
# frozen_string_literal: true
|
3
|
-
|
4
|
-
module LunchMoney
|
5
|
-
# Base object used for transaction objects that are used to update
|
6
|
-
# transactions https://lunchmoney.dev/#update-transaction
|
7
|
-
class TransactionModificationBase < LunchMoney::DataObject
|
8
|
-
sig { returns(T.nilable(String)) }
|
9
|
-
attr_accessor :payee, :date, :notes
|
10
|
-
|
11
|
-
sig { returns(T.nilable(Integer)) }
|
12
|
-
attr_accessor :category_id
|
13
|
-
|
14
|
-
sig do
|
15
|
-
params(
|
16
|
-
payee: T.nilable(String),
|
17
|
-
date: T.nilable(String),
|
18
|
-
category_id: T.nilable(Integer),
|
19
|
-
notes: T.nilable(String),
|
20
|
-
).void
|
21
|
-
end
|
22
|
-
def initialize(payee: nil, date: nil, category_id: nil, notes: nil)
|
23
|
-
super()
|
24
|
-
@payee = payee
|
25
|
-
@date = date
|
26
|
-
@category_id = category_id
|
27
|
-
@notes = notes
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|
@@ -1,43 +0,0 @@
|
|
1
|
-
# typed: strict
|
2
|
-
# frozen_string_literal: true
|
3
|
-
|
4
|
-
module LunchMoney
|
5
|
-
# object used when updating a transaction https://lunchmoney.dev/#update-transaction
|
6
|
-
class UpdateTransaction < TransactionModificationBase
|
7
|
-
sig { returns(T.nilable(String)) }
|
8
|
-
attr_accessor :amount, :currency, :status, :external_id
|
9
|
-
|
10
|
-
sig { returns(T.nilable(Integer)) }
|
11
|
-
attr_accessor :asset_id, :recurring_id
|
12
|
-
|
13
|
-
sig { returns(T.nilable(T::Array[T.any(String, Integer)])) }
|
14
|
-
attr_accessor :tags
|
15
|
-
|
16
|
-
sig do
|
17
|
-
params(
|
18
|
-
tags: T.nilable(T::Array[T.any(String, Integer)]),
|
19
|
-
category_id: T.nilable(Integer),
|
20
|
-
payee: T.nilable(String),
|
21
|
-
amount: T.nilable(String),
|
22
|
-
currency: T.nilable(String),
|
23
|
-
asset_id: T.nilable(Integer),
|
24
|
-
recurring_id: T.nilable(Integer),
|
25
|
-
notes: T.nilable(String),
|
26
|
-
status: T.nilable(String),
|
27
|
-
external_id: T.nilable(String),
|
28
|
-
date: T.nilable(String),
|
29
|
-
).void
|
30
|
-
end
|
31
|
-
def initialize(tags: nil, category_id: nil, payee: nil, amount: nil, currency: nil, asset_id: nil,
|
32
|
-
recurring_id: nil, notes: nil, status: nil, external_id: nil, date: nil)
|
33
|
-
super(payee:, date:, category_id:, notes:)
|
34
|
-
@amount = amount
|
35
|
-
@tags = tags
|
36
|
-
@currency = currency
|
37
|
-
@asset_id = asset_id
|
38
|
-
@recurring_id = recurring_id
|
39
|
-
@status = status
|
40
|
-
@external_id = external_id
|
41
|
-
end
|
42
|
-
end
|
43
|
-
end
|