@IBAction func onClickLoginBtn(_ sender: UIButton) {
let networkReachability = Reachability.forInternetConnection()
let networkStatus:Int = (networkReachability?.currentReachabilityStatus())!.rawValue
print(networkStatus)
if networkStatus == NotReachable.rawValue {
let msg = SharedClass.sharedInstance.noNetMsg
// SharedClass.sharedInstance.alertWindow(title: "", message: msg)
self.showAlert(title: "", msg: msg)
} else {
SharedClass.sharedInstance.activityIndicator(view: self.view)//Play spinner
var url = SharedClass.sharedInstance.url
url = url.replacingOccurrences(of: "****", with: "login")
// print(url)
let ver = SharedClass.sharedInstance.ver
let deviceID = UserDefaults.standard.string(forKey: "deviceID")!//E22E6278-0412-4C2F-9B00-A05AF621A5C6 SE
let systemVersion = UIDevice.current.systemVersion
let model:String = UIDevice.current.model
let height = UIScreen.main.bounds.height
let width = UIScreen.main.bounds.width
let language = NSLocale.preferredLanguages[0]
let emailTrimmedString:String = (emailAddressTF.text?.trimmingCharacters(in: .whitespaces))!
let passwordTrimmedString:String = (passwordTF.text?.trimmingCharacters(in: .whitespaces))!
if emailTrimmedString == "" {
SharedClass.sharedInstance.stopActivityIndicator() //Stop spinner
// SharedClass.sharedInstance.alertWindow(title: "", message: "Please enter username")
self.showAlert(title: "", msg: "Please enter username")
}
// else if emailTrimmedString != "" {
// if SharedClass.sharedInstance.isValidEmail(email:emailTrimmedString) == false {
// SharedClass.sharedInstance.stopActivityIndicator() //Stop spinner
// SharedClass.sharedInstance.alertWindow(title: "", message: "Please enter valid email")
// } else {
else if passwordTrimmedString == "" {
SharedClass.sharedInstance.stopActivityIndicator() //Stop spinner
// SharedClass.sharedInstance.alertWindow(title: "", message: "Please enter password")
self.showAlert(title: "", msg: "Please enter password")
} else {
//Set user details for crashlytics
// Crashlytics.sharedInstance().setUserEmail(emailTrimmedString)
// Crashlytics.sharedInstance().setUserIdentifier("\(model)")
Crashlytics.sharedInstance().setUserName("LoginID : \(emailTrimmedString)")
// //Test crash
// Crashlytics.sharedInstance().crash()
//and_ver,model,manufacture,screendensity,
//language,nativeplatform,height_width
let parameters = "imei=\(deviceID)&ver=\(ver)"
print("Parameters : \(parameters)")
var request = URLRequest(url: URL(string: url)!)
request.setValue("application/x-www-form-urlencoded", forHTTPHeaderField: "Content-Type")
request.httpMethod = "POST"
print("URL : \(request)")
request.httpBody = parameters.data(using: .utf8)
let task = URLSession.shared.dataTask(with: request) { data, response, error in guard let data = data, error == nil else { // check for fundamental networking error
SharedClass.sharedInstance.stopActivityIndicator() //Stop spinner
print("error=\(String(describing: error))")
// SharedClass.sharedInstance.alertWindow(title: "", message: "\(String(describing: error!.localizedDescription))")
self.showAlert(title: "", msg: "\(String(describing: error!.localizedDescription))")
return
}
SharedClass.sharedInstance.stopActivityIndicator() //Stop spinner
// if let httpStatus = response as? HTTPURLResponse, httpStatus.statusCode == 500 {
//// SharedClass.sharedInstance.alertWindow(title: "", message: "Server Error")
// self.showAlert(title: "", msg: "Server Error")
// print("Error : \(httpStatus.statusCode)")
// } else
if let httpStatus = response as? HTTPURLResponse, httpStatus.statusCode != 200 { // check for http errors
print("statusCode should be 200, but is \(httpStatus.statusCode)")
print("response = \(String(describing: response))")
print("Error : \(error?.localizedDescription ?? "Error")")
self.showAlert(title: "", msg: "\(error?.localizedDescription ?? "Error")")
}
//If Response is in String formate
let responseString = String(data: data, encoding: .utf8)
let dictionary = data
print("dictionary = \(dictionary)")
print("responseString = \(String(describing: responseString!))")
do {
let response = try JSONSerialization.jsonObject(with: data, options: .allowFragments) as? [String: AnyObject]
// print(response!)
let res = response!["resp"] as! Array<Dictionary<String, Any>>
let status = res[0]["status"] as! String
// print(status)
if status == "SUCCESS" {
let session = res[0]["lml"] as! String
let userName = res[0]["Username"] as! String
// print(userName)
UserDefaults.standard.set(session, forKey: "session")
UserDefaults.standard.set(userName, forKey: "userName")
DispatchQueue.main.async {
let cldbvc = self.storyboard?.instantiateViewController(withIdentifier: "CLDBVC")
self.navigationController?.pushViewController(cldbvc!, animated: false)
}
} else {
let message = res[0]["message"] as! String
//Call alert function
// SharedClass.sharedInstance.alertWindow(title: "", message: message)
self.showAlert(title: "", msg: message)
}
} catch let error as NSError {
print(error)
print(error.localizedDescription)
}
}
task.resume()
}
// }
// }
}
}
No comments:
Post a Comment