diff --git a/Yep.xcodeproj/project.pbxproj b/Yep.xcodeproj/project.pbxproj index b0b0f4fb..3e38f53a 100644 --- a/Yep.xcodeproj/project.pbxproj +++ b/Yep.xcodeproj/project.pbxproj @@ -2951,7 +2951,7 @@ IPHONEOS_DEPLOYMENT_TARGET = 8.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; - OTHER_SWIFT_FLAGS = "-D DEBUG -D STAGING_"; + OTHER_SWIFT_FLAGS = "-D DEBUG -D STAGING"; SDKROOT = iphoneos; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; }; diff --git a/Yep/Services/YepService.swift b/Yep/Services/YepService.swift index 8df0d52a..e57ba139 100644 --- a/Yep/Services/YepService.swift +++ b/Yep/Services/YepService.swift @@ -3691,14 +3691,41 @@ func foursquareVenuesNearby(coordinate coordinate: CLLocationCoordinate2D, failu // MARK: Mention -func usersMatchWithUsernamePrefix(usernamePrefix: String, failureHandler: ((Reason, String?) -> Void)?, completion: (JSONDictionary) -> Void) { +struct UsernamePrefixMatchedUser { + let userID: String + let username: String + let nickname: String + let avatarURLString: String +} + +func usersMatchWithUsernamePrefix(usernamePrefix: String, failureHandler: ((Reason, String?) -> Void)?, completion: ([UsernamePrefixMatchedUser]) -> Void) { let requestParameters = [ "q": usernamePrefix, ] - let parse: JSONDictionary -> JSONDictionary? = { data in - return data + let parse: JSONDictionary -> [UsernamePrefixMatchedUser]? = { data in + //println("usersMatchWithUsernamePrefix: \(data)") + + if let usersData = data["users"] as? [JSONDictionary] { + let users: [UsernamePrefixMatchedUser] = usersData.map({ userInfo in + guard let + userID = userInfo["id"] as? String, + username = userInfo["username"] as? String, + nickname = userInfo["nickname"] as? String, + avatarInfo = userInfo["avatar"] as? JSONDictionary, + avatarURLString = avatarInfo["thumb_url"] as? String + else { + return nil + } + + return UsernamePrefixMatchedUser(userID: userID, username: username, nickname: nickname, avatarURLString: avatarURLString) + }).flatMap({ $0 }) + + return users + } + + return nil } let resource = authJsonResource(path: "/v1/users/typeahead", method: .GET, requestParameters: requestParameters, parse: parse) diff --git a/Yep/ViewControllers/Conversation/ConversationViewController.swift b/Yep/ViewControllers/Conversation/ConversationViewController.swift index 2ba12702..7d2c2640 100644 --- a/Yep/ViewControllers/Conversation/ConversationViewController.swift +++ b/Yep/ViewControllers/Conversation/ConversationViewController.swift @@ -861,8 +861,8 @@ class ConversationViewController: BaseViewController { // view.addSubview(conversationFPSLabel) #endif - usersMatchWithUsernamePrefix("a", failureHandler: nil) { data in - println("usersMatchWithUsernamePrefix: \(data)") + usersMatchWithUsernamePrefix("t", failureHandler: nil) { users in + println("usersMatchWithUsernamePrefix: \(users)") } }