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.
2960 lines
110 KiB
2960 lines
110 KiB
//
|
|
// RestApiManager.swift
|
|
// GMERemittance
|
|
//
|
|
// Created by Sujal on 12/5/17.
|
|
// Copyright © 2017 Gobal Money Express Co. Ltd. All rights reserved.
|
|
//
|
|
|
|
import Foundation
|
|
import Alamofire
|
|
import SwiftyJSON
|
|
import ObjectMapper
|
|
|
|
enum ApiResult {
|
|
case success(JSON)
|
|
case failure(JSON)
|
|
case updateAccessCode()
|
|
case logOutUser()
|
|
case timeOut()
|
|
}
|
|
|
|
class RestApiMananger {
|
|
|
|
let manager: SessionManager
|
|
|
|
|
|
static let sharedInstance = RestApiMananger()
|
|
|
|
init() {
|
|
self.manager = Alamofire.SessionManager.default
|
|
manager.session.configuration.timeoutIntervalForRequest = 150
|
|
}
|
|
|
|
func getUUID() -> String {
|
|
|
|
let uuid = UserDefaults.standard.object(forKey: AppConstants.uuid) as? String
|
|
if uuid != nil {
|
|
return uuid!
|
|
} else {
|
|
let uuid = UUID().uuidString
|
|
UserDefaults.standard.set(uuid, forKey: AppConstants.uuid)
|
|
return uuid
|
|
}
|
|
}
|
|
|
|
func getContentHeaderBeforeLogin() -> [String: String] {
|
|
|
|
return ["Authorization": "Basic " + ("172017F9EC11222E8107142733:QRK2UM0Q" +
|
|
":" + getUUID()).toBase64(),
|
|
"Content-Type": "application/json"]
|
|
}
|
|
|
|
func getContentHeaderAfterLogin() -> [String: String] {
|
|
|
|
let accessCode = UserDefaults.standard.object(forKey: "com.gmeremit.accessCode") as? String
|
|
|
|
if accessCode != nil {
|
|
return ["Authorization": "Bearer " + accessCode!,
|
|
"Content-Type": "application/json"]
|
|
} else {
|
|
//Just in case access code becomes nil, use some old access code so that the user gets logged out instead of gettting crash
|
|
return ["Authorization": "Basic MDQ4QUNENEYtMzkzQy00MjdBLTk1QjEtQkU4RTI2RTA4OUFFOjFhNjg2MGQ1LWIzZTgtNGUzMy05NGNhLThkZTA0YTQ5OTc0Mw==",
|
|
"Content-Type": "application/json"]
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// ccr
|
|
|
|
// added failure for delete operation. check if code is 204. if show show successfull message even in error
|
|
func request<T: Mappable>(method: HTTPMethod, url: String, params: [String: Any]?, encoding: ParameterEncoding = JSONEncoding.default, needsAuthorization: Bool = true, success: @escaping (T) -> (), failure: @escaping (Error) -> ()) {
|
|
if NetworkReachabilityManager()?.isReachable ?? false {
|
|
let header = needsAuthorization ? getContentHeaderAfterLogin() : getContentHeaderBeforeLogin()
|
|
manager.request(
|
|
url,
|
|
method: method,
|
|
parameters: params,
|
|
encoding: encoding,
|
|
headers: header
|
|
).handle(success: success, failure: failure)
|
|
}else {
|
|
let error = NSError.init(domain: "NETWORK_REACHABILITY_DOMAIN", code: 0, userInfo: [NSLocalizedDescriptionKey : "No Internet connection found.
Check your connection."])
|
|
failure(error)
|
|
}
|
|
}
|
|
|
|
func requestMultipart<T: Mappable>(
|
|
method: HTTPMethod,
|
|
_ URLString: URLConvertible,
|
|
parameters: [String: String]? = nil,
|
|
images: [String: Data],
|
|
encoding: Alamofire.ParameterEncoding = URLEncoding.default,
|
|
needsAuthorization: Bool = true,
|
|
success: @escaping (T)-> Void,
|
|
failure: @escaping (Error) -> ()) {
|
|
|
|
if NetworkReachabilityManager()?.isReachable == true {
|
|
let headers = needsAuthorization ? getContentHeaderAfterLogin() : getContentHeaderBeforeLogin()
|
|
|
|
self.manager.upload(
|
|
multipartFormData: { multipartFormData in
|
|
if !images.isEmpty {
|
|
images.forEach({ (data) in
|
|
multipartFormData.append(data.value, withName: data.key, fileName: data.key + ".jpeg", mimeType: "image/jpeg")
|
|
})
|
|
|
|
}
|
|
parameters?.forEach({ (params) in
|
|
multipartFormData.append(params.value.data(using: String.Encoding.utf8, allowLossyConversion: false)!, withName: params.key)
|
|
})
|
|
|
|
},
|
|
to: URLString,
|
|
method: method,
|
|
headers: headers,
|
|
encodingCompletion: { encodingResult in
|
|
switch encodingResult {
|
|
case .success(let upload, _, _):
|
|
upload.handle(success: success, failure: failure)
|
|
case .failure(let encodingError):
|
|
let error = NSError.init(domain: "NETWORK_REACHABILITY_DOMAIN", code: 0, userInfo: [NSLocalizedDescriptionKey : "No Internet connection found.
Check your connection."])
|
|
failure(error)
|
|
|
|
}
|
|
}
|
|
)
|
|
|
|
}else {
|
|
let error = NSError.init(domain: "NETWORK_REACHABILITY_DOMAIN", code: 0, userInfo: [NSLocalizedDescriptionKey : "No Internet connection found.
Check your connection."])
|
|
failure(error)
|
|
}
|
|
}
|
|
|
|
|
|
// ccr
|
|
|
|
|
|
//Signing up a new user
|
|
func registerUser(userId: String, password: String, completion: @escaping (ApiResult) -> Void) {
|
|
manager.request(
|
|
URL(string: UrlManager.sharedInstance.getSignupURL())!,
|
|
method: .post,
|
|
parameters: ["userId": userId, "password" : password],
|
|
encoding: JSONEncoding.default,
|
|
headers: getContentHeaderBeforeLogin()
|
|
).responseJSON { (response) -> Void in
|
|
|
|
if let error = response.result.error {
|
|
if error._code == NSURLErrorTimedOut {
|
|
completion(.timeOut())
|
|
}
|
|
}
|
|
|
|
if response.result.isFailure{
|
|
completion(.timeOut())
|
|
}
|
|
|
|
if response.response?.statusCode == nil {
|
|
return
|
|
}
|
|
guard (response.response?.statusCode == 200) else {
|
|
completion(.failure(JSON(response.data!)))
|
|
return
|
|
}
|
|
completion(.success(JSON(response.data!)))
|
|
}
|
|
}
|
|
|
|
//Verification of 4 digit code for
|
|
func authenticateUser(code: String, userId: String, completion: @escaping (ApiResult) -> Void) {
|
|
|
|
|
|
manager.request(
|
|
URL(string: UrlManager.sharedInstance.getCodeVerificationURL(userId: userId))!,
|
|
method: .post,
|
|
parameters: ["verificationcode": code, "phoneOs": "ios"],
|
|
encoding: JSONEncoding.default,
|
|
headers: getContentHeaderBeforeLogin()
|
|
).responseJSON { (response) -> Void in
|
|
|
|
if let error = response.result.error {
|
|
if error._code == NSURLErrorTimedOut {
|
|
completion(.timeOut())
|
|
}
|
|
}
|
|
|
|
if response.result.isFailure{
|
|
completion(.timeOut())
|
|
}
|
|
|
|
if response.response?.statusCode == nil {
|
|
return
|
|
}
|
|
guard (response.response?.statusCode == 204) else { //initially 204
|
|
if response.response?.statusCode == 401 {
|
|
completion(.updateAccessCode())
|
|
} else {
|
|
|
|
completion(.failure(JSON(response.data!)))
|
|
}
|
|
return
|
|
}
|
|
|
|
completion(.success(JSON.null))
|
|
}
|
|
}
|
|
|
|
//Requesting another access code
|
|
func requestAnotherCode (type: String, userId: String, completion: @escaping (ApiResult) -> Void) {
|
|
|
|
var param: [String: String]?
|
|
|
|
switch type {
|
|
case "device":
|
|
param = ["codeType":"dvc"]
|
|
case "password":
|
|
param = ["codeType":"prc"]
|
|
default:
|
|
param = nil
|
|
}
|
|
|
|
|
|
manager.request(
|
|
URL(string: UrlManager.sharedInstance.getRequestAnotherCodeURL(userId: userId))!,
|
|
method: .post,
|
|
parameters: param!,
|
|
encoding: JSONEncoding.default,
|
|
headers: getContentHeaderBeforeLogin()
|
|
).responseJSON { (response) -> Void in
|
|
|
|
if let error = response.result.error {
|
|
if error._code == NSURLErrorTimedOut {
|
|
completion(.timeOut())
|
|
}
|
|
}
|
|
|
|
if response.result.isFailure{
|
|
completion(.timeOut())
|
|
}
|
|
|
|
if response.response?.statusCode == nil {
|
|
return
|
|
}
|
|
guard (response.response?.statusCode == 200) else {
|
|
if response.response?.statusCode == 401 {
|
|
completion(.updateAccessCode())
|
|
}else{
|
|
completion(.failure(JSON(response.data!)))
|
|
}
|
|
return
|
|
}
|
|
completion(.success(JSON(response.data!)))
|
|
}
|
|
}
|
|
|
|
|
|
|
|
//Checking user verification for password reset process, 1 of 3
|
|
func isVerifiedUser(userId: String, completion: @escaping (ApiResult) -> Void) {
|
|
|
|
|
|
manager.request(
|
|
URL(string: UrlManager.sharedInstance.getUserVerificationURLforPasswordReset())!,
|
|
method: .post,
|
|
parameters: ["userId": userId],
|
|
encoding: JSONEncoding.default,
|
|
headers: getContentHeaderBeforeLogin()
|
|
).responseJSON { (response) -> Void in
|
|
|
|
if let error = response.result.error {
|
|
if error._code == NSURLErrorTimedOut {
|
|
completion(.timeOut())
|
|
}
|
|
}
|
|
|
|
if response.result.isFailure{
|
|
completion(.timeOut())
|
|
}
|
|
|
|
if response.response?.statusCode == nil {
|
|
return
|
|
}
|
|
guard (response.response?.statusCode == 200) else {
|
|
if response.response?.statusCode == 401 {
|
|
completion(.updateAccessCode())
|
|
}else{
|
|
completion(.failure(JSON(response.data!)))
|
|
}
|
|
return
|
|
}
|
|
completion(.success(JSON(response.data!)))
|
|
}
|
|
}
|
|
|
|
|
|
func submitUserDOB(userId: String, userDOB: String, completion: @escaping (ApiResult) -> Void) {
|
|
|
|
manager.request(
|
|
URL(string: UrlManager.sharedInstance.getDOBVerificationURLforPasswordReset(userId: userId))!,
|
|
method: .post,
|
|
parameters: ["userId": userId, "answer": userDOB],
|
|
encoding: JSONEncoding.default,
|
|
headers: getContentHeaderBeforeLogin()
|
|
).responseJSON { (response) -> Void in
|
|
|
|
if let error = response.result.error {
|
|
if error._code == NSURLErrorTimedOut {
|
|
completion(.timeOut())
|
|
}
|
|
}
|
|
|
|
if response.result.isFailure{
|
|
completion(.timeOut())
|
|
}
|
|
|
|
if response.response?.statusCode == nil {
|
|
return
|
|
}
|
|
guard (response.response?.statusCode == 200) else {
|
|
if response.response?.statusCode == 401 {
|
|
completion(.updateAccessCode())
|
|
} else {
|
|
completion(.failure(JSON(response.data!)))
|
|
}
|
|
return
|
|
}
|
|
completion(.success(JSON(response.data!)))
|
|
}
|
|
}
|
|
|
|
//Getting 4 digit code for password reset, 3 of 3
|
|
func reAuthenticateUser(code: String, userId: String, completion: @escaping (ApiResult) -> Void) {
|
|
|
|
manager.request(
|
|
URL(string: UrlManager.sharedInstance.getResetCodeValidationURL(userId: userId))!,
|
|
method: .post,
|
|
parameters: ["forgetCode": code, "phoneOs": "ios"],
|
|
encoding: JSONEncoding.default,
|
|
headers: getContentHeaderBeforeLogin()
|
|
).responseJSON { (response) -> Void in
|
|
|
|
if let error = response.result.error {
|
|
if error._code == NSURLErrorTimedOut {
|
|
completion(.timeOut())
|
|
}
|
|
}
|
|
|
|
if response.result.isFailure{
|
|
completion(.timeOut())
|
|
}
|
|
|
|
if response.response?.statusCode == nil {
|
|
return
|
|
}
|
|
guard (response.response?.statusCode == 200) else {
|
|
if response.response?.statusCode == 401 {
|
|
completion(.updateAccessCode())
|
|
}else{
|
|
completion(.failure(JSON(response.data!)))
|
|
}
|
|
return
|
|
}
|
|
completion(.success(JSON(response.data!)))
|
|
}
|
|
}
|
|
|
|
//Resetting password
|
|
func resetPassword(userId: String, password: String, completion: @escaping (ApiResult) -> Void) {
|
|
|
|
|
|
manager.request(
|
|
URL(string: UrlManager.sharedInstance.getPasswordUpdateURL(userId: userId))!,
|
|
method: .patch,
|
|
parameters: ["password": password],
|
|
encoding: JSONEncoding.default,
|
|
headers: getContentHeaderBeforeLogin()
|
|
).responseJSON { (response) -> Void in
|
|
|
|
if let error = response.result.error {
|
|
if error._code == NSURLErrorTimedOut {
|
|
completion(.timeOut())
|
|
}
|
|
}
|
|
|
|
if response.result.isFailure{
|
|
completion(.timeOut())
|
|
}
|
|
|
|
if response.response?.statusCode == nil {
|
|
return
|
|
}
|
|
guard (response.response?.statusCode == 200) else {
|
|
if response.response?.statusCode == 401 {
|
|
completion(.updateAccessCode())
|
|
}else{
|
|
completion(.failure(JSON(response.data!)))
|
|
}
|
|
|
|
return
|
|
}
|
|
completion(.success(JSON(response.data!)))
|
|
}
|
|
}
|
|
|
|
// Getting recipients as per pagination
|
|
func fetchRecipientListThroughPagination(userId: String, page: Int, size: Int, completion: @escaping (ApiResult) -> Void){
|
|
|
|
|
|
manager.request(
|
|
URL(string: UrlManager.sharedInstance.getRecipientListURLForPagination())!,
|
|
method: .get,
|
|
parameters: ["userId":userId,"size":size,"page":page],
|
|
encoding: URLEncoding.queryString,
|
|
headers: getContentHeaderAfterLogin()
|
|
).responseJSON { (response) -> Void in
|
|
|
|
let error = response.result.error
|
|
if error?._code == NSURLErrorTimedOut {
|
|
completion(.timeOut())
|
|
}
|
|
|
|
|
|
if response.result.isFailure{
|
|
completion(.timeOut())
|
|
}
|
|
|
|
if response.response?.statusCode == nil {
|
|
completion(.timeOut())
|
|
}
|
|
guard (response.response?.statusCode == 200) else {
|
|
if response.response?.statusCode == 401{
|
|
completion(.updateAccessCode())
|
|
|
|
} else if response.response?.statusCode == 403 {
|
|
completion(.logOutUser())
|
|
} else {
|
|
completion(.failure(JSON(response.data!)))
|
|
}
|
|
return
|
|
}
|
|
completion(.success(JSON(response.data!)))
|
|
}
|
|
}
|
|
|
|
//Creating a new recipient
|
|
func createNewRecipient(recipientDetails: [String: String], completion: @escaping (ApiResult) -> Void) {
|
|
|
|
|
|
manager.request(
|
|
URL(string: UrlManager.sharedInstance.getNewRecipientURL())!,
|
|
method: .post,
|
|
parameters: recipientDetails,
|
|
encoding: JSONEncoding.default,
|
|
headers: getContentHeaderAfterLogin()
|
|
).responseJSON { (response) -> Void in
|
|
|
|
let error = response.result.error
|
|
if error?._code == NSURLErrorTimedOut {
|
|
completion(.timeOut())
|
|
}
|
|
|
|
|
|
if response.result.isFailure{
|
|
completion(.timeOut())
|
|
}
|
|
|
|
if response.response?.statusCode == nil {
|
|
completion(.timeOut())
|
|
}
|
|
guard (response.response?.statusCode == 200) else {
|
|
if response.response?.statusCode == 401{
|
|
completion(.updateAccessCode())
|
|
} else if response.response?.statusCode == 403 {
|
|
completion(.logOutUser())
|
|
} else {
|
|
completion(.failure(JSON(response.data!)))
|
|
}
|
|
return
|
|
}
|
|
completion(.success(JSON(response.data!)))
|
|
}
|
|
}
|
|
|
|
//Updating a recipient
|
|
func updateRecipient(recipientId: String, recipientDetails: [String: String], completion: @escaping (ApiResult) -> Void) {
|
|
|
|
|
|
manager.request(
|
|
URL(string: UrlManager.sharedInstance.getUpdateRecipientURL(recipientId: recipientId))!,
|
|
method: .patch,
|
|
parameters: recipientDetails,
|
|
encoding: JSONEncoding.default,
|
|
headers: getContentHeaderAfterLogin()
|
|
).responseJSON { (response) -> Void in
|
|
|
|
let error = response.result.error
|
|
if error?._code == NSURLErrorTimedOut {
|
|
completion(.timeOut())
|
|
}
|
|
|
|
if response.result.isFailure{
|
|
completion(.timeOut())
|
|
}
|
|
|
|
if response.response?.statusCode == nil {
|
|
completion(.timeOut())
|
|
}
|
|
guard (response.response?.statusCode == 200) else {
|
|
if response.response?.statusCode == 401{
|
|
completion(.updateAccessCode())
|
|
} else if response.response?.statusCode == 403 {
|
|
completion(.logOutUser())
|
|
} else {
|
|
completion(.failure(JSON(response.data!)))
|
|
}
|
|
return
|
|
}
|
|
completion(.success(JSON(response.data!)))
|
|
}
|
|
}
|
|
|
|
|
|
//Removing an existing recipient
|
|
func deleteRecipient(recipientId: String, completion: @escaping (ApiResult) -> Void) {
|
|
|
|
manager.request(
|
|
URL(string: UrlManager.sharedInstance.getDeleteRecipientURL(recipientId: recipientId))!,
|
|
method: .delete,
|
|
parameters: nil,
|
|
encoding: JSONEncoding.default,
|
|
headers: getContentHeaderAfterLogin()
|
|
).responseJSON { (response) -> Void in
|
|
|
|
let error = response.result.error
|
|
if error?._code == NSURLErrorTimedOut {
|
|
completion(.timeOut())
|
|
}
|
|
|
|
if response.result.isFailure{
|
|
completion(.timeOut())
|
|
}
|
|
|
|
if response.response?.statusCode == nil {
|
|
completion(.timeOut())
|
|
}
|
|
guard (response.response?.statusCode == 204) else {
|
|
if response.response?.statusCode == 401{
|
|
completion(.updateAccessCode())
|
|
} else if response.response?.statusCode == 403 {
|
|
completion(.logOutUser())
|
|
} else {
|
|
completion(.failure(JSON(response.data!)))
|
|
}
|
|
return
|
|
}
|
|
completion(.success(JSON(response.data!)))
|
|
}
|
|
}
|
|
|
|
|
|
|
|
func updateAccessCode(userId: String,password:String,completion: @escaping (String) -> Void) {
|
|
|
|
Alamofire.request(
|
|
URL(string: UrlManager.sharedInstance.getLogInURL())!,
|
|
method: .post,
|
|
parameters: ["userId": userId, "password": password],
|
|
encoding: JSONEncoding.default,
|
|
headers: getContentHeaderBeforeLogin()
|
|
).responseJSON { (response) -> Void in
|
|
|
|
if response.response?.statusCode == nil {
|
|
return
|
|
}
|
|
guard (response.response?.statusCode == 200) else {
|
|
completion("Error")
|
|
return
|
|
}
|
|
var json = JSON(response.data!)
|
|
completion(json["accessCode"].stringValue)
|
|
}
|
|
}
|
|
|
|
/* Recipient Model */
|
|
|
|
//Getting transaction Information on send money and wallet
|
|
func getTransactionInfo(param: [String: String],completion: @escaping (ApiResult) -> Void) {
|
|
|
|
|
|
manager.request(
|
|
URL(string: UrlManager.sharedInstance.getTransactionInformationURL())!,
|
|
method: .get,
|
|
parameters: param,
|
|
encoding: URLEncoding.queryString,
|
|
headers: getContentHeaderAfterLogin()
|
|
).responseJSON { (response) -> Void in
|
|
|
|
let error = response.result.error
|
|
if error?._code == NSURLErrorTimedOut {
|
|
completion(.timeOut())
|
|
}
|
|
|
|
|
|
if response.result.isFailure{
|
|
completion(.timeOut())
|
|
}
|
|
|
|
if response.response?.statusCode == nil {
|
|
return
|
|
}
|
|
guard (response.response?.statusCode == 200) else {
|
|
if response.response?.statusCode == 401{
|
|
completion(.updateAccessCode())
|
|
} else if response.response?.statusCode == 403 {
|
|
completion(.logOutUser())
|
|
} else {
|
|
completion(.failure(JSON(response.data!)))
|
|
}
|
|
return
|
|
}
|
|
completion(.success(JSON(response.data!)))
|
|
}
|
|
}
|
|
|
|
func getCurrency(param: [String: String],completion: @escaping (ApiResult) -> Void) {
|
|
|
|
manager.request(
|
|
URL(string: UrlManager.sharedInstance.getCurrencyURL())!,
|
|
method: .get,
|
|
parameters: param,
|
|
encoding: URLEncoding.queryString,
|
|
headers: getContentHeaderAfterLogin()
|
|
).responseJSON { (response) -> Void in
|
|
|
|
let error = response.result.error
|
|
if error?._code == NSURLErrorTimedOut {
|
|
completion(.timeOut())
|
|
}
|
|
|
|
|
|
if response.result.isFailure{
|
|
completion(.timeOut())
|
|
}
|
|
|
|
if response.response?.statusCode == nil {
|
|
return
|
|
}
|
|
guard (response.response?.statusCode == 200) else {
|
|
if response.response?.statusCode == 401{
|
|
|
|
completion(.updateAccessCode())
|
|
} else if response.response?.statusCode == 403 {
|
|
completion(.logOutUser())
|
|
} else {
|
|
completion(.failure(JSON(response.data!)))
|
|
}
|
|
return
|
|
}
|
|
completion(.success(JSON(response.data!)))
|
|
}
|
|
}
|
|
|
|
//Recharging mobile
|
|
func rechargeMobile(rechargeDetails: [String: String], completion: @escaping (ApiResult) -> Void) {
|
|
|
|
|
|
manager.request(
|
|
URL(string: UrlManager.sharedInstance.getRechargeURL())!,
|
|
method: .post,
|
|
parameters: rechargeDetails,
|
|
encoding: JSONEncoding.default,
|
|
headers: getContentHeaderAfterLogin()
|
|
).responseJSON { (response) -> Void in
|
|
|
|
if let error = response.result.error {
|
|
if error._code == NSURLErrorTimedOut {
|
|
completion(.timeOut())
|
|
}
|
|
}
|
|
|
|
if response.result.isFailure{
|
|
completion(.timeOut())
|
|
}
|
|
|
|
if response.response?.statusCode == nil {
|
|
return
|
|
}
|
|
guard (response.response?.statusCode == 200) else {
|
|
if response.response?.statusCode == 401{
|
|
completion(.updateAccessCode())
|
|
} else if response.response?.statusCode == 403 {
|
|
completion(.logOutUser())
|
|
} else {
|
|
completion(.failure(JSON(response.data!)))
|
|
}
|
|
return
|
|
}
|
|
completion(.success(JSON(response.data!)))
|
|
}
|
|
}
|
|
|
|
//Recharging amounts for mobile recharge
|
|
func amountsForMobileRecharge(rechargeDetails: [String: String], completion: @escaping (ApiResult) -> Void) {
|
|
|
|
manager.request(
|
|
URL(string: UrlManager.sharedInstance.getURLForMobileRechargeAmount())!,
|
|
method: .get,
|
|
parameters: rechargeDetails,
|
|
encoding: URLEncoding.queryString,
|
|
headers: getContentHeaderAfterLogin()
|
|
).responseJSON { (response) -> Void in
|
|
|
|
if let error = response.result.error {
|
|
if error._code == NSURLErrorTimedOut {
|
|
completion(.timeOut())
|
|
}
|
|
}
|
|
|
|
if response.result.isFailure{
|
|
completion(.timeOut())
|
|
}
|
|
|
|
if response.response?.statusCode == nil {
|
|
return
|
|
}
|
|
guard (response.response?.statusCode == 200) else {
|
|
if response.response?.statusCode == 401{
|
|
completion(.updateAccessCode())
|
|
} else if response.response?.statusCode == 403 {
|
|
completion(.logOutUser())
|
|
} else {
|
|
completion(.failure(JSON(response.data!)))
|
|
}
|
|
return
|
|
}
|
|
completion(.success(JSON(response.data!)))
|
|
}
|
|
}
|
|
|
|
func callMobileOperator(rechargeDetails: [String: String], completion: @escaping (ApiResult) -> Void) {
|
|
|
|
|
|
manager.request(
|
|
URL(string: UrlManager.sharedInstance.getMobileOperator())!,
|
|
method: .get,
|
|
parameters: rechargeDetails,
|
|
encoding: URLEncoding.queryString,
|
|
headers: getContentHeaderAfterLogin()
|
|
).responseJSON { (response) -> Void in
|
|
|
|
if let error = response.result.error {
|
|
if error._code == NSURLErrorTimedOut {
|
|
completion(.timeOut())
|
|
}
|
|
}
|
|
|
|
if response.result.isFailure{
|
|
completion(.timeOut())
|
|
}
|
|
|
|
if response.response?.statusCode == nil {
|
|
return
|
|
}
|
|
guard (response.response?.statusCode == 200) else {
|
|
if response.response?.statusCode == 401{
|
|
completion(.updateAccessCode())
|
|
} else if response.response?.statusCode == 403 {
|
|
completion(.logOutUser())
|
|
} else {
|
|
completion(.failure(JSON(response.data!)))
|
|
}
|
|
return
|
|
}
|
|
completion(.success(JSON(response.data!)))
|
|
}
|
|
}
|
|
|
|
//Getting Bank Details
|
|
func getBankDetails(completion: @escaping (ApiResult) -> Void) {
|
|
|
|
manager.request(
|
|
URL(string: UrlManager.sharedInstance.getBankDetailsURL())!,
|
|
method: .get,
|
|
parameters: nil,
|
|
encoding: JSONEncoding.default,
|
|
headers: getContentHeaderAfterLogin()
|
|
).responseJSON { (response) -> Void in
|
|
|
|
if let error = response.result.error {
|
|
if error._code == NSURLErrorTimedOut {
|
|
completion(.timeOut())
|
|
}
|
|
}
|
|
|
|
if response.result.isFailure{
|
|
completion(.timeOut())
|
|
}
|
|
|
|
if response.response?.statusCode == nil {
|
|
return
|
|
}
|
|
guard (response.response?.statusCode == 200) else {
|
|
if response.response?.statusCode == 401{
|
|
completion(.updateAccessCode())
|
|
} else if response.response?.statusCode == 403 {
|
|
completion(.logOutUser())
|
|
} else {
|
|
completion(.failure(JSON(response.data!)))
|
|
}
|
|
return
|
|
}
|
|
completion(.success(JSON(response.data!)))
|
|
}
|
|
}
|
|
|
|
func getSource(completion: @escaping (ApiResult) -> Void) {
|
|
|
|
|
|
Alamofire.request(
|
|
URL(string: UrlManager.sharedInstance.getSourceURL())!,
|
|
method: .post,
|
|
parameters: nil,
|
|
encoding: JSONEncoding.default,
|
|
headers: getContentHeaderAfterLogin()
|
|
).responseJSON { (response) -> Void in
|
|
|
|
if let error = response.result.error {
|
|
if error._code == NSURLErrorTimedOut {
|
|
completion(.timeOut())
|
|
}
|
|
}
|
|
|
|
if response.result.isFailure{
|
|
completion(.timeOut())
|
|
}
|
|
|
|
if response.response?.statusCode == nil {
|
|
return
|
|
}
|
|
guard (response.response?.statusCode == 200) else {
|
|
if response.response?.statusCode == 401{
|
|
completion(.updateAccessCode())
|
|
} else if response.response?.statusCode == 403 {
|
|
completion(.logOutUser())
|
|
} else {
|
|
completion(.failure(JSON(response.data!)))
|
|
}
|
|
return
|
|
}
|
|
completion(.success(JSON(response.data!)))
|
|
}
|
|
}
|
|
|
|
func getTransferReason(completion: @escaping (ApiResult) -> Void) {
|
|
|
|
|
|
manager.request(
|
|
URL(string: UrlManager.sharedInstance.getTransferReasonURL())!,
|
|
method: .post,
|
|
parameters: nil,
|
|
encoding: JSONEncoding.default,
|
|
headers: getContentHeaderAfterLogin()
|
|
).responseJSON { (response) -> Void in
|
|
|
|
if let error = response.result.error {
|
|
if error._code == NSURLErrorTimedOut {
|
|
completion(.timeOut())
|
|
}
|
|
}
|
|
|
|
if response.result.isFailure{
|
|
completion(.timeOut())
|
|
}
|
|
|
|
if response.response?.statusCode == nil {
|
|
return
|
|
}
|
|
guard (response.response?.statusCode == 200) else {
|
|
if response.response?.statusCode == 401{
|
|
completion(.updateAccessCode())
|
|
} else if response.response?.statusCode == 403 {
|
|
completion(.logOutUser())
|
|
} else{
|
|
completion(.failure(JSON(response.data!)))
|
|
}
|
|
return
|
|
}
|
|
completion(.success(JSON(response.data!)))
|
|
}
|
|
}
|
|
|
|
func performTransfer(parameters: [String: String], completion: @escaping (ApiResult) -> Void) {
|
|
|
|
|
|
|
|
manager.request(
|
|
URL(string: UrlManager.sharedInstance.getTransferURL())!,
|
|
method: .post,
|
|
parameters: parameters,
|
|
encoding: JSONEncoding.default,
|
|
headers: getContentHeaderAfterLogin()
|
|
).responseJSON { (response) -> Void in
|
|
|
|
let error = response.result.error
|
|
if error?._code == NSURLErrorTimedOut {
|
|
completion(.timeOut())
|
|
}
|
|
|
|
if response.response?.statusCode == nil {
|
|
completion(.timeOut())
|
|
}
|
|
guard (response.response?.statusCode == 200) else {
|
|
if response.response?.statusCode == 401{
|
|
completion(.updateAccessCode())
|
|
} else if response.response?.statusCode == 403 {
|
|
completion(.logOutUser())
|
|
} else {
|
|
completion(.failure(JSON(response.data!)))
|
|
}
|
|
|
|
return
|
|
}
|
|
|
|
if response.result.isFailure{
|
|
completion(.timeOut())
|
|
}
|
|
|
|
completion(.success(JSON(response.data!)))
|
|
}
|
|
}
|
|
|
|
func getCDDListFor(cddCode: String, param: [String: String]?, completion: @escaping (ApiResult) -> Void) {
|
|
|
|
|
|
|
|
manager.request(
|
|
URL(string: UrlManager.sharedInstance.getCDDURL(code: cddCode))!,
|
|
method: .get,
|
|
parameters: param,
|
|
encoding: URLEncoding.queryString,
|
|
headers: getContentHeaderAfterLogin()
|
|
).responseJSON { (response) -> Void in
|
|
|
|
let error = response.result.error
|
|
if error?._code == NSURLErrorTimedOut {
|
|
completion(.timeOut())
|
|
}
|
|
|
|
if response.response?.statusCode == nil {
|
|
completion(.timeOut())
|
|
}
|
|
guard (response.response?.statusCode == 200) else {
|
|
|
|
if response.response?.statusCode == 401{
|
|
completion(.updateAccessCode())
|
|
} else if response.response?.statusCode == 403 {
|
|
completion(.logOutUser())
|
|
} else if (response.error != nil) {
|
|
completion(.failure(JSON(response.data!)))
|
|
}else{
|
|
if response.result.isFailure{
|
|
completion(.timeOut())
|
|
}
|
|
}
|
|
return
|
|
}
|
|
|
|
completion(.success(JSON(response.data!)))
|
|
}
|
|
}
|
|
|
|
|
|
func submitKYCInfo(param: [String: String], userId: String, completion: @escaping (ApiResult) -> Void) {
|
|
|
|
|
|
|
|
|
|
Alamofire.request(
|
|
URL(string: UrlManager.sharedInstance.getKycURL(userId: userId))!,
|
|
method: .post,
|
|
parameters: param,
|
|
encoding: JSONEncoding.default,
|
|
headers: getContentHeaderAfterLogin()
|
|
).responseJSON { (response) -> Void in
|
|
|
|
let error = response.result.error
|
|
if error?._code == NSURLErrorTimedOut {
|
|
completion(.timeOut())
|
|
}
|
|
|
|
if response.result.isFailure{
|
|
completion(.timeOut())
|
|
}
|
|
|
|
if response.response?.statusCode == nil {
|
|
completion(.timeOut())
|
|
}
|
|
guard (response.response?.statusCode == 201) else {
|
|
|
|
if response.response?.statusCode == 401 {
|
|
completion(.updateAccessCode())
|
|
} else if response.response?.statusCode == 403 {
|
|
completion(.logOutUser())
|
|
} else {
|
|
completion(.failure(JSON(response.data!)))
|
|
}
|
|
return
|
|
}
|
|
completion(.success(JSON(response.data!)))
|
|
return
|
|
}
|
|
}
|
|
|
|
func submitDocument(param: [String: String], userId: String, completion: @escaping (ApiResult) -> Void) {
|
|
|
|
|
|
|
|
manager.request(
|
|
URL(string: UrlManager.sharedInstance.getKycDocumentURL(userId: userId))!,
|
|
method: .post,
|
|
parameters: param,
|
|
encoding: JSONEncoding.default,
|
|
headers: getContentHeaderAfterLogin()
|
|
).responseJSON { (response) -> Void in
|
|
|
|
let error = response.result.error
|
|
if error?._code == NSURLErrorTimedOut {
|
|
completion(.timeOut())
|
|
}
|
|
|
|
if response.result.isFailure{
|
|
completion(.timeOut())
|
|
}
|
|
|
|
if response.response?.statusCode == nil {
|
|
completion(.timeOut())
|
|
}
|
|
guard (response.response?.statusCode == 201) else {
|
|
if response.response?.statusCode == 401 {
|
|
completion(.updateAccessCode())
|
|
} else if response.response?.statusCode == 403 {
|
|
completion(.logOutUser())
|
|
} else {
|
|
completion(.failure(JSON(response.data!)))
|
|
}
|
|
return
|
|
}
|
|
completion(.success(JSON(response.data!)))
|
|
}
|
|
}
|
|
|
|
func submitUserImage(param: [String: String], userId: String, completion: @escaping (ApiResult) -> Void) {
|
|
|
|
|
|
|
|
|
|
manager.request(
|
|
URL(string: UrlManager.sharedInstance.getUserProfileURL(userId: userId))!,
|
|
method: .patch,
|
|
parameters: param,
|
|
encoding: JSONEncoding.default,
|
|
headers: getContentHeaderBeforeLogin()
|
|
).responseJSON { (response) -> Void in
|
|
|
|
if response.result.isFailure{
|
|
completion(.timeOut())
|
|
}
|
|
|
|
if let error = response.result.error {
|
|
if error._code == NSURLErrorTimedOut {
|
|
completion(.timeOut())
|
|
}
|
|
}
|
|
|
|
if response.response?.statusCode == nil {
|
|
return
|
|
}
|
|
guard (response.response?.statusCode == 200) else {
|
|
if response.response?.statusCode == 401{
|
|
completion(.updateAccessCode())
|
|
} else if response.response?.statusCode == 403 {
|
|
completion(.logOutUser())
|
|
} else {
|
|
completion(.failure(JSON(response.data!)))
|
|
}
|
|
return
|
|
}
|
|
completion(.success(JSON(response.data!)))
|
|
}
|
|
}
|
|
|
|
func getUserDetails(userId: String, completion: @escaping (ApiResult) -> Void) {
|
|
|
|
|
|
|
|
manager.request(
|
|
URL(string: UrlManager.sharedInstance.getUserProfileURL(userId: userId))!,
|
|
method: .get,
|
|
parameters: nil,
|
|
encoding: JSONEncoding.default,
|
|
headers: getContentHeaderAfterLogin()
|
|
).responseJSON { (response) -> Void in
|
|
|
|
let error = response.result.error
|
|
if error?._code == NSURLErrorTimedOut {
|
|
completion(.timeOut())
|
|
}
|
|
|
|
if response.result.isFailure{
|
|
completion(.timeOut())
|
|
}
|
|
|
|
if response.response?.statusCode == nil {
|
|
completion(.timeOut())
|
|
}
|
|
|
|
guard (response.response?.statusCode == 200) else {
|
|
|
|
if response.response?.statusCode == 401 {
|
|
completion(.updateAccessCode())
|
|
} else if response.response?.statusCode == 403 {
|
|
completion(.logOutUser())
|
|
} else {
|
|
completion(.failure(JSON(response.data!)))
|
|
}
|
|
|
|
return
|
|
}
|
|
completion(.success(JSON(response.data!)))
|
|
}
|
|
|
|
}
|
|
|
|
func fetchUserInfoFromKyc(userId: String, completion: @escaping (ApiResult) -> Void) {
|
|
|
|
|
|
|
|
manager.request(
|
|
URL(string: UrlManager.sharedInstance.getKYCURL(userId: userId))!,
|
|
method: .get,
|
|
parameters: nil,
|
|
encoding: JSONEncoding.default,
|
|
headers: getContentHeaderAfterLogin()
|
|
).responseJSON { (response) -> Void in
|
|
let error = response.result.error
|
|
if error?._code == NSURLErrorTimedOut {
|
|
completion(.timeOut())
|
|
}
|
|
|
|
if response.result.isFailure{
|
|
completion(.timeOut())
|
|
}
|
|
|
|
if response.response?.statusCode == nil {
|
|
completion(.timeOut())
|
|
}
|
|
guard (response.response?.statusCode == 200) else {
|
|
if response.response?.statusCode == 401{
|
|
completion(.updateAccessCode())
|
|
} else if response.response?.statusCode == 403 {
|
|
completion(.logOutUser())
|
|
} else {
|
|
completion(.failure(JSON(response.data!)))
|
|
}
|
|
return
|
|
}
|
|
completion(.success(JSON(response.data!)))
|
|
}
|
|
}
|
|
|
|
func updateUserInfoForKyc(userId: String, parameter: [String: String], completion: @escaping (ApiResult) -> Void) {
|
|
|
|
|
|
|
|
manager.request(
|
|
|
|
URL(string: UrlManager.sharedInstance.getKYCURL(userId: userId))!,
|
|
method: .patch,
|
|
parameters: parameter,
|
|
encoding: JSONEncoding.default,
|
|
headers: getContentHeaderAfterLogin()
|
|
).responseJSON { (response) -> Void in
|
|
|
|
let error = response.result.error
|
|
if error?._code == NSURLErrorTimedOut {
|
|
completion(.timeOut())
|
|
}
|
|
|
|
if response.result.isFailure{
|
|
completion(.timeOut())
|
|
}
|
|
|
|
if response.response?.statusCode == nil {
|
|
completion(.timeOut())
|
|
}
|
|
guard (response.response?.statusCode == 200) else {
|
|
if response.response?.statusCode == 401{
|
|
completion(.updateAccessCode())
|
|
} else if response.response?.statusCode == 403 {
|
|
completion(.logOutUser())
|
|
} else {
|
|
completion(.failure(JSON(response.data!)))
|
|
}
|
|
return
|
|
}
|
|
completion(.success(JSON(response.data!)))
|
|
}
|
|
}
|
|
|
|
|
|
/// Getting AgentLocation
|
|
func getAgentLocationDetails(countryId: String, city: String,completion: @escaping (ApiResult) -> Void) {
|
|
|
|
let sessionManager = Alamofire.SessionManager.default
|
|
sessionManager.session.getTasksWithCompletionHandler { dataTasks, uploadTasks, downloadTasks in
|
|
dataTasks.forEach { $0.cancel() }
|
|
uploadTasks.forEach { $0.cancel() }
|
|
downloadTasks.forEach { $0.cancel() }
|
|
}
|
|
|
|
|
|
|
|
manager.request(
|
|
URL(string: UrlManager.sharedInstance.getPayoutsURL())!,
|
|
method: .get,
|
|
parameters: ["countryId": countryId, "city": city, "constraint": "default"],
|
|
encoding: URLEncoding.queryString,
|
|
headers: getContentHeaderAfterLogin()
|
|
).responseJSON { (response) -> Void in
|
|
|
|
let error = response.result.error
|
|
if error?._code == NSURLErrorTimedOut {
|
|
completion(.timeOut())
|
|
}
|
|
|
|
|
|
if response.result.isFailure{
|
|
completion(.timeOut())
|
|
}
|
|
|
|
if response.response?.statusCode == nil {
|
|
completion(.timeOut())
|
|
}
|
|
guard (response.response?.statusCode == 200) else {
|
|
|
|
if response.response?.statusCode == 401 {
|
|
completion(.updateAccessCode())
|
|
} else if response.response?.statusCode == 403 {
|
|
completion(.logOutUser())
|
|
} else {
|
|
completion(.failure(JSON(response.data!)))
|
|
}
|
|
|
|
return
|
|
}
|
|
completion(.success(JSON(response.data!)))
|
|
}
|
|
}
|
|
|
|
func getFilteredRecipientList(queryString: String, userId: String, completion: @escaping (ApiResult) -> Void) {
|
|
|
|
cancelExistingNetworkCalls()
|
|
|
|
|
|
|
|
manager.request(
|
|
URL(string: UrlManager.sharedInstance.getRecipientListURL(userId: userId))!,
|
|
method: .get, parameters: ["search": queryString],
|
|
encoding: URLEncoding.queryString,
|
|
headers: getContentHeaderAfterLogin()
|
|
).responseJSON { (response) -> Void in
|
|
|
|
if let error = response.result.error {
|
|
if error._code == NSURLErrorTimedOut {
|
|
completion(.timeOut())
|
|
}
|
|
}
|
|
|
|
if response.result.isFailure{
|
|
completion(.timeOut())
|
|
}
|
|
|
|
if response.response?.statusCode == nil {
|
|
return
|
|
}
|
|
guard (response.response?.statusCode == 200) else {
|
|
if response.response?.statusCode == 401{
|
|
completion(.updateAccessCode())
|
|
} else if response.response?.statusCode == 403 {
|
|
completion(.logOutUser())
|
|
} else{
|
|
completion(.failure(JSON(response.data!)))
|
|
}
|
|
return
|
|
}
|
|
completion(.success(JSON(response.data!)))
|
|
}
|
|
}
|
|
|
|
func getTransactionList(userId: String, recipientId: String, recipientName: String, transactionType: String, startDate: String, endDate: String, txPage: String, txSize: String, completion: @escaping (ApiResult) -> Void) {
|
|
|
|
var parameters: [String: Any] = [String: Any] ()
|
|
|
|
switch transactionType {
|
|
case "":
|
|
parameters = ["userId": userId, "startDate": startDate, "endDate": endDate]
|
|
|
|
case "sent":
|
|
parameters = ["userId": userId, "transactionType": "sent", "startDate": startDate, "endDate": endDate]
|
|
|
|
case "received":
|
|
parameters = ["userId": userId, "transactionType": "received", "startDate": startDate, "endDate": endDate]
|
|
|
|
case "date" :
|
|
parameters = ["userId": userId, "startDate": startDate, "endDate": endDate]
|
|
|
|
case "trackTransfer":
|
|
parameters = ["size": 3, "userId": userId, "receiverId": recipientId, "startDate": startDate, "endDate": endDate, "payoutMode": "cash,bank,door to door"]
|
|
|
|
case "search":
|
|
parameters = ["userId": userId, "search": recipientName, "startDate": startDate, "endDate": endDate]
|
|
|
|
case "walletTransfer":
|
|
parameters = ["page": txPage, "size": txSize, "startDate": startDate, "endDate": endDate, "userId": userId, "transactionType": "sent", "payoutMode": "wallet transfer"]
|
|
|
|
case "walletBorrow":
|
|
parameters = ["page": txPage, "size": txSize, "startDate": startDate, "endDate": endDate, "requestedTo": userId, "payoutMode": "wallet transfer", "transferType": "request"]
|
|
|
|
case "moneyRequest":
|
|
parameters = ["page": txPage, "size": txSize, "startDate": startDate, "endDate": endDate, "payoutMode": "wallet transfer", "transferType": "request", "userId": userId]
|
|
|
|
default:
|
|
return
|
|
}
|
|
|
|
|
|
|
|
manager.request(
|
|
URL(string: UrlManager.sharedInstance.getTransactionListURL())!,
|
|
method: .get,parameters: parameters, encoding: URLEncoding.queryString,
|
|
headers: getContentHeaderAfterLogin()
|
|
).responseJSON { (response) -> Void in
|
|
|
|
let error = response.result.error
|
|
if error?._code == NSURLErrorTimedOut {
|
|
completion(.timeOut())
|
|
}
|
|
|
|
if response.result.isFailure{
|
|
completion(.timeOut())
|
|
}
|
|
|
|
if response.response?.statusCode == nil {
|
|
completion(.timeOut())
|
|
}
|
|
guard (response.response?.statusCode == 200) else {
|
|
if response.response?.statusCode == 401{
|
|
completion(.updateAccessCode())
|
|
} else if response.response?.statusCode == 403 {
|
|
completion(.logOutUser())
|
|
} else{
|
|
completion(.failure(JSON(response.data!)))
|
|
}
|
|
return
|
|
}
|
|
completion(.success(JSON(response.data!)))
|
|
}
|
|
}
|
|
|
|
/**
|
|
TrackTransaction Pagination
|
|
*/
|
|
func getTransactionList(userId: String, recipientId: String, recipientName: String, transactionType: String, startDate: String, endDate: String, page:Int, size: Int, completion: @escaping (ApiResult) -> Void) {
|
|
|
|
var parameters: [String: Any] = [String: Any] ()
|
|
|
|
switch transactionType {
|
|
case "":
|
|
parameters = ["userId": userId, "startDate": startDate, "endDate": endDate, "page": page, "size": size]
|
|
|
|
case "sent":
|
|
parameters = ["userId": userId, "transactionType": "sent", "startDate": startDate, "endDate": endDate,"page": page, "size": size]
|
|
|
|
case "received":
|
|
parameters = ["userId": userId, "transactionType": "received", "startDate": startDate, "endDate": endDate,"page": page, "size": size]
|
|
|
|
case "date" :
|
|
parameters = ["userId": userId, "startDate": startDate, "endDate": endDate]
|
|
|
|
case "trackTransfer":
|
|
parameters = ["size": 3, "userId": userId, "receiverId": recipientId, "startDate": startDate, "endDate": endDate]
|
|
|
|
case "search":
|
|
parameters = ["userId": userId, "receiverName": recipientName, "startDate": startDate, "endDate": endDate]
|
|
|
|
case "walletTransfer":
|
|
parameters = ["userId": userId, "payoutMode": "wallet transfer", "transferType": "offer", "startDate": startDate, "endDate": endDate, "page": page, "size": size]
|
|
|
|
case "walletBorrow":
|
|
parameters = ["userId": userId, "payoutMode": "wallet transfer", "transferType": "request", "startDate": startDate, "endDate": endDate, "page": page, "size": size]
|
|
|
|
case "moneyRequest":
|
|
parameters = ["requestedTo": userId, "payoutMode": "wallet transfer", "startDate": startDate, "endDate": endDate]
|
|
|
|
default:
|
|
return
|
|
}
|
|
|
|
|
|
|
|
manager.request(
|
|
URL(string: UrlManager.sharedInstance.getTransactionListURL())!,
|
|
method: .get,parameters: parameters, encoding: URLEncoding.queryString,
|
|
|
|
headers: getContentHeaderAfterLogin()
|
|
).responseJSON { (response) -> Void in
|
|
|
|
let error = response.result.error
|
|
if error?._code == NSURLErrorTimedOut {
|
|
completion(.timeOut())
|
|
}
|
|
|
|
if response.result.isFailure{
|
|
completion(.timeOut())
|
|
}
|
|
|
|
if response.response?.statusCode == nil {
|
|
completion(.timeOut())
|
|
}
|
|
guard (response.response?.statusCode == 200) else {
|
|
if response.response?.statusCode == 401{
|
|
completion(.updateAccessCode())
|
|
} else if response.response?.statusCode == 403 {
|
|
completion(.logOutUser())
|
|
} else {
|
|
completion(.failure(JSON(response.data!)))
|
|
}
|
|
return
|
|
}
|
|
|
|
completion(.success(JSON(response.data!)))
|
|
}
|
|
}
|
|
|
|
|
|
func submitMessage(supportIndex: Int, param: [String: String], completion: @escaping (ApiResult) -> Void) {
|
|
|
|
|
|
|
|
manager.request(
|
|
URL(string: UrlManager.sharedInstance.getMessageURL(supportIndex: supportIndex))!,
|
|
method: .post,
|
|
parameters: param,
|
|
encoding: JSONEncoding.default,
|
|
headers: getContentHeaderAfterLogin()
|
|
).responseJSON { (response) -> Void in
|
|
|
|
if let error = response.result.error {
|
|
if error._code == NSURLErrorTimedOut {
|
|
completion(.timeOut())
|
|
}
|
|
}
|
|
|
|
if response.result.isFailure{
|
|
completion(.timeOut())
|
|
}
|
|
|
|
if response.response?.statusCode == nil {
|
|
return
|
|
}
|
|
guard (response.response?.statusCode == 201) else {
|
|
if response.response?.statusCode == 401{
|
|
completion(.updateAccessCode())
|
|
} else if response.response?.statusCode == 403 {
|
|
completion(.logOutUser())
|
|
} else{
|
|
completion(.failure(JSON(response.data!)))
|
|
}
|
|
return
|
|
}
|
|
completion(.success(JSON(response.data!)))
|
|
}
|
|
}
|
|
|
|
|
|
func withdrawBalance(requestDetails: [String: String], completion: @escaping (ApiResult) -> Void) {
|
|
|
|
|
|
|
|
manager.request(
|
|
URL(string: UrlManager.sharedInstance.getWithdrawURL())!,
|
|
method: .post,
|
|
parameters: requestDetails,
|
|
encoding: JSONEncoding.default,
|
|
headers: getContentHeaderAfterLogin()
|
|
).responseJSON { (response) -> Void in
|
|
|
|
if let error = response.result.error {
|
|
if error._code == NSURLErrorTimedOut {
|
|
completion(.timeOut())
|
|
}
|
|
}
|
|
|
|
if response.result.isFailure{
|
|
completion(.timeOut())
|
|
}
|
|
|
|
if response.response?.statusCode == nil {
|
|
return
|
|
}
|
|
guard (response.response?.statusCode == 200) else {
|
|
if response.response?.statusCode == 401{
|
|
completion(.updateAccessCode())
|
|
} else if response.response?.statusCode == 403 {
|
|
completion(.logOutUser())
|
|
} else {
|
|
completion(.failure(JSON(response.data!)))
|
|
}
|
|
return
|
|
}
|
|
completion(.success(JSON(response.data!)))
|
|
}
|
|
}
|
|
|
|
|
|
func getBranchDetails(bankId: String, completion: @escaping (ApiResult) -> Void) {
|
|
|
|
let sessionManager = Alamofire.SessionManager.default
|
|
sessionManager.session.getTasksWithCompletionHandler { dataTasks, uploadTasks, downloadTasks in
|
|
dataTasks.forEach { $0.cancel() }
|
|
uploadTasks.forEach { $0.cancel() }
|
|
downloadTasks.forEach { $0.cancel() }
|
|
}
|
|
|
|
|
|
|
|
manager.request(
|
|
URL(string: UrlManager.sharedInstance.getBranchURL(bankId: bankId))!,
|
|
method: .get,
|
|
parameters: nil,
|
|
encoding: JSONEncoding.default,
|
|
headers: getContentHeaderAfterLogin()
|
|
).responseJSON { (response) -> Void in
|
|
|
|
if let error = response.result.error {
|
|
if error._code == NSURLErrorTimedOut {
|
|
completion(.timeOut())
|
|
}
|
|
}
|
|
|
|
if response.result.isFailure{
|
|
completion(.timeOut())
|
|
}
|
|
|
|
if response.response?.statusCode == nil {
|
|
return
|
|
}
|
|
guard (response.response?.statusCode == 200) else {
|
|
if response.response?.statusCode == 401{
|
|
completion(.updateAccessCode())
|
|
} else if response.response?.statusCode == 403 {
|
|
completion(.logOutUser())
|
|
} else{
|
|
completion(.failure(JSON(response.data!)))
|
|
}
|
|
return
|
|
}
|
|
completion(.success(JSON(response.data!)))
|
|
}
|
|
}
|
|
|
|
func changePassword(userId: String, currentPassword: String, newPassword: String, completion: @escaping (ApiResult) -> Void) {
|
|
|
|
|
|
|
|
manager.request(
|
|
URL(string: UrlManager.sharedInstance.getPasswordChangeURL(userId: userId))!,
|
|
method: .post,
|
|
parameters: ["currentPassword": currentPassword,
|
|
"newPassword": newPassword],
|
|
encoding: JSONEncoding.default,
|
|
headers: getContentHeaderAfterLogin()
|
|
).responseJSON { (response) -> Void in
|
|
|
|
if let error = response.result.error {
|
|
if error._code == NSURLErrorTimedOut {
|
|
completion(.timeOut())
|
|
}
|
|
}
|
|
|
|
if response.result.isFailure{
|
|
completion(.timeOut())
|
|
}
|
|
|
|
if response.response?.statusCode == nil {
|
|
return
|
|
}
|
|
guard (response.response?.statusCode == 204) else {
|
|
if response.response?.statusCode == 401{
|
|
completion(.updateAccessCode())
|
|
} else if response.response?.statusCode == 403 {
|
|
completion(.logOutUser())
|
|
} else{
|
|
completion(.failure(JSON(response.data!)))
|
|
}
|
|
return
|
|
}
|
|
completion(.success(JSON(response.data!)))
|
|
}
|
|
}
|
|
|
|
func performWalletAction(param: [String: String], moneyRequestAccepted: Bool, completion: @escaping (ApiResult) -> Void) {
|
|
let urlString: String!
|
|
if moneyRequestAccepted {
|
|
urlString = UrlManager.sharedInstance.getAcceptMoneyRequestURL()
|
|
} else {
|
|
urlString = UrlManager.sharedInstance.getWalletURL()
|
|
}
|
|
|
|
|
|
|
|
manager.request(
|
|
URL(string: urlString)!,
|
|
method: .post,
|
|
parameters: param,
|
|
encoding: JSONEncoding.default,
|
|
headers: getContentHeaderAfterLogin()
|
|
).responseJSON { (response) -> Void in
|
|
|
|
let error = response.result.error
|
|
if error?._code == NSURLErrorTimedOut {
|
|
completion(.timeOut())
|
|
}
|
|
|
|
|
|
if response.result.isFailure{
|
|
completion(.timeOut())
|
|
}
|
|
|
|
if response.response?.statusCode == nil {
|
|
completion(.timeOut())
|
|
}
|
|
guard (response.response?.statusCode == 200) else {
|
|
if response.response?.statusCode == 401{
|
|
completion(.updateAccessCode())
|
|
} else if response.response?.statusCode == 403 {
|
|
completion(.logOutUser())
|
|
} else{
|
|
completion(.failure(JSON(response.data!)))
|
|
}
|
|
return
|
|
}
|
|
completion(.success(JSON(response.data!)))
|
|
}
|
|
}
|
|
|
|
/// Create Invitee
|
|
func createInvitee(param: [String: String], completion: @escaping (ApiResult) -> Void){
|
|
|
|
|
|
manager.request(
|
|
URL(string: UrlManager.sharedInstance.getNewInviteeURL())!,
|
|
method: .post,
|
|
parameters: param,
|
|
encoding: JSONEncoding.default,
|
|
headers: getContentHeaderAfterLogin()
|
|
).responseJSON { (response) -> Void in
|
|
|
|
if let error = response.result.error {
|
|
if error._code == NSURLErrorTimedOut {
|
|
completion(.timeOut())
|
|
}
|
|
}
|
|
|
|
if response.result.isFailure{
|
|
completion(.timeOut())
|
|
}
|
|
|
|
if response.response?.statusCode == nil {
|
|
return
|
|
}
|
|
guard (response.response?.statusCode == 201) else {
|
|
if response.response?.statusCode == 401{
|
|
completion(.updateAccessCode())
|
|
} else if response.response?.statusCode == 403 {
|
|
completion(.logOutUser())
|
|
} else {
|
|
completion(.failure(JSON(response.data!)))
|
|
}
|
|
return
|
|
}
|
|
completion(.success(JSON(response.data!)))
|
|
}
|
|
}
|
|
|
|
/// GetInvitee
|
|
func getInvitee(userId: String, completion: @escaping (ApiResult) -> Void){
|
|
|
|
|
|
|
|
manager.request(
|
|
URL(string: UrlManager.sharedInstance.getInviteeURL(userId:userId))!,
|
|
method: .get,
|
|
parameters: nil,
|
|
encoding: JSONEncoding.default,
|
|
headers: getContentHeaderAfterLogin()
|
|
).responseJSON { (response) -> Void in
|
|
|
|
if let error = response.result.error {
|
|
if error._code == NSURLErrorTimedOut {
|
|
completion(.timeOut())
|
|
}
|
|
}
|
|
|
|
if response.result.isFailure{
|
|
completion(.timeOut())
|
|
}
|
|
|
|
if response.response?.statusCode == nil {
|
|
return
|
|
}
|
|
guard (response.response?.statusCode == 200) else {
|
|
if response.response?.statusCode == 401{
|
|
completion(.updateAccessCode())
|
|
} else if response.response?.statusCode == 403 {
|
|
completion(.logOutUser())
|
|
} else {
|
|
completion(.failure(JSON(response.data!)))
|
|
}
|
|
return
|
|
}
|
|
completion(.success(JSON(response.data!)))
|
|
}
|
|
}
|
|
|
|
func getcmRegistrationId(userId: String, cmRegistrationId: String, completion: @escaping (ApiResult) -> Void){
|
|
|
|
|
|
|
|
manager.request(
|
|
URL(string: UrlManager.sharedInstance.getcmRegistrationIdURL(userId: userId))!,
|
|
method: .patch,
|
|
parameters: ["cmRegistrationId": cmRegistrationId],
|
|
encoding: JSONEncoding.default,
|
|
headers: getContentHeaderAfterLogin()
|
|
).responseJSON { (response) -> Void in
|
|
|
|
if let error = response.result.error {
|
|
if error._code == NSURLErrorTimedOut {
|
|
completion(.timeOut())
|
|
}
|
|
}
|
|
|
|
if response.result.isFailure{
|
|
completion(.timeOut())
|
|
}
|
|
|
|
if response.response?.statusCode == nil {
|
|
return
|
|
}
|
|
guard (response.response?.statusCode == 200) else {
|
|
if response.response?.statusCode == 401{
|
|
completion(.updateAccessCode())
|
|
} else if response.response?.statusCode == 403 {
|
|
completion(.logOutUser())
|
|
} else {
|
|
completion(.failure(JSON(response.data!)))
|
|
}
|
|
return
|
|
}
|
|
completion(.success(JSON(response.data!)))
|
|
}
|
|
|
|
}
|
|
|
|
func getNotification(userId: String, completion: @escaping (ApiResult) -> Void){
|
|
|
|
|
|
|
|
manager.request(
|
|
URL(string: UrlManager.sharedInstance.getNotificationURL(userId: userId))!,
|
|
method: .get,
|
|
parameters: nil,
|
|
encoding: JSONEncoding.default,
|
|
headers: getContentHeaderAfterLogin()
|
|
).responseJSON { (response) -> Void in
|
|
|
|
if let error = response.result.error {
|
|
if error._code == NSURLErrorTimedOut {
|
|
completion(.timeOut())
|
|
}
|
|
}
|
|
|
|
if response.result.isFailure{
|
|
completion(.timeOut())
|
|
}
|
|
|
|
if response.response?.statusCode == nil {
|
|
return
|
|
}
|
|
guard (response.response?.statusCode == 200) else {
|
|
if response.response?.statusCode == 401{
|
|
completion(.updateAccessCode())
|
|
} else if response.response?.statusCode == 403 {
|
|
completion(.logOutUser())
|
|
} else {
|
|
completion(.failure(JSON(response.data!)))
|
|
}
|
|
return
|
|
}
|
|
completion(.success(JSON(response.data!)))
|
|
}
|
|
}
|
|
|
|
func getNotification(userId: String,page:Int,size:Int, completion: @escaping (ApiResult) -> Void){
|
|
|
|
|
|
|
|
manager.request(
|
|
URL(string: UrlManager.sharedInstance.getNotificationURL(userId: userId))!,
|
|
method: .get,
|
|
parameters: ["userId":userId,"size":size,"page":page],
|
|
encoding: URLEncoding.queryString,
|
|
headers: getContentHeaderAfterLogin()
|
|
).responseJSON { (response) -> Void in
|
|
|
|
if let error = response.result.error {
|
|
if error._code == NSURLErrorTimedOut {
|
|
completion(.timeOut())
|
|
}
|
|
}
|
|
|
|
if response.result.isFailure{
|
|
completion(.timeOut())
|
|
}
|
|
|
|
if response.response?.statusCode == nil {
|
|
return
|
|
}
|
|
|
|
guard (response.response?.statusCode == 200) else {
|
|
if response.response?.statusCode == 401{
|
|
completion(.updateAccessCode())
|
|
} else if response.response?.statusCode == 403 {
|
|
completion(.logOutUser())
|
|
} else {
|
|
completion(.failure(JSON(response.data!)))
|
|
}
|
|
return
|
|
}
|
|
completion(.success(JSON(response.data!)))
|
|
}
|
|
}
|
|
|
|
func patchNotification(notificationId: String, viewed: String, completion: @escaping (ApiResult) -> Void){
|
|
|
|
|
|
|
|
manager.request(
|
|
URL(string: UrlManager.sharedInstance.patchNotificationURL(notificationId: notificationId))!,
|
|
method: .patch,
|
|
parameters: ["viewed": viewed],
|
|
encoding: JSONEncoding.default,
|
|
headers: getContentHeaderAfterLogin()
|
|
).responseJSON { (response) -> Void in
|
|
|
|
|
|
if let error = response.result.error {
|
|
if error._code == NSURLErrorTimedOut {
|
|
completion(.timeOut())
|
|
}
|
|
}
|
|
if response.result.isFailure{
|
|
completion(.timeOut())
|
|
}
|
|
|
|
if response.response?.statusCode == nil {
|
|
return
|
|
}
|
|
guard (response.response?.statusCode == 200) else {
|
|
if response.response?.statusCode == 401{
|
|
|
|
completion(.updateAccessCode())
|
|
} else if response.response?.statusCode == 403 {
|
|
completion(.logOutUser())
|
|
} else {
|
|
|
|
completion(.failure(JSON(response.data!)))
|
|
}
|
|
return
|
|
}
|
|
|
|
|
|
completion(.success(JSON(response.data!)))
|
|
}
|
|
}
|
|
|
|
func fetchCountryList(completion: @escaping (ApiResult) -> Void) {
|
|
|
|
|
|
|
|
manager.request(
|
|
URL(string: UrlManager.sharedInstance.getCountryURL())!,
|
|
method: .get,
|
|
parameters: nil,
|
|
encoding: JSONEncoding.default,
|
|
headers: getContentHeaderAfterLogin()
|
|
).responseJSON { (response) -> Void in
|
|
|
|
let error = response.result.error
|
|
if error?._code == NSURLErrorTimedOut {
|
|
completion(.timeOut())
|
|
}
|
|
|
|
if response.response?.statusCode == nil {
|
|
completion(.timeOut())
|
|
}
|
|
guard (response.response?.statusCode == 200) else {
|
|
if response.response?.statusCode == 401{
|
|
completion(.updateAccessCode())
|
|
} else if response.response?.statusCode == 403 {
|
|
completion(.logOutUser())
|
|
} else {
|
|
completion(.failure(JSON(response.data!)))
|
|
}
|
|
return
|
|
}
|
|
|
|
if response.result.isFailure{
|
|
completion(.timeOut())
|
|
}
|
|
completion(.success(JSON(response.data!)))
|
|
}
|
|
}
|
|
|
|
func getCountryInfo(countryId:String, completion: @escaping (ApiResult) -> Void) {
|
|
|
|
|
|
|
|
manager.request(
|
|
URL(string: UrlManager.sharedInstance.getCountryURL())!,
|
|
method: .get,
|
|
parameters: ["countryId": countryId],
|
|
encoding: URLEncoding.queryString,
|
|
headers: getContentHeaderAfterLogin()
|
|
).responseJSON { (response) -> Void in
|
|
|
|
let error = response.result.error
|
|
if error?._code == NSURLErrorTimedOut {
|
|
completion(.timeOut())
|
|
}
|
|
|
|
if response.result.isFailure{
|
|
completion(.timeOut())
|
|
}
|
|
|
|
if response.response?.statusCode == nil {
|
|
return
|
|
}
|
|
guard (response.response?.statusCode == 200) else {
|
|
if response.response?.statusCode == 401{
|
|
completion(.updateAccessCode())
|
|
} else if response.response?.statusCode == 403 {
|
|
completion(.logOutUser())
|
|
} else {
|
|
completion(.failure(JSON(response.data!)))
|
|
}
|
|
return
|
|
}
|
|
completion(.success(JSON(response.data!)))
|
|
}
|
|
}
|
|
|
|
|
|
func getCountryPayoutMode(countryId: String, completion: @escaping (ApiResult) -> Void) {
|
|
|
|
|
|
|
|
manager.request(
|
|
URL(string: UrlManager.sharedInstance.getCountryPayoutModeURL())!,
|
|
method: .get,parameters: ["countryId": countryId],
|
|
encoding: URLEncoding.queryString,
|
|
headers: getContentHeaderAfterLogin()
|
|
).responseJSON { (response) -> Void in
|
|
|
|
let error = response.result.error
|
|
if error?._code == NSURLErrorTimedOut {
|
|
completion(.timeOut())
|
|
}
|
|
|
|
|
|
if response.result.isFailure{
|
|
completion(.timeOut())
|
|
}
|
|
|
|
if response.response?.statusCode == nil {
|
|
completion(.timeOut())
|
|
}
|
|
guard (response.response?.statusCode == 200) else {
|
|
if response.response?.statusCode == 401{
|
|
completion(.updateAccessCode())
|
|
} else if response.response?.statusCode == 403 {
|
|
completion(.logOutUser())
|
|
} else {
|
|
completion(.failure(JSON(response.data!)))
|
|
}
|
|
return
|
|
}
|
|
completion(.success(JSON(response.data!)))
|
|
}
|
|
}
|
|
|
|
func fetchAgentLocation(countryId: String,completion: @escaping (ApiResult) -> Void){
|
|
|
|
manager.request(
|
|
URL(string: UrlManager.sharedInstance.getPayoutsURL())!,
|
|
method: .get,
|
|
parameters: ["countryId": countryId, "constraint": "default"],
|
|
encoding: URLEncoding.queryString,
|
|
headers: getContentHeaderAfterLogin()
|
|
).responseJSON { (response) -> Void in
|
|
|
|
let error = response.result.error
|
|
if error?._code == NSURLErrorTimedOut {
|
|
completion(.timeOut())
|
|
}
|
|
|
|
if response.result.isFailure{
|
|
completion(.timeOut())
|
|
}
|
|
|
|
if response.response?.statusCode == nil {
|
|
return
|
|
}
|
|
guard (response.response?.statusCode == 200) else {
|
|
if response.response?.statusCode == 401{
|
|
completion(.updateAccessCode())
|
|
} else if response.response?.statusCode == 403 {
|
|
completion(.logOutUser())
|
|
} else {
|
|
completion(.failure(JSON(response.data!)))
|
|
}
|
|
return
|
|
}
|
|
completion(.success(JSON(response.data!)))
|
|
}
|
|
}
|
|
|
|
func getPayoutBankDetail(countryId: String, payoutMethodId: String, completion: @escaping (ApiResult) -> Void){
|
|
|
|
|
|
|
|
manager.request(
|
|
URL(string: UrlManager.sharedInstance.getPayoutsURL())!,
|
|
method: .get,
|
|
parameters: ["countryId": countryId,"payoutMethodId": payoutMethodId, "constraint": "txn"],
|
|
encoding: URLEncoding.queryString,
|
|
headers: getContentHeaderAfterLogin()
|
|
).responseJSON { (response) -> Void in
|
|
|
|
let error = response.result.error
|
|
if error?._code == NSURLErrorTimedOut {
|
|
completion(.timeOut())
|
|
}
|
|
|
|
if response.result.isFailure{
|
|
completion(.timeOut())
|
|
}
|
|
|
|
if response.response?.statusCode == nil {
|
|
completion(.timeOut())
|
|
}
|
|
guard (response.response?.statusCode == 200) else {
|
|
if response.response?.statusCode == 401 {
|
|
completion(.updateAccessCode())
|
|
} else if response.response?.statusCode == 403 {
|
|
completion(.logOutUser())
|
|
} else {
|
|
completion(.failure(JSON(response.data!)))
|
|
}
|
|
return
|
|
}
|
|
completion(.success(JSON(response.data!)))
|
|
}
|
|
}
|
|
|
|
func getPayoutBankBranchDetail(countryId: String, payoutId: String, completion: @escaping (ApiResult) -> Void){
|
|
|
|
|
|
|
|
manager.request(
|
|
URL(string: UrlManager.sharedInstance.getPayoutsBranchURL(payoutId: payoutId))!,
|
|
method: .get,
|
|
parameters: ["countryId": countryId],
|
|
encoding: URLEncoding.queryString,
|
|
headers: getContentHeaderAfterLogin()
|
|
).responseJSON { (response) -> Void in
|
|
|
|
let error = response.result.error
|
|
if error?._code == NSURLErrorTimedOut {
|
|
completion(.timeOut())
|
|
}
|
|
|
|
|
|
if response.result.isFailure{
|
|
completion(.timeOut())
|
|
}
|
|
|
|
if response.response?.statusCode == nil {
|
|
completion(.timeOut())
|
|
}
|
|
guard (response.response?.statusCode == 200) else {
|
|
if response.response?.statusCode == 401{
|
|
completion(.updateAccessCode())
|
|
} else if response.response?.statusCode == 403 {
|
|
completion(.logOutUser())
|
|
} else {
|
|
completion(.failure(JSON(response.data!)))
|
|
}
|
|
return
|
|
}
|
|
completion(.success(JSON(response.data!)))
|
|
}
|
|
}
|
|
|
|
|
|
|
|
//SOCIAL BEGINS HERE
|
|
|
|
|
|
//CREATE Social Feeds
|
|
func createSocialFeed(param: [String: String], completion: @escaping (ApiResult) -> Void) {
|
|
|
|
manager.request(URL(string: UrlManager.sharedInstance.getCRUDFeedURL())!,
|
|
method: .post,
|
|
parameters: param,
|
|
encoding: JSONEncoding.default,
|
|
headers: getContentHeaderAfterLogin())
|
|
.responseJSON { (response) -> Void in
|
|
|
|
if let error = response.result.error {
|
|
if error._code == NSURLErrorTimedOut {
|
|
completion(.timeOut())
|
|
}
|
|
}
|
|
|
|
if response.result.isFailure{
|
|
completion(.timeOut())
|
|
}
|
|
|
|
if response.response?.statusCode == nil {
|
|
return
|
|
}
|
|
guard (response.response?.statusCode == 201) else {
|
|
if response.response?.statusCode == 401 {
|
|
completion(.updateAccessCode())
|
|
} else if response.response?.statusCode == 403 {
|
|
completion(.logOutUser())
|
|
} else {
|
|
completion(.failure(JSON(response.data!)))
|
|
}
|
|
return
|
|
}
|
|
completion(.success(JSON(response.data!)))
|
|
}
|
|
}
|
|
|
|
//READ Social Feeds
|
|
func getSocialFeeds(param : [String: String], completion : @escaping (ApiResult) -> Void){
|
|
|
|
|
|
|
|
manager.request(
|
|
URL(string : (UrlManager.sharedInstance.getCRUDFeedURL()))!,
|
|
method: .get,
|
|
parameters: param,
|
|
encoding: URLEncoding.queryString,
|
|
headers: getContentHeaderAfterLogin())
|
|
.responseJSON { (response) -> Void in
|
|
|
|
let error = response.result.error
|
|
if error?._code == NSURLErrorTimedOut {
|
|
completion(.timeOut())
|
|
}
|
|
|
|
if response.result.isFailure{
|
|
completion(.timeOut())
|
|
}
|
|
|
|
if response.response?.statusCode == nil {
|
|
completion(.timeOut())
|
|
}
|
|
guard (response.response?.statusCode == 200) else {
|
|
if response.response?.statusCode == 401 {
|
|
completion(.updateAccessCode())
|
|
} else if response.response?.statusCode == 403 {
|
|
completion(.logOutUser())
|
|
} else {
|
|
completion(.failure(JSON(response.data!)))
|
|
}
|
|
return
|
|
}
|
|
completion(.success(JSON(response.data!)))
|
|
}
|
|
}
|
|
|
|
//UPDATE Social Feeds
|
|
func updateSocialFeed(feedId: String, param: [String: String], completion: @escaping (ApiResult) -> Void) {
|
|
|
|
let url = UrlManager.sharedInstance.getCRUDFeedURL() + "/" + feedId
|
|
|
|
|
|
|
|
manager.request(URL(string: url)!,
|
|
method: .put,
|
|
parameters: param,
|
|
encoding: JSONEncoding.default,
|
|
headers: getContentHeaderAfterLogin())
|
|
.responseJSON { (response) -> Void in
|
|
|
|
let error = response.result.error
|
|
if error?._code == NSURLErrorTimedOut {
|
|
completion(.timeOut())
|
|
}
|
|
|
|
if response.result.isFailure{
|
|
completion(.timeOut())
|
|
}
|
|
|
|
if response.response?.statusCode == nil {
|
|
completion(.timeOut())
|
|
}
|
|
guard (response.response?.statusCode == 200) else {
|
|
if response.response?.statusCode == 401 {
|
|
completion(.updateAccessCode())
|
|
} else if response.response?.statusCode == 403 {
|
|
completion(.logOutUser())
|
|
} else {
|
|
completion(.failure(JSON(response.data!)))
|
|
}
|
|
return
|
|
}
|
|
completion(.success(JSON(response.data!)))
|
|
}
|
|
|
|
}
|
|
|
|
//DELETE Social Feeds
|
|
func deleteSocialFeed(feedId: String, param: [String: String], completion: @escaping (ApiResult) -> Void) {
|
|
|
|
let url = UrlManager.sharedInstance.getCRUDFeedURL() + "/" + feedId
|
|
|
|
|
|
|
|
manager.request(URL(string: url)!,
|
|
method: .delete,
|
|
parameters: param,
|
|
encoding: URLEncoding.queryString,
|
|
headers: getContentHeaderAfterLogin())
|
|
.responseJSON { (response) -> Void in
|
|
|
|
let error = response.result.error
|
|
if error?._code == NSURLErrorTimedOut {
|
|
completion(.timeOut())
|
|
}
|
|
|
|
if response.result.isFailure{
|
|
completion(.timeOut())
|
|
}
|
|
|
|
if response.response?.statusCode == nil {
|
|
completion(.timeOut())
|
|
}
|
|
guard (response.response?.statusCode == 204) else {
|
|
if response.response?.statusCode == 401 {
|
|
completion(.updateAccessCode())
|
|
} else if response.response?.statusCode == 403 {
|
|
completion(.logOutUser())
|
|
} else {
|
|
completion(.failure(JSON(response.data!)))
|
|
}
|
|
return
|
|
}
|
|
completion(.success(JSON(response.data!)))
|
|
}
|
|
}
|
|
|
|
//DELETE Social Feeds
|
|
func reportSocialFeed(feedId: String, param: [String: String], completion: @escaping (ApiResult) -> Void) {
|
|
|
|
let url = UrlManager.sharedInstance.getCRUDFeedURL() + "/" + feedId + "/reports?"
|
|
|
|
|
|
|
|
manager.request(URL(string: url)!,
|
|
method: .post,
|
|
parameters: param,
|
|
encoding: JSONEncoding.default,
|
|
headers: getContentHeaderAfterLogin())
|
|
.responseJSON { (response) -> Void in
|
|
|
|
let error = response.result.error
|
|
if error?._code == NSURLErrorTimedOut {
|
|
completion(.timeOut())
|
|
}
|
|
|
|
if response.result.isFailure{
|
|
completion(.timeOut())
|
|
}
|
|
|
|
if response.response?.statusCode == nil {
|
|
completion(.timeOut())
|
|
}
|
|
guard (response.response?.statusCode == 201) else {
|
|
if response.response?.statusCode == 401 {
|
|
completion(.updateAccessCode())
|
|
} else if response.response?.statusCode == 403 {
|
|
completion(.logOutUser())
|
|
} else {
|
|
completion(.failure(JSON(response.data!)))
|
|
}
|
|
return
|
|
}
|
|
completion(.success(JSON(response.data!)))
|
|
}
|
|
}
|
|
|
|
//Multipart Image Upload
|
|
func uploadImage(imageData: Any, isGif: Bool, param : [String:String], completion : @escaping (ApiResult) -> Void) {
|
|
var fileName: String!
|
|
var mimeType: String!
|
|
var data: Data!
|
|
|
|
if isGif {
|
|
fileName = "test.gif"
|
|
mimeType = "image/gif"
|
|
data = imageData as! Data
|
|
} else {
|
|
fileName = "test.jpg"
|
|
mimeType = "image/jpeg"
|
|
data = UIImageJPEGRepresentation(imageData as! UIImage, 0.7)!
|
|
}
|
|
|
|
|
|
manager.upload(
|
|
multipartFormData: { multipartFormData in
|
|
multipartFormData.append(data, withName: "file", fileName: fileName, mimeType: mimeType)
|
|
for (key,value) in param {
|
|
multipartFormData.append(value.data(using: .utf8)!, withName: key)
|
|
}
|
|
},
|
|
|
|
to: URL(string: UrlManager.sharedInstance.multipartImageUploadURL())!,
|
|
method: .post,
|
|
headers: getContentHeaderAfterLogin(),
|
|
encodingCompletion: { encodingResult in
|
|
switch encodingResult {
|
|
case .success(let upload, _, _):
|
|
upload.responseJSON { response in
|
|
|
|
if let error = response.result.error {
|
|
if error._code == NSURLErrorTimedOut {
|
|
completion(.timeOut())
|
|
}
|
|
}
|
|
|
|
if response.result.isFailure{
|
|
completion(.timeOut())
|
|
}
|
|
|
|
if response.response?.statusCode == nil {
|
|
return
|
|
}
|
|
guard (response.response?.statusCode == 201) else {
|
|
if response.response?.statusCode == 401 {
|
|
completion(.updateAccessCode())
|
|
} else if response.response?.statusCode == 403 {
|
|
completion(.logOutUser())
|
|
} else {
|
|
completion(.failure(JSON(response.data!)))
|
|
}
|
|
return
|
|
}
|
|
completion(.success(JSON(response.data!)))
|
|
}
|
|
case .failure(_):
|
|
return
|
|
|
|
}
|
|
})
|
|
}
|
|
|
|
//LIKE OR DISLIKE Social Feed
|
|
func likeDislikeSocialFeed(feedId: String, isLiked: Bool, param: [String: String], completion: @escaping (ApiResult) -> Void) {
|
|
|
|
var methodType: HTTPMethod!
|
|
|
|
if isLiked {
|
|
methodType = .delete
|
|
} else {
|
|
methodType = .post
|
|
}
|
|
|
|
|
|
|
|
manager.request(URL(string: UrlManager.sharedInstance.getLikeDislikeFeedURL(feedId: feedId))!,
|
|
method: methodType,
|
|
parameters: param,
|
|
encoding: URLEncoding.queryString,
|
|
headers: getContentHeaderAfterLogin())
|
|
.responseJSON { (response) -> Void in
|
|
|
|
let error = response.result.error
|
|
if error?._code == NSURLErrorTimedOut {
|
|
completion(.timeOut())
|
|
}
|
|
|
|
|
|
if response.result.isFailure{
|
|
completion(.timeOut())
|
|
}
|
|
|
|
guard response.response?.statusCode != nil else {
|
|
completion(.timeOut())
|
|
return
|
|
}
|
|
switch response.response?.statusCode {
|
|
case 204?, 201?:
|
|
completion(.success(JSON(response.data!)))
|
|
case 401?:
|
|
completion(.updateAccessCode())
|
|
case 403?:
|
|
completion(.logOutUser())
|
|
default:
|
|
completion(.failure(JSON(response.data!)))
|
|
}
|
|
}
|
|
}
|
|
|
|
//LIKES for Social Feed
|
|
func getAllLikesFor(feedId: String, completion: @escaping (ApiResult) -> Void) {
|
|
|
|
|
|
manager.request(URL(string: UrlManager.sharedInstance.getLikeDislikeFeedURL(feedId: feedId))!,
|
|
method: .get,
|
|
headers: getContentHeaderAfterLogin())
|
|
.responseJSON { (response) -> Void in
|
|
|
|
let error = response.result.error
|
|
if error?._code == NSURLErrorTimedOut {
|
|
completion(.timeOut())
|
|
}
|
|
|
|
|
|
if response.result.isFailure{
|
|
completion(.timeOut())
|
|
}
|
|
|
|
if response.response?.statusCode == nil {
|
|
completion(.timeOut())
|
|
}
|
|
guard (response.response?.statusCode == 200) else {
|
|
if response.response?.statusCode == 401 {
|
|
completion(.updateAccessCode())
|
|
} else if response.response?.statusCode == 403 {
|
|
completion(.logOutUser())
|
|
} else {
|
|
completion(.failure(JSON(response.data!)))
|
|
}
|
|
return
|
|
}
|
|
completion(.success(JSON(response.data!)))
|
|
}
|
|
}
|
|
|
|
|
|
//COMMENTS for Social Feed
|
|
func getAllCommentsFor(feedId: String, param: [String: String], completion: @escaping (ApiResult) -> Void) {
|
|
|
|
|
|
|
|
manager.request(URL(string: UrlManager.sharedInstance.getCommentFeedURL(feedId: feedId))!,
|
|
method: .get,
|
|
parameters: param,
|
|
encoding: URLEncoding.queryString,
|
|
headers: getContentHeaderAfterLogin())
|
|
.responseJSON { (response) -> Void in
|
|
|
|
let error = response.result.error
|
|
if error?._code == NSURLErrorTimedOut {
|
|
completion(.timeOut())
|
|
}
|
|
|
|
if response.result.isFailure{
|
|
completion(.timeOut())
|
|
}
|
|
|
|
if response.response?.statusCode == nil {
|
|
return
|
|
}
|
|
guard (response.response?.statusCode == 200) else {
|
|
if response.response?.statusCode == 401 {
|
|
completion(.updateAccessCode())
|
|
} else if response.response?.statusCode == 403 {
|
|
completion(.logOutUser())
|
|
} else {
|
|
completion(.failure(JSON(response.data!)))
|
|
}
|
|
return
|
|
}
|
|
completion(.success(JSON(response.data!)))
|
|
}
|
|
}
|
|
|
|
//CREATE NEW COMMENT
|
|
func createComment(feedId: String, param: [String: String], completion: @escaping (ApiResult) -> Void) {
|
|
|
|
|
|
|
|
manager.request(URL(string: UrlManager.sharedInstance.getCreateCommentURL(feedId: feedId))!,
|
|
method: .post,
|
|
parameters: param,
|
|
encoding: JSONEncoding.default,
|
|
headers: getContentHeaderAfterLogin())
|
|
.responseJSON { (response) -> Void in
|
|
|
|
let error = response.result.error
|
|
if error?._code == NSURLErrorTimedOut {
|
|
completion(.timeOut())
|
|
}
|
|
|
|
if response.result.isFailure{
|
|
completion(.timeOut())
|
|
}
|
|
|
|
if response.response?.statusCode == nil {
|
|
return
|
|
}
|
|
guard (response.response?.statusCode == 201) else {
|
|
if response.response?.statusCode == 401 {
|
|
completion(.updateAccessCode())
|
|
} else if response.response?.statusCode == 403 {
|
|
completion(.logOutUser())
|
|
} else {
|
|
completion(.failure(JSON(response.data!)))
|
|
}
|
|
return
|
|
}
|
|
completion(.success(JSON(response.data!)))
|
|
}
|
|
}
|
|
|
|
|
|
//EDIT COMMENT
|
|
func editComment(feedId: String, commentId: String, param: [String: String], completion: @escaping (ApiResult) -> Void) {
|
|
|
|
|
|
|
|
manager.request(URL(string: UrlManager.sharedInstance.getEditDeleteCommentURL(feedId: feedId, commentId: commentId))!,
|
|
method: .put,
|
|
parameters: param,
|
|
encoding: JSONEncoding.default,
|
|
headers: getContentHeaderAfterLogin())
|
|
.responseJSON { (response) -> Void in
|
|
|
|
let error = response.result.error
|
|
if error?._code == NSURLErrorTimedOut {
|
|
completion(.timeOut())
|
|
}
|
|
|
|
if response.result.isFailure{
|
|
completion(.timeOut())
|
|
}
|
|
|
|
if response.response?.statusCode == nil {
|
|
completion(.timeOut())
|
|
|
|
}
|
|
guard (response.response?.statusCode == 200) else {
|
|
if response.response?.statusCode == 401 {
|
|
completion(.updateAccessCode())
|
|
} else if response.response?.statusCode == 403 {
|
|
completion(.logOutUser())
|
|
} else {
|
|
completion(.failure(JSON(response.data!)))
|
|
}
|
|
return
|
|
}
|
|
completion(.success(JSON(response.data!)))
|
|
}
|
|
}
|
|
|
|
//REMOVE COMMENT
|
|
func deleteComment(feedId: String, commentId: String, param: [String: String], completion: @escaping (ApiResult) -> Void) {
|
|
|
|
|
|
|
|
manager.request(URL(string: UrlManager.sharedInstance.getEditDeleteCommentURL(feedId: feedId, commentId: commentId))!,
|
|
method: .delete,
|
|
parameters: param,
|
|
encoding: URLEncoding.queryString,
|
|
headers: getContentHeaderAfterLogin())
|
|
.responseJSON { (response) -> Void in
|
|
|
|
let error = response.result.error
|
|
if error?._code == NSURLErrorTimedOut {
|
|
completion(.timeOut())
|
|
}
|
|
|
|
if response.result.isFailure{
|
|
completion(.timeOut())
|
|
}
|
|
|
|
|
|
if response.response?.statusCode == nil {
|
|
return
|
|
}
|
|
guard (response.response?.statusCode == 204) else {
|
|
if response.response?.statusCode == 401 {
|
|
completion(.updateAccessCode())
|
|
} else if response.response?.statusCode == 403 {
|
|
completion(.logOutUser())
|
|
} else {
|
|
completion(.failure(JSON(response.data!)))
|
|
}
|
|
return
|
|
}
|
|
completion(.success(JSON(response.data!)))
|
|
}
|
|
}
|
|
//FETCH REWARDS
|
|
func fetchRewards(completion: @escaping (ApiResult) -> Void) {
|
|
|
|
|
|
|
|
manager.request(URL(string: UrlManager.sharedInstance.getRewardsURL())!,
|
|
method: .get,
|
|
headers: getContentHeaderAfterLogin())
|
|
.responseJSON { (response) -> Void in
|
|
|
|
let error = response.result.error
|
|
if error?._code == NSURLErrorTimedOut {
|
|
completion(.timeOut())
|
|
}
|
|
|
|
if response.result.isFailure{
|
|
completion(.timeOut())
|
|
}
|
|
|
|
if response.response?.statusCode == nil {
|
|
completion(.timeOut())
|
|
}
|
|
guard (response.response?.statusCode == 200) else {
|
|
if response.response?.statusCode == 401 {
|
|
completion(.updateAccessCode())
|
|
} else if response.response?.statusCode == 403 {
|
|
completion(.logOutUser())
|
|
} else {
|
|
completion(.failure(JSON(response.data!)))
|
|
}
|
|
return
|
|
}
|
|
completion(.success(JSON(response.data!)))
|
|
}
|
|
}
|
|
|
|
//REDEEM REWARD
|
|
func redeemReward(rewardId: String, param: [String: String], completion: @escaping (ApiResult) -> Void) {
|
|
|
|
|
|
|
|
manager.request(URL(string: UrlManager.sharedInstance.getRedeemRewardURL(rewardId: rewardId))!,
|
|
method: .post,
|
|
parameters: param,
|
|
encoding: JSONEncoding.default,
|
|
headers: getContentHeaderAfterLogin())
|
|
.responseJSON { (response) -> Void in
|
|
|
|
let error = response.result.error
|
|
if error?._code == NSURLErrorTimedOut {
|
|
completion(.timeOut())
|
|
}
|
|
|
|
if response.result.isFailure{
|
|
completion(.timeOut())
|
|
}
|
|
|
|
if response.response?.statusCode == nil {
|
|
return
|
|
}
|
|
guard (response.response?.statusCode == 201) else {
|
|
if response.response?.statusCode == 401 {
|
|
completion(.updateAccessCode())
|
|
} else if response.response?.statusCode == 403 {
|
|
completion(.logOutUser())
|
|
} else {
|
|
completion(.failure(JSON(response.data!)))
|
|
}
|
|
return
|
|
}
|
|
completion(.success(JSON(response.data!)))
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
GET CURRENCIES
|
|
*/
|
|
func getCurrencies(param: [String: String],completion: @escaping (ApiResult) -> Void) {
|
|
|
|
|
|
|
|
manager.request(
|
|
URL(string: UrlManager.sharedInstance.getCurrencyURL())!,
|
|
method: .get,
|
|
parameters: param,
|
|
encoding: URLEncoding.queryString,
|
|
headers: getContentHeaderAfterLogin()
|
|
).responseJSON { (response) -> Void in
|
|
|
|
let error = response.result.error
|
|
if error?._code == NSURLErrorTimedOut {
|
|
completion(.timeOut())
|
|
}
|
|
|
|
if response.result.isFailure{
|
|
completion(.timeOut())
|
|
}
|
|
|
|
if response.response?.statusCode == nil {
|
|
completion(.timeOut())
|
|
}
|
|
guard (response.response?.statusCode == 200) else {
|
|
if response.response?.statusCode == 401{
|
|
completion(.updateAccessCode())
|
|
} else if response.response?.statusCode == 403 {
|
|
completion(.logOutUser())
|
|
} else {
|
|
completion(.failure(JSON(response.data!)))
|
|
}
|
|
return
|
|
}
|
|
completion(.success(JSON(response.data!)))
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
GET Exchange Rate
|
|
*/
|
|
func getExchangeRates(param: [String: Any], completion: @escaping (ApiResult) -> Void) {
|
|
|
|
|
|
|
|
manager.request(
|
|
URL(string: UrlManager.sharedInstance.getExchangeRateURL())!,
|
|
method: .post,
|
|
parameters: param,
|
|
encoding: JSONEncoding.default,
|
|
headers: getContentHeaderAfterLogin()
|
|
).responseJSON { (response) -> Void in
|
|
|
|
let error = response.result.error
|
|
if error?._code == NSURLErrorTimedOut {
|
|
completion(.timeOut())
|
|
}
|
|
|
|
if response.result.isFailure{
|
|
completion(.timeOut())
|
|
}
|
|
|
|
if response.response?.statusCode == nil {
|
|
return
|
|
}
|
|
guard (response.response?.statusCode == 200) else {
|
|
if response.response?.statusCode == 401{
|
|
completion(.updateAccessCode())
|
|
} else if response.response?.statusCode == 403 {
|
|
completion(.logOutUser())
|
|
} else {
|
|
completion(.failure(JSON(response.data!)))
|
|
}
|
|
return
|
|
}
|
|
completion(.success(JSON(response.data!)))
|
|
}
|
|
}
|
|
|
|
|
|
//UPDATE USER DETAIL (NOT KYC)
|
|
//USE THIS FUNCTION TO UPDATE USER PROFILE IMAGE AND CMREGISTRATION CODE
|
|
func updateUserDetail(userId: String, param: [String: String], completion: @escaping (ApiResult) -> Void) {
|
|
|
|
|
|
|
|
manager.request(
|
|
URL(string: UrlManager.sharedInstance.getUserUpdateURL(userId: userId))!,
|
|
method: .patch,
|
|
parameters: param,
|
|
encoding: JSONEncoding.default,
|
|
headers: getContentHeaderAfterLogin()
|
|
).responseJSON { (response) -> Void in
|
|
|
|
let error = response.result.error
|
|
if error?._code == NSURLErrorTimedOut {
|
|
completion(.timeOut())
|
|
}
|
|
|
|
|
|
if response.result.isFailure{
|
|
completion(.timeOut())
|
|
}
|
|
|
|
if response.response?.statusCode == nil {
|
|
completion(.timeOut())
|
|
}
|
|
guard (response.response?.statusCode == 200) else {
|
|
if response.response?.statusCode == 401{
|
|
completion(.updateAccessCode())
|
|
} else if response.response?.statusCode == 403 {
|
|
completion(.logOutUser())
|
|
} else{
|
|
completion(.failure(JSON(response.data!)))
|
|
}
|
|
return
|
|
}
|
|
completion(.success(JSON(response.data!)))
|
|
}
|
|
}
|
|
func validateReferralCode(param: [String: String], completion: @escaping (ApiResult) -> Void) {
|
|
|
|
|
|
|
|
manager.request(
|
|
URL(string: UrlManager.sharedInstance.getReferralCodeValidationURL())!,
|
|
method: .post,
|
|
parameters: param,
|
|
encoding: JSONEncoding.default,
|
|
headers: getContentHeaderAfterLogin()
|
|
).responseJSON { (response) -> Void in
|
|
|
|
if let error = response.result.error {
|
|
if error._code == NSURLErrorTimedOut {
|
|
completion(.timeOut())
|
|
}
|
|
}
|
|
|
|
if response.result.isFailure{
|
|
completion(.timeOut())
|
|
}
|
|
|
|
if response.response?.statusCode == nil {
|
|
return
|
|
}
|
|
guard (response.response?.statusCode == 200) else {
|
|
if response.response?.statusCode == 401{
|
|
completion(.updateAccessCode())
|
|
} else if response.response?.statusCode == 403 {
|
|
completion(.logOutUser())
|
|
} else {
|
|
completion(.failure(JSON(response.data!)))
|
|
}
|
|
return
|
|
}
|
|
completion(.success(JSON(response.data!)))
|
|
}
|
|
}
|
|
|
|
func rejectMoneyRequest(param: [String: String], completion: @escaping (ApiResult) -> Void) {
|
|
|
|
|
|
|
|
manager.request(
|
|
URL(string: UrlManager.sharedInstance.getRejectMoneyRequestURL())!,
|
|
method: .post,
|
|
parameters: param,
|
|
encoding: JSONEncoding.default,
|
|
headers: getContentHeaderAfterLogin()
|
|
).responseJSON { (response) -> Void in
|
|
|
|
if let error = response.result.error {
|
|
if error._code == NSURLErrorTimedOut {
|
|
completion(.timeOut())
|
|
}
|
|
}
|
|
|
|
if response.result.isFailure{
|
|
completion(.timeOut())
|
|
}
|
|
|
|
if response.response?.statusCode == nil {
|
|
return
|
|
}
|
|
guard (response.response?.statusCode == 200) else {
|
|
if response.response?.statusCode == 401{
|
|
completion(.updateAccessCode())
|
|
} else if response.response?.statusCode == 403 {
|
|
completion(.logOutUser())
|
|
} else {
|
|
completion(.failure(JSON(response.data!)))
|
|
}
|
|
return
|
|
}
|
|
completion(.success(JSON(response.data!)))
|
|
}
|
|
}
|
|
|
|
|
|
|
|
func getParticularSocialFeed(feedId: String, param : [String: String], completion : @escaping (ApiResult) -> Void){
|
|
|
|
|
|
|
|
manager.request(
|
|
URL(string : (UrlManager.sharedInstance.getParticularFeedURL(feedId: feedId)))!,
|
|
method: .get,
|
|
parameters: param,
|
|
encoding: URLEncoding.queryString,
|
|
headers: getContentHeaderAfterLogin())
|
|
.responseJSON { (response) -> Void in
|
|
|
|
let error = response.result.error
|
|
if error?._code == NSURLErrorTimedOut {
|
|
completion(.timeOut())
|
|
}
|
|
|
|
if response.result.isFailure{
|
|
completion(.timeOut())
|
|
}
|
|
|
|
if response.response?.statusCode == nil {
|
|
completion(.timeOut())
|
|
}
|
|
guard (response.response?.statusCode == 200) else {
|
|
if response.response?.statusCode == 401 {
|
|
completion(.updateAccessCode())
|
|
} else if response.response?.statusCode == 403 {
|
|
completion(.logOutUser())
|
|
} else {
|
|
completion(.failure(JSON(response.data!)))
|
|
}
|
|
return
|
|
}
|
|
completion(.success(JSON(response.data!)))
|
|
}
|
|
}
|
|
|
|
func cancelExistingNetworkCalls() {
|
|
let sessionManager = Alamofire.SessionManager.default
|
|
sessionManager.session.getTasksWithCompletionHandler { dataTasks, uploadTasks, downloadTasks in
|
|
dataTasks.forEach { $0.cancel() }
|
|
uploadTasks.forEach { $0.cancel() }
|
|
downloadTasks.forEach { $0.cancel() }
|
|
}
|
|
}
|
|
|
|
}
|