dinie-sdk-sandbox 1.1.0
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 +7 -0
- data/CHANGELOG.md +40 -0
- data/LICENSE +21 -0
- data/README.md +280 -0
- data/lib/dinie/generated/api_version.rb +8 -0
- data/lib/dinie/generated/client.rb +96 -0
- data/lib/dinie/generated/errors/registry.rb +40 -0
- data/lib/dinie/generated/events/base.rb +11 -0
- data/lib/dinie/generated/events/credit_offer.rb +56 -0
- data/lib/dinie/generated/events/customer_created.rb +42 -0
- data/lib/dinie/generated/events/customer_denied.rb +39 -0
- data/lib/dinie/generated/events/customer_kyc_updated.rb +36 -0
- data/lib/dinie/generated/events/customer_status.rb +48 -0
- data/lib/dinie/generated/events/deserializers.rb +35 -0
- data/lib/dinie/generated/events/loan_active.rb +35 -0
- data/lib/dinie/generated/events/loan_created.rb +38 -0
- data/lib/dinie/generated/events/loan_payment_received.rb +46 -0
- data/lib/dinie/generated/events/loan_processing.rb +37 -0
- data/lib/dinie/generated/events/loan_signature_received.rb +48 -0
- data/lib/dinie/generated/events/loan_status.rb +73 -0
- data/lib/dinie/generated/events.rb +4 -0
- data/lib/dinie/generated/resources/banks.rb +25 -0
- data/lib/dinie/generated/resources/biometrics.rb +27 -0
- data/lib/dinie/generated/resources/credentials.rb +56 -0
- data/lib/dinie/generated/resources/credit_offers.rb +59 -0
- data/lib/dinie/generated/resources/customers.rb +200 -0
- data/lib/dinie/generated/resources/loans.rb +70 -0
- data/lib/dinie/generated/resources/webhook_endpoints.rb +97 -0
- data/lib/dinie/generated/resources.rb +9 -0
- data/lib/dinie/generated/types/bank.rb +17 -0
- data/lib/dinie/generated/types/biometrics_session.rb +16 -0
- data/lib/dinie/generated/types/biometrics_session_exchange_response.rb +23 -0
- data/lib/dinie/generated/types/credential.rb +52 -0
- data/lib/dinie/generated/types/credit_offer.rb +62 -0
- data/lib/dinie/generated/types/customer.rb +46 -0
- data/lib/dinie/generated/types/customer_bank_account.rb +33 -0
- data/lib/dinie/generated/types/ids.rb +18 -0
- data/lib/dinie/generated/types/kyc.rb +458 -0
- data/lib/dinie/generated/types/kyc_attachment_response.rb +16 -0
- data/lib/dinie/generated/types/loan.rb +51 -0
- data/lib/dinie/generated/types/money.rb +4 -0
- data/lib/dinie/generated/types/simulation.rb +35 -0
- data/lib/dinie/generated/types/transaction.rb +43 -0
- data/lib/dinie/generated/types/webhook_endpoint.rb +52 -0
- data/lib/dinie/generated/types/webhook_secret_rotation.rb +17 -0
- data/lib/dinie/generated/types.rb +18 -0
- data/lib/dinie/runtime/errors.rb +295 -0
- data/lib/dinie/runtime/http.rb +327 -0
- data/lib/dinie/runtime/idempotency.rb +34 -0
- data/lib/dinie/runtime/logger.rb +326 -0
- data/lib/dinie/runtime/model.rb +162 -0
- data/lib/dinie/runtime/multipart.rb +77 -0
- data/lib/dinie/runtime/paginator.rb +164 -0
- data/lib/dinie/runtime/rate_limit.rb +150 -0
- data/lib/dinie/runtime/request_options.rb +112 -0
- data/lib/dinie/runtime/retry.rb +74 -0
- data/lib/dinie/runtime/token_manager.rb +341 -0
- data/lib/dinie/runtime/webhooks.rb +194 -0
- data/lib/dinie/version.rb +7 -0
- data/lib/dinie.rb +37 -0
- data/sig/_external/faraday.rbs +44 -0
- data/sig/dinie/generated/client.rbs +45 -0
- data/sig/dinie/generated/errors/registry.rbs +40 -0
- data/sig/dinie/generated/events/base.rbs +17 -0
- data/sig/dinie/generated/events/credit_offer.rbs +33 -0
- data/sig/dinie/generated/events/customer_created.rbs +27 -0
- data/sig/dinie/generated/events/customer_denied.rbs +25 -0
- data/sig/dinie/generated/events/customer_kyc_updated.rbs +21 -0
- data/sig/dinie/generated/events/customer_status.rbs +26 -0
- data/sig/dinie/generated/events/deserializers.rbs +9 -0
- data/sig/dinie/generated/events/loan_active.rbs +20 -0
- data/sig/dinie/generated/events/loan_created.rbs +23 -0
- data/sig/dinie/generated/events/loan_payment_received.rbs +28 -0
- data/sig/dinie/generated/events/loan_processing.rbs +23 -0
- data/sig/dinie/generated/events/loan_signature_received.rbs +30 -0
- data/sig/dinie/generated/events/loan_status.rbs +40 -0
- data/sig/dinie/generated/resources/banks.rbs +15 -0
- data/sig/dinie/generated/resources/credentials.rbs +21 -0
- data/sig/dinie/generated/resources/credit_offers.rbs +19 -0
- data/sig/dinie/generated/resources/customers.rbs +58 -0
- data/sig/dinie/generated/resources/loans.rbs +26 -0
- data/sig/dinie/generated/resources/webhook_endpoints.rbs +35 -0
- data/sig/dinie/generated/types/bank.rbs +12 -0
- data/sig/dinie/generated/types/biometrics_session.rbs +11 -0
- data/sig/dinie/generated/types/credential.rbs +26 -0
- data/sig/dinie/generated/types/credit_offer.rbs +24 -0
- data/sig/dinie/generated/types/customer.rbs +25 -0
- data/sig/dinie/generated/types/customer_bank_account.rbs +26 -0
- data/sig/dinie/generated/types/enums.rbs +66 -0
- data/sig/dinie/generated/types/ids.rbs +21 -0
- data/sig/dinie/generated/types/kyc/attachment.rbs +14 -0
- data/sig/dinie/generated/types/kyc/common.rbs +42 -0
- data/sig/dinie/generated/types/kyc/requirements.rbs +117 -0
- data/sig/dinie/generated/types/kyc/submitted.rbs +21 -0
- data/sig/dinie/generated/types/kyc/uploads.rbs +24 -0
- data/sig/dinie/generated/types/loan.rbs +32 -0
- data/sig/dinie/generated/types/money.rbs +6 -0
- data/sig/dinie/generated/types/simulation.rbs +28 -0
- data/sig/dinie/generated/types/transaction.rbs +24 -0
- data/sig/dinie/generated/types/webhook_endpoint.rbs +38 -0
- data/sig/dinie/runtime/errors.rbs +106 -0
- data/sig/dinie/runtime/http.rbs +59 -0
- data/sig/dinie/runtime/idempotency.rbs +15 -0
- data/sig/dinie/runtime/logger.rbs +89 -0
- data/sig/dinie/runtime/model.rbs +51 -0
- data/sig/dinie/runtime/multipart.rbs +25 -0
- data/sig/dinie/runtime/paginator.rbs +50 -0
- data/sig/dinie/runtime/rate_limit.rbs +46 -0
- data/sig/dinie/runtime/request_options.rbs +35 -0
- data/sig/dinie/runtime/retry.rbs +29 -0
- data/sig/dinie/runtime/token_manager.rbs +51 -0
- data/sig/dinie/runtime/webhooks.rbs +31 -0
- data/sig/dinie/version.rbs +7 -0
- metadata +316 -0
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative "../../runtime/model"
|
|
4
|
+
require_relative "base"
|
|
5
|
+
|
|
6
|
+
module Dinie
|
|
7
|
+
module Events
|
|
8
|
+
class CustomerStatusData < Internal::Model
|
|
9
|
+
attribute :external_id, :id, :status
|
|
10
|
+
|
|
11
|
+
def self.deserialize(raw)
|
|
12
|
+
new(
|
|
13
|
+
external_id: raw[:external_id],
|
|
14
|
+
id: raw[:id],
|
|
15
|
+
status: raw[:status]
|
|
16
|
+
)
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
class CustomerActive < WebhookEventBase
|
|
21
|
+
def self.deserialize(raw)
|
|
22
|
+
new(
|
|
23
|
+
api_version: raw[:api_version],
|
|
24
|
+
created_at: raw[:created_at],
|
|
25
|
+
data: CustomerStatusData.deserialize(raw[:data]),
|
|
26
|
+
delivery_id: raw[:delivery_id],
|
|
27
|
+
id: raw[:id],
|
|
28
|
+
timestamp: raw[:timestamp],
|
|
29
|
+
type: "customer.active"
|
|
30
|
+
)
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
class CustomerUnderReview < WebhookEventBase
|
|
35
|
+
def self.deserialize(raw)
|
|
36
|
+
new(
|
|
37
|
+
api_version: raw[:api_version],
|
|
38
|
+
created_at: raw[:created_at],
|
|
39
|
+
data: CustomerStatusData.deserialize(raw[:data]),
|
|
40
|
+
delivery_id: raw[:delivery_id],
|
|
41
|
+
id: raw[:id],
|
|
42
|
+
timestamp: raw[:timestamp],
|
|
43
|
+
type: "customer.under_review"
|
|
44
|
+
)
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
end
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative "credit_offer"
|
|
4
|
+
require_relative "customer_created"
|
|
5
|
+
require_relative "customer_denied"
|
|
6
|
+
require_relative "customer_kyc_updated"
|
|
7
|
+
require_relative "customer_status"
|
|
8
|
+
require_relative "loan_active"
|
|
9
|
+
require_relative "loan_created"
|
|
10
|
+
require_relative "loan_payment_received"
|
|
11
|
+
require_relative "loan_processing"
|
|
12
|
+
require_relative "loan_signature_received"
|
|
13
|
+
require_relative "loan_status"
|
|
14
|
+
|
|
15
|
+
module Dinie
|
|
16
|
+
module Events
|
|
17
|
+
DESERIALIZERS = {
|
|
18
|
+
"credit_offer.available" => ->(raw) { CreditOfferAvailable.deserialize(raw) },
|
|
19
|
+
"credit_offer.expired" => ->(raw) { CreditOfferExpired.deserialize(raw) },
|
|
20
|
+
"customer.active" => ->(raw) { CustomerActive.deserialize(raw) },
|
|
21
|
+
"customer.under_review" => ->(raw) { CustomerUnderReview.deserialize(raw) },
|
|
22
|
+
"customer.created" => ->(raw) { CustomerCreated.deserialize(raw) },
|
|
23
|
+
"customer.denied" => ->(raw) { CustomerDenied.deserialize(raw) },
|
|
24
|
+
"customer.kyc_updated" => ->(raw) { CustomerKycUpdated.deserialize(raw) },
|
|
25
|
+
"loan.active" => ->(raw) { LoanActive.deserialize(raw) },
|
|
26
|
+
"loan.cancelled" => ->(raw) { LoanCancelled.deserialize(raw) },
|
|
27
|
+
"loan.error" => ->(raw) { LoanErrorEvent.deserialize(raw) },
|
|
28
|
+
"loan.finished" => ->(raw) { LoanFinished.deserialize(raw) },
|
|
29
|
+
"loan.created" => ->(raw) { LoanCreated.deserialize(raw) },
|
|
30
|
+
"loan.payment_received" => ->(raw) { LoanPaymentReceived.deserialize(raw) },
|
|
31
|
+
"loan.processing" => ->(raw) { LoanProcessing.deserialize(raw) },
|
|
32
|
+
"loan.signature_received" => ->(raw) { LoanSignatureReceived.deserialize(raw) }
|
|
33
|
+
}.freeze
|
|
34
|
+
end
|
|
35
|
+
end
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative "../../runtime/model"
|
|
4
|
+
require_relative "base"
|
|
5
|
+
|
|
6
|
+
module Dinie
|
|
7
|
+
module Events
|
|
8
|
+
class LoanActiveData < Internal::Model
|
|
9
|
+
attribute :id, :principal_amount, :requested_amount, :status
|
|
10
|
+
|
|
11
|
+
def self.deserialize(raw)
|
|
12
|
+
new(
|
|
13
|
+
id: raw[:id],
|
|
14
|
+
principal_amount: raw[:principal_amount],
|
|
15
|
+
requested_amount: raw[:requested_amount],
|
|
16
|
+
status: raw[:status]
|
|
17
|
+
)
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
class LoanActive < WebhookEventBase
|
|
22
|
+
def self.deserialize(raw)
|
|
23
|
+
new(
|
|
24
|
+
api_version: raw[:api_version],
|
|
25
|
+
created_at: raw[:created_at],
|
|
26
|
+
data: LoanActiveData.deserialize(raw[:data]),
|
|
27
|
+
delivery_id: raw[:delivery_id],
|
|
28
|
+
id: raw[:id],
|
|
29
|
+
timestamp: raw[:timestamp],
|
|
30
|
+
type: "loan.active"
|
|
31
|
+
)
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative "../../runtime/model"
|
|
4
|
+
require_relative "base"
|
|
5
|
+
|
|
6
|
+
module Dinie
|
|
7
|
+
module Events
|
|
8
|
+
class LoanCreatedData < Internal::Model
|
|
9
|
+
attribute :credit_offer_id, :customer_id, :id, :installment_count, :requested_amount, :signing_url, :status
|
|
10
|
+
|
|
11
|
+
def self.deserialize(raw)
|
|
12
|
+
new(
|
|
13
|
+
credit_offer_id: raw[:credit_offer_id],
|
|
14
|
+
customer_id: raw[:customer_id],
|
|
15
|
+
id: raw[:id],
|
|
16
|
+
installment_count: raw[:installment_count],
|
|
17
|
+
requested_amount: raw[:requested_amount],
|
|
18
|
+
signing_url: raw[:signing_url],
|
|
19
|
+
status: raw[:status]
|
|
20
|
+
)
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
class LoanCreated < WebhookEventBase
|
|
25
|
+
def self.deserialize(raw)
|
|
26
|
+
new(
|
|
27
|
+
api_version: raw[:api_version],
|
|
28
|
+
created_at: raw[:created_at],
|
|
29
|
+
data: LoanCreatedData.deserialize(raw[:data]),
|
|
30
|
+
delivery_id: raw[:delivery_id],
|
|
31
|
+
id: raw[:id],
|
|
32
|
+
timestamp: raw[:timestamp],
|
|
33
|
+
type: "loan.created"
|
|
34
|
+
)
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative "../../runtime/model"
|
|
4
|
+
require_relative "base"
|
|
5
|
+
|
|
6
|
+
module Dinie
|
|
7
|
+
module Events
|
|
8
|
+
class LoanPayment < Internal::Model
|
|
9
|
+
attribute :amount, :installment_number, :paid_at
|
|
10
|
+
|
|
11
|
+
def self.deserialize(raw)
|
|
12
|
+
new(
|
|
13
|
+
amount: raw[:amount],
|
|
14
|
+
installment_number: raw[:installment_number],
|
|
15
|
+
paid_at: raw[:paid_at]
|
|
16
|
+
)
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
class LoanPaymentReceivedData < Internal::Model
|
|
21
|
+
attribute :id, :payment, :status
|
|
22
|
+
|
|
23
|
+
def self.deserialize(raw)
|
|
24
|
+
new(
|
|
25
|
+
id: raw[:id],
|
|
26
|
+
payment: LoanPayment.deserialize(raw[:payment]),
|
|
27
|
+
status: raw[:status]
|
|
28
|
+
)
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
class LoanPaymentReceived < WebhookEventBase
|
|
33
|
+
def self.deserialize(raw)
|
|
34
|
+
new(
|
|
35
|
+
api_version: raw[:api_version],
|
|
36
|
+
created_at: raw[:created_at],
|
|
37
|
+
data: LoanPaymentReceivedData.deserialize(raw[:data]),
|
|
38
|
+
delivery_id: raw[:delivery_id],
|
|
39
|
+
id: raw[:id],
|
|
40
|
+
timestamp: raw[:timestamp],
|
|
41
|
+
type: "loan.payment_received"
|
|
42
|
+
)
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
end
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative "../../runtime/model"
|
|
4
|
+
require_relative "base"
|
|
5
|
+
|
|
6
|
+
module Dinie
|
|
7
|
+
module Events
|
|
8
|
+
class LoanProcessingData < Internal::Model
|
|
9
|
+
attribute :ccb_number, :credit_offer_id, :customer_id, :disbursement_method, :id, :status
|
|
10
|
+
|
|
11
|
+
def self.deserialize(raw)
|
|
12
|
+
new(
|
|
13
|
+
ccb_number: raw[:ccb_number],
|
|
14
|
+
credit_offer_id: raw[:credit_offer_id],
|
|
15
|
+
customer_id: raw[:customer_id],
|
|
16
|
+
disbursement_method: raw[:disbursement_method],
|
|
17
|
+
id: raw[:id],
|
|
18
|
+
status: raw[:status]
|
|
19
|
+
)
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
class LoanProcessing < WebhookEventBase
|
|
24
|
+
def self.deserialize(raw)
|
|
25
|
+
new(
|
|
26
|
+
api_version: raw[:api_version],
|
|
27
|
+
created_at: raw[:created_at],
|
|
28
|
+
data: LoanProcessingData.deserialize(raw[:data]),
|
|
29
|
+
delivery_id: raw[:delivery_id],
|
|
30
|
+
id: raw[:id],
|
|
31
|
+
timestamp: raw[:timestamp],
|
|
32
|
+
type: "loan.processing"
|
|
33
|
+
)
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative "../../runtime/model"
|
|
4
|
+
require_relative "base"
|
|
5
|
+
|
|
6
|
+
module Dinie
|
|
7
|
+
module Events
|
|
8
|
+
class LoanSigner < Internal::Model
|
|
9
|
+
attribute :cpf, :name, :signed_at
|
|
10
|
+
|
|
11
|
+
def self.deserialize(raw)
|
|
12
|
+
new(
|
|
13
|
+
cpf: raw[:cpf],
|
|
14
|
+
name: raw[:name],
|
|
15
|
+
signed_at: raw[:signed_at]
|
|
16
|
+
)
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
class LoanSignatureReceivedData < Internal::Model
|
|
21
|
+
attribute :id, :signatures_received, :signatures_required, :signer, :status
|
|
22
|
+
|
|
23
|
+
def self.deserialize(raw)
|
|
24
|
+
new(
|
|
25
|
+
id: raw[:id],
|
|
26
|
+
signatures_received: raw[:signatures_received],
|
|
27
|
+
signatures_required: raw[:signatures_required],
|
|
28
|
+
signer: LoanSigner.deserialize(raw[:signer]),
|
|
29
|
+
status: raw[:status]
|
|
30
|
+
)
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
class LoanSignatureReceived < WebhookEventBase
|
|
35
|
+
def self.deserialize(raw)
|
|
36
|
+
new(
|
|
37
|
+
api_version: raw[:api_version],
|
|
38
|
+
created_at: raw[:created_at],
|
|
39
|
+
data: LoanSignatureReceivedData.deserialize(raw[:data]),
|
|
40
|
+
delivery_id: raw[:delivery_id],
|
|
41
|
+
id: raw[:id],
|
|
42
|
+
timestamp: raw[:timestamp],
|
|
43
|
+
type: "loan.signature_received"
|
|
44
|
+
)
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
end
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative "../../runtime/model"
|
|
4
|
+
require_relative "base"
|
|
5
|
+
|
|
6
|
+
module Dinie
|
|
7
|
+
module Events
|
|
8
|
+
class LoanError < Internal::Model
|
|
9
|
+
attribute :code, :message
|
|
10
|
+
|
|
11
|
+
def self.deserialize(raw)
|
|
12
|
+
new(
|
|
13
|
+
code: raw[:code],
|
|
14
|
+
message: raw[:message]
|
|
15
|
+
)
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
class LoanStatusData < Internal::Model
|
|
20
|
+
attribute :error, :id, :status
|
|
21
|
+
|
|
22
|
+
def self.deserialize(raw)
|
|
23
|
+
new(
|
|
24
|
+
error: raw[:error] && LoanError.deserialize(raw[:error]),
|
|
25
|
+
id: raw[:id],
|
|
26
|
+
status: raw[:status]
|
|
27
|
+
)
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
class LoanCancelled < WebhookEventBase
|
|
32
|
+
def self.deserialize(raw)
|
|
33
|
+
new(
|
|
34
|
+
api_version: raw[:api_version],
|
|
35
|
+
created_at: raw[:created_at],
|
|
36
|
+
data: LoanStatusData.deserialize(raw[:data]),
|
|
37
|
+
delivery_id: raw[:delivery_id],
|
|
38
|
+
id: raw[:id],
|
|
39
|
+
timestamp: raw[:timestamp],
|
|
40
|
+
type: "loan.cancelled"
|
|
41
|
+
)
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
class LoanErrorEvent < WebhookEventBase
|
|
46
|
+
def self.deserialize(raw)
|
|
47
|
+
new(
|
|
48
|
+
api_version: raw[:api_version],
|
|
49
|
+
created_at: raw[:created_at],
|
|
50
|
+
data: LoanStatusData.deserialize(raw[:data]),
|
|
51
|
+
delivery_id: raw[:delivery_id],
|
|
52
|
+
id: raw[:id],
|
|
53
|
+
timestamp: raw[:timestamp],
|
|
54
|
+
type: "loan.error"
|
|
55
|
+
)
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
class LoanFinished < WebhookEventBase
|
|
60
|
+
def self.deserialize(raw)
|
|
61
|
+
new(
|
|
62
|
+
api_version: raw[:api_version],
|
|
63
|
+
created_at: raw[:created_at],
|
|
64
|
+
data: LoanStatusData.deserialize(raw[:data]),
|
|
65
|
+
delivery_id: raw[:delivery_id],
|
|
66
|
+
id: raw[:id],
|
|
67
|
+
timestamp: raw[:timestamp],
|
|
68
|
+
type: "loan.finished"
|
|
69
|
+
)
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
end
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative "../types/bank"
|
|
4
|
+
|
|
5
|
+
module Dinie
|
|
6
|
+
module Resources
|
|
7
|
+
# Operations on the banks resource.
|
|
8
|
+
class Banks
|
|
9
|
+
def initialize(http)
|
|
10
|
+
@http = http
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
# List banks
|
|
14
|
+
#
|
|
15
|
+
# List banks available for customer bank account submission.
|
|
16
|
+
#
|
|
17
|
+
# @param request_options [Hash] Request options.
|
|
18
|
+
# @return [Object]
|
|
19
|
+
def list(request_options: {})
|
|
20
|
+
body = @http.request(method: :get, path: "/banks", request_options:)
|
|
21
|
+
body[:data].map { |raw| Bank.deserialize(raw) }
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative "../types/biometrics_session_exchange_response"
|
|
4
|
+
|
|
5
|
+
module Dinie
|
|
6
|
+
module Resources
|
|
7
|
+
# Operations on the biometrics resource.
|
|
8
|
+
class Biometrics
|
|
9
|
+
def initialize(http)
|
|
10
|
+
@http = http
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
# Exchange a biometrics bootstrap code for a session token
|
|
14
|
+
#
|
|
15
|
+
# Internal endpoint — the kyc-app calls this with a credential that only has the `biometrics:exchange` scope, swapping the single-use bootstrap code (`dinie_bsc_…`) for a Token bound to the session's CreditLineApplication. The token is the bearer the wizard uses for every subsequent KYC request.
|
|
16
|
+
#
|
|
17
|
+
# @param fields [Hash] Request body fields.
|
|
18
|
+
# @param request_options [Hash] Request options.
|
|
19
|
+
# @return [Object]
|
|
20
|
+
def session_exchange(request_options: {}, **fields)
|
|
21
|
+
body = fields
|
|
22
|
+
raw = @http.request(method: :post, path: "/biometrics/session-exchange", body:, request_options:)
|
|
23
|
+
BiometricsSessionExchangeResponse.deserialize(raw)
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative "../../runtime/paginator"
|
|
4
|
+
require_relative "../types/credential"
|
|
5
|
+
|
|
6
|
+
module Dinie
|
|
7
|
+
module Resources
|
|
8
|
+
# Operations on the credentials resource.
|
|
9
|
+
class Credentials
|
|
10
|
+
def initialize(http)
|
|
11
|
+
@http = http
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
# Create a new API key
|
|
15
|
+
#
|
|
16
|
+
# Create a new credential pair; the `client_secret` is shown only once in the response
|
|
17
|
+
#
|
|
18
|
+
# @param fields [Hash] Request body fields.
|
|
19
|
+
# @param request_options [Hash] Request options.
|
|
20
|
+
# @return [Object]
|
|
21
|
+
def create(request_options: {}, **fields)
|
|
22
|
+
body = Credential.serialize_create(**fields)
|
|
23
|
+
raw = @http.request(method: :post, path: "/auth/credentials", body:, request_options:)
|
|
24
|
+
CredentialWithSecret.deserialize(raw)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
# List API keys
|
|
28
|
+
#
|
|
29
|
+
# Return all API credentials for the authenticated partner
|
|
30
|
+
#
|
|
31
|
+
# @param request_options [Hash] Request options.
|
|
32
|
+
# @return [Object]
|
|
33
|
+
def list(limit: Internal::OMIT, starting_after: Internal::OMIT, request_options: {})
|
|
34
|
+
fetch_page = lambda do |cursor|
|
|
35
|
+
query = { limit:, starting_after: cursor || starting_after }
|
|
36
|
+
.reject { |_key, value| Internal.omitted?(value) }
|
|
37
|
+
body = @http.request(method: :get, path: "/auth/credentials", query:, request_options:)
|
|
38
|
+
{ data: body[:data].map { |raw| Credential.deserialize(raw) }, has_more: body[:has_more] }
|
|
39
|
+
end
|
|
40
|
+
Dinie::Page.from_fetch(fetch_page)
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
# Revoke an API key
|
|
44
|
+
#
|
|
45
|
+
# Immediately and permanently revoke an API credential
|
|
46
|
+
#
|
|
47
|
+
# @param client_id [String] The resource ID.
|
|
48
|
+
# @param request_options [Hash] Request options.
|
|
49
|
+
# @return [Object]
|
|
50
|
+
def revoke(client_id, request_options: {})
|
|
51
|
+
@http.request(method: :delete, path: "/auth/credentials/#{client_id}", request_options:)
|
|
52
|
+
nil
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
end
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative "../../runtime/paginator"
|
|
4
|
+
require_relative "../types/credit_offer"
|
|
5
|
+
require_relative "../types/simulation"
|
|
6
|
+
|
|
7
|
+
module Dinie
|
|
8
|
+
module Resources
|
|
9
|
+
# Operations on the credit offers resource.
|
|
10
|
+
class CreditOffers
|
|
11
|
+
def initialize(http)
|
|
12
|
+
@http = http
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
# Simulate a loan
|
|
16
|
+
#
|
|
17
|
+
# Simulate a loan scenario for a credit offer, returning installment value, fees, and total cost
|
|
18
|
+
#
|
|
19
|
+
# @param id [String] Identificador único da oferta de crédito
|
|
20
|
+
# @param fields [Hash] Request body fields.
|
|
21
|
+
# @param request_options [Hash] Request options.
|
|
22
|
+
# @return [Object]
|
|
23
|
+
def create_simulation(id, request_options: {}, **fields)
|
|
24
|
+
body = Simulation.serialize_create_simulation(**fields)
|
|
25
|
+
raw = @http.request(method: :post, path: "/credit-offers/#{id}/simulations", body:, request_options:)
|
|
26
|
+
Simulation.deserialize(raw)
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
# List credit offers
|
|
30
|
+
#
|
|
31
|
+
# List credit offers across all customers, filterable by `customer_id` and `status`
|
|
32
|
+
#
|
|
33
|
+
# @param fields [Hash] Request body fields.
|
|
34
|
+
# @param request_options [Hash] Request options.
|
|
35
|
+
# @return [Object]
|
|
36
|
+
def list(limit: Internal::OMIT, starting_after: Internal::OMIT, request_options: {}, **filters)
|
|
37
|
+
fetch_page = lambda do |cursor|
|
|
38
|
+
query = { limit:, starting_after: cursor || starting_after, **filters }
|
|
39
|
+
.reject { |_key, value| Internal.omitted?(value) }
|
|
40
|
+
body = @http.request(method: :get, path: "/credit-offers", query:, request_options:)
|
|
41
|
+
{ data: body[:data].map { |raw| CreditOffer.deserialize(raw) }, has_more: body[:has_more] }
|
|
42
|
+
end
|
|
43
|
+
Dinie::Page.from_fetch(fetch_page)
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
# Retrieve a credit offer
|
|
47
|
+
#
|
|
48
|
+
# Return the full credit offer object with approved amount, interest rate, and validity
|
|
49
|
+
#
|
|
50
|
+
# @param id [String] Identificador único da oferta de crédito
|
|
51
|
+
# @param request_options [Hash] Request options.
|
|
52
|
+
# @return [Object]
|
|
53
|
+
def retrieve(id, request_options: {})
|
|
54
|
+
raw = @http.request(method: :get, path: "/credit-offers/#{id}", request_options:)
|
|
55
|
+
CreditOffer.deserialize(raw)
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
end
|