summaryrefslogtreecommitdiff
path: root/protocols/Slack/src/slack_contacts.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'protocols/Slack/src/slack_contacts.cpp')
-rw-r--r--protocols/Slack/src/slack_contacts.cpp168
1 files changed, 0 insertions, 168 deletions
diff --git a/protocols/Slack/src/slack_contacts.cpp b/protocols/Slack/src/slack_contacts.cpp
deleted file mode 100644
index 82798cb9ca..0000000000
--- a/protocols/Slack/src/slack_contacts.cpp
+++ /dev/null
@@ -1,168 +0,0 @@
-#include "stdafx.h"
-
-WORD CSlackProto::GetContactStatus(MCONTACT hContact)
-{
- return getWord(hContact, "Status", ID_STATUS_OFFLINE);
-}
-
-void CSlackProto::SetContactStatus(MCONTACT hContact, WORD status)
-{
- WORD oldStatus = GetContactStatus(hContact);
- if (oldStatus != status)
- setWord(hContact, "Status", status);
-}
-
-void CSlackProto::SetAllContactsStatus(WORD status)
-{
- for (MCONTACT hContact = db_find_first(m_szModuleName); hContact; hContact = db_find_next(hContact, m_szModuleName))
- SetContactStatus(hContact, status);
-}
-
-MCONTACT CSlackProto::GetContact(const char *userId)
-{
- MCONTACT hContact = NULL;
- for (hContact = db_find_first(m_szModuleName); hContact; hContact = db_find_next(hContact, m_szModuleName))
- {
- ptrA contactPhone(getStringA(hContact, "UserId"));
- if (mir_strcmp(userId, contactPhone) == 0)
- break;
- }
- return hContact;
-}
-
-MCONTACT CSlackProto::AddContact(const char *userId, const char *nick, bool isTemporary)
-{
- MCONTACT hContact = GetContact(userId);
- if (!hContact)
- {
- hContact = db_add_contact();
- Proto_AddToContact(hContact, m_szModuleName);
-
- setString(hContact, "UserId", userId);
-
- if (mir_strlen(nick))
- setWString(hContact, "Nick", ptrW(mir_utf8decodeW(nick)));
-
- DBVARIANT dbv;
- if (!getWString("TeamName", &dbv) && Clist_GroupExists(dbv.ptszVal))
- {
- db_set_ws(hContact, "CList", "Group", dbv.ptszVal);
- db_free(&dbv);
- }
-
- setByte(hContact, "Auth", 1);
- setByte(hContact, "Grant", 1);
-
- if (isTemporary)
- {
- db_set_b(hContact, "CList", "NotOnList", 1);
- }
- }
- return hContact;
-}
-
-void CSlackProto::OnGotUserProfile(JSONNode &root)
-{
- if (!root)
- {
- debugLogA(__FUNCTION__": failed to load user profile");
- return;
- }
-
- bool isOk = root["ok"].as_bool();
- if (!isOk)
- {
- debugLogA(__FUNCTION__": failed to load users profile");
- return;
- }
-
- JSONNode profile = root["profile"].as_node();
-}
-
-void CSlackProto::OnGotUserProfile(MCONTACT hContact, JSONNode &root)
-{
- if (!root)
- {
- debugLogA(__FUNCTION__": failed to read users profile");
- return;
- }
-
- CMStringW firstName = root["first_name"].as_mstring();
- setWString(hContact, "FirstName", firstName);
-
- CMStringW lastName = root["last_name"].as_mstring();
- setWString(hContact, "LastName", lastName);
-}
-
-void CSlackProto::OnGotUserList(JSONNode &root, void*)
-{
- if (!root)
- {
- debugLogA(__FUNCTION__": failed to load users list");
- return;
- }
-
- bool isOk = root["ok"].as_bool();
- if (!isOk)
- {
- debugLogA(__FUNCTION__": failed to load users list");
- return;
- }
-
- JSONNode users = root["members"].as_array();
- for (size_t i = 0; i < users.size(); i++)
- {
- JSONNode user = users[i];
-
- json_string userId = user["id"].as_string();
- json_string nick = user["name"].as_string();
- bool isDeleted = user["deleted"].as_bool();
- MCONTACT hContact = AddContact(userId.c_str(), nick.c_str(), isDeleted);
- if (hContact)
- {
- json_string teamId = user["team_id"].as_string();
- setString(hContact, "TeamId", teamId.c_str());
-
- CMStringW status = root["status"].as_mstring();
- if (!status.IsEmpty())
- setWString(hContact, "StatusMsg", status);
-
- json_string presence = user["presence"].as_string();
- SetContactStatus(hContact, SlackToMirandaStatus(presence.c_str()));
-
- JSONNode profile = root["profile"].as_node();
- OnGotUserProfile(hContact, profile);
- }
- }
-}
-
-INT_PTR CSlackProto::OnRequestAuth(WPARAM hContact, LPARAM lParam)
-{
- if (!IsOnline())
- {
- return -1; // ???
- }
- return 0;
-}
-
-INT_PTR CSlackProto::OnGrantAuth(WPARAM hContact, LPARAM)
-{
- if (!IsOnline())
- {
- // TODO: warn
- return 0;
- }
-
- return 0;
-}
-
-int CSlackProto::OnContactDeleted(MCONTACT hContact, LPARAM)
-{
- if (!IsOnline())
- {
- // TODO: warn
- return 0;
- }
-
- return 0;
-} \ No newline at end of file