Fix/issue 12944 member cant leave the community (#12958)
Close #12944 * fix: Check if activityCenterNotifications are present in the response * chore: Review fixes & code cleanup
This commit is contained in:
parent
c41bb433d3
commit
123770c0e3
|
@ -1,8 +1,16 @@
|
|||
import json
|
||||
|
||||
import json, json_serialization
|
||||
import ../../app/core/eventemitter
|
||||
|
||||
include json_utils
|
||||
|
||||
const SIGNAL_PARSE_RAW_ACTIVITY_CENTER_NOTIFICATIONS* = "parseRawActivityCenterNotifications"
|
||||
|
||||
type RawActivityCenterNotificationsArgs* = ref object of Args
|
||||
activityCenterNotifications*: JsonNode
|
||||
|
||||
proc checkAndEmitACNotificationsFromResponse*(events: EventEmitter, activityCenterNotifications: JsonNode) =
|
||||
if activityCenterNotifications == nil or activityCenterNotifications.kind == JNull:
|
||||
return
|
||||
|
||||
events.emit(SIGNAL_PARSE_RAW_ACTIVITY_CENTER_NOTIFICATIONS,
|
||||
RawActivityCenterNotificationsArgs(activityCenterNotifications: activityCenterNotifications))
|
|
@ -1,11 +1,10 @@
|
|||
import NimQml, json, sequtils, chronicles, strutils, strutils, stint, sugar
|
||||
import NimQml, json, sequtils, chronicles, strutils, strutils, stint, sugar, tables, json_serialization
|
||||
|
||||
import ../../../app/core/eventemitter
|
||||
import ../../../app/core/[main]
|
||||
import ../../../app/core/tasks/[qt, threadpool]
|
||||
|
||||
import web3/ethtypes, web3/conversions, stew/byteutils, nimcrypto, json_serialization, chronicles
|
||||
import json, tables, json_serialization
|
||||
import web3/ethtypes, web3/conversions, stew/byteutils, nimcrypto
|
||||
|
||||
import ../../../backend/backend
|
||||
import ../../../backend/response_type
|
||||
|
@ -103,7 +102,7 @@ QtObject:
|
|||
|
||||
self.events.on(SIGNAL_PARSE_RAW_ACTIVITY_CENTER_NOTIFICATIONS) do(e: Args):
|
||||
let raw = RawActivityCenterNotificationsArgs(e)
|
||||
if raw.activityCenterNotifications.kind != JNull:
|
||||
if raw.activityCenterNotifications.len > 0:
|
||||
var activityCenterNotifications: seq[ActivityCenterNotificationDto] = @[]
|
||||
for notificationJson in raw.activityCenterNotifications:
|
||||
activityCenterNotifications.add(notificationJson.toActivityCenterNotificationDto)
|
||||
|
|
|
@ -529,8 +529,7 @@ QtObject:
|
|||
if prev_community.isOwner and not community.isOwner:
|
||||
self.events.emit(SIGNAL_COMMUNITY_LOST_OWNERSHIP, CommunityIdArgs(communityId: community.id))
|
||||
let response = tokens_backend.registerLostOwnershipNotification(community.id)
|
||||
self.events.emit(SIGNAL_PARSE_RAW_ACTIVITY_CENTER_NOTIFICATIONS,
|
||||
RawActivityCenterNotificationsArgs(activityCenterNotifications: response.result["activityCenterNotifications"]))
|
||||
checkAndEmitACNotificationsFromResponse(self.events, response.result{"activityCenterNotifications"})
|
||||
|
||||
# If there's settings without `id` it means the original
|
||||
# signal didn't include actual communitySettings, hence we
|
||||
|
@ -998,8 +997,6 @@ QtObject:
|
|||
proc leaveCommunity*(self: Service, communityId: string) =
|
||||
try:
|
||||
let response = status_go.leaveCommunity(communityId)
|
||||
self.events.emit(SIGNAL_PARSE_RAW_ACTIVITY_CENTER_NOTIFICATIONS,
|
||||
RawActivityCenterNotificationsArgs(activityCenterNotifications: response.result["activityCenterNotifications"]))
|
||||
|
||||
if response.error != nil:
|
||||
let error = Json.decode($response.error, RpcError)
|
||||
|
@ -1018,6 +1015,7 @@ QtObject:
|
|||
self.messageService.resetMessageCursor(chat.id)
|
||||
|
||||
self.events.emit(SIGNAL_COMMUNITY_LEFT, CommunityIdArgs(communityId: communityId))
|
||||
checkAndEmitACNotificationsFromResponse(self.events, response.result{"activityCenterNotifications"})
|
||||
|
||||
except Exception as e:
|
||||
error "Error leaving community", msg = e.msg, communityId
|
||||
|
@ -1626,8 +1624,7 @@ QtObject:
|
|||
raise newException(CatchableError, rpcResponseObj{"error"}.getStr)
|
||||
|
||||
let rpcResponse = Json.decode($rpcResponseObj["response"], RpcResponse[JsonNode])
|
||||
self.events.emit(SIGNAL_PARSE_RAW_ACTIVITY_CENTER_NOTIFICATIONS,
|
||||
RawActivityCenterNotificationsArgs(activityCenterNotifications: rpcResponse.result["activityCenterNotifications"]))
|
||||
checkAndEmitACNotificationsFromResponse(self.events, rpcResponse.result{"activityCenterNotifications"})
|
||||
|
||||
if not self.processRequestsToJoinCommunity(rpcResponse.result):
|
||||
raise newException(CatchableError, "no 'requestsToJoinCommunity' key in response")
|
||||
|
@ -1718,9 +1715,8 @@ QtObject:
|
|||
self.events.emit(SIGNAL_COMMUNITY_MEMBER_APPROVED,
|
||||
CommunityMemberArgs(communityId: communityId, pubKey: userKey, requestId: requestId))
|
||||
|
||||
self.events.emit(SIGNAL_PARSE_RAW_ACTIVITY_CENTER_NOTIFICATIONS,
|
||||
RawActivityCenterNotificationsArgs(activityCenterNotifications:
|
||||
rpcResponseObj["response"]["result"]{"activityCenterNotifications"}))
|
||||
let rpcResponse = Json.decode($rpcResponseObj["response"], RpcResponse[JsonNode])
|
||||
checkAndEmitACNotificationsFromResponse(self.events, rpcResponse.result{"activityCenterNotifications"})
|
||||
|
||||
except Exception as e:
|
||||
let errMsg = e.msg
|
||||
|
@ -1986,9 +1982,8 @@ QtObject:
|
|||
|
||||
community.pendingRequestsToJoin.delete(i)
|
||||
self.communities[communityId] = community
|
||||
self.events.emit(SIGNAL_PARSE_RAW_ACTIVITY_CENTER_NOTIFICATIONS,
|
||||
RawActivityCenterNotificationsArgs(activityCenterNotifications: response.result["activityCenterNotifications"]))
|
||||
self.events.emit(SIGNAL_REQUEST_TO_JOIN_COMMUNITY_CANCELED, Args())
|
||||
checkAndEmitACNotificationsFromResponse(self.events, response.result{"activityCenterNotifications"})
|
||||
return
|
||||
|
||||
i.inc()
|
||||
|
@ -1998,15 +1993,13 @@ QtObject:
|
|||
proc declineRequestToJoinCommunity*(self: Service, communityId: string, requestId: string) =
|
||||
try:
|
||||
let response = status_go.declineRequestToJoinCommunity(requestId)
|
||||
self.events.emit(SIGNAL_PARSE_RAW_ACTIVITY_CENTER_NOTIFICATIONS,
|
||||
RawActivityCenterNotificationsArgs(activityCenterNotifications: response.result["activityCenterNotifications"]))
|
||||
|
||||
let requestToJoin = response.result["requestsToJoinCommunity"][0].toCommunityMembershipRequestDto
|
||||
|
||||
self.updateMembershipRequestToNewState(communityId, requestId, self.communities[communityId],
|
||||
RequestToJoinType(requestToJoin.state))
|
||||
|
||||
self.events.emit(SIGNAL_COMMUNITY_EDITED, CommunityArgs(community: self.communities[communityId]))
|
||||
checkAndEmitACNotificationsFromResponse(self.events, response.result{"activityCenterNotifications"})
|
||||
except Exception as e:
|
||||
error "Error declining request to join community", msg = e.msg
|
||||
|
||||
|
|
|
@ -297,9 +297,9 @@ QtObject:
|
|||
self.events.emit(SIGNAL_OWNER_TOKEN_RECEIVED, tokenReceivedArgs)
|
||||
let finaliseStatusArgs = FinaliseOwnershipStatusArgs(isPending: true, communityId: communityId)
|
||||
self.events.emit(SIGNAL_FINALISE_OWNERSHIP_STATUS, finaliseStatusArgs)
|
||||
|
||||
let response = tokens_backend.registerOwnerTokenReceivedNotification(communityId)
|
||||
self.events.emit(SIGNAL_PARSE_RAW_ACTIVITY_CENTER_NOTIFICATIONS,
|
||||
RawActivityCenterNotificationsArgs(activityCenterNotifications: response.result["activityCenterNotifications"]))
|
||||
checkAndEmitACNotificationsFromResponse(self.events, response.result{"activityCenterNotifications"})
|
||||
|
||||
except Exception as e:
|
||||
error "Error registering owner token received notification", msg=e.msg
|
||||
|
@ -320,9 +320,10 @@ QtObject:
|
|||
transactionHash: transactionArgs.transactionHash,
|
||||
communityId: contractDetails.communityId)
|
||||
self.events.emit(SIGNAL_SET_SIGNER_STATUS, data)
|
||||
|
||||
let response = if transactionArgs.success: tokens_backend.registerReceivedOwnershipNotification(contractDetails.communityId) else: tokens_backend.registerSetSignerFailedNotification(contractDetails.communityId)
|
||||
self.events.emit(SIGNAL_PARSE_RAW_ACTIVITY_CENTER_NOTIFICATIONS,
|
||||
RawActivityCenterNotificationsArgs(activityCenterNotifications: response.result["activityCenterNotifications"]))
|
||||
checkAndEmitACNotificationsFromResponse(self.events, response.result{"activityCenterNotifications"})
|
||||
|
||||
let notificationToSetRead = self.acService.getNotificationForTypeAndCommunityId(notification.ActivityCenterNotificationType.OwnerTokenReceived, contractDetails.communityId)
|
||||
if notificationToSetRead != nil:
|
||||
self.acService.markActivityCenterNotificationRead(notificationToSetRead.id)
|
||||
|
@ -1282,8 +1283,7 @@ QtObject:
|
|||
discard self.acService.deleteActivityCenterNotifications(@[notification.id])
|
||||
try:
|
||||
let response = tokens_backend.registerSetSignerDeclinedNotification(communityId)
|
||||
self.events.emit(SIGNAL_PARSE_RAW_ACTIVITY_CENTER_NOTIFICATIONS,
|
||||
RawActivityCenterNotificationsArgs(activityCenterNotifications: response.result["activityCenterNotifications"]))
|
||||
checkAndEmitACNotificationsFromResponse(self.events, response.result{"activityCenterNotifications"})
|
||||
except Exception as e:
|
||||
error "Error registering decline set signer notification", msg=e.msg
|
||||
let finaliseStatusArgs = FinaliseOwnershipStatusArgs(isPending: false, communityId: communityId)
|
||||
|
|
|
@ -470,9 +470,8 @@ QtObject:
|
|||
return
|
||||
|
||||
self.parseContactsResponse(response)
|
||||
self.events.emit(SIGNAL_PARSE_RAW_ACTIVITY_CENTER_NOTIFICATIONS,
|
||||
RawActivityCenterNotificationsArgs(activityCenterNotifications: response.result["activityCenterNotifications"]))
|
||||
self.events.emit(SIGNAL_RELOAD_ONE_TO_ONE_CHAT, ReloadOneToOneArgs(sectionId: publicKey))
|
||||
checkAndEmitACNotificationsFromResponse(self.events, response.result{"activityCenterNotifications"})
|
||||
|
||||
except Exception as e:
|
||||
error "an error occurred while sending contact request", msg = e.msg
|
||||
|
@ -491,9 +490,8 @@ QtObject:
|
|||
return
|
||||
|
||||
self.parseContactsResponse(response)
|
||||
self.events.emit(SIGNAL_PARSE_RAW_ACTIVITY_CENTER_NOTIFICATIONS,
|
||||
RawActivityCenterNotificationsArgs(activityCenterNotifications: response.result["activityCenterNotifications"]))
|
||||
self.events.emit(SIGNAL_RELOAD_ONE_TO_ONE_CHAT, ReloadOneToOneArgs(sectionId: publicKey))
|
||||
checkAndEmitACNotificationsFromResponse(self.events, response.result{"activityCenterNotifications"})
|
||||
|
||||
except Exception as e:
|
||||
error "an error occurred while accepting contact request", msg=e.msg
|
||||
|
@ -512,8 +510,7 @@ QtObject:
|
|||
return
|
||||
|
||||
self.parseContactsResponse(response)
|
||||
self.events.emit(SIGNAL_PARSE_RAW_ACTIVITY_CENTER_NOTIFICATIONS,
|
||||
RawActivityCenterNotificationsArgs(activityCenterNotifications: response.result["activityCenterNotifications"]))
|
||||
checkAndEmitACNotificationsFromResponse(self.events, response.result{"activityCenterNotifications"})
|
||||
|
||||
except Exception as e:
|
||||
error "an error occurred while dismissing contact request", msg=e.msg
|
||||
|
@ -561,8 +558,7 @@ QtObject:
|
|||
|
||||
self.events.emit(SIGNAL_RELOAD_ONE_TO_ONE_CHAT, ReloadOneToOneArgs(sectionId: publicKey))
|
||||
self.parseContactsResponse(response)
|
||||
self.events.emit(SIGNAL_PARSE_RAW_ACTIVITY_CENTER_NOTIFICATIONS,
|
||||
RawActivityCenterNotificationsArgs(activityCenterNotifications: response.result["activityCenterNotifications"]))
|
||||
checkAndEmitACNotificationsFromResponse(self.events, response.result{"activityCenterNotifications"})
|
||||
|
||||
proc ensResolved*(self: Service, jsonObj: string) {.slot.} =
|
||||
let jsonObj = jsonObj.parseJson()
|
||||
|
@ -620,16 +616,15 @@ QtObject:
|
|||
if not response.error.isNil:
|
||||
let msg = response.error.message
|
||||
raise newException(RpcException, msg)
|
||||
self.events.emit(SIGNAL_PARSE_RAW_ACTIVITY_CENTER_NOTIFICATIONS,
|
||||
RawActivityCenterNotificationsArgs(activityCenterNotifications: response.result["activityCenterNotifications"]))
|
||||
|
||||
if self.contacts.hasKey(publicKey):
|
||||
self.contacts[publicKey].dto.trustStatus = TrustStatus.Trusted
|
||||
self.contacts[publicKey].dto.verificationStatus = VerificationStatus.Trusted
|
||||
|
||||
self.events.emit(SIGNAL_CONTACT_TRUSTED,
|
||||
TrustArgs(publicKey: publicKey, isUntrustworthy: false))
|
||||
self.events.emit(SIGNAL_CONTACT_TRUSTED, TrustArgs(publicKey: publicKey, isUntrustworthy: false))
|
||||
self.events.emit(SIGNAL_CONTACT_VERIFIED, ContactArgs(contactId: publicKey))
|
||||
checkAndEmitACNotificationsFromResponse(self.events, response.result{"activityCenterNotifications"})
|
||||
|
||||
except Exception as e:
|
||||
error "error verified trusted request", msg=e.msg
|
||||
|
||||
|
@ -646,16 +641,15 @@ QtObject:
|
|||
if not response.error.isNil:
|
||||
let msg = response.error.message
|
||||
raise newException(RpcException, msg)
|
||||
self.events.emit(SIGNAL_PARSE_RAW_ACTIVITY_CENTER_NOTIFICATIONS,
|
||||
RawActivityCenterNotificationsArgs(activityCenterNotifications: response.result["activityCenterNotifications"]))
|
||||
|
||||
if self.contacts.hasKey(publicKey):
|
||||
self.contacts[publicKey].dto.trustStatus = TrustStatus.Untrustworthy
|
||||
self.contacts[publicKey].dto.verificationStatus = VerificationStatus.Untrustworthy
|
||||
|
||||
self.events.emit(SIGNAL_CONTACT_UNTRUSTWORTHY,
|
||||
TrustArgs(publicKey: publicKey, isUntrustworthy: true))
|
||||
self.events.emit(SIGNAL_CONTACT_UNTRUSTWORTHY, TrustArgs(publicKey: publicKey, isUntrustworthy: true))
|
||||
self.events.emit(SIGNAL_CONTACT_VERIFIED, ContactArgs(contactId: publicKey))
|
||||
checkAndEmitACNotificationsFromResponse(self.events, response.result{"activityCenterNotifications"})
|
||||
|
||||
except Exception as e:
|
||||
error "error verified untrustworthy request", msg=e.msg
|
||||
|
||||
|
@ -720,8 +714,8 @@ QtObject:
|
|||
self.saveContact(contact)
|
||||
|
||||
self.events.emit(SIGNAL_CONTACT_VERIFICATION_SENT, ContactArgs(contactId: publicKey))
|
||||
self.events.emit(SIGNAL_PARSE_RAW_ACTIVITY_CENTER_NOTIFICATIONS,
|
||||
RawActivityCenterNotificationsArgs(activityCenterNotifications: response.result["activityCenterNotifications"]))
|
||||
checkAndEmitACNotificationsFromResponse(self.events, response.result{"activityCenterNotifications"})
|
||||
|
||||
except Exception as e:
|
||||
error "Error sending verification request", msg = e.msg
|
||||
|
||||
|
@ -744,8 +738,8 @@ QtObject:
|
|||
self.saveContact(contact)
|
||||
|
||||
self.events.emit(SIGNAL_CONTACT_VERIFICATION_CANCELLED, ContactArgs(contactId: publicKey))
|
||||
self.events.emit(SIGNAL_PARSE_RAW_ACTIVITY_CENTER_NOTIFICATIONS,
|
||||
RawActivityCenterNotificationsArgs(activityCenterNotifications: response.result["activityCenterNotifications"]))
|
||||
checkAndEmitACNotificationsFromResponse(self.events, response.result{"activityCenterNotifications"})
|
||||
|
||||
except Exception as e:
|
||||
error "Error canceling verification request", msg = e.msg
|
||||
|
||||
|
@ -765,10 +759,9 @@ QtObject:
|
|||
request.repliedAt = getTime().toUnix * 1000
|
||||
self.receivedIdentityRequests[publicKey] = request
|
||||
|
||||
self.events.emit(SIGNAL_CONTACT_VERIFICATION_ACCEPTED,
|
||||
VerificationRequestArgs(verificationRequest: request))
|
||||
self.events.emit(SIGNAL_PARSE_RAW_ACTIVITY_CENTER_NOTIFICATIONS,
|
||||
RawActivityCenterNotificationsArgs(activityCenterNotifications: response.result["activityCenterNotifications"]))
|
||||
self.events.emit(SIGNAL_CONTACT_VERIFICATION_ACCEPTED, VerificationRequestArgs(verificationRequest: request))
|
||||
checkAndEmitACNotificationsFromResponse(self.events, response.result{"activityCenterNotifications"})
|
||||
|
||||
except Exception as e:
|
||||
error "error accepting contact verification request", msg=e.msg
|
||||
|
||||
|
@ -787,8 +780,8 @@ QtObject:
|
|||
self.receivedIdentityRequests[publicKey] = request
|
||||
|
||||
self.events.emit(SIGNAL_CONTACT_VERIFICATION_DECLINED, ContactArgs(contactId: publicKey))
|
||||
self.events.emit(SIGNAL_PARSE_RAW_ACTIVITY_CENTER_NOTIFICATIONS,
|
||||
RawActivityCenterNotificationsArgs(activityCenterNotifications: response.result["activityCenterNotifications"]))
|
||||
checkAndEmitACNotificationsFromResponse(self.events, response.result{"activityCenterNotifications"})
|
||||
|
||||
except Exception as e:
|
||||
error "error declining contact verification request", msg=e.msg
|
||||
|
||||
|
|
|
@ -125,19 +125,16 @@ const asyncMarkAllMessagesReadTask: Task = proc(argEncoded: string) {.gcsafe, ni
|
|||
|
||||
let response = status_go.markAllMessagesFromChatWithIdAsRead(arg.chatId)
|
||||
|
||||
var activityCenterNotifications: JsonNode
|
||||
var activityCenterNotifications: JsonNode = newJObject()
|
||||
discard response.result.getProp("activityCenterNotifications", activityCenterNotifications)
|
||||
|
||||
let responseJson = %*{
|
||||
"chatId": arg.chatId,
|
||||
"activityCenterNotifications": activityCenterNotifications,
|
||||
"error": response.error
|
||||
}
|
||||
|
||||
if activityCenterNotifications != nil:
|
||||
responseJson["activityCenterNotifications"] = activityCenterNotifications
|
||||
|
||||
arg.finish(responseJson)
|
||||
#################################################
|
||||
|
||||
#################################################
|
||||
# Async mark certain messages read
|
||||
|
@ -158,7 +155,7 @@ const asyncMarkCertainMessagesReadTask: Task = proc(argEncoded: string) {.gcsafe
|
|||
var countWithMentions: int
|
||||
discard response.result.getProp("countWithMentions", countWithMentions)
|
||||
|
||||
var activityCenterNotifications: JsonNode
|
||||
var activityCenterNotifications: JsonNode = newJObject()
|
||||
discard response.result.getProp("activityCenterNotifications", activityCenterNotifications)
|
||||
|
||||
var error = ""
|
||||
|
@ -170,12 +167,10 @@ const asyncMarkCertainMessagesReadTask: Task = proc(argEncoded: string) {.gcsafe
|
|||
"messagesIds": arg.messagesIds,
|
||||
"count": count,
|
||||
"countWithMentions": countWithMentions,
|
||||
"activityCenterNotifications": activityCenterNotifications,
|
||||
"error": error
|
||||
}
|
||||
|
||||
if activityCenterNotifications != nil:
|
||||
responseJson["activityCenterNotifications"] = activityCenterNotifications
|
||||
|
||||
arg.finish(responseJson)
|
||||
|
||||
|
||||
|
@ -322,13 +317,11 @@ const asyncMarkMessageAsUnreadTask: Task = proc(argEncoded: string) {.gcsafe, ni
|
|||
try:
|
||||
let response = status_go.markMessageAsUnread(arg.chatId, arg.messageId)
|
||||
|
||||
var activityCenterNotifications: JsonNode
|
||||
var activityCenterNotifications: JsonNode = newJObject()
|
||||
discard response.result.getProp("activityCenterNotifications", activityCenterNotifications)
|
||||
|
||||
if activityCenterNotifications != nil:
|
||||
responseJson["activityCenterNotifications"] = activityCenterNotifications
|
||||
|
||||
responseJson["messagesCount"] = %response.result["count"]
|
||||
responseJson["activityCenterNotifications"] = activityCenterNotifications
|
||||
responseJson["messagesWithMentionsCount"] = %response.result["countWithMentions"]
|
||||
|
||||
if response.error != nil:
|
||||
|
|
|
@ -732,6 +732,9 @@ QtObject:
|
|||
|
||||
proc onMarkAllMessagesRead*(self: Service, response: string) {.slot.} =
|
||||
let responseObj = response.parseJson
|
||||
if (responseObj.kind != JObject):
|
||||
self.finishAsyncSearchMessagesWithError("", "mark all messages read response is not an json object")
|
||||
return
|
||||
|
||||
var error: string
|
||||
discard responseObj.getProp("error", error)
|
||||
|
@ -744,13 +747,7 @@ QtObject:
|
|||
|
||||
let data = MessagesMarkedAsReadArgs(chatId: chatId, allMessagesMarked: true)
|
||||
self.events.emit(SIGNAL_MESSAGES_MARKED_AS_READ, data)
|
||||
|
||||
var activityCenterNotifications: JsonNode
|
||||
discard responseObj.getProp("activityCenterNotifications", activityCenterNotifications)
|
||||
|
||||
if activityCenterNotifications != nil:
|
||||
self.events.emit(SIGNAL_PARSE_RAW_ACTIVITY_CENTER_NOTIFICATIONS,
|
||||
RawActivityCenterNotificationsArgs(activityCenterNotifications: activityCenterNotifications))
|
||||
checkAndEmitACNotificationsFromResponse(self.events, responseObj{"activityCenterNotifications"})
|
||||
|
||||
proc markAllMessagesRead*(self: Service, chatId: string) =
|
||||
if (chatId.len == 0):
|
||||
|
@ -798,13 +795,7 @@ QtObject:
|
|||
self.chatService.updateUnreadMessage(chatId, count, countWithMentions)
|
||||
|
||||
self.events.emit(SIGNAL_MESSAGE_MARKED_AS_UNREAD, data)
|
||||
|
||||
var activityCenterNotifications: JsonNode
|
||||
discard responseObj.getProp("activityCenterNotifications", activityCenterNotifications)
|
||||
|
||||
if activityCenterNotifications != nil:
|
||||
self.events.emit(SIGNAL_PARSE_RAW_ACTIVITY_CENTER_NOTIFICATIONS,
|
||||
RawActivityCenterNotificationsArgs(activityCenterNotifications: activityCenterNotifications))
|
||||
checkAndEmitACNotificationsFromResponse(self.events, responseObj{"activityCenterNotifications"})
|
||||
|
||||
except Exception as e:
|
||||
error "error: ", procName="markMessageAsUnread", errName = e.name, errDesription = e.msg
|
||||
|
@ -843,13 +834,7 @@ QtObject:
|
|||
messagesCount: count,
|
||||
messagesWithMentionsCount: countWithMentions)
|
||||
self.events.emit(SIGNAL_MESSAGES_MARKED_AS_READ, data)
|
||||
|
||||
var activityCenterNotifications: JsonNode
|
||||
discard responseObj.getProp("activityCenterNotifications", activityCenterNotifications)
|
||||
|
||||
if activityCenterNotifications != nil:
|
||||
self.events.emit(SIGNAL_PARSE_RAW_ACTIVITY_CENTER_NOTIFICATIONS,
|
||||
RawActivityCenterNotificationsArgs(activityCenterNotifications: activityCenterNotifications))
|
||||
checkAndEmitACNotificationsFromResponse(self.events, responseObj{"activityCenterNotifications"})
|
||||
|
||||
proc markCertainMessagesRead*(self: Service, chatId: string, messagesIds: seq[string]) =
|
||||
if (chatId.len == 0):
|
||||
|
|
Loading…
Reference in New Issue