better prepareConversationForFeed, getOrCreateUserWithDiscoverUser, saveFeedWithDiscoveredFeed

This commit is contained in:
nixzhu
2015-12-02 21:11:02 +08:00
parent 40203d3f16
commit 4d9426ea5f
6 changed files with 42 additions and 59 deletions
+5 -2
View File
@@ -326,11 +326,14 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
guard let
vc = UIStoryboard(name: "Main", bundle: nil).instantiateViewControllerWithIdentifier("ConversationViewController") as? ConversationViewController,
realm = try? Realm(),
feedConversation = vc.prepareConversationForFeed(feed, inRealm: realm) else {
realm = try? Realm() else {
return
}
realm.beginWrite()
let feedConversation = vc.prepareConversationForFeed(feed, inRealm: realm)
let _ = try? realm.commitWrite()
vc.conversation = feedConversation
vc.conversationFeed = ConversationFeed.DiscoveredFeedType(feed)
+9 -23
View File
@@ -971,10 +971,8 @@ func saveFeedWithDiscoveredFeed(feedData: DiscoveredFeed, group: Group, inRealm
if let feed = feedWithFeedID(feedData.id, inRealm: realm) {
println("saveFeed: \(feedData.kind.rawValue), \(feed.feedID), do nothing.")
//let _ = try? realm.write {
feed.kind = feedData.kind.rawValue
feed.deleted = false
//}
feed.kind = feedData.kind.rawValue
feed.deleted = false
#if DEBUG
if feed.group == nil {
@@ -1000,9 +998,7 @@ func saveFeedWithDiscoveredFeed(feedData: DiscoveredFeed, group: Group, inRealm
newFeed.messagesCount = feedData.messagesCount
if let feedSkill = feedData.skill {
let _ = try? realm.write {
newFeed.skill = userSkillsFromSkills([feedSkill], inRealm: realm).first
}
newFeed.skill = userSkillsFromSkills([feedSkill], inRealm: realm).first
}
if let attachment = feedData.attachment {
@@ -1027,17 +1023,13 @@ func saveFeedWithDiscoveredFeed(feedData: DiscoveredFeed, group: Group, inRealm
let newSocialWorkGithubRepo = SocialWorkGithubRepo()
newSocialWorkGithubRepo.fillWithFeedGithubRepo(repo)
let _ = try? realm.write {
realm.add(newSocialWorkGithubRepo)
}
realm.add(newSocialWorkGithubRepo)
socialWorkGithubRepo = newSocialWorkGithubRepo
}
if let socialWorkGithubRepo = socialWorkGithubRepo {
let _ = try? realm.write {
socialWorkGithubRepo.synced = true
}
socialWorkGithubRepo.synced = true
}
socialWork.githubRepo = socialWorkGithubRepo
@@ -1056,17 +1048,13 @@ func saveFeedWithDiscoveredFeed(feedData: DiscoveredFeed, group: Group, inRealm
let newSocialWorkDribbbleShot = SocialWorkDribbbleShot()
newSocialWorkDribbbleShot.fillWithFeedDribbbleShot(shot)
let _ = try? realm.write {
realm.add(newSocialWorkDribbbleShot)
}
realm.add(newSocialWorkDribbbleShot)
socialWorkDribbbleShot = newSocialWorkDribbbleShot
}
if let socialWorkDribbbleShot = socialWorkDribbbleShot {
let _ = try? realm.write {
socialWorkDribbbleShot.synced = true
}
socialWorkDribbbleShot.synced = true
}
socialWork.dribbbleShot = socialWorkDribbbleShot
@@ -1097,10 +1085,8 @@ func saveFeedWithDiscoveredFeed(feedData: DiscoveredFeed, group: Group, inRealm
newFeed.group = group
//let _ = try? realm.write {
group.groupType = GroupType.Public.rawValue
realm.add(newFeed)
//}
group.groupType = GroupType.Public.rawValue
realm.add(newFeed)
}
}
+14 -19
View File
@@ -38,38 +38,33 @@ func getOrCreateUserWithDiscoverUser(discoveredUser: DiscoveredUser, inRealm rea
newUser.friendState = UserFriendState.Stranger.rawValue
let _ = try? realm.write {
realm.add(newUser)
}
realm.add(newUser)
user = newUser
}
if let user = user {
let _ = try? realm.write {
//
//
user.lastSignInUnixTime = discoveredUser.lastSignInUnixTime
user.lastSignInUnixTime = discoveredUser.lastSignInUnixTime
user.username = discoveredUser.username ?? ""
user.username = discoveredUser.username ?? ""
user.nickname = discoveredUser.nickname
user.nickname = discoveredUser.nickname
if let introduction = discoveredUser.introduction {
user.introduction = introduction
}
if let introduction = discoveredUser.introduction {
user.introduction = introduction
}
user.avatarURLString = discoveredUser.avatarURLString
user.avatarURLString = discoveredUser.avatarURLString
user.longitude = discoveredUser.longitude
user.longitude = discoveredUser.longitude
user.latitude = discoveredUser.latitude
if let badge = discoveredUser.badge {
user.badge = badge
}
user.latitude = discoveredUser.latitude
if let badge = discoveredUser.badge {
user.badge = badge
}
}
@@ -22,9 +22,7 @@ extension ConversationViewController {
newGroup.groupID = groupID
newGroup.includeMe = false
let _ = try? realm.write {
realm.add(newGroup)
}
realm.add(newGroup)
group = newGroup
}
@@ -33,9 +31,7 @@ extension ConversationViewController {
return nil
}
let _ = try? realm.write {
feedGroup.groupType = GroupType.Public.rawValue
}
feedGroup.groupType = GroupType.Public.rawValue
if feedGroup.conversation == nil {
@@ -44,9 +40,7 @@ extension ConversationViewController {
newConversation.type = ConversationType.Group.rawValue
newConversation.withGroup = feedGroup
let _ = try? realm.write {
realm.add(newConversation)
}
realm.add(newConversation)
}
guard let feedConversation = feedGroup.conversation else {
@@ -60,9 +54,7 @@ extension ConversationViewController {
*/
if let group = group {
let _ = try? realm.write {
saveFeedWithDiscoveredFeed(feed, group: group, inRealm: realm)
}
saveFeedWithDiscoveredFeed(feed, group: group, inRealm: realm)
}
return feedConversation
@@ -51,7 +51,11 @@ enum ConversationFeed {
guard let realm = try? Realm() else {
return nil
}
return getOrCreateUserWithDiscoverUser(discoveredFeed.creator, inRealm: realm)
realm.beginWrite()
let user = getOrCreateUserWithDiscoverUser(discoveredFeed.creator, inRealm: realm)
let _ = try? realm.commitWrite()
return user
case .FeedType(let feed):
return feed.creator
@@ -580,11 +580,14 @@ class FeedsViewController: BaseViewController {
guard let
indexPath = sender as? NSIndexPath,
feed = feeds[safe: indexPath.row],
realm = try? Realm(),
feedConversation = vc.prepareConversationForFeed(feed, inRealm: realm) else {
realm = try? Realm() else {
return
}
realm.beginWrite()
let feedConversation = vc.prepareConversationForFeed(feed, inRealm: realm)
let _ = try? realm.commitWrite()
vc.conversation = feedConversation
vc.conversationFeed = ConversationFeed.DiscoveredFeedType(feed)
vc.afterDeletedFeedAction = { [weak self] in