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.

187 lines
4.8 KiB

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