first commit
This commit is contained in:
@@ -0,0 +1,6 @@
|
||||
from marshmallow import Schema, fields
|
||||
from .sms import SMSSchema
|
||||
|
||||
# Bulk SMS Schema
|
||||
class BulkSMSSchema(Schema):
|
||||
requests = fields.List(fields.Nested(SMSSchema), required=True)
|
||||
@@ -0,0 +1,16 @@
|
||||
from marshmallow import Schema, fields
|
||||
|
||||
# Collect Loan Schema
|
||||
class CollectLoanSchema(Schema):
|
||||
transactionId = fields.Str(required=True)
|
||||
fbnTransactionId = fields.Str(required=True)
|
||||
debtId = fields.Str(required=True)
|
||||
customerId = fields.Str(required=True)
|
||||
accountId = fields.Str(required=True)
|
||||
productId = fields.Str(required=True)
|
||||
collectAmount = fields.Float(required=True)
|
||||
penalCharge = fields.Float(required=False) # Optional
|
||||
collectionMethod = fields.Int(required=True)
|
||||
lienAmount = fields.Float(required=True)
|
||||
countryId = fields.Str(required=True)
|
||||
comment = fields.Str(required=False) # Optional
|
||||
@@ -0,0 +1,11 @@
|
||||
from marshmallow import Schema, fields
|
||||
|
||||
# Customer Consent Schema
|
||||
class CustomerConsentSchema(Schema):
|
||||
type = fields.Str(required=True)
|
||||
transactionId = fields.Str(required=True)
|
||||
customerId = fields.Str(required=True)
|
||||
accountId = fields.Str(required=True)
|
||||
requestTime = fields.DateTime(required=True, format="%Y-%m-%d %H:%M:%S.%f")
|
||||
consentType = fields.Str(required=True)
|
||||
channel = fields.Str(required=True)
|
||||
@@ -0,0 +1,18 @@
|
||||
from marshmallow import Schema, fields
|
||||
|
||||
# Disbursement Schema
|
||||
class DisbursementSchema(Schema):
|
||||
requestId = fields.Str(required=True)
|
||||
debtId = fields.Str(required=True)
|
||||
transactionId = fields.Str(required=True)
|
||||
customerId = fields.Str(required=True)
|
||||
accountId = fields.Str(required=True)
|
||||
productId = fields.Str(required=True)
|
||||
provideAmount = fields.Float(required=True)
|
||||
collectAmountInterest = fields.Float(required=False) # Optional
|
||||
collectAmountMgtFee = fields.Float(required=True)
|
||||
collectAmountInsurance = fields.Float(required=True)
|
||||
collectAmountVAT = fields.Float(required=True)
|
||||
countryId = fields.Str(required=True)
|
||||
comment = fields.Str(required=False) # Optional
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
from marshmallow import Schema, fields
|
||||
|
||||
class EligibilityCheckSchema(Schema):
|
||||
type = fields.Str(required=True)
|
||||
transactionId = fields.Str(required=True)
|
||||
countryCode = fields.Str(required=True)
|
||||
customerId = fields.Str(required=True)
|
||||
accountId = fields.Str(required=True)
|
||||
msisdn = fields.Str(required=True)
|
||||
lienAmount = fields.Float(required=True)
|
||||
channel = fields.Str(required=True)
|
||||
@@ -0,0 +1,8 @@
|
||||
from marshmallow import Schema, fields
|
||||
|
||||
# Lien Check Schema
|
||||
class LienCheckSchema(Schema):
|
||||
transactionId = fields.Str(required=True)
|
||||
customerId = fields.Str(required=True)
|
||||
accountId = fields.Str(required=True)
|
||||
countryId = fields.Str(required=True)
|
||||
@@ -0,0 +1,5 @@
|
||||
from marshmallow import Schema, fields
|
||||
|
||||
# Loan Information Schema
|
||||
class LoanInformationSchema(Schema):
|
||||
loan_id = fields.Str(required=True)
|
||||
@@ -0,0 +1,12 @@
|
||||
from marshmallow import Schema, fields
|
||||
|
||||
# New Transaction Check Schema
|
||||
class NewTransactionCheckSchema(Schema):
|
||||
transactionId = fields.Str(required=True)
|
||||
debtId = fields.Str(required=True)
|
||||
transactionType = fields.Str(required=True, metadata={
|
||||
"allowed_values": ["Disbursement", "Collection", "PenalCharge"]
|
||||
})
|
||||
fbnTransactionId = fields.Str(required=True)
|
||||
origTransactionId = fields.Str(required=True)
|
||||
customerId = fields.Str(required=True)
|
||||
@@ -0,0 +1,14 @@
|
||||
from marshmallow import Schema, fields
|
||||
|
||||
# Notification Callback Schema
|
||||
class NotificationCallbackSchema(Schema):
|
||||
fbnTransactionId = fields.Str(required=True)
|
||||
transactionId = fields.Str(required=True)
|
||||
customerId = fields.Str(required=True)
|
||||
accountId = fields.Str(required=True)
|
||||
debtId = fields.Str(required=True)
|
||||
transactionType = fields.Str(required=True)
|
||||
amountProvided = fields.Float(required=True)
|
||||
amountCollected = fields.Float(required=True)
|
||||
responseCode = fields.Str(required=True)
|
||||
responseDescription = fields.Str(required=True)
|
||||
@@ -0,0 +1,14 @@
|
||||
from marshmallow import Schema, fields
|
||||
|
||||
|
||||
# Penal Charge Schema
|
||||
class PenalChargeSchema(Schema):
|
||||
transactionId = fields.Str(required=True)
|
||||
fbnTransactionId = fields.Str(required=True)
|
||||
debtId = fields.Str(required=True)
|
||||
customerId = fields.Str(required=True)
|
||||
accountId = fields.Str(required=True)
|
||||
penalCharge = fields.Decimal(required=True)
|
||||
lienAmount = fields.Decimal(required=True)
|
||||
countryId = fields.Str(required=True)
|
||||
comment = fields.Str(required=False)
|
||||
@@ -0,0 +1,16 @@
|
||||
from marshmallow import Schema, fields
|
||||
|
||||
# Provide Loan Schema
|
||||
class ProvideLoanSchema(Schema):
|
||||
type = fields.Str(required=True)
|
||||
requestId = fields.Str(required=True)
|
||||
transactionId = fields.Str(required=True)
|
||||
customerId = fields.Str(required=True)
|
||||
accountId = fields.Str(required=True)
|
||||
msisdn = fields.Str(required=False)
|
||||
productId = fields.Str(required=True)
|
||||
lienAmount = fields.Float(required=True)
|
||||
requestedAmount = fields.Float(required=True)
|
||||
collectionType = fields.Int(required=True)
|
||||
loanType = fields.Int(required=True)
|
||||
channel = fields.Str(required=True)
|
||||
@@ -0,0 +1,23 @@
|
||||
from marshmallow import Schema, fields
|
||||
|
||||
class RACItemSchema(Schema):
|
||||
salaryAccount = fields.Bool(required=True)
|
||||
bvn = fields.Str(required=True)
|
||||
crc = fields.Bool(required=True)
|
||||
crms = fields.Bool(required=True)
|
||||
accountStatus = fields.Str(required=True)
|
||||
lien = fields.Bool(required=True)
|
||||
noBouncedCheck = fields.Bool(required=True)
|
||||
existingLoan = fields.Bool(required=True)
|
||||
whitelist = fields.Bool(required=True)
|
||||
noPastDueSalaryLoan = fields.Bool(required=True)
|
||||
noPastDueOtherLoans = fields.Bool(required=True)
|
||||
|
||||
|
||||
# RAC Check Schema
|
||||
class RACCheckSchema(Schema):
|
||||
transactionId = fields.Str(required=True)
|
||||
fbnTransactionId = fields.Str(required=True)
|
||||
customerId = fields.Str(required=True)
|
||||
accountId = fields.Str(required=True)
|
||||
RAC_Array = fields.List(fields.Nested(RACItemSchema), required=True)
|
||||
@@ -0,0 +1,11 @@
|
||||
from marshmallow import Schema, fields
|
||||
|
||||
# Repayment Schema
|
||||
class RepaymentSchema(Schema):
|
||||
type = fields.Str(required=True)
|
||||
msisdn = fields.Str(required=False) #optional
|
||||
debtId = fields.Str(required=True)
|
||||
productId = fields.Str(required=True)
|
||||
transactionId = fields.Str(required=True)
|
||||
customerId = fields.Str(required=True)
|
||||
channel = fields.Str(required=True)
|
||||
@@ -0,0 +1,13 @@
|
||||
from marshmallow import Schema, fields
|
||||
|
||||
|
||||
# Revoke Enable Consent Schema
|
||||
class RevokeEnableConsentSchema(Schema):
|
||||
transactionId = fields.Str(required=True)
|
||||
fbnTransactionId = fields.Str(required=True)
|
||||
customerId = fields.Str(required=True)
|
||||
accountId = fields.Str(required=True)
|
||||
processTime = fields.DateTime(required=True)
|
||||
consentType = fields.Str(required=True)
|
||||
countryId = fields.Str(required=True)
|
||||
comment = fields.Str(required=False)
|
||||
@@ -0,0 +1,13 @@
|
||||
from marshmallow import Schema, fields
|
||||
|
||||
# Select Offer Schema
|
||||
class SelectOfferSchema(Schema):
|
||||
requestId = fields.Str(required=True)
|
||||
transactionId = fields.Str(required=True)
|
||||
customerId = fields.Str(required=True)
|
||||
accountId = fields.Str(required=True)
|
||||
msisdn = fields.Str(required=True)
|
||||
requestedAmount = fields.Float(required=True)
|
||||
productId = fields.Str(required=True)
|
||||
channel = fields.Str(required=True)
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
from marshmallow import Schema, fields
|
||||
|
||||
# SMS Schema
|
||||
class SMSSchema(Schema):
|
||||
text = fields.Str(required=True)
|
||||
dest = fields.Str(required=True)
|
||||
unicode = fields.Bool(required=True)
|
||||
@@ -0,0 +1,8 @@
|
||||
from marshmallow import Schema, fields
|
||||
|
||||
# Token Validation Schema
|
||||
class TokenValidationSchema(Schema):
|
||||
RequestId = fields.Str(required=True)
|
||||
UserId = fields.Str(required=True)
|
||||
CountryId = fields.Str(required=True)
|
||||
TokenCode = fields.Str(required=True)
|
||||
@@ -0,0 +1,12 @@
|
||||
from marshmallow import Schema, fields
|
||||
|
||||
|
||||
# Transaction Verify Schema
|
||||
class TransactionVerifySchema(Schema):
|
||||
counter = fields.Str(required=True)
|
||||
TransactionId = fields.Str(required=True)
|
||||
requestID = fields.Str(required=True)
|
||||
customerId = fields.Str(required=True)
|
||||
accountId = fields.Str(required=True)
|
||||
countryId = fields.Str(required=True) # Static value “01”
|
||||
transactionType = fields.Str(required=True)
|
||||
Reference in New Issue
Block a user