Skip to content

Commit 30f8059

Browse files
committed
Fix updates
1 parent 39494c4 commit 30f8059

File tree

2 files changed

+16
-7
lines changed

2 files changed

+16
-7
lines changed

Sources/ParseCareKit/Models/PCKRevisionRecord.swift

+2-5
Original file line numberDiff line numberDiff line change
@@ -112,15 +112,12 @@ struct PCKRevisionRecord: ParseObject, Equatable, Codable {
112112
logicalClock, clock, clockUUID
113113
}
114114

115-
func convertToCareKit(_ vector: OCKRevisionRecord.KnowledgeVector? = nil) throws -> OCKRevisionRecord {
115+
func convertToCareKit() throws -> OCKRevisionRecord {
116116
guard let entities = entities,
117-
var knowledgeVector = knowledgeVector else {
117+
let knowledgeVector = knowledgeVector else {
118118
throw ParseCareKitError.couldntUnwrapSelf
119119
}
120120
let careKitEntities = try entities.compactMap { try $0.careKit() }
121-
if let vector = vector {
122-
knowledgeVector.merge(with: vector)
123-
}
124121
return OCKRevisionRecord(entities: careKitEntities,
125122
knowledgeVector: knowledgeVector)
126123
}

Sources/ParseCareKit/ParseRemote.swift

+14-2
Original file line numberDiff line numberDiff line change
@@ -280,7 +280,7 @@ public class ParseRemote: OCKRemoteSynchronizable {
280280
total: revisions.count)
281281
// 2.1 Merge revisions
282282
for (index, revision) in revisions.enumerated() {
283-
let record = try await revision.fetchEntities().convertToCareKit(knowledgeVector)
283+
let record = try await revision.fetchEntities().convertToCareKit()
284284
mergeRevision(record)
285285
self.notifyRevisionProgress(index + 1,
286286
total: revisions.count)
@@ -393,8 +393,20 @@ public class ParseRemote: OCKRemoteSynchronizable {
393393
if shouldIncrementClock {
394394
// Increment Knowledge Vector
395395
updatedParseVector = incrementVectorClock(updatedParseVector)
396+
updatedParseVector.merge(with: localClock)
397+
} else {
398+
updatedParseVector.merge(with: localClock)
399+
guard updatedParseVector.uuids.count > parseVector.uuids.count else {
400+
Logger.pushRevisions.debug("Finished pushing revisions")
401+
await self.remoteStatus.notSynchronzing()
402+
await self.subscribeToRevisionRecord()
403+
DispatchQueue.main.async {
404+
self.parseRemoteDelegate?.successfullyPushedDataToCloud()
405+
}
406+
completion(nil)
407+
return
408+
}
396409
}
397-
updatedParseVector.merge(with: localClock)
398410

399411
guard let updatedClock = PCKClock.encodeVector(updatedParseVector, for: parseClock) else {
400412
await self.remoteStatus.notSynchronzing()

0 commit comments

Comments
 (0)