parse UsernamePrefixMatchedUser

This commit is contained in:
nixzhu
2016-01-11 11:59:13 +08:00
parent d3843f335b
commit 9be7e2c440
3 changed files with 33 additions and 6 deletions
+1 -1
View File
@@ -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";
};
+30 -3
View File
@@ -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)
@@ -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)")
}
}