// // SetupRecipientService.swift // GME Remit // // Created by InKwon James Kim on 09/08/2019. //Copyright © 2019 Gobal Money Express Co. Ltd. All rights reserved. // import Foundation class SetupRecipientService: SetupRecipientServiceType { func fetchCountriesAndServiceTypes( success: @escaping ([CountryAndServiceModel]) -> Void, failure: @escaping (Error) -> Void ) { let name = GMEDB.shared.user.string(.userId) ?? "" APIRouter.fetchCountriesAndServiceTypes(username: name) .json(success: success, failure: failure) } func fetchDynamicReceiverFields( of countryID: String, paymentModeID: String, success: @escaping (DynamicFieldModel) -> Void, failure: @escaping (Error) -> Void ) { let username = GMEDB.shared.user.string(.userId) ?? "" APIRouter.dynamicReceiver( username: username, countryID: countryID, serviceTypeID: paymentModeID ).json(success: success, failure: failure) } func addRecipient( at recipient: Recipient, success: @escaping (ResponseContainerObject) -> Void, failure: @escaping (Error) -> Void ) { let id = GMEDB.shared.user.string(.senderId) ?? "" APIRouter.addRecipient(senderID: id, recipient: recipient) .request( success: {(response: ResponseContainerObject) in if response.errorCode != "0" { let error = NSError( domain: "Network", code: 0, message: response.message ?? "Failed Add Recipient" ) failure(error) } success(response) }, failure: failure ) } func editRecipient( at recipient: Recipient, success: @escaping (ResponseContainerObject) -> Void, failure: @escaping (Error) -> Void ) { let id = GMEDB.shared.user.string(.senderId) ?? "" APIRouter.editRecipient(senderID: id, recipient: recipient) .request( success: {(response: ResponseContainerObject) in if response.errorCode != "0" { let error = NSError( domain: "Network", code: 0, message: response.message ?? "Failed Edit Recipient" ) failure(error) } success(response) }, failure: failure ) } func validateAccount( of model: ValidateAccountRequest, success: @escaping () -> Void, failure: @escaping (Error) -> Void ) { APIRouter.validateAccount(validateModel: model) .json(success: success, failure: failure) } }