refactor update user with info

This commit is contained in:
nixzhu
2015-08-06 14:11:45 +08:00
parent 2cf3c71086
commit 7926f9cfee
3 changed files with 66 additions and 116 deletions
+62
View File
@@ -646,3 +646,65 @@ func videoMetaOfMessage(message: Message) -> (width: CGFloat, height: CGFloat)?
return nil
}
// MARK: Update with info
func updateUserWithUserID(userID: String, useUserInfo userInfo: JSONDictionary) {
let realm = Realm()
if let user = userWithUserID(userID, inRealm: realm) {
realm.write {
//
if let lastSignInUnixTime = userInfo["last_sign_in_at"] as? NSTimeInterval {
user.lastSignInUnixTime = lastSignInUnixTime
}
if let nickname = userInfo["nickname"] as? String {
user.nickname = nickname
}
if let introduction = userInfo["introduction"] as? String {
user.introduction = introduction
}
if let avatarURLString = userInfo["avatar_url"] as? String {
user.avatarURLString = avatarURLString
}
if let badge = userInfo["badge"] as? String {
user.badge = badge
}
//
if let learningSkillsData = userInfo["learning_skills"] as? [JSONDictionary] {
user.learningSkills.removeAll()
let userSkills = userSkillsFromSkillsData(learningSkillsData, inRealm: realm)
user.learningSkills.extend(userSkills)
}
if let masterSkillsData = userInfo["master_skills"] as? [JSONDictionary] {
user.masterSkills.removeAll()
let userSkills = userSkillsFromSkillsData(masterSkillsData, inRealm: realm)
user.masterSkills.extend(userSkills)
}
// Social Account Provider
user.socialAccountProviders.removeAll()
if let providersInfo = userInfo["providers"] as? [String: Bool] {
for (name, enabled) in providersInfo {
let provider = UserSocialAccountProvider()
provider.name = name
provider.enabled = enabled
user.socialAccountProviders.append(provider)
}
}
}
}
}
@@ -1007,7 +1007,7 @@ class ConversationViewController: BaseViewController {
let userID = user.userID
userInfoOfUserWithUserID(userID, failureHandler: nil, completion: { userInfo in
println("userInfoOfUserWithUserID \(userInfo)")
//println("userInfoOfUserWithUserID \(userInfo)")
if let doNotDisturb = userInfo["do_not_disturb"] as? Bool {
self.updateNotificationEnabled(!doNotDisturb, forUserWithUserID: userID)
@@ -1019,63 +1019,7 @@ class ConversationViewController: BaseViewController {
//
let realm = Realm()
if let user = userWithUserID(userID, inRealm: realm) {
realm.write {
//
if let lastSignInUnixTime = userInfo["last_sign_in_at"] as? NSTimeInterval {
user.lastSignInUnixTime = lastSignInUnixTime
}
if let nickname = userInfo["nickname"] as? String {
user.nickname = nickname
}
if let introduction = userInfo["introduction"] as? String {
user.introduction = introduction
}
if let avatarURLString = userInfo["avatar_url"] as? String {
user.avatarURLString = avatarURLString
}
if let badge = userInfo["badge"] as? String {
user.badge = badge
}
//
if let learningSkillsData = userInfo["learning_skills"] as? [JSONDictionary] {
user.learningSkills.removeAll()
let userSkills = userSkillsFromSkillsData(learningSkillsData, inRealm: realm)
user.learningSkills.extend(userSkills)
}
if let masterSkillsData = userInfo["master_skills"] as? [JSONDictionary] {
user.masterSkills.removeAll()
let userSkills = userSkillsFromSkillsData(masterSkillsData, inRealm: realm)
user.masterSkills.extend(userSkills)
}
// Social Account Provider
user.socialAccountProviders.removeAll()
if let providersInfo = userInfo["providers"] as? [String: Bool] {
for (name, enabled) in providersInfo {
let provider = UserSocialAccountProvider()
provider.name = name
provider.enabled = enabled
user.socialAccountProviders.append(provider)
}
}
}
}
updateUserWithUserID(userID, useUserInfo: userInfo)
})
}
@@ -410,65 +410,9 @@ class ProfileViewController: UIViewController {
//
let realm = Realm()
updateUserWithUserID(userID, useUserInfo: userInfo)
if let user = userWithUserID(userID, inRealm: realm) {
realm.write {
//
if let lastSignInUnixTime = userInfo["last_sign_in_at"] as? NSTimeInterval {
user.lastSignInUnixTime = lastSignInUnixTime
}
if let nickname = userInfo["nickname"] as? String {
user.nickname = nickname
}
if let introduction = userInfo["introduction"] as? String {
user.introduction = introduction
}
if let avatarURLString = userInfo["avatar_url"] as? String {
user.avatarURLString = avatarURLString
}
if let badge = userInfo["badge"] as? String {
user.badge = badge
}
//
if let learningSkillsData = userInfo["learning_skills"] as? [JSONDictionary] {
user.learningSkills.removeAll()
let userSkills = userSkillsFromSkillsData(learningSkillsData, inRealm: realm)
user.learningSkills.extend(userSkills)
}
if let masterSkillsData = userInfo["master_skills"] as? [JSONDictionary] {
user.masterSkills.removeAll()
let userSkills = userSkillsFromSkillsData(masterSkillsData, inRealm: realm)
user.masterSkills.extend(userSkills)
}
// Social Account Provider
user.socialAccountProviders.removeAll()
if let providersInfo = userInfo["providers"] as? [String: Bool] {
for (name, enabled) in providersInfo {
let provider = UserSocialAccountProvider()
provider.name = name
provider.enabled = enabled
user.socialAccountProviders.append(provider)
}
}
self?.updateProfileCollectionView()
}
}
self?.updateProfileCollectionView()
})
}
}