mx-platform-ruby 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/test.yml +20 -0
- data/.gitignore +13 -0
- data/.rubocop.yml +44 -0
- data/Gemfile +5 -0
- data/LICENSE +21 -0
- data/README.md +60 -0
- data/Rakefile +11 -0
- data/lib/mx-platform-ruby.rb +44 -0
- data/lib/mx-platform-ruby/account.rb +107 -0
- data/lib/mx-platform-ruby/account_number.rb +57 -0
- data/lib/mx-platform-ruby/account_owner.rb +42 -0
- data/lib/mx-platform-ruby/category.rb +127 -0
- data/lib/mx-platform-ruby/challenge.rb +37 -0
- data/lib/mx-platform-ruby/client.rb +59 -0
- data/lib/mx-platform-ruby/connect_widget.rb +43 -0
- data/lib/mx-platform-ruby/credential.rb +54 -0
- data/lib/mx-platform-ruby/enhanced_transaction.rb +44 -0
- data/lib/mx-platform-ruby/error.rb +6 -0
- data/lib/mx-platform-ruby/holding.rb +87 -0
- data/lib/mx-platform-ruby/institution.rb +78 -0
- data/lib/mx-platform-ruby/member.rb +242 -0
- data/lib/mx-platform-ruby/member_status.rb +35 -0
- data/lib/mx-platform-ruby/merchant.rb +52 -0
- data/lib/mx-platform-ruby/oauth_window.rb +32 -0
- data/lib/mx-platform-ruby/pageable.rb +29 -0
- data/lib/mx-platform-ruby/statement.rb +70 -0
- data/lib/mx-platform-ruby/tag.rb +104 -0
- data/lib/mx-platform-ruby/tagging.rb +107 -0
- data/lib/mx-platform-ruby/transaction.rb +162 -0
- data/lib/mx-platform-ruby/transaction_rule.rb +112 -0
- data/lib/mx-platform-ruby/user.rb +112 -0
- data/lib/mx-platform-ruby/version.rb +5 -0
- data/lib/mx-platform-ruby/widget.rb +49 -0
- data/mx-platform-ruby.gemspec +31 -0
- data/spec/lib/mx-platform-ruby/account_number_spec.rb +100 -0
- data/spec/lib/mx-platform-ruby/account_owner_spec.rb +71 -0
- data/spec/lib/mx-platform-ruby/account_spec.rb +267 -0
- data/spec/lib/mx-platform-ruby/category_spec.rb +244 -0
- data/spec/lib/mx-platform-ruby/challenge_spec.rb +72 -0
- data/spec/lib/mx-platform-ruby/client_spec.rb +101 -0
- data/spec/lib/mx-platform-ruby/connect_widget_spec.rb +66 -0
- data/spec/lib/mx-platform-ruby/credential_spec.rb +90 -0
- data/spec/lib/mx-platform-ruby/enhanced_transaction_spec.rb +89 -0
- data/spec/lib/mx-platform-ruby/holding_spec.rb +178 -0
- data/spec/lib/mx-platform-ruby/institution_spec.rb +141 -0
- data/spec/lib/mx-platform-ruby/member_spec.rb +557 -0
- data/spec/lib/mx-platform-ruby/member_status_spec.rb +76 -0
- data/spec/lib/mx-platform-ruby/merchant_spec.rb +89 -0
- data/spec/lib/mx-platform-ruby/oauth_window_spec.rb +47 -0
- data/spec/lib/mx-platform-ruby/pageable_spec.rb +75 -0
- data/spec/lib/mx-platform-ruby/statement_spec.rb +130 -0
- data/spec/lib/mx-platform-ruby/tag_spec.rb +179 -0
- data/spec/lib/mx-platform-ruby/tagging_spec.rb +191 -0
- data/spec/lib/mx-platform-ruby/transaction_rule_spec.rb +207 -0
- data/spec/lib/mx-platform-ruby/transaction_spec.rb +449 -0
- data/spec/lib/mx-platform-ruby/user_spec.rb +196 -0
- data/spec/lib/mx-platform-ruby/widget_spec.rb +76 -0
- data/spec/lib/mx-platform-ruby_spec.rb +15 -0
- data/spec/sample.pdf +0 -0
- data/spec/spec_helper.rb +24 -0
- metadata +63 -3
@@ -0,0 +1,70 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module MXPlatformRuby
|
4
|
+
class Statement
|
5
|
+
extend ::MXPlatformRuby::Pageable
|
6
|
+
include ::ActiveAttr::Model
|
7
|
+
|
8
|
+
attribute :account_guid
|
9
|
+
attribute :content_hash
|
10
|
+
attribute :created_at
|
11
|
+
attribute :guid
|
12
|
+
attribute :member_guid
|
13
|
+
attribute :updated_at
|
14
|
+
attribute :uri
|
15
|
+
attribute :user_guid
|
16
|
+
|
17
|
+
def self.download_statement_pdf(options = {})
|
18
|
+
download_statement_pdf_options = download_statement_pdf_options(options)
|
19
|
+
::MXPlatformRuby.client.make_request(download_statement_pdf_options)
|
20
|
+
end
|
21
|
+
|
22
|
+
def self.list_statements_by_member(options = {})
|
23
|
+
options = list_statements_by_member_options(options)
|
24
|
+
|
25
|
+
paginate(options)
|
26
|
+
end
|
27
|
+
|
28
|
+
def self.read_statement_by_member(options = {})
|
29
|
+
read_statement_by_member_options = read_statement_by_member_options(options)
|
30
|
+
response = ::MXPlatformRuby.client.make_request(read_statement_by_member_options)
|
31
|
+
|
32
|
+
statement_params = response['statement']
|
33
|
+
::MXPlatformRuby::Statement.new(statement_params)
|
34
|
+
end
|
35
|
+
|
36
|
+
# Private class methods
|
37
|
+
|
38
|
+
def self.download_statement_pdf_options(options)
|
39
|
+
{
|
40
|
+
endpoint: "/users/#{options[:user_guid]}/members/#{options[:member_guid]}/statements/#{options[:statement_guid]}.pdf",
|
41
|
+
headers: {
|
42
|
+
'Accept': 'application/vnd.mx.api.v1+pdf'
|
43
|
+
},
|
44
|
+
http_method: :get
|
45
|
+
}
|
46
|
+
end
|
47
|
+
private_class_method :download_statement_pdf_options
|
48
|
+
|
49
|
+
def self.list_statements_by_member_options(options)
|
50
|
+
{
|
51
|
+
endpoint: "/users/#{options[:user_guid]}/members/#{options[:member_guid]}/statements",
|
52
|
+
http_method: :get,
|
53
|
+
query_params: {
|
54
|
+
page: options[:page],
|
55
|
+
records_per_page: options[:records_per_page]
|
56
|
+
}.compact,
|
57
|
+
resource: 'statements'
|
58
|
+
}
|
59
|
+
end
|
60
|
+
private_class_method :list_statements_by_member_options
|
61
|
+
|
62
|
+
def self.read_statement_by_member_options(options)
|
63
|
+
{
|
64
|
+
endpoint: "/users/#{options[:user_guid]}/members/#{options[:member_guid]}/statements/#{options[:statement_guid]}",
|
65
|
+
http_method: :get
|
66
|
+
}
|
67
|
+
end
|
68
|
+
private_class_method :read_statement_by_member_options
|
69
|
+
end
|
70
|
+
end
|
@@ -0,0 +1,104 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module MXPlatformRuby
|
4
|
+
class Tag
|
5
|
+
extend ::MXPlatformRuby::Pageable
|
6
|
+
include ::ActiveAttr::Model
|
7
|
+
|
8
|
+
attribute :guid
|
9
|
+
attribute :name
|
10
|
+
attribute :user_guid
|
11
|
+
|
12
|
+
def self.create_tag(options = {})
|
13
|
+
create_tag_options = create_tag_options(options)
|
14
|
+
response = ::MXPlatformRuby.client.make_request(create_tag_options)
|
15
|
+
|
16
|
+
tag_params = response['tag']
|
17
|
+
::MXPlatformRuby::Tag.new(tag_params)
|
18
|
+
end
|
19
|
+
|
20
|
+
def self.delete_tag(options = {})
|
21
|
+
delete_tag_options = delete_tag_options(options)
|
22
|
+
::MXPlatformRuby.client.make_request(delete_tag_options)
|
23
|
+
end
|
24
|
+
|
25
|
+
def self.list_tags(options = {})
|
26
|
+
options = list_tags_options(options)
|
27
|
+
|
28
|
+
paginate(options)
|
29
|
+
end
|
30
|
+
|
31
|
+
def self.read_tag(options = {})
|
32
|
+
read_tag_options = read_tag_options(options)
|
33
|
+
response = ::MXPlatformRuby.client.make_request(read_tag_options)
|
34
|
+
|
35
|
+
tag_params = response['tag']
|
36
|
+
::MXPlatformRuby::Tag.new(tag_params)
|
37
|
+
end
|
38
|
+
|
39
|
+
def self.update_tag(options = {})
|
40
|
+
update_tag_options = update_tag_options(options)
|
41
|
+
response = ::MXPlatformRuby.client.make_request(update_tag_options)
|
42
|
+
|
43
|
+
tag_params = response['tag']
|
44
|
+
::MXPlatformRuby::Tag.new(tag_params)
|
45
|
+
end
|
46
|
+
|
47
|
+
# Private class methods
|
48
|
+
|
49
|
+
def self.create_tag_options(options)
|
50
|
+
{
|
51
|
+
endpoint: "/users/#{options[:user_guid]}/tags",
|
52
|
+
http_method: :post,
|
53
|
+
request_body: {
|
54
|
+
tag: {
|
55
|
+
name: options[:name]
|
56
|
+
}.compact
|
57
|
+
}
|
58
|
+
}
|
59
|
+
end
|
60
|
+
private_class_method :create_tag_options
|
61
|
+
|
62
|
+
def self.delete_tag_options(options)
|
63
|
+
{
|
64
|
+
endpoint: "/users/#{options[:user_guid]}/tags/#{options[:tag_guid]}",
|
65
|
+
http_method: :delete
|
66
|
+
}
|
67
|
+
end
|
68
|
+
private_class_method :delete_tag_options
|
69
|
+
|
70
|
+
def self.list_tags_options(options)
|
71
|
+
{
|
72
|
+
endpoint: "/users/#{options[:user_guid]}/tags",
|
73
|
+
http_method: :get,
|
74
|
+
query_params: {
|
75
|
+
page: options[:page],
|
76
|
+
records_per_page: options[:records_per_page]
|
77
|
+
}.compact,
|
78
|
+
resource: 'tags'
|
79
|
+
}
|
80
|
+
end
|
81
|
+
private_class_method :list_tags_options
|
82
|
+
|
83
|
+
def self.read_tag_options(options)
|
84
|
+
{
|
85
|
+
endpoint: "/users/#{options[:user_guid]}/tags/#{options[:tag_guid]}",
|
86
|
+
http_method: :get
|
87
|
+
}
|
88
|
+
end
|
89
|
+
private_class_method :read_tag_options
|
90
|
+
|
91
|
+
def self.update_tag_options(options)
|
92
|
+
{
|
93
|
+
endpoint: "/users/#{options[:user_guid]}/tags/#{options[:tag_guid]}",
|
94
|
+
http_method: :put,
|
95
|
+
request_body: {
|
96
|
+
tag: {
|
97
|
+
name: options[:name]
|
98
|
+
}.compact
|
99
|
+
}
|
100
|
+
}
|
101
|
+
end
|
102
|
+
private_class_method :update_tag_options
|
103
|
+
end
|
104
|
+
end
|
@@ -0,0 +1,107 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module MXPlatformRuby
|
4
|
+
class Tagging
|
5
|
+
extend ::MXPlatformRuby::Pageable
|
6
|
+
include ::ActiveAttr::Model
|
7
|
+
|
8
|
+
attribute :guid
|
9
|
+
attribute :member_is_managed_by_user
|
10
|
+
attribute :tag_guid
|
11
|
+
attribute :transaction_guid
|
12
|
+
attribute :user_guid
|
13
|
+
|
14
|
+
def self.create_tagging(options = {})
|
15
|
+
create_tagging_options = create_tagging_options(options)
|
16
|
+
response = ::MXPlatformRuby.client.make_request(create_tagging_options)
|
17
|
+
|
18
|
+
tagging_params = response['tagging']
|
19
|
+
::MXPlatformRuby::Tagging.new(tagging_params)
|
20
|
+
end
|
21
|
+
|
22
|
+
def self.delete_tagging(options = {})
|
23
|
+
delete_tagging_options = delete_tagging_options(options)
|
24
|
+
::MXPlatformRuby.client.make_request(delete_tagging_options)
|
25
|
+
end
|
26
|
+
|
27
|
+
def self.list_taggings(options = {})
|
28
|
+
options = list_taggings_options(options)
|
29
|
+
|
30
|
+
paginate(options)
|
31
|
+
end
|
32
|
+
|
33
|
+
def self.read_tagging(options = {})
|
34
|
+
read_tagging_options = read_tagging_options(options)
|
35
|
+
response = ::MXPlatformRuby.client.make_request(read_tagging_options)
|
36
|
+
|
37
|
+
tagging_params = response['tagging']
|
38
|
+
::MXPlatformRuby::Tagging.new(tagging_params)
|
39
|
+
end
|
40
|
+
|
41
|
+
def self.update_tagging(options = {})
|
42
|
+
update_tagging_options = update_tagging_options(options)
|
43
|
+
response = ::MXPlatformRuby.client.make_request(update_tagging_options)
|
44
|
+
|
45
|
+
tagging_params = response['tagging']
|
46
|
+
::MXPlatformRuby::Tagging.new(tagging_params)
|
47
|
+
end
|
48
|
+
|
49
|
+
# Private class methods
|
50
|
+
|
51
|
+
def self.create_tagging_options(options)
|
52
|
+
{
|
53
|
+
endpoint: "/users/#{options[:user_guid]}/taggings",
|
54
|
+
http_method: :post,
|
55
|
+
request_body: {
|
56
|
+
tagging: {
|
57
|
+
tag_guid: options[:tag_guid],
|
58
|
+
transaction_guid: options[:transaction_guid]
|
59
|
+
}.compact
|
60
|
+
}
|
61
|
+
}
|
62
|
+
end
|
63
|
+
private_class_method :create_tagging_options
|
64
|
+
|
65
|
+
def self.delete_tagging_options(options)
|
66
|
+
{
|
67
|
+
endpoint: "/users/#{options[:user_guid]}/taggings/#{options[:tagging_guid]}",
|
68
|
+
http_method: :delete
|
69
|
+
}
|
70
|
+
end
|
71
|
+
private_class_method :delete_tagging_options
|
72
|
+
|
73
|
+
def self.list_taggings_options(options)
|
74
|
+
{
|
75
|
+
endpoint: "/users/#{options[:user_guid]}/taggings",
|
76
|
+
http_method: :get,
|
77
|
+
query_params: {
|
78
|
+
page: options[:page],
|
79
|
+
records_per_page: options[:records_per_page]
|
80
|
+
}.compact,
|
81
|
+
resource: 'taggings'
|
82
|
+
}
|
83
|
+
end
|
84
|
+
private_class_method :list_taggings_options
|
85
|
+
|
86
|
+
def self.read_tagging_options(options)
|
87
|
+
{
|
88
|
+
endpoint: "/users/#{options[:user_guid]}/taggings/#{options[:tagging_guid]}",
|
89
|
+
http_method: :get
|
90
|
+
}
|
91
|
+
end
|
92
|
+
private_class_method :read_tagging_options
|
93
|
+
|
94
|
+
def self.update_tagging_options(options)
|
95
|
+
{
|
96
|
+
endpoint: "/users/#{options[:user_guid]}/taggings/#{options[:tagging_guid]}",
|
97
|
+
http_method: :put,
|
98
|
+
request_body: {
|
99
|
+
tagging: {
|
100
|
+
tag_guid: options[:tag_guid]
|
101
|
+
}.compact
|
102
|
+
}
|
103
|
+
}
|
104
|
+
end
|
105
|
+
private_class_method :update_tagging_options
|
106
|
+
end
|
107
|
+
end
|
@@ -0,0 +1,162 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module MXPlatformRuby
|
4
|
+
class Transaction
|
5
|
+
extend ::MXPlatformRuby::Pageable
|
6
|
+
include ::ActiveAttr::Model
|
7
|
+
|
8
|
+
attribute :account_guid
|
9
|
+
attribute :amount
|
10
|
+
attribute :category
|
11
|
+
attribute :check_number_string
|
12
|
+
attribute :created_at
|
13
|
+
attribute :currency_code
|
14
|
+
attribute :date
|
15
|
+
attribute :description
|
16
|
+
attribute :guid
|
17
|
+
attribute :id
|
18
|
+
attribute :is_bill_pay
|
19
|
+
attribute :is_direct_deposit
|
20
|
+
attribute :is_expense
|
21
|
+
attribute :is_fee
|
22
|
+
attribute :is_income
|
23
|
+
attribute :is_international
|
24
|
+
attribute :is_overdraft_fee
|
25
|
+
attribute :is_payroll_advance
|
26
|
+
attribute :is_recurring
|
27
|
+
attribute :is_subscription
|
28
|
+
attribute :latitude
|
29
|
+
attribute :localized_description
|
30
|
+
attribute :localized_memo
|
31
|
+
attribute :longitude
|
32
|
+
attribute :member_guid
|
33
|
+
attribute :memo
|
34
|
+
attribute :merchant_category_code
|
35
|
+
attribute :merchant_guid
|
36
|
+
attribute :original_description
|
37
|
+
attribute :posted_at
|
38
|
+
attribute :status
|
39
|
+
attribute :top_level_category
|
40
|
+
attribute :transacted_at
|
41
|
+
attribute :type
|
42
|
+
attribute :updated_at
|
43
|
+
attribute :user_guid
|
44
|
+
|
45
|
+
def self.list_transactions_by_account(options = {})
|
46
|
+
options = list_transactions_by_account_options(options)
|
47
|
+
|
48
|
+
paginate(options)
|
49
|
+
end
|
50
|
+
|
51
|
+
def self.list_transactions_by_member(options = {})
|
52
|
+
options = list_transactions_by_member_options(options)
|
53
|
+
|
54
|
+
paginate(options)
|
55
|
+
end
|
56
|
+
|
57
|
+
def self.list_transactions_by_tag(options = {})
|
58
|
+
options = list_transactions_by_tag_options(options)
|
59
|
+
|
60
|
+
paginate(options)
|
61
|
+
end
|
62
|
+
|
63
|
+
def self.list_transactions_by_user(options = {})
|
64
|
+
options = list_transactions_by_user_options(options)
|
65
|
+
|
66
|
+
paginate(options)
|
67
|
+
end
|
68
|
+
|
69
|
+
def self.read_transaction(options = {})
|
70
|
+
read_transaction_options = read_transaction_options(options)
|
71
|
+
response = ::MXPlatformRuby.client.make_request(read_transaction_options)
|
72
|
+
|
73
|
+
transaction_params = response['transaction']
|
74
|
+
::MXPlatformRuby::Transaction.new(transaction_params)
|
75
|
+
end
|
76
|
+
|
77
|
+
def self.update_transaction(options = {})
|
78
|
+
update_transaction_options = update_transaction_options(options)
|
79
|
+
response = ::MXPlatformRuby.client.make_request(update_transaction_options)
|
80
|
+
|
81
|
+
transaction_params = response['transaction']
|
82
|
+
::MXPlatformRuby::Transaction.new(transaction_params)
|
83
|
+
end
|
84
|
+
|
85
|
+
# Private class methods
|
86
|
+
|
87
|
+
def self.list_transactions_by_account_options(options)
|
88
|
+
{
|
89
|
+
endpoint: "/users/#{options[:user_guid]}/accounts/#{options[:account_guid]}/transactions",
|
90
|
+
http_method: :get,
|
91
|
+
query_params: {
|
92
|
+
from_date: options[:from_date],
|
93
|
+
page: options[:page],
|
94
|
+
records_per_page: options[:records_per_page],
|
95
|
+
to_date: options[:to_date]
|
96
|
+
}.compact,
|
97
|
+
resource: 'transactions'
|
98
|
+
}
|
99
|
+
end
|
100
|
+
private_class_method :list_transactions_by_account_options
|
101
|
+
|
102
|
+
def self.list_transactions_by_member_options(options)
|
103
|
+
{
|
104
|
+
endpoint: "/users/#{options[:user_guid]}/members/#{options[:member_guid]}/transactions",
|
105
|
+
http_method: :get,
|
106
|
+
query_params: {
|
107
|
+
from_date: options[:from_date],
|
108
|
+
page: options[:page],
|
109
|
+
records_per_page: options[:records_per_page],
|
110
|
+
to_date: options[:to_date]
|
111
|
+
}.compact,
|
112
|
+
resource: 'transactions'
|
113
|
+
}
|
114
|
+
end
|
115
|
+
private_class_method :list_transactions_by_member_options
|
116
|
+
|
117
|
+
def self.list_transactions_by_tag_options(options)
|
118
|
+
{
|
119
|
+
endpoint: "/users/#{options[:user_guid]}/tags/#{options[:tag_guid]}/transactions",
|
120
|
+
http_method: :get,
|
121
|
+
resource: 'transactions'
|
122
|
+
}
|
123
|
+
end
|
124
|
+
private_class_method :list_transactions_by_tag_options
|
125
|
+
|
126
|
+
def self.list_transactions_by_user_options(options)
|
127
|
+
{
|
128
|
+
endpoint: "/users/#{options[:user_guid]}/transactions",
|
129
|
+
http_method: :get,
|
130
|
+
query_params: {
|
131
|
+
from_date: options[:from_date],
|
132
|
+
page: options[:page],
|
133
|
+
records_per_page: options[:records_per_page],
|
134
|
+
to_date: options[:to_date]
|
135
|
+
}.compact,
|
136
|
+
resource: 'transactions'
|
137
|
+
}
|
138
|
+
end
|
139
|
+
private_class_method :list_transactions_by_user_options
|
140
|
+
|
141
|
+
def self.read_transaction_options(options)
|
142
|
+
{
|
143
|
+
endpoint: "/users/#{options[:user_guid]}/transactions/#{options[:transaction_guid]}",
|
144
|
+
http_method: :get
|
145
|
+
}
|
146
|
+
end
|
147
|
+
private_class_method :read_transaction_options
|
148
|
+
|
149
|
+
def self.update_transaction_options(options)
|
150
|
+
{
|
151
|
+
endpoint: "/users/#{options[:user_guid]}/transactions/#{options[:transaction_guid]}",
|
152
|
+
http_method: :put,
|
153
|
+
request_body: {
|
154
|
+
transaction: {
|
155
|
+
description: options[:description]
|
156
|
+
}.compact
|
157
|
+
}
|
158
|
+
}
|
159
|
+
end
|
160
|
+
private_class_method :update_transaction_options
|
161
|
+
end
|
162
|
+
end
|
@@ -0,0 +1,112 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module MXPlatformRuby
|
4
|
+
class TransactionRule
|
5
|
+
extend ::MXPlatformRuby::Pageable
|
6
|
+
include ::ActiveAttr::Model
|
7
|
+
|
8
|
+
attribute :category_guid
|
9
|
+
attribute :created_at
|
10
|
+
attribute :description
|
11
|
+
attribute :guid
|
12
|
+
attribute :match_description
|
13
|
+
attribute :updated_at
|
14
|
+
attribute :user_guid
|
15
|
+
|
16
|
+
def self.create_transaction_rule(options = {})
|
17
|
+
create_transaction_rule_options = create_transaction_rule_options(options)
|
18
|
+
response = ::MXPlatformRuby.client.make_request(create_transaction_rule_options)
|
19
|
+
|
20
|
+
transaction_rule_params = response['transaction_rule']
|
21
|
+
::MXPlatformRuby::TransactionRule.new(transaction_rule_params)
|
22
|
+
end
|
23
|
+
|
24
|
+
def self.delete_transaction_rule(options = {})
|
25
|
+
delete_transaction_rule_options = delete_transaction_rule_options(options)
|
26
|
+
::MXPlatformRuby.client.make_request(delete_transaction_rule_options)
|
27
|
+
end
|
28
|
+
|
29
|
+
def self.list_transaction_rules_by_user(options = {})
|
30
|
+
options = list_transaction_rules_by_user_options(options)
|
31
|
+
|
32
|
+
paginate(options)
|
33
|
+
end
|
34
|
+
|
35
|
+
def self.read_transaction_rule(options = {})
|
36
|
+
read_transaction_rule_options = read_transaction_rule_options(options)
|
37
|
+
response = ::MXPlatformRuby.client.make_request(read_transaction_rule_options)
|
38
|
+
|
39
|
+
transaction_rule_params = response['transaction_rule']
|
40
|
+
::MXPlatformRuby::TransactionRule.new(transaction_rule_params)
|
41
|
+
end
|
42
|
+
|
43
|
+
def self.update_transaction_rule(options = {})
|
44
|
+
update_transaction_rule_options = update_transaction_rule_options(options)
|
45
|
+
response = ::MXPlatformRuby.client.make_request(update_transaction_rule_options)
|
46
|
+
|
47
|
+
transaction_rule_params = response['transaction_rule']
|
48
|
+
::MXPlatformRuby::TransactionRule.new(transaction_rule_params)
|
49
|
+
end
|
50
|
+
|
51
|
+
# Private class methods
|
52
|
+
|
53
|
+
def self.create_transaction_rule_options(options)
|
54
|
+
{
|
55
|
+
endpoint: "/users/#{options[:user_guid]}/transaction_rules",
|
56
|
+
http_method: :post,
|
57
|
+
request_body: {
|
58
|
+
transaction_rule: {
|
59
|
+
category_guid: options[:category_guid],
|
60
|
+
description: options[:description],
|
61
|
+
match_description: options[:match_description]
|
62
|
+
}.compact
|
63
|
+
}
|
64
|
+
}
|
65
|
+
end
|
66
|
+
private_class_method :create_transaction_rule_options
|
67
|
+
|
68
|
+
def self.delete_transaction_rule_options(options)
|
69
|
+
{
|
70
|
+
endpoint: "/users/#{options[:user_guid]}/transaction_rules/#{options[:transaction_rule_guid]}",
|
71
|
+
http_method: :delete
|
72
|
+
}
|
73
|
+
end
|
74
|
+
private_class_method :delete_transaction_rule_options
|
75
|
+
|
76
|
+
def self.list_transaction_rules_by_user_options(options)
|
77
|
+
{
|
78
|
+
endpoint: "/users/#{options[:user_guid]}/transaction_rules",
|
79
|
+
http_method: :get,
|
80
|
+
query_params: {
|
81
|
+
page: options[:page],
|
82
|
+
records_per_page: options[:records_per_page]
|
83
|
+
}.compact,
|
84
|
+
resource: 'transaction_rules'
|
85
|
+
}
|
86
|
+
end
|
87
|
+
private_class_method :list_transaction_rules_by_user_options
|
88
|
+
|
89
|
+
def self.read_transaction_rule_options(options)
|
90
|
+
{
|
91
|
+
endpoint: "/users/#{options[:user_guid]}/transaction_rules/#{options[:transaction_rule_guid]}",
|
92
|
+
http_method: :get
|
93
|
+
}
|
94
|
+
end
|
95
|
+
private_class_method :read_transaction_rule_options
|
96
|
+
|
97
|
+
def self.update_transaction_rule_options(options)
|
98
|
+
{
|
99
|
+
endpoint: "/users/#{options[:user_guid]}/transaction_rules/#{options[:transaction_rule_guid]}",
|
100
|
+
http_method: :put,
|
101
|
+
request_body: {
|
102
|
+
transaction_rule: {
|
103
|
+
category_guid: options[:category_guid],
|
104
|
+
description: options[:description],
|
105
|
+
match_description: options[:match_description]
|
106
|
+
}.compact
|
107
|
+
}
|
108
|
+
}
|
109
|
+
end
|
110
|
+
private_class_method :update_transaction_rule_options
|
111
|
+
end
|
112
|
+
end
|