starkinfra 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/creditnote/creditnote.rb +561 -0
- data/lib/creditnote/log.rb +126 -0
- data/lib/event/attempt.rb +126 -0
- data/lib/event/event.rb +125 -7
- data/lib/issuingauthorization/issuingauthorization.rb +141 -0
- data/lib/issuingbalance/issuingbalance.rb +55 -0
- data/lib/issuingbin/issuingbin.rb +89 -0
- data/lib/issuingcard/issuingcard.rb +260 -0
- data/lib/issuingcard/log.rb +123 -0
- data/lib/issuingholder/issuingholder.rb +206 -0
- data/lib/issuingholder/log.rb +123 -0
- data/lib/issuinginvoice/issuinginvoice.rb +152 -0
- data/lib/issuinginvoice/log.rb +120 -0
- data/lib/issuingpurchase/issuingpurchase.rb +209 -0
- data/lib/issuingpurchase/log.rb +131 -0
- data/lib/issuingrule/issuingrule.rb +81 -0
- data/lib/issuingtransaction/issuingtransaction.rb +136 -0
- data/lib/issuingwithdrawal/issuingwithdrawal.rb +153 -0
- data/lib/pixbalance/pixbalance.rb +13 -13
- data/lib/pixchargeback/log.rb +129 -0
- data/lib/pixchargeback/pixchargeback.rb +225 -0
- data/lib/pixclaim/log.rb +135 -0
- data/lib/pixclaim/pixclaim.rb +225 -0
- data/lib/pixdirector/pixdirector.rb +76 -0
- data/lib/pixdomain/certificate.rb +30 -0
- data/lib/pixdomain/pixdomain.rb +58 -0
- data/lib/pixinfraction/log.rb +129 -0
- data/lib/pixinfraction/pixinfraction.rb +212 -0
- data/lib/pixkey/log.rb +128 -0
- data/lib/pixkey/pixkey.rb +239 -0
- data/lib/pixrequest/log.rb +16 -16
- data/lib/pixrequest/pixrequest.rb +66 -67
- data/lib/pixreversal/log.rb +13 -12
- data/lib/pixreversal/pixreversal.rb +72 -71
- data/lib/pixstatement/pixstatement.rb +22 -23
- data/lib/starkinfra.rb +32 -2
- data/lib/user/organization.rb +54 -0
- data/lib/user/project.rb +37 -0
- data/lib/user/user.rb +20 -0
- data/lib/utils/api.rb +10 -2
- data/lib/utils/bacenid.rb +19 -0
- data/lib/utils/checks.rb +2 -3
- data/lib/utils/endtoendid.rb +11 -0
- data/lib/utils/parse.rb +13 -13
- data/lib/utils/request.rb +1 -1
- data/lib/utils/rest.rb +7 -5
- data/lib/utils/returnid.rb +11 -0
- data/lib/webhook/webhook.rb +124 -0
- metadata +45 -24
@@ -0,0 +1,123 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative('../utils/resource')
|
4
|
+
require_relative('../utils/rest')
|
5
|
+
require_relative('../utils/checks')
|
6
|
+
require_relative('issuingholder')
|
7
|
+
|
8
|
+
module StarkInfra
|
9
|
+
class IssuingHolder
|
10
|
+
# # IssuingHolder::Log object
|
11
|
+
#
|
12
|
+
# Every time an IssuingHolder entity is updated, a corresponding IssuingHolder.Log is generated for the entity. This
|
13
|
+
# log is never generated by the user, but it can be retrieved to check additional information on the IssuingHolder.
|
14
|
+
#
|
15
|
+
# ## Attributes:
|
16
|
+
# - id [string]: unique id returned when the log is created. ex: '5656565656565656'
|
17
|
+
# - holder [IssuingHolder]: IssuingHolder entity to which the log refers to.
|
18
|
+
# - type [string]: type of the IssuingHolder event which triggered the log creation. ex: 'blocked', 'canceled', 'created', 'unblocked', 'updated'
|
19
|
+
# - created [DateTime]: creation datetime for the log. ex: DateTime.new(2020, 3, 10, 10, 30, 0, 0)
|
20
|
+
class Log < StarkInfra::Utils::Resource
|
21
|
+
attr_reader :id, :created, :type, :holder
|
22
|
+
def initialize(id:, created:, type:, holder:)
|
23
|
+
super(id)
|
24
|
+
@type = type
|
25
|
+
@holder = holder
|
26
|
+
@created = StarkInfra::Utils::Checks.check_datetime(created)
|
27
|
+
end
|
28
|
+
|
29
|
+
# # Retrieve a specific Log
|
30
|
+
#
|
31
|
+
# Receive a single Log object previously created by the Stark Infra API by passing its id
|
32
|
+
#
|
33
|
+
# ## Parameters (required):
|
34
|
+
# - id [string]: object unique id. ex: '5656565656565656'
|
35
|
+
#
|
36
|
+
# ## Parameters (optional):
|
37
|
+
# - user [Organization/Project object, default nil]: Organization or Project object. Not necessary if StarkInfra.user was set before function call
|
38
|
+
#
|
39
|
+
# ## Return:
|
40
|
+
# - Log object with updated attributes
|
41
|
+
def self.get(id, user: nil)
|
42
|
+
StarkInfra::Utils::Rest.get_id(id: id, user: user, **resource)
|
43
|
+
end
|
44
|
+
|
45
|
+
# # Retrieve Logs
|
46
|
+
#
|
47
|
+
# Receive a generator of Log objects previously created in the Stark Infra API
|
48
|
+
#
|
49
|
+
# ## Parameters (optional):
|
50
|
+
# - limit [integer, default nil]: maximum number of objects to be retrieved. Max = 100. ex: 35
|
51
|
+
# - ids [list of strings, default nil]: list of ids to filter retrieved objects. ex: ['5656565656565656', '4545454545454545']
|
52
|
+
# - after [Date or string, default nil] date filter for objects created only after specified date. ex: Date.new(2020, 3, 10)
|
53
|
+
# - before [Date or string, default nil] date filter for objects created only before specified date. ex: Date.new(2020, 3, 10)
|
54
|
+
# - types [list of strings, default nil]: filter for log event types. ex: ['created', 'blocked']
|
55
|
+
# - holder_ids [list of strings, default nil]: list of IssuingHolder ids to filter logs. ex: ['5656565656565656', '4545454545454545']
|
56
|
+
# - user [Organization/Project object, default nil]: Organization or Project object. Not necessary if starkinfra.user was set before function call
|
57
|
+
#
|
58
|
+
# ## Return:
|
59
|
+
# - generator of Log objects with updated attributes
|
60
|
+
def self.query(limit: nil, after: nil, before: nil, types: nil, holder_ids: nil, user: nil)
|
61
|
+
after = StarkInfra::Utils::Checks.check_date(after)
|
62
|
+
before = StarkInfra::Utils::Checks.check_date(before)
|
63
|
+
StarkInfra::Utils::Rest.get_stream(
|
64
|
+
limit: limit,
|
65
|
+
after: after,
|
66
|
+
before: before,
|
67
|
+
types: types,
|
68
|
+
holder_ids: holder_ids,
|
69
|
+
user: user,
|
70
|
+
**resource
|
71
|
+
)
|
72
|
+
end
|
73
|
+
|
74
|
+
# # Retrieve paged Logs
|
75
|
+
#
|
76
|
+
# Receive a list of up to 100 Log objects previously created in the Stark Infra API and the cursor to the next page.
|
77
|
+
# Use this function instead of query if you want to manually page your holders.
|
78
|
+
#
|
79
|
+
# ## Parameters (optional):
|
80
|
+
# - cursor [string, default nil]: cursor returned on the previous page function call
|
81
|
+
# - limit [integer, default nil]: maximum number of objects to be retrieved. Max = 100. ex: 35
|
82
|
+
# - ids [list of strings, default nil]: list of ids to filter retrieved objects. ex: ['5656565656565656', '4545454545454545']
|
83
|
+
# - after [Date or string, default nil] date filter for objects created only after specified date. ex: Date.new(2020, 3, 10)
|
84
|
+
# - before [Date or string, default nil] date filter for objects created only before specified date. ex: Date.new(2020, 3, 10)
|
85
|
+
# - types [list of strings, default nil]: filter for log event types. ex: ['created', 'blocked']
|
86
|
+
# - holder_ids [list of strings, default nil]: list of IssuingHolder ids to filter logs. ex: ['5656565656565656', '4545454545454545']
|
87
|
+
# - user [Organization/Project object, default nil]: Organization or Project object. Not necessary if starkinfra.user was set before function call
|
88
|
+
#
|
89
|
+
# ## Return:
|
90
|
+
# - list of Log objects with updated attributes
|
91
|
+
# - cursor to retrieve the next page of Log objects
|
92
|
+
def self.page(cursor: nil, limit: nil, after: nil, before: nil, types: nil, holder_ids: nil, user: nil)
|
93
|
+
after = StarkInfra::Utils::Checks.check_date(after)
|
94
|
+
before = StarkInfra::Utils::Checks.check_date(before)
|
95
|
+
StarkInfra::Utils::Rest.get_page(
|
96
|
+
cursor: cursor,
|
97
|
+
limit: limit,
|
98
|
+
after: after,
|
99
|
+
before: before,
|
100
|
+
types: types,
|
101
|
+
holder_ids: holder_ids,
|
102
|
+
user: user,
|
103
|
+
**resource
|
104
|
+
)
|
105
|
+
end
|
106
|
+
|
107
|
+
def self.resource
|
108
|
+
request_maker = StarkInfra::IssuingHolder.resource[:resource_maker]
|
109
|
+
{
|
110
|
+
resource_name: 'IssuingHolderLog',
|
111
|
+
resource_maker: proc { |json|
|
112
|
+
Log.new(
|
113
|
+
id: json['id'],
|
114
|
+
created: json['created'],
|
115
|
+
type: json['type'],
|
116
|
+
holder: StarkInfra::Utils::API.from_api_json(request_maker, json['holder'])
|
117
|
+
)
|
118
|
+
}
|
119
|
+
}
|
120
|
+
end
|
121
|
+
end
|
122
|
+
end
|
123
|
+
end
|
@@ -0,0 +1,152 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative('../utils/resource')
|
4
|
+
require_relative('../utils/rest')
|
5
|
+
require_relative('../utils/checks')
|
6
|
+
|
7
|
+
module StarkInfra
|
8
|
+
# # IssuingInvoice object
|
9
|
+
#
|
10
|
+
# The IssuingInvoice objects created in your Workspace load your Issuing balance when paid.
|
11
|
+
#
|
12
|
+
# ## Parameters (required):
|
13
|
+
# - amount [integer]: IssuingInvoice value in cents. ex: 1234 (= R$ 12.34)
|
14
|
+
#
|
15
|
+
# ## Parameters (optional):
|
16
|
+
# - tax_id [string, default sub-issuer tax ID]: payer tax ID (CPF or CNPJ) with or without formatting. ex: '01234567890' or '20.018.183/0001-80'
|
17
|
+
# - name [string, default sub-issuer name]: payer name. ex: 'Iron Bank S.A.'
|
18
|
+
# - tags [list of strings, default []]: list of strings for tagging. ex: ['travel', 'food']
|
19
|
+
#
|
20
|
+
# ## Attributes (return-only):
|
21
|
+
# - id [string]: unique id returned when IssuingInvoice is created. ex: '5656565656565656'
|
22
|
+
# - status [string]: current IssuingInvoice status. ex: 'created', 'expired', 'overdue', 'paid'
|
23
|
+
# - issuing_transaction_id [string]: ledger transaction ids linked to this IssuingInvoice. ex: 'issuing-invoice/5656565656565656'
|
24
|
+
# - updated [DateTime]: latest update datetime for the IssuingInvoice. ex: DateTime.new(2020, 3, 10, 10, 30, 0, 0)
|
25
|
+
# - created [DateTime]: creation datetime for the IssuingInvoice. ex: DateTime.new(2020, 3, 10, 10, 30, 0, 0)
|
26
|
+
class IssuingInvoice < StarkInfra::Utils::Resource
|
27
|
+
attr_reader :amount, :id, :name, :tax_id, :status, :issuing_transaction_id, :tags, :updated, :created
|
28
|
+
def initialize(
|
29
|
+
amount:, id: nil, name: nil, tax_id: nil, status: nil, issuing_transaction_id: nil, tags: nil, updated: nil, created: nil
|
30
|
+
)
|
31
|
+
super(id)
|
32
|
+
@amount = amount
|
33
|
+
@name = name
|
34
|
+
@tax_id = tax_id
|
35
|
+
@status = status
|
36
|
+
@issuing_transaction_id = issuing_transaction_id
|
37
|
+
@tags = tags
|
38
|
+
@created = StarkInfra::Utils::Checks.check_datetime(created)
|
39
|
+
@updated = StarkInfra::Utils::Checks.check_datetime(updated)
|
40
|
+
end
|
41
|
+
|
42
|
+
# # Create an IssuingInvoice
|
43
|
+
#
|
44
|
+
# Send a single IssuingInvoice object for creation in the Stark Infra API
|
45
|
+
#
|
46
|
+
# ## Parameters (required):
|
47
|
+
# - invoice [IssuingInvoice object]: IssuingInvoice object to be created in the API.
|
48
|
+
#
|
49
|
+
# ## Parameters (optional):
|
50
|
+
# - user [Organization/Project object, default nil]: Organization or Project object. Not necessary if StarkInfra.user was set before function call
|
51
|
+
#
|
52
|
+
# ## Return:
|
53
|
+
# - IssuingInvoice object with updated attributes
|
54
|
+
def self.create(invoice, user: nil)
|
55
|
+
StarkInfra::Utils::Rest.post_single(entity: invoice, user: user, **resource)
|
56
|
+
end
|
57
|
+
|
58
|
+
# # Retrieve a specific IssuingInvoice
|
59
|
+
#
|
60
|
+
# Receive a single IssuingInvoice object previously created in the Stark Infra API by its id
|
61
|
+
#
|
62
|
+
# ## Parameters (required):
|
63
|
+
# - id [string]: object unique id. ex: '5656565656565656'
|
64
|
+
#
|
65
|
+
# ## Parameters (optional):
|
66
|
+
# - user [Organization/Project object, default nil]: Organization or Project object. Not necessary if StarkInfra.user was set before function call
|
67
|
+
#
|
68
|
+
# ## Return:
|
69
|
+
# - IssuingInvoice object with updated attributes
|
70
|
+
def self.get(id, user: nil)
|
71
|
+
StarkInfra::Utils::Rest.get_id(id: id, user: user, **resource)
|
72
|
+
end
|
73
|
+
|
74
|
+
# # Retrieve IssuingInvoices
|
75
|
+
#
|
76
|
+
# Receive a generator of IssuingInvoices objects previously created in the Stark Infra API
|
77
|
+
#
|
78
|
+
# ## Parameters (optional):
|
79
|
+
# - limit [integer, default nil]: maximum number of objects to be retrieved. Unlimited if nil. ex: 35
|
80
|
+
# - after [Date or string, default nil] date filter for objects created only after specified date. ex: Date.new(2020, 3, 10)
|
81
|
+
# - before [Date or string, default nil] date filter for objects created only before specified date. ex: Date.new(2020, 3, 10)
|
82
|
+
# - status [list of strings, default nil]: filter for status of retrieved objects. ex: ['created', 'expired', 'overdue', 'paid']
|
83
|
+
# - tags [list of strings, default nil]: tags to filter retrieved objects. ex: ['tony', 'stark']
|
84
|
+
# - user [Organization/Project object, default nil]: Organization or Project object. Not necessary if starkinfra.user was set before function call
|
85
|
+
#
|
86
|
+
# ## Return:
|
87
|
+
# - generator of IssuingInvoices objects with updated attributes
|
88
|
+
def self.query(limit: nil, after: nil, before: nil, status: nil, tags: nil, user: nil)
|
89
|
+
after = StarkInfra::Utils::Checks.check_date(after)
|
90
|
+
before = StarkInfra::Utils::Checks.check_date(before)
|
91
|
+
StarkInfra::Utils::Rest.get_stream(
|
92
|
+
limit: limit,
|
93
|
+
after: after,
|
94
|
+
before: before,
|
95
|
+
status: status,
|
96
|
+
tags: tags,
|
97
|
+
user: user,
|
98
|
+
**resource
|
99
|
+
)
|
100
|
+
end
|
101
|
+
|
102
|
+
# # Retrieve paged IssuingInvoices
|
103
|
+
#
|
104
|
+
# Receive a list of IssuingInvoices objects previously created in the Stark Infra API and the cursor to the next page.
|
105
|
+
#
|
106
|
+
# ## Parameters (optional):
|
107
|
+
# - cursor [string, default nil]: cursor returned on the previous page function call.
|
108
|
+
# - limit [integer, default nil]: maximum number of objects to be retrieved. Unlimited if nil. ex: 35
|
109
|
+
# - after [Date or string, default nil] date filter for objects created only after specified date. ex: Date.new(2020, 3, 10)
|
110
|
+
# - before [Date or string, default nil] date filter for objects created only before specified date. ex: Date.new(2020, 3, 10)
|
111
|
+
# - status [list of strings, default nil]: filter for status of retrieved objects. ex: ['created', 'expired', 'overdue', 'paid']
|
112
|
+
# - tags [list of strings, default nil]: tags to filter retrieved objects. ex: ['tony', 'stark']
|
113
|
+
# - user [Organization/Project object, default nil]: Organization or Project object. Not necessary if starkinfra.user was set before function call
|
114
|
+
#
|
115
|
+
# ## Return:
|
116
|
+
# - list of IssuingInvoice objects with updated attributes
|
117
|
+
# - cursor to retrieve the next page of IssuingInvoice objects
|
118
|
+
def self.page(cursor: nil, limit: nil, after: nil, before: nil, status: nil, tags: nil, user: nil)
|
119
|
+
after = StarkInfra::Utils::Checks.check_date(after)
|
120
|
+
before = StarkInfra::Utils::Checks.check_date(before)
|
121
|
+
StarkInfra::Utils::Rest.get_page(
|
122
|
+
cursor: cursor,
|
123
|
+
limit: limit,
|
124
|
+
after: after,
|
125
|
+
before: before,
|
126
|
+
status: status,
|
127
|
+
tags: tags,
|
128
|
+
user: user,
|
129
|
+
**resource
|
130
|
+
)
|
131
|
+
end
|
132
|
+
|
133
|
+
def self.resource
|
134
|
+
{
|
135
|
+
resource_name: 'IssuingInvoice',
|
136
|
+
resource_maker: proc { |json|
|
137
|
+
IssuingInvoice.new(
|
138
|
+
id: json['id'],
|
139
|
+
amount: json['amount'],
|
140
|
+
name: json['name'],
|
141
|
+
tax_id: json['tax_id'],
|
142
|
+
status: json['status'],
|
143
|
+
issuing_transaction_id: json['issuing_transaction_id'],
|
144
|
+
tags: json['tags'],
|
145
|
+
updated: json['updated'],
|
146
|
+
created: json['created']
|
147
|
+
)
|
148
|
+
}
|
149
|
+
}
|
150
|
+
end
|
151
|
+
end
|
152
|
+
end
|
@@ -0,0 +1,120 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative('../utils/resource')
|
4
|
+
require_relative('../utils/rest')
|
5
|
+
require_relative('../utils/checks')
|
6
|
+
require_relative('issuinginvoice')
|
7
|
+
|
8
|
+
module StarkInfra
|
9
|
+
class IssuingInvoice
|
10
|
+
# # IssuingInvoice::Log object
|
11
|
+
#
|
12
|
+
# Every time an IssuingInvoice entity is updated, a corresponding IssuingInvoice::Log is generated for the entity.
|
13
|
+
# This log is never generated by the user, but it can be retrieved to check additional information on the
|
14
|
+
# IssuingInvoice.
|
15
|
+
#
|
16
|
+
# ## Attributes:
|
17
|
+
# - id [string]: unique id returned when the log is created. ex: '5656565656565656'
|
18
|
+
# - invoice [IssuingInvoice]: IssuingInvoice entity to which the log refers to.
|
19
|
+
# - type [string]: type of the IssuingInvoice event which triggered the log creation. ex: 'created', 'credited', 'expired', 'overdue', 'paid'.
|
20
|
+
# - created [DateTime]: creation datetime for the log. ex: DateTime.new(2020, 3, 10, 10, 30, 0, 0)
|
21
|
+
class Log < StarkInfra::Utils::Resource
|
22
|
+
attr_reader :id, :created, :type, :invoice
|
23
|
+
def initialize(id:, created:, type:, invoice:)
|
24
|
+
super(id)
|
25
|
+
@type = type
|
26
|
+
@invoice = invoice
|
27
|
+
@created = StarkInfra::Utils::Checks.check_datetime(created)
|
28
|
+
end
|
29
|
+
|
30
|
+
# # Retrieve a specific Log
|
31
|
+
#
|
32
|
+
# Receive a single Log object previously created by the Stark Infra API by its id
|
33
|
+
#
|
34
|
+
# ## Parameters (required):
|
35
|
+
# - id [string]: object unique id. ex: '5656565656565656'
|
36
|
+
#
|
37
|
+
# ## Parameters (optional):
|
38
|
+
# - user [Organization/Project object, default nil]: Organization or Project object. Not necessary if StarkInfra.user was set before function call
|
39
|
+
#
|
40
|
+
# ## Return:
|
41
|
+
# - Log object with updated attributes
|
42
|
+
def self.get(id, user: nil)
|
43
|
+
StarkInfra::Utils::Rest.get_id(id: id, user: user, **resource)
|
44
|
+
end
|
45
|
+
|
46
|
+
# # Retrieve Logs
|
47
|
+
#
|
48
|
+
# Receive a generator of Log objects previously created in the Stark Infra API
|
49
|
+
#
|
50
|
+
# ## Parameters (optional):
|
51
|
+
# - ids [list of strings, default nil]: list of IssuingInvoice ids to filter logs. ex: ['5656565656565656', '4545454545454545']
|
52
|
+
# - limit [integer, default nil]: maximum number of objects to be retrieved. Max = 100. ex: 35
|
53
|
+
# - after [Date or string, default nil] date filter for objects created only after specified date. ex: Date.new(2020, 3, 10)
|
54
|
+
# - before [Date or string, default nil] date filter for objects created only before specified date. ex: Date.new(2020, 3, 10)
|
55
|
+
# - types [list of strings, default nil]: filter for log event types. ex: ['created', 'credited', 'expired', 'overdue', 'paid']
|
56
|
+
# - user [Organization/Project object, default nil]: Organization or Project object. Not necessary if starkinfra.user was set before function call
|
57
|
+
#
|
58
|
+
# ## Return:
|
59
|
+
# - generator of Log objects with updated attributes
|
60
|
+
def self.query(limit: nil, after: nil, before: nil, types: nil, user: nil)
|
61
|
+
after = StarkInfra::Utils::Checks.check_date(after)
|
62
|
+
before = StarkInfra::Utils::Checks.check_date(before)
|
63
|
+
StarkInfra::Utils::Rest.get_stream(
|
64
|
+
limit: limit,
|
65
|
+
after: after,
|
66
|
+
before: before,
|
67
|
+
types: types,
|
68
|
+
user: user,
|
69
|
+
**resource
|
70
|
+
)
|
71
|
+
end
|
72
|
+
|
73
|
+
# # Retrieve paged Logs
|
74
|
+
#
|
75
|
+
# Receive a list of up to 100 issuinginvoice.Log objects previously created in the Stark Infra API and the cursor
|
76
|
+
# to the next page. Use this function instead of query if you want to manually page your invoices.
|
77
|
+
#
|
78
|
+
# ## Parameters (optional):
|
79
|
+
# - cursor [string, default nil]: cursor returned on the previous page function call
|
80
|
+
# - ids [list of strings, default nil]: list of IssuingInvoice ids to filter logs. ex: ['5656565656565656', '4545454545454545']
|
81
|
+
# - limit [integer, default nil]: maximum number of objects to be retrieved. Max = 100. ex: 35
|
82
|
+
# - after [Date or string, default nil] date filter for objects created only after specified date. ex: Date.new(2020, 3, 10)
|
83
|
+
# - before [Date or string, default nil] date filter for objects created only before specified date. ex: Date.new(2020, 3, 10)
|
84
|
+
# - types [list of strings, default nil]: filter for log event types. ex: ['created', 'credited', 'expired', 'overdue', 'paid']
|
85
|
+
# - user [Organization/Project object, default nil]: Organization or Project object. Not necessary if starkinfra.user was set before function call
|
86
|
+
#
|
87
|
+
# ## Return:
|
88
|
+
# - list of Log objects with updated attributes
|
89
|
+
# - cursor to retrieve the next page of Log objects
|
90
|
+
def self.page(cursor: nil, limit: nil, after: nil, before: nil, types: nil, user: nil)
|
91
|
+
after = StarkInfra::Utils::Checks.check_date(after)
|
92
|
+
before = StarkInfra::Utils::Checks.check_date(before)
|
93
|
+
StarkInfra::Utils::Rest.get_page(
|
94
|
+
cursor: cursor,
|
95
|
+
limit: limit,
|
96
|
+
after: after,
|
97
|
+
before: before,
|
98
|
+
types: types,
|
99
|
+
user: user,
|
100
|
+
**resource
|
101
|
+
)
|
102
|
+
end
|
103
|
+
|
104
|
+
def self.resource
|
105
|
+
request_maker = StarkInfra::IssuingInvoice.resource[:resource_maker]
|
106
|
+
{
|
107
|
+
resource_name: 'IssuingInvoiceLog',
|
108
|
+
resource_maker: proc { |json|
|
109
|
+
Log.new(
|
110
|
+
id: json['id'],
|
111
|
+
created: json['created'],
|
112
|
+
type: json['type'],
|
113
|
+
invoice: StarkInfra::Utils::API.from_api_json(request_maker, json['invoice'])
|
114
|
+
)
|
115
|
+
}
|
116
|
+
}
|
117
|
+
end
|
118
|
+
end
|
119
|
+
end
|
120
|
+
end
|
@@ -0,0 +1,209 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative('../utils/resource')
|
4
|
+
require_relative('../utils/rest')
|
5
|
+
require_relative('../utils/checks')
|
6
|
+
|
7
|
+
module StarkInfra
|
8
|
+
# # IssuingPurchase object
|
9
|
+
#
|
10
|
+
# Displays the IssuingPurchase objects created in your Workspace.
|
11
|
+
#
|
12
|
+
# ## Attributes (return-only):
|
13
|
+
# - id [string]: unique id returned when IssuingPurchase is created. ex: '5656565656565656'
|
14
|
+
# - holder_name [string]: card holder name. ex: 'Tony Stark'
|
15
|
+
# - card_id [string]: unique id returned when IssuingCard is created. ex: '5656565656565656'
|
16
|
+
# - card_ending [string]: last 4 digits of the card number. ex: '1234'
|
17
|
+
# - amount [integer]: IssuingPurchase value in cents. Minimum = 0. ex: 1234 (= R$ 12.34)
|
18
|
+
# - tax [integer]: IOF amount taxed for international purchases. ex: 1234 (= R$ 12.34)
|
19
|
+
# - issuer_amount [integer]: issuer amount. ex: 1234 (= R$ 12.34)
|
20
|
+
# - issuer_currency_code [string]: issuer currency code. ex: 'USD'
|
21
|
+
# - issuer_currency_symbol [string]: issuer currency symbol. ex: '$'
|
22
|
+
# - merchant_amount [integer]: merchant amount. ex: 1234 (= R$ 12.34)
|
23
|
+
# - merchant_currency_code [string]: merchant currency code. ex: 'USD'
|
24
|
+
# - merchant_currency_symbol [string]: merchant currency symbol. ex: '$'
|
25
|
+
# - merchant_category_code [string]: merchant category code. ex: 'fastFoodRestaurants'
|
26
|
+
# - merchant_country_code [string]: merchant country code. ex: 'USA'
|
27
|
+
# - acquirer_id [string]: acquirer ID. ex: '5656565656565656'
|
28
|
+
# - merchant_id [string]: merchant ID. ex: '5656565656565656'
|
29
|
+
# - merchant_name [string]: merchant name. ex: 'Google Cloud Platform'
|
30
|
+
# - merchant_fee [integer]: fee charged by the merchant to cover specific costs, such as ATM withdrawal logistics, etc. ex: 200 (= R$ 2.00)
|
31
|
+
# - wallet_id [string]: virtual wallet ID. ex: '5656565656565656'
|
32
|
+
# - method_code [string]: method code. ex: 'chip', 'token', 'server', 'manual', 'magstripe' or 'contactless'
|
33
|
+
# - score [float]: internal score calculated for the authenticity of the purchase. nil in case of insufficient data. ex: 7.6
|
34
|
+
# - issuing_transaction_ids [string]: ledger transaction ids linked to this Purchase
|
35
|
+
# - end_to_end_id [string]: Unique id used to identify the transaction through all of its life cycle, even before the purchase is denied or accepted and gets its usual id. Example: endToEndId='679cd385-642b-49d0-96b7-89491e1249a5'
|
36
|
+
# - status [string]: current IssuingCard status. ex: 'approved', 'canceled', 'denied', 'confirmed', 'voided'
|
37
|
+
# - tags [string]: list of strings for tagging returned by the sub-issuer during the authorization. ex: ['travel', 'food']
|
38
|
+
# - created [DateTime]: creation datetime for the IssuingPurchase. ex: DateTime.new(2020, 3, 10, 10, 30, 0, 0)
|
39
|
+
# - updated [DateTime]: latest update datetime for the IssuingPurchase. ex: DateTime.new(2020, 3, 10, 10, 30, 0, 0)
|
40
|
+
class IssuingPurchase < StarkInfra::Utils::Resource
|
41
|
+
attr_reader :id, :holder_name, :card_id, :card_ending, :amount, :tax, :issuer_amount, :issuer_currency_code,
|
42
|
+
:issuer_currency_symbol, :merchant_amount, :merchant_currency_code, :merchant_currency_symbol,
|
43
|
+
:merchant_category_code, :merchant_country_code, :acquirer_id, :merchant_id, :merchant_name,
|
44
|
+
:merchant_fee, :wallet_id, :method_code, :score, :issuing_transaction_ids, :end_to_end_id, :status,
|
45
|
+
:tags, :updated, :created
|
46
|
+
|
47
|
+
def initialize(
|
48
|
+
id: nil, holder_name: nil, card_id: nil, card_ending: nil, amount: nil, tax: nil, issuer_amount: nil,
|
49
|
+
issuer_currency_code: nil, issuer_currency_symbol: nil, merchant_amount: nil, merchant_currency_code: nil,
|
50
|
+
merchant_currency_symbol: nil, merchant_category_code: nil, merchant_country_code: nil, acquirer_id: nil,
|
51
|
+
merchant_id: nil, merchant_name: nil, merchant_fee: nil, wallet_id: nil, method_code: nil, score: nil,
|
52
|
+
issuing_transaction_ids: nil, end_to_end_id: nil, status: nil, tags: nil, updated: nil, created: nil
|
53
|
+
)
|
54
|
+
super(id)
|
55
|
+
@holder_name = holder_name
|
56
|
+
@card_id = card_id
|
57
|
+
@card_ending = card_ending
|
58
|
+
@amount = amount
|
59
|
+
@tax = tax
|
60
|
+
@issuer_amount = issuer_amount
|
61
|
+
@issuer_currency_code = issuer_currency_code
|
62
|
+
@issuer_currency_symbol = issuer_currency_symbol
|
63
|
+
@merchant_amount = merchant_amount
|
64
|
+
@merchant_currency_code = merchant_currency_code
|
65
|
+
@merchant_currency_symbol = merchant_currency_symbol
|
66
|
+
@merchant_category_code = merchant_category_code
|
67
|
+
@merchant_country_code = merchant_country_code
|
68
|
+
@acquirer_id = acquirer_id
|
69
|
+
@merchant_id = merchant_id
|
70
|
+
@merchant_name = merchant_name
|
71
|
+
@merchant_fee = merchant_fee
|
72
|
+
@wallet_id = wallet_id
|
73
|
+
@method_code = method_code
|
74
|
+
@score = score
|
75
|
+
@issuing_transaction_ids = issuing_transaction_ids
|
76
|
+
@end_to_end_id = end_to_end_id
|
77
|
+
@status = status
|
78
|
+
@tags = tags
|
79
|
+
@created = StarkInfra::Utils::Checks.check_datetime(created)
|
80
|
+
@updated = StarkInfra::Utils::Checks.check_datetime(updated)
|
81
|
+
end
|
82
|
+
|
83
|
+
# # Retrieve a specific IssuingPurchase
|
84
|
+
#
|
85
|
+
# Receive a single IssuingPurchase object previously created in the Stark Infra API by its id
|
86
|
+
#
|
87
|
+
# ## Parameters (required):
|
88
|
+
# - id [string]: object unique id. ex: '5656565656565656'
|
89
|
+
#
|
90
|
+
# ## Parameters (optional):
|
91
|
+
# - user [Organization/Project object, default nil]: Organization or Project object. Not necessary if StarkInfra.user was set before function call
|
92
|
+
#
|
93
|
+
# ## Return:
|
94
|
+
# - IssuingPurchase object with updated attributes
|
95
|
+
def self.get(id, user: nil)
|
96
|
+
StarkInfra::Utils::Rest.get_id(id: id, user: user, **resource)
|
97
|
+
end
|
98
|
+
|
99
|
+
# # Retrieve IssuingPurchase
|
100
|
+
#
|
101
|
+
# Receive a generator of IssuingPurchases objects previously created in the Stark Infra API
|
102
|
+
#
|
103
|
+
# ## Parameters (optional):
|
104
|
+
# - ids [list of strings, default nil]: purchase IDs. ex: ['5656565656565656', '4545454545454545']
|
105
|
+
# - limit [integer, default nil]: maximum number of objects to be retrieved. Unlimited if nil. ex: 35
|
106
|
+
# - after [Date or string, default nil] date filter for objects created only after specified date. ex: Date.new(2020, 3, 09)
|
107
|
+
# - before [Date or string, default nil] date filter for objects created only before specified date. ex: Date.new(2020, 3, 10)
|
108
|
+
# - end_to_end_ids [list of strings, default []]: central bank's unique transaction ID. ex: 'E79457883202101262140HHX553UPqeq'
|
109
|
+
# - holder_ids [list of strings, default []]: card holder IDs. ex: ['5656565656565656', '4545454545454545']
|
110
|
+
# - card_ids [list of strings, default []]: card IDs. ex: ['5656565656565656', '4545454545454545']
|
111
|
+
# - status [list of strings, default nil]: filter for status of retrieved objects. ex: ['approved', 'canceled', 'denied', 'confirmed', 'voided']
|
112
|
+
# - user [Organization/Project object, default nil]: Organization or Project object. Not necessary if starkinfra.user was set before function call
|
113
|
+
#
|
114
|
+
# ## Return:
|
115
|
+
# - generator of IssuingPurchases objects with updated attributes
|
116
|
+
def self.query(ids: nil, limit: nil, after: nil, before: nil, end_to_end_ids: nil, holder_ids: nil, card_ids: nil,
|
117
|
+
status: nil, user: nil)
|
118
|
+
after = StarkInfra::Utils::Checks.check_date(after)
|
119
|
+
before = StarkInfra::Utils::Checks.check_date(before)
|
120
|
+
StarkInfra::Utils::Rest.get_stream(
|
121
|
+
ids: ids,
|
122
|
+
limit: limit,
|
123
|
+
after: after,
|
124
|
+
before: before,
|
125
|
+
end_to_end_ids: end_to_end_ids,
|
126
|
+
holder_ids: holder_ids,
|
127
|
+
card_ids: card_ids,
|
128
|
+
status: status,
|
129
|
+
user: user,
|
130
|
+
**resource
|
131
|
+
)
|
132
|
+
end
|
133
|
+
|
134
|
+
# # Retrieve paged IssuingPurchases
|
135
|
+
#
|
136
|
+
# Receive a list of IssuingPurchase objects previously created in the Stark Infra API and the cursor to the next page.
|
137
|
+
#
|
138
|
+
# ## Parameters (optional):
|
139
|
+
# - cursor [string, default nil]: cursor returned on the previous page function call.
|
140
|
+
# - ids [list of strings, default nil]: purchase IDs. ex: ['5656565656565656', '4545454545454545']
|
141
|
+
# - limit [integer, default nil]: maximum number of objects to be retrieved. Max = 100. ex: 35
|
142
|
+
# - after [Date or string, default nil] date filter for objects created only after specified date. ex: Date.new(2020, 3, 10)
|
143
|
+
# - before [Date or string, default nil] date filter for objects created only before specified date. ex: Date.new(2020, 3, 10)
|
144
|
+
# - end_to_end_ids [list of strings, default []]: central bank's unique transaction ID. ex: 'E79457883202101262140HHX553UPqeq'
|
145
|
+
# - holder_ids [list of strings, default []]: card holder IDs. ex: ['5656565656565656', '4545454545454545']
|
146
|
+
# - card_ids [list of strings, default []]: card IDs. ex: ['5656565656565656', '4545454545454545']
|
147
|
+
# - status [list of strings, default nil]: filter for status of retrieved objects. ex: ['approved', 'canceled', 'denied', 'confirmed', 'voided']
|
148
|
+
# - user [Organization/Project object, default nil]: Organization or Project object. Not necessary if starkinfra.user was set before function call
|
149
|
+
#
|
150
|
+
# ## Return:
|
151
|
+
# - list of IssuingPurchases objects with updated attributes
|
152
|
+
# - cursor to retrieve the next page of IssuingPurchases objects
|
153
|
+
def self.page(cursor: nil, ids: nil, limit: nil, after: nil, before: nil, end_to_end_ids: nil, holder_ids: nil,
|
154
|
+
card_ids: nil, status: nil, user: nil)
|
155
|
+
after = StarkInfra::Utils::Checks.check_date(after)
|
156
|
+
before = StarkInfra::Utils::Checks.check_date(before)
|
157
|
+
StarkInfra::Utils::Rest.get_page(
|
158
|
+
cursor: cursor,
|
159
|
+
ids: ids,
|
160
|
+
limit: limit,
|
161
|
+
after: after,
|
162
|
+
before: before,
|
163
|
+
end_to_end_ids: end_to_end_ids,
|
164
|
+
holder_ids: holder_ids,
|
165
|
+
card_ids: card_ids,
|
166
|
+
status: status,
|
167
|
+
user: user,
|
168
|
+
**resource
|
169
|
+
)
|
170
|
+
end
|
171
|
+
|
172
|
+
def self.resource
|
173
|
+
{
|
174
|
+
resource_name: 'IssuingPurchase',
|
175
|
+
resource_maker: proc { |json|
|
176
|
+
IssuingPurchase.new(
|
177
|
+
id: json['id'],
|
178
|
+
holder_name: json['holder_name'],
|
179
|
+
card_id: json['card_id'],
|
180
|
+
card_ending: json['card_ending'],
|
181
|
+
amount: json['amount'],
|
182
|
+
tax: json['tax'],
|
183
|
+
issuer_amount: json['issuer_amount'],
|
184
|
+
issuer_currency_code: json['issuer_currency_code'],
|
185
|
+
issuer_currency_symbol: json['issuer_currency_symbol'],
|
186
|
+
merchant_amount: json['merchant_amount'],
|
187
|
+
merchant_currency_code: json['merchant_currency_code'],
|
188
|
+
merchant_currency_symbol: json['merchant_currency_symbol'],
|
189
|
+
merchant_category_code: json['merchant_category_code'],
|
190
|
+
merchant_country_code: json['merchant_country_code'],
|
191
|
+
acquirer_id: json['acquirer_id'],
|
192
|
+
merchant_id: json['merchant_id'],
|
193
|
+
merchant_name: json['merchant_name'],
|
194
|
+
merchant_fee: json['merchant_fee'],
|
195
|
+
wallet_id: json['wallet_id'],
|
196
|
+
method_code: json['method_code'],
|
197
|
+
score: json['score'],
|
198
|
+
issuing_transaction_ids: json['issuing_transaction_ids'],
|
199
|
+
end_to_end_id: json['end_to_end_id'],
|
200
|
+
status: json['status'],
|
201
|
+
tags: json['tags'],
|
202
|
+
updated: json['updated'],
|
203
|
+
created: json['created']
|
204
|
+
)
|
205
|
+
}
|
206
|
+
}
|
207
|
+
end
|
208
|
+
end
|
209
|
+
end
|