Adopt various rust side Timeline API additions (#3423)

* Adopt new reaction toggling API introduced in matrix-org/matrix-rust-sdk/pull/4127

* Adopt the changes introduced in matrix-org/matrix-rust-sdk/pull/4111: use the new `TimelineUniqueId` type instead of `String` for unique timeline identifiers.

* Bump the RustSDK to v1.0.58.

* Fix unit tests
This commit is contained in:
Stefan Ceriu
2024-10-16 19:08:34 +03:00
committed by GitHub
parent 5a89219f9a
commit 0651314e3e
35 changed files with 201 additions and 184 deletions
@@ -179,22 +179,17 @@ final class TimelineProxy: TimelineProxyProtocol {
}
}
func redact(_ timelineItemID: TimelineItemIdentifier, reason: String?) async -> Result<Void, TimelineProxyError> {
MXLog.info("Redacting timeline item: \(timelineItemID)")
guard let eventOrTransactionID = await timelineProvider.itemProxies.firstEventTimelineItemUsingStableID(timelineItemID)?.eventOrTransactionId else {
MXLog.error("Unknown timeline item: \(timelineItemID)")
return .failure(.failedRedacting)
}
func redact(_ eventOrTransactionID: EventOrTransactionId, reason: String?) async -> Result<Void, TimelineProxyError> {
MXLog.info("Redacting timeline item: \(eventOrTransactionID)")
do {
try await timeline.redactEvent(eventOrTransactionId: eventOrTransactionID, reason: reason)
MXLog.info("Redacted timeline item: \(timelineItemID)")
MXLog.info("Redacted timeline item: \(eventOrTransactionID)")
return .success(())
} catch {
MXLog.error("Failed redacting timeline item: \(timelineItemID) with error: \(error)")
MXLog.error("Failed redacting timeline item: \(eventOrTransactionID) with error: \(error)")
return .failure(.sdkError(error))
}
}
@@ -426,15 +421,15 @@ final class TimelineProxy: TimelineProxyProtocol {
}
}
func toggleReaction(_ reaction: String, to itemID: TimelineItemIdentifier) async -> Result<Void, TimelineProxyError> {
MXLog.info("Toggling reaction for event: \(itemID)")
func toggleReaction(_ reaction: String, to eventOrTransactionID: EventOrTransactionId) async -> Result<Void, TimelineProxyError> {
MXLog.info("Toggling reaction \(reaction) for event: \(eventOrTransactionID)")
do {
try await timeline.toggleReaction(uniqueId: itemID.uniqueID, key: reaction)
MXLog.info("Finished toggling reaction for event: \(itemID)")
try await timeline.toggleReaction(itemId: eventOrTransactionID, key: reaction)
MXLog.info("Finished toggling reaction for event: \(eventOrTransactionID)")
return .success(())
} catch {
MXLog.error("Failed toggling reaction for event: \(itemID)")
MXLog.error("Failed toggling reaction for event: \(eventOrTransactionID)")
return .failure(.sdkError(error))
}
}