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.3 KiB

  1. //
  2. // SendMoneyVerificationInteractor.swift
  3. // GMERemittance
  4. //
  5. // Created by gme_2 on 28/08/2018.
  6. //Copyright © 2018 Gobal Money Express Co. Ltd. All rights reserved.
  7. //
  8. import Foundation
  9. class SendMoneyVerificationInteractor {
  10. // MARK: Properties
  11. weak var output: SendMoneyVerificationInteractorOutput?
  12. private let service: SendMoneyVerificationServiceType
  13. // MARK: Initialization
  14. init(service: SendMoneyVerificationServiceType) {
  15. self.service = service
  16. }
  17. // MARK: Converting entities
  18. }
  19. // MARK: SendMoneyVerification interactor input interface
  20. extension SendMoneyVerificationInteractor: SendMoneyVerificationInteractorInput {
  21. func submit(model: SendMoneyRequestModel, reciepient: Recipient) {
  22. let params = self.getParams(model: model, reciepient: reciepient)
  23. self.service.submit(params: params, success: { (response) in
  24. self.output?.show(model: response)
  25. }) { (error) in
  26. self.output?.show(error: error)
  27. }
  28. }
  29. func getParams(model: SendMoneyRequestModel, reciepient: Recipient) -> [String: String] {
  30. let _default = UserDefaults.standard
  31. guard let username = _default.value(forKey: UserKeys.userId) as? String else {return [:]}
  32. let senderId = _default.value(forKey: UserKeys.senderId) as? String
  33. let recieverId = reciepient.recipientId
  34. let params: [String: String] =
  35. [
  36. "user": username,
  37. "senderId": senderId ?? "",
  38. "receiverId": recieverId ?? "",
  39. "deliveryMethodId": model.paymemtMode?.id ?? "",
  40. "pBranch": model.branch?.id ?? "",
  41. "pAgent": model.bank?.id ?? "",
  42. "payOutPartner": model.paymemtMode?.payoutPartner ?? "",
  43. "paymentType": "Wallet",
  44. "pCurr": model.exchangeRateDetail?.reciepientCurrency ?? "",
  45. "collCurr": "KRW",
  46. "collAmt": model.exchangeRateDetail?.senderAmount ?? "",
  47. "payoutAmt": model.exchangeRateDetail?.recipientAmount ?? "",
  48. "transferAmt": model.exchangeRateDetail?.transferAmount ?? "",
  49. "serviceCharge": model.exchangeRateDetail?.transferFee ?? "",
  50. "discount": "",
  51. "exRate": model.exchangeRateDetail?.apiExchangeRate ?? "",
  52. "calBy": model.exchangeRateDetail?.calcBy ?? "",
  53. "tpExRate": model.exchangeRateDetail?.apiExchangeRate ?? "",
  54. "tpPCurr": model.exchangeRateDetail?.reciepientCurrency ?? "",
  55. "foreX_SESSION_ID": model.exchangeRateDetail?.forexId ?? "",
  56. "purposeOfRemittance": reciepient.reasonId ?? "",
  57. "sourceOfFund": "123",
  58. "relWithSender": reciepient.relationId ?? "",
  59. "occupation": "",
  60. "ipAddress": "",
  61. "rState": "",
  62. "rLocation": "",
  63. "isAgreed": "TRUE",
  64. "txnPassword": model.transactionPassword ?? "",
  65. "ReceiverAccountNo": model.paymemtMode?.accountNumber ?? ""
  66. ]
  67. return params
  68. }
  69. }