// // autoRefundService.swift // GME Remit // // Created by Mac on 11/21/18. // Copyright © 2018 Gobal Money Express Co. Ltd. All rights reserved. // import Foundation import Alamofire protocol FetchAutoRefundInfo: ApiServiceType { func fetchAutoRefundInfo( username: String, success: @escaping (AutoRefund) -> Void, failure: @escaping (Error) -> Void ) } extension FetchAutoRefundInfo { func fetchAutoRefundInfo( username: String, success: @escaping (AutoRefund) -> Void, failure: @escaping (Error) -> Void ) { let url = baseUrl + "/refund/\(username)" auth.request( method: .get, url: url, params: nil, encoding: URLEncoding.default, success: { (response: AutoRefundContainer) in if (response.errorCode ?? "") == "1" { let error = NSError( domain: "Network", code: 0, userInfo: [NSLocalizedDescriptionKey : response.message ?? ""] ) failure(error) } else { if let model = response.data { success(model) } else { let error = NSError( domain: "FetchAutoRefundInfo", code: 0, userInfo: [NSLocalizedDescriptionKey : "Could not parse json"] ) failure(error) } } }, failure: { (error) in failure(error) } ) } } protocol RefundService: ApiServiceType { func refund( amount: String, userName: String, chargeAmount: String, userId: String, success: @escaping (SuccessMessage?) -> Void, failure: @escaping (Error) -> Void ) } extension RefundService { func refund( amount: String, userName: String, chargeAmount: String, userId: String, success: @escaping (SuccessMessage?) -> Void, failure: @escaping (Error) -> Void ) { let url = baseUrl + "/refund/proceed" let params = [ "Username": userName, "Amount": amount, "ChargeAmount": chargeAmount, "UserId": userId ] auth.request( method: .post, url: url, params: params, success: { (response: SuccessMessageContainer) in if (response.errorCode ?? "") == "1" { let error = NSError( domain: "Network", code: 0, userInfo: [NSLocalizedDescriptionKey : response.message ?? ""] ) failure(error) } else { success(response.data) } }, failure: { (error) in failure(error) } ) } }