diff --git a/GMERemittance/RestApiManager.swift b/GMERemittance/RestApiManager.swift index a5eed3c6..b82e2643 100644 --- a/GMERemittance/RestApiManager.swift +++ b/GMERemittance/RestApiManager.swift @@ -88,6 +88,57 @@ class RestApiMananger { } } + func requestMultipart( + 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 { + func makeRequest() { + 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 @@ -209,36 +260,7 @@ class RestApiMananger { } } - //Logging in user - func signInUser(userId: String, password: String, completion: @escaping (ApiResult) -> Void) { - manager .request( - URL(string: UrlManager.sharedInstance.getLogInURL())!, - 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!))) - } - } //Checking user verification for password reset process, 1 of 3 func isVerifiedUser(userId: String, completion: @escaping (ApiResult) -> Void) {