starkinfra 0.0.2 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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,30 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative('../utils/resource')
|
4
|
+
require_relative('../utils/rest')
|
5
|
+
|
6
|
+
module StarkInfra
|
7
|
+
# # PixDomain::Certificate object
|
8
|
+
#
|
9
|
+
# The Certificate object displays the certificate information from a specific domain.
|
10
|
+
#
|
11
|
+
# ## Attributes (return-only):
|
12
|
+
# - content [string]: certificate of the Pix participant in PEM format.
|
13
|
+
class Certificate < StarkInfra::Utils::SubResource
|
14
|
+
attr_reader :content
|
15
|
+
def initialize(content: nil)
|
16
|
+
@content = content
|
17
|
+
end
|
18
|
+
|
19
|
+
def self.resource
|
20
|
+
{
|
21
|
+
resource_name: 'Certificate',
|
22
|
+
resource_maker: proc { |json|
|
23
|
+
Certificate.new(
|
24
|
+
content: json['content']
|
25
|
+
)
|
26
|
+
}
|
27
|
+
}
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,58 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative('../utils/resource')
|
4
|
+
require_relative('../utils/rest')
|
5
|
+
require_relative('certificate')
|
6
|
+
|
7
|
+
module StarkInfra
|
8
|
+
# # PixDomain object
|
9
|
+
#
|
10
|
+
# The PixDomain object displays the domain name and the QR Code
|
11
|
+
# domain certificate of Pix participants.
|
12
|
+
# All certificates must be registered with the Central Bank.
|
13
|
+
#
|
14
|
+
# ## Attributes (return-only):
|
15
|
+
# - certificates [list of PixDomain::Certificate objects]: certificate information of the Pix participant.
|
16
|
+
# - name [string]: current active domain (URL) of the Pix participant.
|
17
|
+
class PixDomain < StarkInfra::Utils::SubResource
|
18
|
+
attr_reader :certificates, :name
|
19
|
+
def initialize(certificates: nil, name: nil)
|
20
|
+
@certificates = certificates
|
21
|
+
@name = name
|
22
|
+
end
|
23
|
+
|
24
|
+
# # Retrieve PixDomains
|
25
|
+
#
|
26
|
+
# Receive a generator of PixDomain objects registered at the Central Bank.
|
27
|
+
#
|
28
|
+
# ## Parameters (optional):
|
29
|
+
# - user [Organization/Project object, default nil]: Organization or Project object. Not necessary if StarkInfra.user was set before function call
|
30
|
+
#
|
31
|
+
# ## Return:
|
32
|
+
# - generator of PixDomain objects with updated attributes
|
33
|
+
def self.query(user: nil)
|
34
|
+
StarkInfra::Utils::Rest.get_stream(user: user, **resource)
|
35
|
+
end
|
36
|
+
|
37
|
+
def self._parse_certificates(certificates)
|
38
|
+
certificate_maker = StarkInfra::Certificate.resource[:resource_maker]
|
39
|
+
parsed_certificates = []
|
40
|
+
certificates.each do |certificate|
|
41
|
+
parsed_certificates << StarkInfra::Utils::API.from_api_json(certificate_maker, certificate)
|
42
|
+
end
|
43
|
+
parsed_certificates
|
44
|
+
end
|
45
|
+
|
46
|
+
def self.resource
|
47
|
+
{
|
48
|
+
resource_name: 'PixDomain',
|
49
|
+
resource_maker: proc { |json|
|
50
|
+
PixDomain.new(
|
51
|
+
name: json['name'],
|
52
|
+
certificates: _parse_certificates(json['certificates'])
|
53
|
+
)
|
54
|
+
}
|
55
|
+
}
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
@@ -0,0 +1,129 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative('../utils/resource')
|
4
|
+
require_relative('../utils/rest')
|
5
|
+
require_relative('../utils/checks')
|
6
|
+
require_relative('pixinfraction')
|
7
|
+
|
8
|
+
module StarkInfra
|
9
|
+
class PixInfraction
|
10
|
+
# # PixInfraction::Log object
|
11
|
+
#
|
12
|
+
# Every time a PixInfraction entity is modified, a corresponding PixInfraction::Log
|
13
|
+
# is generated for the entity. This log is never generated by the
|
14
|
+
# user.
|
15
|
+
#
|
16
|
+
# ## Attributes:
|
17
|
+
# - id [string]: unique id returned when the log is created. ex: '5656565656565656'
|
18
|
+
# - created [DateTime]: creation datetime for the log. ex: DateTime.new(2020, 3, 10, 10, 30, 0, 0)
|
19
|
+
# - type [string]: type of the PixInfraction event which triggered the log creation. Options: 'created', 'failed', 'delivering', 'delivered', 'closed', 'canceled'
|
20
|
+
# - errors [list of strings]: list of errors linked to this PixInfraction event.
|
21
|
+
# - infraction [PixInfraction]: PixInfraction entity to which the log refers to.
|
22
|
+
class Log < StarkInfra::Utils::Resource
|
23
|
+
attr_reader :id, :created, :type, :errors, :infraction
|
24
|
+
def initialize(id:, created:, type:, errors:, infraction:)
|
25
|
+
super(id)
|
26
|
+
@created = StarkInfra::Utils::Checks.check_datetime(created)
|
27
|
+
@type = type
|
28
|
+
@errors = errors
|
29
|
+
@infraction = infraction
|
30
|
+
end
|
31
|
+
|
32
|
+
# # Retrieve a specific Log
|
33
|
+
#
|
34
|
+
# Receive a single Log object previously created by the Stark Infra API by passing its id
|
35
|
+
#
|
36
|
+
# ## Parameters (required):
|
37
|
+
# - id [string]: object unique id. ex: '5656565656565656'
|
38
|
+
#
|
39
|
+
# ## Parameters (optional):
|
40
|
+
# - user [Organization/Project object, default nil]: Organization or Project object. Not necessary if StarkInfra.user was set before function call
|
41
|
+
#
|
42
|
+
# ## Return:
|
43
|
+
# - Log object with updated attributes
|
44
|
+
def self.get(id, user: nil)
|
45
|
+
StarkInfra::Utils::Rest.get_id(id: id, user: user, **resource)
|
46
|
+
end
|
47
|
+
|
48
|
+
# # Retrieve Logs
|
49
|
+
#
|
50
|
+
# Receive a generator of Log objects previously created in the Stark Infra API
|
51
|
+
#
|
52
|
+
# ## Parameters (optional):
|
53
|
+
# - ids [list of strings, default nil]: Log ids to filter PixInfraction Logs. ex: ['5656565656565656']
|
54
|
+
# - limit [integer, default nil]: maximum number of objects to be retrieved. Unlimited if nil. ex: 35
|
55
|
+
# - after [Date or string, default nil]: date filter for objects created only after specified date. ex: Date.new(2020, 3, 10)
|
56
|
+
# - before [Date or string, default nil]: date filter for objects created only before specified date. ex: Date.new(2020, 3, 10)
|
57
|
+
# - types [list of strings, default nil]: filter retrieved objects by their types. Options: 'created', 'failed', 'delivering', 'delivered', 'closed', 'canceled'
|
58
|
+
# - infraction_ids [list of strings, default nil]: list of PixInfraction ids to filter retrieved objects. ex: %w[5656565656565656 4545454545454545]
|
59
|
+
# - user [Organization/Project object, default nil]: Organization or Project object. Not necessary if StarkInfra.user was set before function call
|
60
|
+
#
|
61
|
+
# ## Return:
|
62
|
+
# - list of Log objects with updated attributes
|
63
|
+
def self.query(ids: nil, limit: nil, after: nil, before: nil, types: nil, infraction_ids: nil, user: nil)
|
64
|
+
after = StarkInfra::Utils::Checks.check_date(after)
|
65
|
+
before = StarkInfra::Utils::Checks.check_date(before)
|
66
|
+
StarkInfra::Utils::Rest.get_stream(
|
67
|
+
ids: ids,
|
68
|
+
limit: limit,
|
69
|
+
after: after,
|
70
|
+
before: before,
|
71
|
+
types: types,
|
72
|
+
infraction_ids: infraction_ids,
|
73
|
+
user: user,
|
74
|
+
**resource
|
75
|
+
)
|
76
|
+
end
|
77
|
+
|
78
|
+
# # Retrieve paged Logs
|
79
|
+
#
|
80
|
+
# Receive a list of up to 100 Log objects previously created in the Stark Infra API and the cursor to the next page.
|
81
|
+
# Use this function instead of query if you want to manually page your infractions.
|
82
|
+
#
|
83
|
+
# ## Parameters (optional):
|
84
|
+
# - cursor [string, default nil]: cursor returned on the previous page function call
|
85
|
+
# - ids [list of strings, default nil]: Log ids to filter PixInfraction Logs. ex: ['5656565656565656']
|
86
|
+
# - limit [integer, default 100]: maximum number of objects to be retrieved. Max = 100. ex: 35
|
87
|
+
# - after [Date or string, default nil]: date filter for objects created only after specified date. ex: Date.new(2020, 3, 10)
|
88
|
+
# - before [Date or string, default nil]: date filter for objects created only before specified date. ex: Date.new(2020, 3, 10)
|
89
|
+
# - types [list of strings, default nil]: filter retrieved objects by their types. Options: 'created', 'failed', 'delivering', 'delivered', 'closed', 'canceled'
|
90
|
+
# - infraction_ids [list of strings, default nil]: list of PixInfraction ids to filter retrieved objects. ex: %w[5656565656565656 4545454545454545]
|
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
|
+
# - list of Log objects with updated attributes
|
95
|
+
# - Cursor to retrieve the next page of Log objects
|
96
|
+
def self.page(cursor: nil, ids: nil, limit: nil, after: nil, before: nil, types: nil, infraction_ids: nil, user: nil)
|
97
|
+
after = StarkInfra::Utils::Checks.check_date(after)
|
98
|
+
before = StarkInfra::Utils::Checks.check_date(before)
|
99
|
+
StarkInfra::Utils::Rest.get_page(
|
100
|
+
cursor: cursor,
|
101
|
+
ids: ids,
|
102
|
+
limit: limit,
|
103
|
+
after: after,
|
104
|
+
before: before,
|
105
|
+
types: types,
|
106
|
+
infraction_ids: infraction_ids,
|
107
|
+
user: user,
|
108
|
+
**resource
|
109
|
+
)
|
110
|
+
end
|
111
|
+
|
112
|
+
def self.resource
|
113
|
+
infraction_maker = StarkInfra::PixInfraction.resource[:resource_maker]
|
114
|
+
{
|
115
|
+
resource_name: 'PixInfractionLog',
|
116
|
+
resource_maker: proc { |json|
|
117
|
+
Log.new(
|
118
|
+
id: json['id'],
|
119
|
+
created: json['created'],
|
120
|
+
type: json['type'],
|
121
|
+
errors: json['errors'],
|
122
|
+
infraction: StarkInfra::Utils::API.from_api_json(infraction_maker, json['infraction'])
|
123
|
+
)
|
124
|
+
}
|
125
|
+
}
|
126
|
+
end
|
127
|
+
end
|
128
|
+
end
|
129
|
+
end
|
@@ -0,0 +1,212 @@
|
|
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
|
+
# # PixInfraction object
|
9
|
+
#
|
10
|
+
# PixInfractions are used to report transactions that are suspected of
|
11
|
+
# fraud, to request a refund or to reverse a refund.
|
12
|
+
# When you initialize a PixInfraction, the entity will not be automatically
|
13
|
+
# created in the Stark Infra API. The 'create' function sends the objects
|
14
|
+
# to the Stark Infra API and returns the created object.
|
15
|
+
#
|
16
|
+
# ## Parameters (required):
|
17
|
+
# - reference_id [string]: end_to_end_id or return_id of the transaction being reported. ex: 'E20018183202201201450u34sDGd19lz'
|
18
|
+
# - type [string]: type of infraction report. Options: 'fraud', 'reversal', 'reversalChargeback'
|
19
|
+
#
|
20
|
+
# ## Parameters (optional):
|
21
|
+
# - description [string, default nil]: description for any details that can help with the infraction investigation.
|
22
|
+
#
|
23
|
+
# ## Attributes (return-only):
|
24
|
+
# - id [string]: unique id returned when the PixInfraction is created. ex: '5656565656565656'
|
25
|
+
# - credited_bank_code [string]: bank_code of the credited Pix participant in the reported transaction. ex: '20018183'
|
26
|
+
# - debited_bank_code [string]: bank_code of the debited Pix participant in the reported transaction. ex: '20018183'
|
27
|
+
# - agent [string]: Options: 'reporter' if you created the PixInfraction, 'reported' if you received the PixInfraction.
|
28
|
+
# - analysis [string]: analysis that led to the result.
|
29
|
+
# - bacen_id [string]: central bank's unique UUID that identifies the infraction report.
|
30
|
+
# - reported_by [string]: agent that reported the PixInfraction. Options: 'debited', 'credited'.
|
31
|
+
# - result [string]: result after the analysis of the PixInfraction by the receiving party. Options: 'agreed', 'disagreed'
|
32
|
+
# - status [string]: current PixInfraction status. Options: 'created', 'failed', 'delivered', 'closed', 'canceled'.
|
33
|
+
# - created [DateTime]: creation datetime for the PixInfraction. ex: DateTime.new(2020, 3, 10, 10, 30, 0, 0)
|
34
|
+
# - updated [DateTime]: latest update datetime for the PixInfraction. ex: DateTime.new(2020, 3, 10, 10, 30, 0, 0)
|
35
|
+
class PixInfraction < StarkInfra::Utils::Resource
|
36
|
+
attr_reader :reference_id, :type, :description, :id, :credited_bank_code, :agent, :analysis, :bacen_id,
|
37
|
+
:debited_bank_code, :reported_by, :result, :status, :created, :updated
|
38
|
+
def initialize(
|
39
|
+
reference_id:, type:, description:, id: nil, credited_bank_code: nil, agent: nil, analysis: nil, bacen_id: nil,
|
40
|
+
debited_bank_code: nil, reported_by: nil, result: nil, status: nil, created: nil, updated: nil
|
41
|
+
)
|
42
|
+
super(id)
|
43
|
+
@reference_id = reference_id
|
44
|
+
@type = type
|
45
|
+
@description = description
|
46
|
+
@credited_bank_code = credited_bank_code
|
47
|
+
@agent = agent
|
48
|
+
@analysis = analysis
|
49
|
+
@bacen_id = bacen_id
|
50
|
+
@debited_bank_code = debited_bank_code
|
51
|
+
@reported_by = reported_by
|
52
|
+
@result = result
|
53
|
+
@status = status
|
54
|
+
@created = StarkInfra::Utils::Checks.check_datetime(created)
|
55
|
+
@updated = StarkInfra::Utils::Checks.check_datetime(updated)
|
56
|
+
end
|
57
|
+
|
58
|
+
# # Create PixInfractions
|
59
|
+
#
|
60
|
+
# Send a list of PixInfraction objects for creation in the Stark Infra API
|
61
|
+
#
|
62
|
+
# ## Parameters (required):
|
63
|
+
# - infractions [list of PixInfraction objects]: list of PixInfraction objects to be created in the API. ex: [PixInfraction.new()]
|
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
|
+
# - list of PixInfraction objects with updated attributes
|
70
|
+
def self.create(infractions, user: nil)
|
71
|
+
StarkInfra::Utils::Rest.post(entities: infractions, user: user, **resource)
|
72
|
+
end
|
73
|
+
|
74
|
+
# # Retrieve a specific PixInfraction
|
75
|
+
#
|
76
|
+
# Receive a single PixInfraction object previously created in the Stark Infra API by passing its id
|
77
|
+
#
|
78
|
+
# ## Parameters (required):
|
79
|
+
# - id [string]: object unique id. ex: '5656565656565656'
|
80
|
+
#
|
81
|
+
# ## Parameters (optional):
|
82
|
+
# - user [Organization/Project object, default nil]: Organization or Project object. Not necessary if StarkInfra.user was set before function call
|
83
|
+
#
|
84
|
+
# ## Return:
|
85
|
+
# - PixInfraction object with updated attributes
|
86
|
+
def self.get(id, user: nil)
|
87
|
+
StarkInfra::Utils::Rest.get_id(id: id, user: user, **resource)
|
88
|
+
end
|
89
|
+
|
90
|
+
# # Retrieve PixInfractions
|
91
|
+
#
|
92
|
+
# Receive a generator of PixInfraction objects previously created in the Stark Infra API
|
93
|
+
#
|
94
|
+
# ## Parameters (optional):
|
95
|
+
# - limit [integer, default nil]: maximum number of objects to be retrieved. Unlimited if nil. ex: 35
|
96
|
+
# - after [Date or string, default nil]: date filter for objects created or updated only after specified date. ex: Date.new(2020, 3, 10)
|
97
|
+
# - before [Date or string, default nil]: date filter for objects created or updated only before specified date. ex: Date.new(2020, 3, 10)
|
98
|
+
# - status [string, default nil]: filter for status of retrieved objects. ex: 'success' or 'failed'
|
99
|
+
# - ids [list of strings, default nil]: list of ids to filter retrieved objects. ex: ['5656565656565656', '4545454545454545']
|
100
|
+
# - type [string]: filter for the type of retrieved PixInfractions. Options: 'fraud', 'reversal', 'reversalChargeback'
|
101
|
+
# - user [Organization/Project object, default nil]: Organization or Project object. Not necessary if StarkInfra.user was set before function call
|
102
|
+
#
|
103
|
+
# ## Return:
|
104
|
+
# - generator of PixInfraction objects with updated attributes
|
105
|
+
def self.query(limit: nil, after: nil, before: nil, status: nil, ids: nil, type: nil, user: nil)
|
106
|
+
after = StarkInfra::Utils::Checks.check_date(after)
|
107
|
+
before = StarkInfra::Utils::Checks.check_date(before)
|
108
|
+
StarkInfra::Utils::Rest.get_stream(
|
109
|
+
limit: limit,
|
110
|
+
after: after,
|
111
|
+
before: before,
|
112
|
+
status: status,
|
113
|
+
ids: ids,
|
114
|
+
type: type,
|
115
|
+
user: user,
|
116
|
+
**resource
|
117
|
+
)
|
118
|
+
end
|
119
|
+
|
120
|
+
# # Retrieve paged PixInfractions
|
121
|
+
#
|
122
|
+
# Receive a list of up to 100 PixInfraction objects previously created in the Stark infra API and the cursor to the next page.
|
123
|
+
# Use this function instead of query if you want to manually page your infractions.
|
124
|
+
#
|
125
|
+
# ## Parameters (optional):
|
126
|
+
# - cursor [string, default nil]: cursor returned on the previous page function call
|
127
|
+
# - limit [integer, default 100]: maximum number of objects to be retrieved. Max = 100. ex: 35
|
128
|
+
# - after [Date or string, default nil]: date filter for objects created or updated only after specified date. ex: Date.new(2020, 3, 10)
|
129
|
+
# - before [Date or string, default nil]: date filter for objects created or updated only before specified date. ex: Date.new(2020, 3, 10)
|
130
|
+
# - status [string, default nil]: filter for status of retrieved objects. ex: 'success' or 'failed'
|
131
|
+
# - ids [list of strings, default nil]: list of ids to filter retrieved objects. ex: ['5656565656565656', '4545454545454545']
|
132
|
+
# - type [string, default nil]: filter for the type of retrieved PixInfractions. Options: 'fraud', 'reversal', 'reversalChargeback'
|
133
|
+
# - user [Organization/Project object, default nil]: Organization or Project object. Not necessary if StarkInfra.user was set before function call
|
134
|
+
#
|
135
|
+
# ## Return:
|
136
|
+
# - list of PixInfraction objects with updated attributes
|
137
|
+
# - cursor to retrieve the next page of PixInfraction objects
|
138
|
+
def self.page(cursor: nil, limit: nil, after: nil, before: nil, status: nil, ids: nil, type: nil, user: nil)
|
139
|
+
after = StarkInfra::Utils::Checks.check_date(after)
|
140
|
+
before = StarkInfra::Utils::Checks.check_date(before)
|
141
|
+
StarkInfra::Utils::Rest.get_page(
|
142
|
+
cursor: cursor,
|
143
|
+
limit: limit,
|
144
|
+
after: after,
|
145
|
+
before: before,
|
146
|
+
status: status,
|
147
|
+
ids: ids,
|
148
|
+
type: type,
|
149
|
+
user: user,
|
150
|
+
**resource
|
151
|
+
)
|
152
|
+
end
|
153
|
+
|
154
|
+
# # Update a PixInfraction entity
|
155
|
+
#
|
156
|
+
# Respond to a received PixInfraction.
|
157
|
+
#
|
158
|
+
# ## Parameters (required):
|
159
|
+
# - id [string]: PixInfraction unique id. ex: '5656565656565656'
|
160
|
+
# - result [string]: result after the analysis of the PixInfraction. Options: 'agreed', 'disagreed'
|
161
|
+
#
|
162
|
+
# ## Parameters (optional):
|
163
|
+
# - analysis [string, nil]: analysis that led to the result.
|
164
|
+
# - user [Organization/Project object, default nil]: Organization or Project object. Not necessary if StarkInfra.user was set before function call
|
165
|
+
#
|
166
|
+
# ## Return:
|
167
|
+
# - updated PixInfraction object
|
168
|
+
def self.update(id, result:, analysis: nil, user: nil)
|
169
|
+
StarkInfra::Utils::Rest.patch_id(id: id, result: result, analysis: analysis, user: user, **resource)
|
170
|
+
end
|
171
|
+
|
172
|
+
# # Cancel a PixInfraction entity
|
173
|
+
#
|
174
|
+
# Cancel a PixInfraction entity previously created in the Stark Infra API
|
175
|
+
#
|
176
|
+
# ## Parameters (required):
|
177
|
+
# - id [string]: PixInfraction unique id. ex: '5656565656565656'
|
178
|
+
#
|
179
|
+
# ## Parameters (optional):
|
180
|
+
# - user [Organization/Project object, default nil]: Organization or Project object. Not necessary if StarkInfra.user was set before function call
|
181
|
+
#
|
182
|
+
# ## Return:
|
183
|
+
# - canceled PixInfraction object
|
184
|
+
def self.cancel(id, user: nil)
|
185
|
+
StarkInfra::Utils::Rest.delete_id(id: id, user: user, **resource)
|
186
|
+
end
|
187
|
+
|
188
|
+
def self.resource
|
189
|
+
{
|
190
|
+
resource_name: 'PixInfraction',
|
191
|
+
resource_maker: proc { |json|
|
192
|
+
PixInfraction.new(
|
193
|
+
id: json['id'],
|
194
|
+
reference_id: json['reference_id'],
|
195
|
+
type: json['type'],
|
196
|
+
description: json['description'],
|
197
|
+
credited_bank_code: json['credited_bank_code'],
|
198
|
+
agent: json['agent'],
|
199
|
+
analysis: json['analysis'],
|
200
|
+
bacen_id: json['bacen_id'],
|
201
|
+
debited_bank_code: json['debited_bank_code'],
|
202
|
+
reported_by: json['reported_by'],
|
203
|
+
result: json['result'],
|
204
|
+
status: json['status'],
|
205
|
+
created: json['created'],
|
206
|
+
updated: json['updated']
|
207
|
+
)
|
208
|
+
}
|
209
|
+
}
|
210
|
+
end
|
211
|
+
end
|
212
|
+
end
|
data/lib/pixkey/log.rb
ADDED
@@ -0,0 +1,128 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative('../utils/resource')
|
4
|
+
require_relative('../utils/rest')
|
5
|
+
require_relative('../utils/checks')
|
6
|
+
require_relative('pixkey')
|
7
|
+
|
8
|
+
module StarkInfra
|
9
|
+
class PixKey
|
10
|
+
# # PixKey::Log object
|
11
|
+
#
|
12
|
+
# Every time a PixKey entity is modified, a corresponding PixKey::Log is generated for the entity.
|
13
|
+
# This log is never generated by the user.
|
14
|
+
#
|
15
|
+
# ## Attributes:
|
16
|
+
# - id [string]: unique id returned when the log is created. ex: '5656565656565656'
|
17
|
+
# - created [DateTime]: creation datetime for the log. ex: DateTime.new(2020, 3, 10, 10, 30, 0, 0)
|
18
|
+
# - type [string]: type of the PixKey event which triggered the log creation. Options: 'created', 'registered', 'updated', 'failed', 'canceling', 'canceled'.
|
19
|
+
# - errors [list of strings]: list of errors linked to this PixKey event.
|
20
|
+
# - key [PixKey]: PixKey entity to which the log refers to.
|
21
|
+
class Log < StarkInfra::Utils::Resource
|
22
|
+
attr_reader :id, :created, :type, :errors, :key
|
23
|
+
def initialize(id:, created:, type:, errors:, key:)
|
24
|
+
super(id)
|
25
|
+
@created = StarkInfra::Utils::Checks.check_datetime(created)
|
26
|
+
@type = type
|
27
|
+
@errors = errors
|
28
|
+
@key = key
|
29
|
+
end
|
30
|
+
|
31
|
+
# # Retrieve a specific Log
|
32
|
+
#
|
33
|
+
# Receive a single Log object previously created by the Stark Infra API by passing its id
|
34
|
+
#
|
35
|
+
# ## Parameters (required):
|
36
|
+
# - id [string]: object unique id. ex: '5656565656565656'
|
37
|
+
#
|
38
|
+
# ## Parameters (optional):
|
39
|
+
# - user [Organization/Project object, default nil]: Organization or Project object. Not necessary if StarkInfra.user was set before function call
|
40
|
+
#
|
41
|
+
# ## Return:
|
42
|
+
# - Log object with updated attributes
|
43
|
+
def self.get(id, user: nil)
|
44
|
+
StarkInfra::Utils::Rest.get_id(id: id, user: user, **resource)
|
45
|
+
end
|
46
|
+
|
47
|
+
# # Retrieve Logs
|
48
|
+
#
|
49
|
+
# Receive a generator of Log objects previously created in the Stark Infra API
|
50
|
+
#
|
51
|
+
# ## Parameters (optional):
|
52
|
+
# - ids [list of strings, default nil]: Log ids to filter PixKey Logs. ex: ['5656565656565656']
|
53
|
+
# - limit [integer, default nil]: maximum number of objects to be retrieved. Unlimited if nil. ex: 35
|
54
|
+
# - after [Date or string, default nil]: date filter for objects created only after specified date. ex: Date.new(2020, 3, 10)
|
55
|
+
# - before [Date or string, default nil]: date filter for objects created only before specified date. ex: Date.new(2020, 3, 10)
|
56
|
+
# - types [list of strings, default nil]: filter PixKey Logs by their types. Options: 'created', 'registered', 'updated', 'failed', 'canceling', 'canceled'.
|
57
|
+
# - key_ids [list of strings, default nil]: list of PixKey ids to filter retrieved objects. ex: %w[5656565656565656 4545454545454545]
|
58
|
+
# - user [Organization/Project object, default nil]: Organization or Project object. Not necessary if StarkInfra.user was set before function call
|
59
|
+
#
|
60
|
+
# ## Return:
|
61
|
+
# - generator of Log objects with updated attributes
|
62
|
+
def self.query(ids: nil, limit: nil, after: nil, before: nil, types: nil, key_ids: nil, user: nil)
|
63
|
+
after = StarkInfra::Utils::Checks.check_date(after)
|
64
|
+
before = StarkInfra::Utils::Checks.check_date(before)
|
65
|
+
StarkInfra::Utils::Rest.get_stream(
|
66
|
+
ids: ids,
|
67
|
+
limit: limit,
|
68
|
+
after: after,
|
69
|
+
before: before,
|
70
|
+
types: types,
|
71
|
+
key_ids: key_ids,
|
72
|
+
user: user,
|
73
|
+
**resource
|
74
|
+
)
|
75
|
+
end
|
76
|
+
|
77
|
+
# # Retrieve paged Logs
|
78
|
+
#
|
79
|
+
# Receive a list of up to 100 Log objects previously created in the Stark Infra API and the cursor to the next page.
|
80
|
+
# Use this function instead of query if you want to manually page your keys.
|
81
|
+
#
|
82
|
+
# ## Parameters (optional):
|
83
|
+
# - ids [list of strings, default nil]: Log ids to filter PixKey Logs. ex: ['5656565656565656']
|
84
|
+
# - cursor [string, default nil]: cursor returned on the previous page function call
|
85
|
+
# - limit [integer, default 100]: maximum number of objects to be retrieved. Max = 100. ex: 35
|
86
|
+
# - after [Date or string, default nil]: date filter for objects created only after specified date. ex: Date.new(2020, 3, 10)
|
87
|
+
# - before [Date or string, default nil]: date filter for objects created only before specified date. ex: Date.new(2020, 3, 10)
|
88
|
+
# - types [list of strings]: filter PixKey Logs by their types. Options: 'created', 'registered', 'updated', 'failed', 'canceling', 'canceled'.
|
89
|
+
# - key_ids [list of strings, default nil]: list of PixKey ids to filter retrieved objects. ex: %w[5656565656565656 4545454545454545]
|
90
|
+
# - user [Organization/Project object, default nil]: Organization or Project object. Not necessary if StarkInfra.user was set before function call
|
91
|
+
#
|
92
|
+
# ## Return:
|
93
|
+
# - list of Log objects with updated attributes
|
94
|
+
# - cursor to retrieve the next page of Log objects
|
95
|
+
def self.page(cursor: nil, ids: nil, limit: nil, after: nil, before: nil, types: nil, key_ids: nil, user: nil)
|
96
|
+
after = StarkInfra::Utils::Checks.check_date(after)
|
97
|
+
before = StarkInfra::Utils::Checks.check_date(before)
|
98
|
+
StarkInfra::Utils::Rest.get_page(
|
99
|
+
cursor: cursor,
|
100
|
+
ids: ids,
|
101
|
+
limit: limit,
|
102
|
+
after: after,
|
103
|
+
before: before,
|
104
|
+
types: types,
|
105
|
+
key_ids: key_ids,
|
106
|
+
user: user,
|
107
|
+
**resource
|
108
|
+
)
|
109
|
+
end
|
110
|
+
|
111
|
+
def self.resource
|
112
|
+
key_maker = StarkInfra::PixKey.resource[:resource_maker]
|
113
|
+
{
|
114
|
+
resource_name: 'PixKeyLog',
|
115
|
+
resource_maker: proc { |json|
|
116
|
+
Log.new(
|
117
|
+
id: json['id'],
|
118
|
+
created: json['created'],
|
119
|
+
type: json['type'],
|
120
|
+
errors: json['errors'],
|
121
|
+
key: StarkInfra::Utils::API.from_api_json(key_maker, json['key'])
|
122
|
+
)
|
123
|
+
}
|
124
|
+
}
|
125
|
+
end
|
126
|
+
end
|
127
|
+
end
|
128
|
+
end
|