You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

89 lines
3.2 KiB

//
// SendMoneyVerificationInteractor.swift
// GMERemittance
//
// Created by gme_2 on 28/08/2018.
//Copyright © 2018 Gobal Money Express Co. Ltd. All rights reserved.
//
import Foundation
class SendMoneyVerificationInteractor {
// MARK: Properties
weak var output: SendMoneyVerificationInteractorOutput?
private let service: SendMoneyVerificationServiceType
// MARK: Initialization
init(service: SendMoneyVerificationServiceType) {
self.service = service
}
// MARK: Converting entities
}
// MARK: SendMoneyVerification interactor input interface
extension SendMoneyVerificationInteractor: SendMoneyVerificationInteractorInput {
func submit(model: SendMoneyRequestModel, reciepient: Recipient) {
let params = self.getParams(model: model, reciepient: reciepient)
self.service.submit(params: params, success: { (response) in
self.output?.show(model: response)
}) { (error) in
self.output?.show(error: error)
}
}
func getParams(model: SendMoneyRequestModel, reciepient: Recipient) -> [String: String] {
let _default = UserDefaults.standard
guard let username = _default.value(forKey: UserKeys.userId) as? String else {return [:]}
let senderId = _default.value(forKey: UserKeys.senderId) as? String
let recieverId = reciepient.recipientId
let params: [String: String] =
[
"user": username,
"senderId": senderId ?? "",
"receiverId": recieverId ?? "",
"deliveryMethodId": model.paymemtMode?.id ?? "",
"pBranch": model.branch?.id ?? "",
"pAgent": model.bank?.id ?? "",
"payOutPartner": model.paymemtMode?.payoutPartner ?? "",
"paymentType": "Wallet",
"pCurr": model.exchangeRateDetail?.reciepientCurrency ?? "",
"collCurr": "KRW",
"collAmt": model.exchangeRateDetail?.senderAmount ?? "",
"payoutAmt": model.exchangeRateDetail?.recipientAmount ?? "",
"transferAmt": model.exchangeRateDetail?.transferFee ?? "",
"serviceCharge": model.exchangeRateDetail?.transferFee ?? "",
"discount": "",
"exRate": model.exchangeRateDetail?.apiExchangeRate ?? "",
"calBy": model.exchangeRateDetail?.calcBy ?? "",
"tpExRate": model.exchangeRateDetail?.apiExchangeRate ?? "",
"tpPCurr": model.exchangeRateDetail?.recipientAmount ?? "",
"foreX_SESSION_ID": model.exchangeRateDetail?.forexId ?? "",
"purposeOfRemittance": reciepient.reasonId ?? "",
"sourceOfFund": "123",
"relWithSender": reciepient.relationId ?? "",
"occupation": "",
"ipAddress": "",
"rState": "",
"rLocation": "",
"isAgreed": "TRUE",
"txnPassword": model.transactionPassword ?? "",
]
return params
}
}