Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //**********VIEW CONTROLLER
- import UIKit
- import Alamofire
- class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
- @IBOutlet weak var txtTask: UITextField!
- @IBOutlet weak var tableTask: UITableView!
- public enum httpMethod:String
- {
- case options = "OPTIONS"
- case get = "GET"
- case head = "HEAD"
- case post = "POST"
- case put = "PUT"
- case patch = "PATCH"
- case delete = "DELETE"
- case trace = "TRACE"
- case connect = "CONNECT"
- };
- //declare of appliction secret keys for indification
- let myKeys:HTTPHeaders = [
- "application-id":"23945E84-9532-34FA-FFF8-D7441632B000",
- "secret-key":"E3C85268-5141-7F88-FFB6-1473F0FE0A00",
- "Content-Type":"application/json",
- "application-type":"REST"
- ];
- var tasks:[String] = [];
- var userToken:String!;
- override func viewDidLoad() {
- super.viewDidLoad()
- tableTask.dataSource=self;
- tableTask.delegate=self;
- //retrive data from backendless server
- Alamofire.request("https://api.backendless.com/v1/data/Tasks", method: .get, headers: myKeys).responseJSON{
- respone in
- let allTask = respone.result.value as! NSDictionary;
- let resultArr = allTask["data"] as! NSArray
- for index in (0..<resultArr.count)
- {
- let singleTask = resultArr[index] as! NSDictionary
- print("RESULT: \(singleTask["taskName"]!)")
- self.tasks.append(singleTask["taskName"]! as! String);
- }
- self.tableTask.reloadData();
- }
- }
- @IBAction func btnAddTask(_ sender: UIButton) {
- let newTask:Parameters=[
- "taskName":txtTask.text!,
- "isDone":false
- ];
- Alamofire.request("https://api.backendless.com/v1/data/Tasks", method: .post, parameters: newTask, encoding: JSONEncoding.default
- , headers: myKeys).responseJSON{
- respone in
- let newTask = respone.result.value as! NSDictionary;
- self.tasks.append(newTask["taskName"]! as! String);
- self.tableTask.reloadData();
- };
- txtTask.text="";
- }
- func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
- return self.tasks.count;
- }
- func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
- let cell:CellTask=self.tableTask.dequeueReusableCell(withIdentifier: "cell") as!
- CellTask;
- cell.lableTask.text = self.tasks[indexPath.row];
- return cell;
- }
- @IBAction func logout(_ sender: UIButton) {
- //LOG OUT
- let myKeysLogout:HTTPHeaders = [
- "application-id":"23945E84-9532-34FA-FFF8-D7441632B000",
- "secret-key":"E3C85268-5141-7F88-FFB6-1473F0FE0A00",
- "application-type":"REST",
- //"Content-Type":"application/json",
- "user-token":userToken!
- ];
- Alamofire.request("https://api.backendless.com/v1/users/logout",method: .get, encoding: JSONEncoding.default, headers: myKeysLogout).responseJSON{
- response in
- print("RESPONSE LOGUOT: \(response)");
- }
- let loginScreen=UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "loginVC");
- self.present(loginScreen, animated: true, completion: nil);
- }
- }
- //********LOGIN CLASS
- import UIKit
- import Alamofire
- class Login: UIViewController {
- @IBOutlet weak var txtUser: UITextField!
- @IBOutlet weak var txtPass: UITextField!
- @IBOutlet weak var txtPass2: UITextField!
- @IBOutlet weak var email: UITextField!
- @IBOutlet weak var btnSignin: UIButton!
- @IBOutlet weak var btnSignup: UIButton!
- @IBOutlet weak var btnRegister: UIButton!
- @IBOutlet weak var lblError: UILabel!
- public enum httpMethod:String
- {
- case options = "OPTIONS"
- case get = "GET"
- case head = "HEAD"
- case post = "POST"
- case put = "PUT"
- case patch = "PATCH"
- case delete = "DELETE"
- case trace = "TRACE"
- case connect = "CONNECT"
- };
- //declare of appliction secret keys for indification
- let myKeys:HTTPHeaders = [
- "application-id":"23945E84-9532-34FA-FFF8-D7441632B000",
- "secret-key":"E3C85268-5141-7F88-FFB6-1473F0FE0A00",
- "Content-Type":"application/json",
- "application-type":"REST"
- ];
- override func viewDidLoad()
- {
- btnSignup.isHidden=true;
- txtUser.isHidden=true;
- txtPass2.isHidden=true;
- }
- @IBAction func signIn(_ sender: UIButton) {
- //login
- let userData:Parameters = [
- "login":email.text!,
- "password":txtPass.text!
- ];
- Alamofire.request("https://api.backendless.com/v1/users/login",method: .post, parameters: userData, encoding: JSONEncoding.default, headers: myKeys).responseJSON{
- response in
- print("RESPONSE LOGIN: \(response)");
- let resultDict = response.result.value as! NSDictionary;
- if (resultDict.count > 2)
- {
- let taskScreen=UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "tasksVC");
- self.present(taskScreen, animated: true, completion: nil);
- let taskClass = taskScreen as! ViewController;
- taskClass.userToken=resultDict["user-token"]! as! String;
- }
- else
- {
- print("FAILURE LOGIN: \(resultDict)")
- self.lblError.text = resultDict["message"]! as? String
- self.btnSignup.isHidden=false;
- return;
- }
- }
- }
- @IBAction func signUp(_ sender: UIButton) {
- //register a user
- let userData:Parameters = [
- "name":txtUser.text!,
- "email":email.text!,
- "password":txtPass.text!
- ];
- Alamofire.request("https://api.backendless.com/v1/users/register", method: .post, parameters: userData, encoding: JSONEncoding.default, headers: myKeys).responseJSON {
- response in
- print("SIGNUP RESPONSE: \(response)");
- let resultDict = response.result.value as! NSDictionary;
- if (resultDict.count > 2)
- {
- self.lblError.text = "Registration is successful, please login";
- }
- else
- {
- print("FAILURE LOGIN: \(resultDict)")
- self.lblError.text = resultDict["message"]! as? String
- return;
- }
- }
- }
- @IBAction func regOrLog(_ sender: UIButton) {
- if(btnSignup.isHidden==true)
- {
- txtUser.isHidden=false;
- txtPass2.isHidden=false;
- btnSignup.isHidden=false;
- btnSignin.isHidden=true;
- btnRegister.setTitle("Login", for: UIControlState());
- }
- else if (btnSignup.isHidden==false)
- {
- txtUser.isHidden=true;
- txtPass2.isHidden=true;
- btnSignup.isHidden=true;
- btnSignin.isHidden=false;
- btnRegister.setTitle("Registration", for: UIControlState())
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement