Advertisement
OoryaK

Tasks by REST/ Oorya

Nov 27th, 2016
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Swift 7.76 KB | None | 0 0
  1. //**********VIEW CONTROLLER
  2.  
  3. import UIKit
  4. import Alamofire
  5.  
  6. class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
  7.  
  8.     @IBOutlet weak var txtTask: UITextField!
  9.     @IBOutlet weak var tableTask: UITableView!
  10.    
  11.     public enum httpMethod:String
  12.     {
  13.         case options = "OPTIONS"
  14.         case get = "GET"
  15.         case head = "HEAD"
  16.         case post = "POST"
  17.         case put = "PUT"
  18.         case patch = "PATCH"
  19.         case delete = "DELETE"
  20.         case trace = "TRACE"
  21.         case connect = "CONNECT"
  22.     };
  23.    
  24.     //declare of appliction secret keys for indification
  25.     let myKeys:HTTPHeaders = [
  26.         "application-id":"23945E84-9532-34FA-FFF8-D7441632B000",
  27.         "secret-key":"E3C85268-5141-7F88-FFB6-1473F0FE0A00",
  28.         "Content-Type":"application/json",
  29.         "application-type":"REST"
  30.     ];
  31.    
  32.     var tasks:[String] = [];
  33.     var userToken:String!;
  34.    
  35.     override func viewDidLoad() {
  36.         super.viewDidLoad()
  37.  
  38.         tableTask.dataSource=self;
  39.         tableTask.delegate=self;
  40.        
  41.         //retrive data from backendless server
  42.         Alamofire.request("https://api.backendless.com/v1/data/Tasks", method: .get,  headers: myKeys).responseJSON{
  43.             respone in
  44.            
  45.             let allTask = respone.result.value as! NSDictionary;
  46.            
  47.             let resultArr = allTask["data"] as! NSArray
  48.            
  49.             for index in (0..<resultArr.count)
  50.             {
  51.                 let singleTask = resultArr[index] as! NSDictionary
  52.                 print("RESULT: \(singleTask["taskName"]!)")
  53.                 self.tasks.append(singleTask["taskName"]! as! String);
  54.             }
  55.             self.tableTask.reloadData();
  56.         }
  57.     }
  58.    
  59.  
  60.     @IBAction func btnAddTask(_ sender: UIButton) {
  61.         let newTask:Parameters=[
  62.             "taskName":txtTask.text!,
  63.             "isDone":false
  64.         ];
  65.        
  66.         Alamofire.request("https://api.backendless.com/v1/data/Tasks", method: .post, parameters: newTask, encoding: JSONEncoding.default
  67.             , headers: myKeys).responseJSON{
  68.         respone in
  69.            
  70.                 let newTask = respone.result.value as! NSDictionary;
  71.                
  72.                 self.tasks.append(newTask["taskName"]! as! String);
  73.                 self.tableTask.reloadData();
  74.         };
  75.        
  76.         txtTask.text="";
  77.     }
  78.    
  79.     func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
  80.         return self.tasks.count;
  81.     }
  82.    
  83.     func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
  84.        
  85.         let cell:CellTask=self.tableTask.dequeueReusableCell(withIdentifier: "cell") as!
  86.             CellTask;
  87.        
  88.         cell.lableTask.text = self.tasks[indexPath.row];
  89.        
  90.         return cell;
  91.     }
  92.    
  93.     @IBAction func logout(_ sender: UIButton) {
  94.         //LOG OUT
  95.         let myKeysLogout:HTTPHeaders = [
  96.             "application-id":"23945E84-9532-34FA-FFF8-D7441632B000",
  97.             "secret-key":"E3C85268-5141-7F88-FFB6-1473F0FE0A00",
  98.             "application-type":"REST",
  99.             //"Content-Type":"application/json",
  100.             "user-token":userToken!
  101.         ];
  102.    
  103.         Alamofire.request("https://api.backendless.com/v1/users/logout",method: .get, encoding: JSONEncoding.default, headers: myKeysLogout).responseJSON{
  104.             response in
  105.             print("RESPONSE LOGUOT: \(response)");
  106.         }
  107.  
  108.         let loginScreen=UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "loginVC");
  109.         self.present(loginScreen, animated: true, completion: nil);        
  110.     }
  111. }
  112.  
  113. //********LOGIN CLASS
  114.  
  115. import UIKit
  116. import Alamofire
  117.  
  118. class Login: UIViewController {
  119.    
  120.    
  121.     @IBOutlet weak var txtUser: UITextField!
  122.     @IBOutlet weak var txtPass: UITextField!
  123.     @IBOutlet weak var txtPass2: UITextField!
  124.     @IBOutlet weak var email: UITextField!
  125.     @IBOutlet weak var btnSignin: UIButton!
  126.     @IBOutlet weak var btnSignup: UIButton!
  127.    
  128.     @IBOutlet weak var btnRegister: UIButton!
  129.     @IBOutlet weak var lblError: UILabel!
  130.     public enum httpMethod:String
  131.     {
  132.         case options = "OPTIONS"
  133.         case get = "GET"
  134.         case head = "HEAD"
  135.         case post = "POST"
  136.         case put = "PUT"
  137.         case patch = "PATCH"
  138.         case delete = "DELETE"
  139.         case trace = "TRACE"
  140.         case connect = "CONNECT"
  141.     };
  142.    
  143.     //declare of appliction secret keys for indification
  144.     let myKeys:HTTPHeaders = [
  145.         "application-id":"23945E84-9532-34FA-FFF8-D7441632B000",
  146.         "secret-key":"E3C85268-5141-7F88-FFB6-1473F0FE0A00",
  147.         "Content-Type":"application/json",
  148.         "application-type":"REST"
  149.     ];
  150.    
  151.    
  152.     override func viewDidLoad()
  153.     {
  154.         btnSignup.isHidden=true;
  155.         txtUser.isHidden=true;
  156.         txtPass2.isHidden=true;
  157.     }
  158.     @IBAction func signIn(_ sender: UIButton) {
  159.        
  160.         //login
  161.         let userData:Parameters = [
  162.             "login":email.text!,
  163.             "password":txtPass.text!
  164.         ];
  165.        
  166.         Alamofire.request("https://api.backendless.com/v1/users/login",method: .post, parameters: userData, encoding: JSONEncoding.default, headers: myKeys).responseJSON{
  167.             response in
  168.             print("RESPONSE LOGIN: \(response)");
  169.            
  170.             let resultDict = response.result.value as! NSDictionary;
  171.            
  172.             if (resultDict.count > 2)
  173.             {
  174.                 let taskScreen=UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "tasksVC");
  175.                 self.present(taskScreen, animated: true, completion: nil);
  176.                
  177.                 let taskClass = taskScreen as! ViewController;
  178.                 taskClass.userToken=resultDict["user-token"]! as! String;
  179.             }
  180.             else
  181.             {
  182.                 print("FAILURE LOGIN: \(resultDict)")
  183.                 self.lblError.text = resultDict["message"]! as? String
  184.                 self.btnSignup.isHidden=false;
  185.  
  186.                 return;
  187.             }
  188.         }
  189.     }
  190.    
  191.    
  192.     @IBAction func signUp(_ sender: UIButton) {        
  193.         //register a user
  194.         let userData:Parameters = [
  195.             "name":txtUser.text!,
  196.             "email":email.text!,
  197.             "password":txtPass.text!
  198.         ];
  199.        
  200.        
  201.         Alamofire.request("https://api.backendless.com/v1/users/register", method: .post, parameters: userData, encoding: JSONEncoding.default, headers: myKeys).responseJSON {
  202.             response in
  203.             print("SIGNUP RESPONSE: \(response)");
  204.            
  205.             let resultDict = response.result.value as! NSDictionary;
  206.            
  207.             if (resultDict.count > 2)
  208.             {
  209.                 self.lblError.text = "Registration is successful, please login";
  210.             }
  211.             else
  212.             {
  213.                 print("FAILURE LOGIN: \(resultDict)")
  214.                 self.lblError.text = resultDict["message"]! as? String                
  215.                 return;
  216.             }
  217.         }
  218.     }
  219.    
  220.     @IBAction func regOrLog(_ sender: UIButton) {
  221.        
  222.         if(btnSignup.isHidden==true)
  223.         {
  224.             txtUser.isHidden=false;
  225.             txtPass2.isHidden=false;
  226.             btnSignup.isHidden=false;
  227.             btnSignin.isHidden=true;
  228.             btnRegister.setTitle("Login", for: UIControlState());
  229.         }
  230.         else if (btnSignup.isHidden==false)
  231.         {
  232.             txtUser.isHidden=true;
  233.             txtPass2.isHidden=true;
  234.             btnSignup.isHidden=true;
  235.             btnSignin.isHidden=false;
  236.             btnRegister.setTitle("Registration", for: UIControlState())
  237.         }
  238.     }    
  239. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement