38 if (
auto* convModule = acc->convModule(
true))
39 return convModule->startConversation();
47 if (
auto* convModule = acc->convModule(
true))
48 convModule->acceptConversationRequest(conversationId);
55 acc->declineConversationRequest(conversationId);
62 if (
auto* convModule = acc->convModule(
true))
63 return convModule->removeConversation(conversationId);
67std::vector<std::string>
71 if (
auto* convModule = acc->convModule(
true))
72 return convModule->getConversations();
76std::vector<std::map<std::string, std::string>>
77getActiveCalls(
const std::string& accountId,
const std::string& conversationId)
80 if (
auto* convModule = acc->convModule(
true))
81 return convModule->getActiveCalls(conversationId);
85std::vector<std::map<std::string, std::string>>
89 if (
auto* convModule = acc->convModule(
true))
90 return convModule->getConversationRequests();
96 const std::string& conversationId,
97 const std::map<std::string, std::string>& infos)
100 if (
auto* convModule = acc->convModule(
true))
101 convModule->updateConversationInfos(conversationId, infos);
104std::map<std::string, std::string>
108 if (
auto* convModule = acc->convModule(
true))
109 return convModule->conversationInfos(conversationId);
115 const std::string& conversationId,
116 const std::map<std::string, std::string>& prefs)
119 if (
auto* convModule = acc->convModule(
true))
120 convModule->setConversationPreferences(conversationId, prefs);
123std::map<std::string, std::string>
127 if (
auto* convModule = acc->convModule(
true))
128 return convModule->getConversationPreferences(conversationId);
134addConversationMember(
const std::string& accountId,
const std::string& conversationId,
const std::string& contactUri)
137 if (
auto* convModule = acc->convModule(
true)) {
138 dht::InfoHash h(contactUri);
140 JAMI_ERROR(
"addConversationMember: invalid contact URI `{}`", contactUri);
143 convModule->addConversationMember(conversationId, h);
151 if (
auto* convModule = acc->convModule(
true)) {
152 dht::InfoHash h(contactUri);
154 JAMI_ERROR(
"removeConversationMember: invalid contact URI `{}`", contactUri);
157 convModule->removeConversationMember(conversationId, h);
161std::vector<std::map<std::string, std::string>>
165 if (
auto* convModule = acc->convModule(
true))
166 return convModule->getConversationMembers(conversationId,
true);
173 const std::string& conversationId,
174 const std::string& message,
175 const std::string& commitId,
179 if (
auto* convModule = acc->convModule(
true)) {
181 convModule->sendMessage(conversationId, message, commitId);
182 }
else if (flag == 1 ) {
183 convModule->editMessage(conversationId, message, commitId);
184 }
else if (flag == 2 ) {
185 convModule->reactToMessage(conversationId, message, commitId);
192 const std::string& conversationId,
193 const std::string& fromMessage,
197 if (
auto* convModule = acc->convModule(
true))
198 return convModule->loadConversation(conversationId, fromMessage, n);
204 const std::string& conversationId,
205 const std::string& fromMessage,
206 const std::string& toMessage)
209 if (
auto* convModule = acc->convModule(
true))
210 return convModule->loadSwarmUntil(conversationId, fromMessage, toMessage);
216 const std::string& conversationId,
217 const std::string& toId,
218 const std::string& fromId,
219 const std::string& authorUri)
222 if (
auto* convModule = acc->convModule(
true))
223 return convModule->countInteractions(conversationId, toId, fromId, authorUri);
228clearCache(
const std::string& accountId,
const std::string& conversationId)
231 if (
auto* convModule = acc->convModule(
true))
232 convModule->clearCache(conversationId);
237 const std::string& conversationId,
238 const std::string& author,
239 const std::string& lastId,
240 const std::string& regexSearch,
241 const std::string& type,
242 const int64_t& after,
243 const int64_t& before,
244 const uint32_t& maxResult,
248 jami::Filter filter {author, lastId, regexSearch, type, after, before, maxResult, flag != 0};
250 if (!accountId.empty() && accId != accountId)
253 res = std::uniform_int_distribution<uint32_t>()(acc->rand);
254 if (
auto* convModule = acc->convModule(
true)) {
255 convModule->search(res, conversationId, filter);
266 acc->reloadContacts();
267 if (
auto* convModule = acc->convModule(
true)) {
268 convModule->reloadRequests();
269 convModule->loadConversations();
Ring Account is build on top of SIPAccountBase and uses DHT to handle call connectivity.
std::vector< std::string > getAccountList() const
Get account list.
static LIBJAMI_TEST_EXPORT Manager & instance()
std::shared_ptr< T > getAccount(std::string_view accountId) const
Get an account pointer, looks for account of type T.
#define JAMI_ERROR(formatstr,...)
void clearCache(const std::string &accountId, const std::string &conversationId)
std::map< std::string, std::string > getConversationPreferences(const std::string &accountId, const std::string &conversationId)
std::string startConversation(const std::string &accountId)
uint32_t loadSwarmUntil(const std::string &accountId, const std::string &conversationId, const std::string &fromMessage, const std::string &toMessage)
std::vector< std::map< std::string, std::string > > getConversationMembers(const std::string &accountId, const std::string &conversationId)
std::map< std::string, std::string > conversationInfos(const std::string &accountId, const std::string &conversationId)
void acceptConversationRequest(const std::string &accountId, const std::string &conversationId)
void sendMessage(const std::string &accountId, const std::string &conversationId, const std::string &message, const std::string &commitId, const int32_t &flag)
void reloadConversationsAndRequests(const std::string &accountId)
void declineConversationRequest(const std::string &accountId, const std::string &conversationId)
uint32_t loadConversation(const std::string &accountId, const std::string &conversationId, const std::string &fromMessage, size_t n)
void addConversationMember(const std::string &accountId, const std::string &conversationId, const std::string &contactUri)
uint32_t searchConversation(const std::string &accountId, const std::string &conversationId, const std::string &author, const std::string &lastId, const std::string ®exSearch, const std::string &type, const int64_t &after, const int64_t &before, const uint32_t &maxResult, const int32_t &flag)
void removeConversationMember(const std::string &accountId, const std::string &conversationId, const std::string &contactUri)
void setConversationPreferences(const std::string &accountId, const std::string &conversationId, const std::map< std::string, std::string > &prefs)
std::vector< std::map< std::string, std::string > > getActiveCalls(const std::string &accountId, const std::string &conversationId)
std::vector< std::string > getConversations(const std::string &accountId)
bool removeConversation(const std::string &accountId, const std::string &conversationId)
uint32_t countInteractions(const std::string &accountId, const std::string &conversationId, const std::string &toId, const std::string &fromId, const std::string &authorUri)
void updateConversationInfos(const std::string &accountId, const std::string &conversationId, const std::map< std::string, std::string > &infos)
std::vector< std::map< std::string, std::string > > getConversationRequests(const std::string &accountId)