diff --git a/librx/Base.lproj/Main.storyboard b/librx/Base.lproj/Main.storyboard index 51c6444..9cdae47 100644 --- a/librx/Base.lproj/Main.storyboard +++ b/librx/Base.lproj/Main.storyboard @@ -319,6 +319,7 @@ + @@ -342,6 +343,7 @@ + @@ -354,6 +356,7 @@ + diff --git a/librx/ContainerViewController.swift b/librx/ContainerViewController.swift index 3822f21..9600d76 100644 --- a/librx/ContainerViewController.swift +++ b/librx/ContainerViewController.swift @@ -34,7 +34,6 @@ class ContainerViewController: UIPageViewController { } let staticProfileTableViewController = self.storyboard?.instantiateViewControllerWithIdentifier("ProfileTableViewController") as! UITableViewController - return [myPostStoriesTableViewController, likeProfileTableViewController, faviroteProfileTableViewController, staticProfileTableViewController] }() diff --git a/librx/JsonPaser.swift b/librx/JsonPaser.swift index 93a8525..d69dfac 100644 --- a/librx/JsonPaser.swift +++ b/librx/JsonPaser.swift @@ -14,7 +14,7 @@ struct JsonPaser{ private static let defaultThumail = "http://7pn5d3.com1.z0.glb.clouddn.com/9050353.png" static func parseProfile(json: JSON) -> Profile { - + print(json) let id: Int = json["id"].int! diff --git a/librx/LibrxService.swift b/librx/LibrxService.swift index 6a2fa6a..e488297 100644 --- a/librx/LibrxService.swift +++ b/librx/LibrxService.swift @@ -76,7 +76,7 @@ struct LibrxService { case .User(let userId): return "/api/v1/users/\(userId)" case .UserPosts(let userId): return "/api/v1/users/\(userId)/posts" case .UserLikedPosts(let userId): return "/api/v1/users/\(userId)/posts/liked" - case .UserBookMarkPosts(let userId): return "api/v1/users/\(userId)/posts/bookmarked" + case .UserBookMarkPosts(let userId): return "/api/v1/users/\(userId)/posts/bookmarked" default: return "" } @@ -137,6 +137,8 @@ struct LibrxService { let urlString = baseURL + ResourcePath.UserBookMarkPosts(userId: userId).description let headers: [String:String] = buildHttpRequestHeader() + + print(urlString) loadPostsByUrl(urlString, headers: headers, response: response) } @@ -193,11 +195,11 @@ struct LibrxService { static func loadPostsByUrl(urlString: String, headers:[String:String], response: ([Post]) ->()) { + print(urlString) Alamofire.request(.GET, urlString, headers: headers) .response{ (request, res, data, error) in let json = JSON(data: data!) - var posts:[Post] = [] for index in 0..()) { + static func loginWithEmail(email: String, password: String, response: (user:User?) ->()) { let urlString = baseURL + ResourcePath.SignIn.description let parameters = [ @@ -225,12 +227,20 @@ struct LibrxService { let data = JSON(data: json!) let jwt = data["user"]["token"].stringValue + let name = data["user"]["name"].stringValue + let email = data["user"]["email"].stringValue + let id = data["user"]["id"].intValue + + do { + let payload = try JWT.decode(jwt, algorithm: .HS256(email)) let token: String = payload["token"]! as! String - response(token: token) + let user = User(id: id, name: name, email: email, token: token) + + response(user: user) } catch{ - response(token: nil) + response(user: nil) } } @@ -307,7 +317,6 @@ struct LibrxService { static func profile(userId: Int, response: (Profile) -> ()) { - let urlString = baseURL + ResourcePath.User(userId: userId).description Alamofire.request(.GET, urlString).response{ diff --git a/librx/LocalStore.swift b/librx/LocalStore.swift index 8d4d174..271bb47 100644 --- a/librx/LocalStore.swift +++ b/librx/LocalStore.swift @@ -11,6 +11,7 @@ import UIKit struct LocalStore { private static let accessTokenKey = "accessTokenKey" + private static let accessUserKey = "accessUserId" private static let userDefaults = NSUserDefaults.standardUserDefaults() static func setAccessToken(token: String) { @@ -18,11 +19,20 @@ struct LocalStore { userDefaults.synchronize() } + static func setAccessUserId(id: Int) { + userDefaults.setObject(id, forKey: accessUserKey) + userDefaults.synchronize() + } + private static func deleteAccessToken() { userDefaults.removeObjectForKey(accessTokenKey) userDefaults.synchronize() } + static func accessUserId() -> Int? { + return userDefaults.integerForKey(accessUserKey) + } + static func accessToken() -> String? { return userDefaults.stringForKey(accessTokenKey) } diff --git a/librx/LoginViewController.swift b/librx/LoginViewController.swift index 7e8f000..66b01d7 100644 --- a/librx/LoginViewController.swift +++ b/librx/LoginViewController.swift @@ -79,11 +79,11 @@ class LoginViewController: UIViewController { let email = emailTextField.text let password = passwordTextField.text - LibrxService.loginWithEmail(email!, password: password!) { (token) -> () in + LibrxService.loginWithEmail(email!, password: password!) { (user) -> () in - if let token = token { + if let _user = user { self.delegate?.loginViewControllerDidLogin(self) - LocalStore.setAccessToken(token) + LocalStore.setAccessToken(_user.token) self.dismissViewControllerAnimated(true, completion: nil) }else { self.alert(NSLocalizedString("username or password error", comment: "for login error"))