Advertisement
Guest User

Untitled

a guest
Feb 3rd, 2017
129
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Swift 3.73 KB | None | 0 0
  1. //
  2. //  User.swift
  3. //  PensouChegou
  4. //
  5. //  Created by Vanessa Figueiredo on 06/01/17.
  6. //  Copyright © 2017 Solução Sistemas. All rights reserved.
  7. //
  8.  
  9. import KeychainAccess
  10. import JASON
  11. struct User{
  12.    
  13.     var email: String?
  14.     var token: String?
  15.     var password: String?
  16.     var addresses: [UserAddress]?
  17.     var orders: [UserOrders]?
  18.    
  19.     init(){
  20.        
  21.         let userManager = UserManager()
  22.         let userInfo = CoreDataManager<UserInfo>()
  23.         var user = [UserInfo]()
  24.         user = userInfo.all()
  25.         let keychain = Keychain(service: "net.solucaosistemas.PensouChegouBeta")
  26.        
  27.         for user in user {
  28.            
  29.             self.email = user.email!
  30.             self.token = keychain["token"]
  31.             self.password = user.password!
  32.             self.addresses = userManager.consultAddress(user)
  33.             self.orders = userManager.consultOrders(user)
  34.            
  35.         }
  36.     }
  37.    
  38.    
  39.     init(_ json:JSON){
  40.         //Usa as chaves definidas na extensão de JSONKeys
  41.        
  42.         self.email = json[.email]
  43.         self.token = json[.token]
  44.         self.password = json[.password]
  45.         //Como esses dois são 2 objetos personalizados teus,vamo ter q implementar uma lógica pra isso depois
  46. //        self.addresses = json[.addresses]
  47. //        self.orders = json[.orders]
  48.     }
  49.     static func testJSON(){
  50.         //JSON EXEMPLO
  51.         let jsonTest = [
  52.             [
  53.                 "nome": "Batata",
  54.                 "email": "batata@potato.com",
  55.                 "token": "asudbogaubsodguaobsdgbasdubgouasbdgou",
  56.                 "password": "euamobatata123",
  57.                 "addresses": "Rua batata,Frita,1010",
  58.                 "orders": "asdgionasodignaoisdg"
  59.             ],
  60.             [
  61.                 "nome": "Batata",
  62.                 "email": "batata@potato.com",
  63.                 "token": "asudbogaubsodguaobsdgbasdubgouasbdgou",
  64.                 "password": "euamobatata123",
  65.                 "addresses": "Rua batata,Frita,1010",
  66.                 "orders": "asdgionasodignaoisdg"
  67.             ],
  68.             [
  69.                 "nome": "Batata",
  70.                 "email": "batata@potato.com",
  71.                 "token": "asudbogaubsodguaobsdgbasdubgouasbdgou",
  72.                 "password": "euamobatata123",
  73.                 "addresses": "Rua batata,Frita,1010",
  74.                 "orders": "asdgionasodignaoisdg"
  75.             ],
  76.             [
  77.                 "nome": "Batata",
  78.                 "email": "batata@potato.com",
  79.                 "token": "asudbogaubsodguaobsdgbasdubgouasbdgou",
  80.                 "password": "euamobatata123",
  81.                 "addresses": "Rua batata,Frita,1010",
  82.                 "orders": "asdgionasodignaoisdg"
  83.             ],
  84.             [
  85.                 "nome": "Batata",
  86.                 "email": "batata@potato.com",
  87.                 "token": "asudbogaubsodguaobsdgbasdubgouasbdgou",
  88.                 "password": "euamobatata123",
  89.                 "addresses": "Rua batata,Frita,1010",
  90.                 "orders": "asdgionasodignaoisdg"
  91.             ]
  92.             ] as JSON
  93.         //No caso de usar alamofire,na response teu código vai ser só esse
  94.         //if let json = response.result.value{
  95.         //  let users = jsonTest.map(User.init)
  96.         //}
  97.         let users = jsonTest.map(User.init)
  98.         print(users)
  99.     }
  100. }
  101. extension JSONKeys{
  102.     //Procura as chaves definidas no construtor do tipo q passado entre <>
  103.     //Sintaxe: JSONKey<T>("nome_da_chave_no_json")
  104.     static let email = JSONKey<String>("email")
  105.     static let token = JSONKey<String>("token")
  106.     static let password = JSONKey<String>("password")
  107.     static let addresses = JSONKey<String>("addresses")
  108.     static let orders = JSONKey<String>("orders")
  109. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement