Class: Dscf::Payment::CreditIntegrationService

Inherits:
Object
  • Object
show all
Defined in:
app/services/dscf/payment/credit_integration_service.rb

Instance Method Summary collapse

Instance Method Details

#process_disbursement(amount, loan_profile, eligible_credit_line) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'app/services/dscf/payment/credit_integration_service.rb', line 3

def process_disbursement(amount, loan_profile, eligible_credit_line)
  validate_disbursement_params(amount, loan_profile, eligible_credit_line)

  disbursement_service = Dscf::Credit::DisbursementService.new(
    amount: amount,
    loan_profile: loan_profile,
    eligible_credit_line: eligible_credit_line
  )

  result = disbursement_service.process_disbursement

  unless result[:success]
    raise CreditOperationError.new("Disbursement failed: #{result[:error]}")
  end

  result
rescue CreditOperationError, InvalidAmountError
  raise
rescue => e
  raise CreditOperationError.new("Credit disbursement error: #{e.message}")
end

#process_repayment(loan, amount) ⇒ Object



25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'app/services/dscf/payment/credit_integration_service.rb', line 25

def process_repayment(loan, amount)
  validate_repayment_params(loan, amount)

  repayment_service = Dscf::Credit::RepaymentService.new(loan, amount)
  result = repayment_service.process_repayment

  unless result[:success]
    raise CreditOperationError.new("Repayment failed: #{result[:error]}")
  end

  result
rescue CreditOperationError, InvalidAmountError
  raise
rescue => e
  raise CreditOperationError.new("Credit repayment error: #{e.message}")
end