@darkwolf/qiwi.mjs
Version:
144 lines (128 loc) • 4 kB
JavaScript
import Helper from '@darkwolf/helper.mjs'
import QIWI from '../index.mjs'
export default class PaymentCommissionRates {
static fromParams(params = {}, context) {
const data = {
providerId: params.providerId,
rate: params.withdrawToEnrollmentRate
}
if (params.enrollmentSum) {
data.currency = params.enrollmentSum.currency
data.amount = params.enrollmentSum.amount
}
if (params.qwCommission) {
data.commissionCurrency = params.qwCommission.currency
data.commissionAmount = params.qwCommission.amount
}
if (params.fundingSourceCommission) {
data.fundingSourceCommissionCurrency = params.fundingSourceCommission.currency
data.fundingSourceCommissionAmount = params.fundingSourceCommission.amount
}
if (params.withdrawSum) {
data.totalCurrency = params.withdrawSum.currency
data.totalAmount = params.withdrawSum.amount
}
if (data.currency) {
data.currency = QIWI.getCurrencyByCode(data.currency)
}
if (data.commissionCurrency) {
data.commissionCurrency = QIWI.getCurrencyByCode(data.commissionCurrency)
}
if (data.fundingSourceCommissionCurrency) {
data.fundingSourceCommissionCurrency = QIWI.getCurrencyByCode(data.fundingSourceCommissionCurrency)
}
if (data.totalCurrency) {
data.totalCurrency = QIWI.getCurrencyByCode(data.totalCurrency)
}
return new PaymentCommissionRates(data, context)
}
static from(data, context) {
return new PaymentCommissionRates(data, context)
}
constructor(data = {}, context) {
this
.setContext(context)
.setProviderId(data.providerId)
.setCurrency(data.currency)
.setAmount(data.amount)
.setCommissionCurrency(data.commissionCurrency)
.setCommissionAmount(data.commissionAmount)
.setFundingSourceCommissionCurrency(data.fundingSourceCommissionCurrency)
.setFundingSourceCommissionAmount(data.fundingSourceCommissionAmount)
.setTotalCurrency(data.totalCurrency)
.setTotalAmount(data.totalAmount)
.setRate(data.rate)
}
setContext(context = {}) {
this.context = context
return this
}
setProviderId(id) {
this.providerId = id
return this
}
setCurrency(currency) {
this.currency = currency
return this
}
setAmount(amount) {
this.amount = amount
return this
}
setCommissionCurrency(currency) {
this.commissionCurrency = currency
return this
}
setCommissionAmount(amount) {
this.commissionAmount = amount
return this
}
setFundingSourceCommissionCurrency(currency) {
this.fundingSourceCommissionCurrency = currency
return this
}
setFundingSourceCommissionAmount(amount) {
this.fundingSourceCommissionAmount = amount
return this
}
setTotalCurrency(currency) {
this.totalCurrency = currency
return this
}
setTotalAmount(amount) {
this.totalAmount = amount
return this
}
setRate(rate) {
this.rate = rate
return this
}
toJSON() {
const data = {}
if (this.providerId) {
data.providerId = this.providerId
}
if (this.currency) {
data.currency = this.currency
}
if (Helper.exists(this.amount)) {
data.amount = this.amount
}
if (this.commissionCurrency) {
data.commissionCurrency = this.commissionCurrency
}
if (Helper.exists(this.commissionAmount)) {
data.commissionAmount = this.commissionAmount
}
if (this.fundingSourceCommissionCurrency) {
data.fundingSourceCommissionCurrency = this.fundingSourceCommissionCurrency
}
if (Helper.exists(this.fundingSourceCommissionAmount)) {
data.fundingSourceCommissionAmount = this.fundingSourceCommissionAmount
}
if (Helper.exists(this.rate)) {
data.rate = this.rate
}
return data
}
}