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.
 
 
 
 

106 lines
2.5 KiB

//
// 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)
}
)
}
}