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

6 years ago
6 years ago
6 years ago
6 years ago
  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. }
  28. class ReceipientViewModel {
  29. var id: String?
  30. var firstName: String?
  31. var middleName: String?
  32. var lastName: String?
  33. var countryId: String?
  34. var stateId: String?
  35. var districtId: String?
  36. var city: String?
  37. var address: String?
  38. var relationId: String?
  39. var mobileNumber: String?
  40. var email: String?
  41. var reasonId: String?
  42. }
  43. struct Recipient: Codable, Mappable {
  44. var firstName: String?
  45. var middleName: String?
  46. var lastName: String?
  47. var country: String?
  48. var countryId: String?
  49. var countryCode: String?
  50. var state: String?
  51. var stateId: String?
  52. var city: String?
  53. var address: String?
  54. var district: String?
  55. var districtId: String?
  56. var relation: String?
  57. var relationId: String?
  58. var mobileNumber: String?
  59. var email: String?
  60. var recipientId: String?
  61. var reason: String?
  62. var reasonId: String?
  63. mutating func mapping(map: Map) {
  64. firstName <- map["firstName"]
  65. middleName <- map["middleName"]
  66. lastName <- map["lastName"]
  67. country <- map["country"]
  68. state <- map["state"]
  69. stateId <- map["stateId"]
  70. city <- map["city"]
  71. address <- map["address"]
  72. district <- map["district"]
  73. districtId <- map["districtId"]
  74. relation <- map["relation"]
  75. relationId <- map["relationId"]
  76. mobileNumber <- map["mobileNumber"]
  77. email <- map["email"]
  78. recipientId <- map["recipientId"]
  79. reason <- map["reason"]
  80. reasonId <- map["reasonId"]
  81. countryId <- map["countryId"]
  82. countryCode <- map["countryCode"]
  83. }
  84. func getFullName() -> String {
  85. guard middleName != nil else {
  86. return (firstName ?? "") + " " + (lastName ?? "")
  87. }
  88. let _firstName = self.firstName ?? ""
  89. let _lastName = self.lastName ?? ""
  90. let _middleName = self.middleName ?? ""
  91. return _firstName + " " + _middleName + " " + _lastName
  92. }
  93. init?(map: Map) {
  94. }
  95. init() {
  96. }
  97. }
  98. extension Recipient: Serializer {
  99. func serialize() -> [String : String] {
  100. var dict: [String: String] = [:]
  101. dict[RecipientModelFields.firstName] = self.firstName ?? ""
  102. dict[RecipientModelFields.lastName] = self.lastName ?? ""
  103. dict[RecipientModelFields.country] = self.countryId ?? ""
  104. dict[RecipientModelFields.middleName] = self.middleName ?? ""
  105. dict[RecipientModelFields.state] = self.stateId ?? ""
  106. dict[RecipientModelFields.district] = self.districtId ?? ""
  107. dict[RecipientModelFields.city] = self.city ?? ""
  108. dict[RecipientModelFields.address] = self.address ?? ""
  109. dict[RecipientModelFields.relation] = self.relationId ?? ""
  110. dict[RecipientModelFields.mobileNumber] = self.mobileNumber ?? ""
  111. dict[RecipientModelFields.email] = self.email ?? ""
  112. dict[RecipientModelFields.reason] = self.reasonId ?? ""
  113. dict[RecipientModelFields.id] = self.recipientId ?? ""
  114. return dict
  115. }
  116. }
  117. class RecipientContainer: Mappable {
  118. var errorCode: String?
  119. var message: String?
  120. var id: String?
  121. var data: Recipient?
  122. required init?(map: Map) {
  123. }
  124. func mapping(map: Map) {
  125. errorCode <- map["ErrorCode"]
  126. id <- map["Id"]
  127. message <- map["Msg"]
  128. data <- map["Data"]
  129. }
  130. }
  131. class RecipientListContainer: Mappable {
  132. var errorCode: String?
  133. var message: String?
  134. var id: String?
  135. var data: RecipientListWrapperContainer?
  136. required init?(map: Map) {
  137. }
  138. func mapping(map: Map) {
  139. errorCode <- map["ErrorCode"]
  140. id <- map["Id"]
  141. message <- map["Msg"]
  142. data <- map["Data"]
  143. }
  144. }
  145. class RecipientListWrapperContainer: Mappable {
  146. var errorCode: String?
  147. var message: String?
  148. var id: String?
  149. var reciepients: [Recipient]?
  150. var accounts: [Account]?
  151. required init?(map: Map) {
  152. }
  153. func mapping(map: Map) {
  154. reciepients <- map["Receivers"]
  155. accounts <- map["AccountList"]
  156. errorCode <- map["ErrorCode"]
  157. id <- map["Id"]
  158. message <- map["Msg"]
  159. }
  160. }