feat: remove all reaction per emoji for open group moderation.
This commit is contained in:
parent
82f058eae8
commit
cc2bf11950
|
@ -1009,20 +1009,27 @@ extension ConversationVC:
|
|||
|
||||
Storage.shared
|
||||
.read { db -> Promise<Void> in
|
||||
guard let openGroup: OpenGroup = try? OpenGroup.fetchOne(db, id: cellViewModel.threadId) else {
|
||||
guard
|
||||
let openGroup: OpenGroup = try? OpenGroup
|
||||
.fetchOne(db, id: cellViewModel.threadId),
|
||||
let openGroupServerMessageId: Int64 = try? Interaction
|
||||
.select(.openGroupServerMessageId)
|
||||
.filter(id: cellViewModel.id)
|
||||
.asRequest(of: Int64.self)
|
||||
.fetchOne(db)
|
||||
else {
|
||||
return Promise(error: StorageError.objectNotFound)
|
||||
}
|
||||
|
||||
// TODO: Need to add this API ()
|
||||
return Promise.value(())
|
||||
// OpenGroupAPI
|
||||
// .reactionDelete(
|
||||
// db,
|
||||
// emoji: emoji,
|
||||
// in: openGroup.roomToken,
|
||||
// on: openGroup.server
|
||||
// )
|
||||
// .map { _ in () }
|
||||
return OpenGroupAPI
|
||||
.reactionDelete(
|
||||
db,
|
||||
emoji: emoji,
|
||||
id: openGroupServerMessageId,
|
||||
in: openGroup.roomToken,
|
||||
on: openGroup.server
|
||||
)
|
||||
.map { _ in () }
|
||||
}
|
||||
.done { _ in
|
||||
Storage.shared.writeAsync { db in
|
||||
|
|
|
@ -591,6 +591,29 @@ public enum OpenGroupAPI {
|
|||
)
|
||||
}
|
||||
|
||||
// MARK: - Reactions
|
||||
|
||||
public static func reactionDelete(
|
||||
_ db: Database,
|
||||
emoji: String,
|
||||
id: Int64,
|
||||
in roomToken: String,
|
||||
on server: String,
|
||||
using dependencies: SMKDependencies = SMKDependencies()
|
||||
) -> Promise<OnionRequestResponseInfoType> {
|
||||
return OpenGroupAPI
|
||||
.send(
|
||||
db,
|
||||
request: Request<NoBody, Endpoint>(
|
||||
method: .delete,
|
||||
server: server,
|
||||
endpoint: .reactionDelete(roomToken, id: id, emoji: emoji)
|
||||
),
|
||||
using: dependencies
|
||||
)
|
||||
.map { responseInfo, _ in responseInfo }
|
||||
}
|
||||
|
||||
// MARK: - Pinning
|
||||
|
||||
/// Adds a pinned message to this room
|
||||
|
|
|
@ -26,6 +26,11 @@ extension OpenGroupAPI {
|
|||
case roomMessagesSince(String, seqNo: Int64)
|
||||
case roomDeleteMessages(String, sessionId: String)
|
||||
|
||||
// Reactions
|
||||
|
||||
case reactionDelete(String, id: Int64, emoji: String)
|
||||
case reaction(String, id: Int64, emoji: String)
|
||||
|
||||
// Pinning
|
||||
|
||||
case roomPinMessage(String, id: Int64)
|
||||
|
@ -86,6 +91,14 @@ extension OpenGroupAPI {
|
|||
|
||||
case .roomDeleteMessages(let roomToken, let sessionId):
|
||||
return "room/\(roomToken)/all/\(sessionId)"
|
||||
|
||||
// Reactions
|
||||
|
||||
case .reactionDelete(let roomToken, let messageId, let emoji):
|
||||
return "room/\(roomToken)/reactions/\(messageId)/\(emoji)"
|
||||
|
||||
case .reaction(let roomToken, let messageId, let emoji):
|
||||
return "room/\(roomToken)/reaction/\(messageId)/\(emoji)"
|
||||
|
||||
// Pinning
|
||||
|
||||
|
|
Loading…
Reference in New Issue