77 lines
1.8 KiB
Nim
77 lines
1.8 KiB
Nim
|
import ../types/[chat, community]
|
||
|
|
||
|
export chat, community
|
||
|
|
||
|
proc findIndexById*(self: seq[Chat], id: string): int =
|
||
|
result = -1
|
||
|
var idx = -1
|
||
|
for item in self:
|
||
|
inc idx
|
||
|
if(item.id == id):
|
||
|
result = idx
|
||
|
break
|
||
|
|
||
|
proc findIndexById*(self: seq[Community], id: string): int =
|
||
|
result = -1
|
||
|
var idx = -1
|
||
|
for item in self:
|
||
|
inc idx
|
||
|
if(item.id == id):
|
||
|
result = idx
|
||
|
break
|
||
|
|
||
|
proc findIndexById*(self: seq[CommunityMembershipRequest], id: string): int =
|
||
|
result = -1
|
||
|
var idx = -1
|
||
|
for item in self:
|
||
|
inc idx
|
||
|
if(item.id == id):
|
||
|
result = idx
|
||
|
break
|
||
|
|
||
|
proc findIndexById*(self: seq[CommunityCategory], id: string): int =
|
||
|
result = -1
|
||
|
var idx = -1
|
||
|
for item in self:
|
||
|
inc idx
|
||
|
if(item.id == id):
|
||
|
result = idx
|
||
|
break
|
||
|
|
||
|
proc isMember*(self: Chat, pubKey: string): bool =
|
||
|
for member in self.members:
|
||
|
if member.id == pubKey:
|
||
|
return member.joined
|
||
|
return false
|
||
|
|
||
|
proc isMemberButNotJoined*(self: Chat, pubKey: string): bool =
|
||
|
for member in self.members:
|
||
|
if member.id == pubKey:
|
||
|
return not member.joined
|
||
|
return false
|
||
|
|
||
|
proc contains*(self: Chat, pubKey: string): bool =
|
||
|
for member in self.members:
|
||
|
if member.id == pubKey: return true
|
||
|
return false
|
||
|
|
||
|
proc isAdmin*(self: Chat, pubKey: string): bool =
|
||
|
for member in self.members:
|
||
|
if member.id == pubKey:
|
||
|
return member.joined and member.admin
|
||
|
return false
|
||
|
|
||
|
proc recalculateUnviewedMessages*(community: var Community) =
|
||
|
var total = 0
|
||
|
for chat in community.chats:
|
||
|
total += chat.unviewedMessagesCount
|
||
|
|
||
|
community.unviewedMessagesCount = total
|
||
|
|
||
|
proc recalculateMentions*(community: var Community) =
|
||
|
var total = 0
|
||
|
for chat in community.chats:
|
||
|
total += chat.unviewedMentionsCount
|
||
|
|
||
|
community.unviewedMentionsCount = total
|