forked from zelo72/mastodon-ios
chore: update toot relationship in CoreData
This commit is contained in:
parent
99f2e4a854
commit
9670ad2924
|
@ -161,6 +161,42 @@ public extension Toot {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
func update(reblogged: Bool, mastodonUser: MastodonUser) {
|
||||||
|
if reblogged {
|
||||||
|
if !(self.rebloggedBy ?? Set()).contains(mastodonUser) {
|
||||||
|
self.mutableSetValue(forKey: #keyPath(Toot.rebloggedBy)).addObjects(from: [mastodonUser])
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (self.rebloggedBy ?? Set()).contains(mastodonUser) {
|
||||||
|
self.mutableSetValue(forKey: #keyPath(Toot.rebloggedBy)).remove(mastodonUser)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func update(muted: Bool, mastodonUser: MastodonUser) {
|
||||||
|
if muted {
|
||||||
|
if !(self.mutedBy ?? Set()).contains(mastodonUser) {
|
||||||
|
self.mutableSetValue(forKey: #keyPath(Toot.mutedBy)).addObjects(from: [mastodonUser])
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (self.mutedBy ?? Set()).contains(mastodonUser) {
|
||||||
|
self.mutableSetValue(forKey: #keyPath(Toot.mutedBy)).remove(mastodonUser)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func update(bookmarked: Bool, mastodonUser: MastodonUser) {
|
||||||
|
if bookmarked {
|
||||||
|
if !(self.bookmarkedBy ?? Set()).contains(mastodonUser) {
|
||||||
|
self.mutableSetValue(forKey: #keyPath(Toot.bookmarkedBy)).addObjects(from: [mastodonUser])
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (self.bookmarkedBy ?? Set()).contains(mastodonUser) {
|
||||||
|
self.mutableSetValue(forKey: #keyPath(Toot.bookmarkedBy)).remove(mastodonUser)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func didUpdate(at networkDate: Date) {
|
func didUpdate(at networkDate: Date) {
|
||||||
self.updatedAt = networkDate
|
self.updatedAt = networkDate
|
||||||
}
|
}
|
||||||
|
|
|
@ -73,11 +73,11 @@ extension APIService.CoreData {
|
||||||
mentions: metions,
|
mentions: metions,
|
||||||
emojis: emojis,
|
emojis: emojis,
|
||||||
tags: tags,
|
tags: tags,
|
||||||
favouritedBy: (entity.favourited ?? false) ? mastodonUser : nil,
|
favouritedBy: (entity.favourited ?? false) ? requestMastodonUser : nil,
|
||||||
rebloggedBy: (entity.reblogged ?? false) ? mastodonUser : nil,
|
rebloggedBy: (entity.reblogged ?? false) ? requestMastodonUser : nil,
|
||||||
mutedBy: (entity.muted ?? false) ? mastodonUser : nil,
|
mutedBy: (entity.muted ?? false) ? requestMastodonUser : nil,
|
||||||
bookmarkedBy: (entity.bookmarked ?? false) ? mastodonUser : nil,
|
bookmarkedBy: (entity.bookmarked ?? false) ? requestMastodonUser : nil,
|
||||||
pinnedBy: (entity.pinned ?? false) ? mastodonUser : nil
|
pinnedBy: (entity.pinned ?? false) ? requestMastodonUser : nil
|
||||||
)
|
)
|
||||||
return (toot, true, isMastodonUserCreated)
|
return (toot, true, isMastodonUserCreated)
|
||||||
}
|
}
|
||||||
|
@ -99,6 +99,24 @@ extension APIService.CoreData {
|
||||||
toot.update(reblogsCount:NSNumber(value: entity.reblogsCount))
|
toot.update(reblogsCount:NSNumber(value: entity.reblogsCount))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if let mastodonUser = requestMastodonUser {
|
||||||
|
if let favourited = entity.favourited {
|
||||||
|
toot.update(liked: favourited, mastodonUser: mastodonUser)
|
||||||
|
}
|
||||||
|
if let reblogged = entity.reblogged {
|
||||||
|
toot.update(reblogged: reblogged, mastodonUser: mastodonUser)
|
||||||
|
}
|
||||||
|
if let muted = entity.muted {
|
||||||
|
toot.update(muted: muted, mastodonUser: mastodonUser)
|
||||||
|
}
|
||||||
|
if let bookmarked = entity.bookmarked {
|
||||||
|
toot.update(bookmarked: bookmarked, mastodonUser: mastodonUser)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// set updateAt
|
// set updateAt
|
||||||
toot.didUpdate(at: networkDate)
|
toot.didUpdate(at: networkDate)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue