/
Shymer123
/
LumenServer
Обзор
Документация
Войти
/
Shymer123
/
LumenServer
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
Server/SourceFiles/Services/ContactService.cpp
54 строки
2 KB
Shymer123
Initial commit: LumenServer
20 июн 2026, 12:43
20 июн 2026, 12:43
173f14c
Код
Авторство
О чём код?
#include "ContactService.h" namespace Services { ContactService::ContactService(Storage::Db::Repositories::ContactRepository& contactRepo, Services::AuthService& authService) : m_contactRepo(contactRepo), m_authService(authService) {} std::vector<Data::Models::ContactModel> ContactService::getContacts(const std::string& userId) { return m_contactRepo.getContacts(userId); } std::optional<Data::Models::ContactModel> ContactService::addContact(const std::string& userId, const std::string& contactPhone, const std::string& alias) { auto contactInfo = m_authService.getUserByPhone(contactPhone); if(!contactInfo) return std::nullopt; if(userId == contactInfo->id) return std::nullopt; if(m_contactRepo.isContactExist(userId, contactInfo->id)) return std::nullopt; if(!m_contactRepo.addContact(userId, contactInfo->id, alias)) { return std::nullopt; } return buildContact(contactInfo->id, alias); } bool ContactService::removeContact(const std::string& userId, const std::string& contactId) { return m_contactRepo.removeContact(userId, contactId); } std::optional<Data::Models::ContactModel> ContactService::buildContact(const std::string& contactId, const std::string& alias) { auto userData = m_authService.getUserData(contactId); if(!userData) return std::nullopt; auto [username, phone, displayName] = *userData; Data::Models::ContactModel contact; contact.id = contactId; contact.username = username; contact.displayName = !alias.empty() ? alias : displayName; contact.phone = phone; return contact; } } // namespace Services