39 if (
auto convModule = acc->convModule(
true))
40 return convModule->startConversation();
48 if (
auto convModule = acc->convModule(
true))
49 convModule->acceptConversationRequest(conversationId);
56 acc->declineConversationRequest(conversationId);
63 if (
auto convModule = acc->convModule(
true))
64 return convModule->removeConversation(conversationId);
68std::vector<std::string>
72 if (
auto convModule = acc->convModule(
true))
73 return convModule->getConversations();
77std::vector<std::map<std::string, std::string>>
78getActiveCalls(
const std::string& accountId,
const std::string& conversationId)
81 if (
auto convModule = acc->convModule(
true))
82 return convModule->getActiveCalls(conversationId);
86std::vector<std::map<std::string, std::string>>
90 if (
auto convModule = acc->convModule(
true))
91 return convModule->getConversationRequests();
97 const std::string& conversationId,
98 const std::map<std::string, std::string>& infos)
101 if (
auto convModule = acc->convModule(
true))
102 convModule->updateConversationInfos(conversationId, infos);
105std::map<std::string, std::string>
109 if (
auto convModule = acc->convModule(
true))
110 return convModule->conversationInfos(conversationId);
116 const std::string& conversationId,
117 const std::map<std::string, std::string>& prefs)
120 if (
auto convModule = acc->convModule(
true))
121 convModule->setConversationPreferences(conversationId, prefs);
124std::map<std::string, std::string>
128 if (
auto convModule = acc->convModule(
true))
129 return convModule->getConversationPreferences(conversationId);
136 const std::string& conversationId,
137 const std::string& contactUri)
140 if (
auto convModule = acc->convModule(
true)) {
141 dht::InfoHash h(contactUri);
143 JAMI_ERROR(
"addConversationMember: invalid contact URI `{}`", contactUri);
146 convModule->addConversationMember(conversationId, h);
152 const std::string& conversationId,
153 const std::string& contactUri)
156 if (
auto convModule = acc->convModule(
true)) {
157 dht::InfoHash h(contactUri);
159 JAMI_ERROR(
"removeConversationMember: invalid contact URI `{}`", contactUri);
162 convModule->removeConversationMember(conversationId, h);
166std::vector<std::map<std::string, std::string>>
170 if (
auto convModule = acc->convModule(
true))
171 return convModule->getConversationMembers(conversationId,
true);
178 const std::string& conversationId,
179 const std::string& message,
180 const std::string& commitId,
184 if (
auto convModule = acc->convModule(
true)) {
186 convModule->sendMessage(conversationId, message, commitId);
187 }
else if (flag == 1 ) {
188 convModule->editMessage(conversationId, message, commitId);
189 }
else if (flag == 2 ) {
190 convModule->reactToMessage(conversationId, message, commitId);
197 const std::string& conversationId,
198 const std::string& fromMessage,
202 if (
auto convModule = acc->convModule(
true))
203 return convModule->loadConversationMessages(conversationId, fromMessage, n);
209 const std::string& conversationId,
210 const std::string& fromMessage,
214 if (
auto convModule = acc->convModule(
true))
215 return convModule->loadConversation(conversationId, fromMessage, n);
221 const std::string& conversationId,
222 const std::string& fromMessage,
223 const std::string& toMessage)
226 if (
auto convModule = acc->convModule(
true))
227 return convModule->loadConversationUntil(conversationId, fromMessage, toMessage);
233 const std::string& conversationId,
234 const std::string& fromMessage,
235 const std::string& toMessage)
238 if (
auto convModule = acc->convModule(
true))
239 return convModule->loadSwarmUntil(conversationId, fromMessage, toMessage);
245 const std::string& conversationId,
246 const std::string& toId,
247 const std::string& fromId,
248 const std::string& authorUri)
251 if (
auto convModule = acc->convModule(
true))
252 return convModule->countInteractions(conversationId, toId, fromId, authorUri);
257clearCache(
const std::string& accountId,
const std::string& conversationId)
260 if (
auto convModule = acc->convModule(
true))
261 convModule->clearCache(conversationId);
266 const std::string& conversationId,
267 const std::string& author,
268 const std::string& lastId,
269 const std::string& regexSearch,
270 const std::string& type,
271 const int64_t& after,
272 const int64_t& before,
273 const uint32_t& maxResult,
277 jami::Filter filter {author, lastId, regexSearch, type, after, before, maxResult, flag != 0};
279 if (!accountId.empty() && accId != accountId)
282 res = std::uniform_int_distribution<uint32_t>()(acc->rand);
283 if (
auto convModule = acc->convModule(
true)) {
284 convModule->search(res, conversationId, filter);
295 acc->reloadContacts();
296 if (
auto convModule = acc->convModule(
true)) {
297 convModule->reloadRequests();
298 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 loadConversationMessages(const std::string &accountId, const std::string &conversationId, const std::string &fromMessage, size_t n)
uint32_t loadConversationUntil(const std::string &accountId, const std::string &conversationId, const std::string &fromMessage, const std::string &toMessage)
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)