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.

190 lines
4.8 KiB

  1. //
  2. // Reciepient.swift
  3. // GMERemittance
  4. //
  5. // Created by gme_2 on 26/08/2018.
  6. // Copyright © 2018 Gobal Money Express Co. Ltd. All rights reserved.
  7. //
  8. import Foundation
  9. import ObjectMapper
  10. protocol Serializer {
  11. func serialize() -> [String: String]
  12. }
  13. struct RecipientModelFields {
  14. static let firstName = "FirstName"
  15. static let middleName = "MiddleName"
  16. static let lastName = "LastName"
  17. static let country = "Country"
  18. static let state = "State"
  19. static let city = "City"
  20. static let address = "Address"
  21. static let district = "District"
  22. static let relation = "Relation"
  23. static let mobileNumber = "MobileNo"
  24. static let email = "Email"
  25. static let reason = "TransferReason"
  26. static let id = "Id"
  27. static let idNumber = "IdNumber"
  28. static let idType = "IdType"
  29. }
  30. class ReceipientViewModel {
  31. var id: String?
  32. var firstName: String?
  33. var middleName: String?
  34. var lastName: String?
  35. var countryId: String?
  36. var stateId: String?
  37. var districtId: String?
  38. var city: String?
  39. var address: String?
  40. var relationId: String?
  41. var mobileNumber: String?
  42. var email: String?
  43. var reasonId: String?
  44. var idNumber: String?
  45. var idType: String?
  46. }
  47. struct RecipientEx: Codable, Mappable {
  48. var firstName: String?
  49. var middleName: String?
  50. var lastName: String?
  51. var country: String?
  52. var countryId: String?
  53. var countryCode: String?
  54. var state: String?
  55. var stateId: String?
  56. var city: String?
  57. var address: String?
  58. var district: String?
  59. var districtId: String?
  60. var relation: String?
  61. var relationId: String?
  62. var mobileNumber: String?
  63. var email: String?
  64. var recipientId: String?
  65. var reason: String?
  66. var reasonId: String?
  67. // IdNumber,IdType
  68. var idNumber: String?
  69. var idType: String?
  70. mutating func mapping(map: Map) {
  71. firstName <- map["firstName"]
  72. middleName <- map["middleName"]
  73. lastName <- map["lastName"]
  74. country <- map["country"]
  75. state <- map["state"]
  76. stateId <- map["stateId"]
  77. city <- map["city"]
  78. address <- map["address"]
  79. district <- map["district"]
  80. districtId <- map["districtId"]
  81. relation <- map["relation"]
  82. relationId <- map["relationId"]
  83. mobileNumber <- map["mobileNumber"]
  84. email <- map["email"]
  85. recipientId <- map["recipientId"]
  86. reason <- map["reason"]
  87. reasonId <- map["reasonId"]
  88. countryId <- map["countryId"]
  89. countryCode <- map["countryCode"]
  90. idNumber <- map["idNumber"]
  91. idType <- map["idType"]
  92. }
  93. func getFullName() -> String {
  94. guard middleName != nil else {
  95. return (firstName ?? "") + " " + (lastName ?? "")
  96. }
  97. let first = self.firstName ?? ""
  98. let last = self.lastName ?? ""
  99. let middle = self.middleName ?? ""
  100. return first + " " + middle + " " + last
  101. }
  102. init?(map: Map) {}
  103. init() {}
  104. }
  105. extension RecipientEx: Serializer {
  106. func serialize() -> [String : String] {
  107. var dict: [String: String] = [:]
  108. dict[RecipientModelFields.firstName] = self.firstName ?? ""
  109. dict[RecipientModelFields.lastName] = self.lastName ?? ""
  110. dict[RecipientModelFields.country] = self.countryId ?? ""
  111. dict[RecipientModelFields.middleName] = self.middleName ?? ""
  112. dict[RecipientModelFields.state] = self.stateId ?? ""
  113. dict[RecipientModelFields.district] = self.districtId ?? ""
  114. dict[RecipientModelFields.city] = self.city ?? ""
  115. dict[RecipientModelFields.address] = self.address ?? ""
  116. dict[RecipientModelFields.relation] = self.relationId ?? ""
  117. dict[RecipientModelFields.mobileNumber] = self.mobileNumber ?? ""
  118. dict[RecipientModelFields.email] = self.email ?? ""
  119. dict[RecipientModelFields.reason] = self.reasonId ?? ""
  120. dict[RecipientModelFields.id] = self.recipientId ?? ""
  121. dict[RecipientModelFields.idType] = self.idType ?? ""
  122. dict[RecipientModelFields.idNumber] = self.idNumber ?? ""
  123. return dict
  124. }
  125. }
  126. class RecipientContainer: Mappable {
  127. var errorCode: String?
  128. var message: String?
  129. var id: String?
  130. var data: Recipient?
  131. required init?(map: Map) {}
  132. func mapping(map: Map) {
  133. errorCode <- map["ErrorCode"]
  134. id <- map["Id"]
  135. message <- map["Msg"]
  136. data <- map["Data"]
  137. }
  138. }
  139. class RecipientListContainer: Mappable {
  140. var errorCode: String?
  141. var message: String?
  142. var id: String?
  143. var data: RecipientListWrapperContainer?
  144. required init?(map: Map) {}
  145. func mapping(map: Map) {
  146. errorCode <- map["ErrorCode"]
  147. id <- map["Id"]
  148. message <- map["Msg"]
  149. data <- map["Data"]
  150. }
  151. }
  152. class RecipientListWrapperContainer: Mappable {
  153. var errorCode: String?
  154. var message: String?
  155. var id: String?
  156. var reciepients: [Recipient]?
  157. var accounts: [Account]?
  158. required init?(map: Map) {}
  159. func mapping(map: Map) {
  160. reciepients <- map["Receivers"]
  161. accounts <- map["AccountList"]
  162. errorCode <- map["ErrorCode"]
  163. id <- map["Id"]
  164. message <- map["Msg"]
  165. }
  166. }