refactor(chat-communities): chat naming follows alias/ens naming

This commit is contained in:
Sale Djenic 2021-11-09 18:43:38 +01:00
parent 813f6d0062
commit 9e60b4ecfe
7 changed files with 34 additions and 14 deletions

View File

@ -138,7 +138,7 @@ proc newAppController*(appService: AppService): AppController =
result.settingsService = settings_service.newService() result.settingsService = settings_service.newService()
result.accountsService = accounts_service.newService() result.accountsService = accounts_service.newService()
result.contactsService = contacts_service.newService(appService.status.events, appService.threadpool) result.contactsService = contacts_service.newService(appService.status.events, appService.threadpool)
result.chatService = chat_service.newService() result.chatService = chat_service.newService(result.contactsService)
result.communityService = community_service.newService(result.chatService) result.communityService = community_service.newService(result.chatService)
result.messageService = message_service.newService(appService.status.events, appService.threadpool) result.messageService = message_service.newService(appService.status.events, appService.threadpool)
result.tokenService = token_service.newService(appService.status.events, appService.threadpool, result.settingService, result.tokenService = token_service.newService(appService.status.events, appService.threadpool, result.settingService,

View File

@ -75,3 +75,6 @@ method setActiveItemSubItem*(self: Controller, itemId: string, subItemId: string
# We need to take other actions here like notify status go that unviewed mentions count is updated and so... # We need to take other actions here like notify status go that unviewed mentions count is updated and so...
self.delegate.activeItemSubItemSet(self.activeItemId, self.activeSubItemId) self.delegate.activeItemSubItemSet(self.activeItemId, self.activeSubItemId)
method getPrettyChatName*(self: Controller, chatId: string): string =
return self.chatService.prettyChatName(chatId)

View File

@ -37,3 +37,6 @@ method getChatDetailsForChatTypes*(self: AccessInterface, types: seq[ChatType]):
method setActiveItemSubItem*(self: AccessInterface, itemId: string, subItemId: string) {.base.} = method setActiveItemSubItem*(self: AccessInterface, itemId: string, subItemId: string) {.base.} =
raise newException(ValueError, "No implementation available") raise newException(ValueError, "No implementation available")
method getPrettyChatName*(self: AccessInterface, chatId: string): string {.base.} =
raise newException(ValueError, "No implementation available")

View File

@ -63,8 +63,11 @@ proc buildChatUI(self: Module, events: EventEmitter, chatService: chat_service.S
for c in chats: for c in chats:
let hasNotification = c.unviewedMessagesCount > 0 or c.unviewedMentionsCount > 0 let hasNotification = c.unviewedMessagesCount > 0 or c.unviewedMentionsCount > 0
let notificationsCount = c.unviewedMentionsCount let notificationsCount = c.unviewedMentionsCount
let item = initItem(c.id, if c.alias.len > 0: c.alias else: c.name, c.identicon, c.color, c.description, var chatName = c.name
c.chatType.int, hasNotification, notificationsCount, c.muted, false) if(c.chatType == ChatType.OneToOne):
chatName = self.controller.getPrettyChatName(c.id)
let item = initItem(c.id, chatName, c.identicon, c.color, c.description, c.chatType.int, hasNotification,
notificationsCount, c.muted, false)
self.view.appendItem(item) self.view.appendItem(item)
self.addSubmodule(c.id, false, events, chatService, communityService, messageService) self.addSubmodule(c.id, false, events, chatService, communityService, messageService)
@ -87,9 +90,8 @@ proc buildCommunityUI(self: Module, events: EventEmitter, chatService: chat_serv
let hasNotification = chatDto.unviewedMessagesCount > 0 or chatDto.unviewedMentionsCount > 0 let hasNotification = chatDto.unviewedMessagesCount > 0 or chatDto.unviewedMentionsCount > 0
let notificationsCount = chatDto.unviewedMentionsCount let notificationsCount = chatDto.unviewedMentionsCount
let channelItem = initItem(chatDto.id, if chatDto.alias.len > 0: chatDto.alias else: chatDto.name, let channelItem = initItem(chatDto.id, chatDto.name, chatDto.identicon, chatDto.color, chatDto.description,
chatDto.identicon, chatDto.color, chatDto.description, chatDto.chatType.int, hasNotification, notificationsCount, chatDto.chatType.int, hasNotification, notificationsCount, chatDto.muted, false)
chatDto.muted, false)
self.view.appendItem(channelItem) self.view.appendItem(channelItem)
self.addSubmodule(chatDto.id, true, events, chatService, communityService, messageService) self.addSubmodule(chatDto.id, true, events, chatService, communityService, messageService)
@ -114,9 +116,8 @@ proc buildCommunityUI(self: Module, events: EventEmitter, chatService: chat_serv
hasNotificationPerCategory = hasNotificationPerCategory or hasNotification hasNotificationPerCategory = hasNotificationPerCategory or hasNotification
notificationsCountPerCategory += notificationsCount notificationsCountPerCategory += notificationsCount
let channelItem = initSubItem(chatDto.id, if chatDto.alias.len > 0: chatDto.alias else: chatDto.name, let channelItem = initSubItem(chatDto.id, chatDto.name, chatDto.identicon, chatDto.color, chatDto.description,
chatDto.identicon, chatDto.color, chatDto.description, hasNotification, notificationsCount, chatDto.muted, hasNotification, notificationsCount, chatDto.muted, false)
false)
categoryChannels.add(channelItem) categoryChannels.add(channelItem)
self.addSubmodule(chatDto.id, true, events, chatService, communityService, messageService) self.addSubmodule(chatDto.id, true, events, chatService, communityService, messageService)

View File

@ -1,6 +1,7 @@
import Tables, json, sequtils, strformat, chronicles import Tables, json, sequtils, strformat, chronicles
import service_interface, ./dto/chat import service_interface, ./dto/chat
import ../contacts/service as contact_service
import status/statusgo_backend_new/chat as status_go import status/statusgo_backend_new/chat as status_go
export service_interface export service_interface
@ -9,14 +10,16 @@ logScope:
topics = "chat-service" topics = "chat-service"
type type
Service* = ref object of ServiceInterface Service* = ref object of service_interface.ServiceInterface
chats: Table[string, ChatDto] # [chat_id, ChatDto] chats: Table[string, ChatDto] # [chat_id, ChatDto]
contactService: contact_service.Service
method delete*(self: Service) = method delete*(self: Service) =
discard discard
proc newService*(): Service = proc newService*(contactService: contact_service.Service): Service =
result = Service() result = Service()
result.contactService = contactService
result.chats = initTable[string, ChatDto]() result.chats = initTable[string, ChatDto]()
method init*(self: Service) = method init*(self: Service) =
@ -46,3 +49,10 @@ method getChatById*(self: Service, chatId: string): ChatDto =
return return
return self.chats[chatId] return self.chats[chatId]
method prettyChatName*(self: Service, chatId: string): string =
let contact = self.contactService.getContactById(chatId)
if(contact.isNil):
return
return contact.userNameOrAlias()

View File

@ -20,3 +20,6 @@ method getChatsOfChatTypes*(self: ServiceInterface, types: seq[ChatType]): seq[C
method getChatById*(self: ServiceInterface, chatId: string): ChatDto {.base.} = method getChatById*(self: ServiceInterface, chatId: string): ChatDto {.base.} =
raise newException(ValueError, "No implementation available") raise newException(ValueError, "No implementation available")
method prettyChatName*(self: ServiceInterface, chatId: string): string {.base.} =
raise newException(ValueError, "No implementation available")