diff options
author | Joram Wilander <jwawilander@gmail.com> | 2017-06-26 08:16:57 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-06-26 08:16:57 -0400 |
commit | 23ccfc845ca2350075f6027e16c6206fc7b71716 (patch) | |
tree | 3fd1f896a5a24b43913be03b21c85638dd7c356e /webapp/client/client.jsx | |
parent | fe7e9d95b30ae2195fcba68db960866db91ce045 (diff) | |
download | chat-23ccfc845ca2350075f6027e16c6206fc7b71716.tar.gz chat-23ccfc845ca2350075f6027e16c6206fc7b71716.tar.bz2 chat-23ccfc845ca2350075f6027e16c6206fc7b71716.zip |
Move remaining actions over to use redux and v4 endpoints (#6720)
Diffstat (limited to 'webapp/client/client.jsx')
-rw-r--r-- | webapp/client/client.jsx | 2368 |
1 files changed, 0 insertions, 2368 deletions
diff --git a/webapp/client/client.jsx b/webapp/client/client.jsx deleted file mode 100644 index 2b149e240..000000000 --- a/webapp/client/client.jsx +++ /dev/null @@ -1,2368 +0,0 @@ -// Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved. -// See License.txt for license information. - -import request from 'superagent'; - -const HEADER_X_VERSION_ID = 'x-version-id'; -const HEADER_X_CLUSTER_ID = 'x-cluster-id'; -const HEADER_TOKEN = 'token'; -const HEADER_BEARER = 'BEARER'; -const HEADER_AUTH = 'Authorization'; - -export default class Client { - constructor() { - this.teamId = ''; - this.serverVersion = ''; - this.clusterId = ''; - this.logToConsole = false; - this.useToken = false; - this.token = ''; - this.url = ''; - this.urlVersion = '/api/v3'; - this.defaultHeaders = { - 'X-Requested-With': 'XMLHttpRequest' - }; - - this.translations = { - connectionError: 'There appears to be a problem with your internet connection.', - unknownError: 'We received an unexpected status code from the server.' - }; - } - - setUrl(url) { - this.url = url; - } - - setAcceptLanguage(locale) { - this.defaultHeaders['Accept-Language'] = locale; - } - - setTeamId(id) { - this.teamId = id; - } - - getTeamId() { - if (!this.teamId) { - console.error('You are trying to use a route that requires a team_id, but you have not called setTeamId() in client.jsx'); // eslint-disable-line no-console - } - - return this.teamId; - } - - getServerVersion() { - return this.serverVersion; - } - - getBaseRoute() { - return `${this.url}${this.urlVersion}`; - } - - getAdminRoute() { - return `${this.url}${this.urlVersion}/admin`; - } - - getGeneralRoute() { - return `${this.url}${this.urlVersion}/general`; - } - - getLicenseRoute() { - return `${this.url}${this.urlVersion}/license`; - } - - getTeamsRoute() { - return `${this.url}${this.urlVersion}/teams`; - } - - getTeamNeededRoute(teamId = this.getTeamId()) { - return `${this.url}${this.urlVersion}/teams/${teamId}`; - } - - getChannelsRoute() { - return `${this.url}${this.urlVersion}/teams/${this.getTeamId()}/channels`; - } - - getChannelNameRoute(channelName) { - return `${this.url}${this.urlVersion}/teams/${this.getTeamId()}/channels/name/${channelName}`; - } - - getChannelNeededRoute(channelId) { - return `${this.url}${this.urlVersion}/teams/${this.getTeamId()}/channels/${channelId}`; - } - - getCommandsRoute() { - return `${this.url}${this.urlVersion}/teams/${this.getTeamId()}/commands`; - } - - getEmojiRoute() { - return `${this.url}${this.urlVersion}/emoji`; - } - - getHooksRoute() { - return `${this.url}${this.urlVersion}/teams/${this.getTeamId()}/hooks`; - } - - getPostsRoute(channelId) { - return `${this.url}${this.urlVersion}/teams/${this.getTeamId()}/channels/${channelId}/posts`; - } - - getUsersRoute() { - return `${this.url}${this.urlVersion}/users`; - } - - getTeamFilesRoute() { - return `${this.url}${this.urlVersion}/teams/${this.getTeamId()}/files`; - } - - getFileRoute(fileId) { - return `${this.url}${this.urlVersion}/files/${fileId}`; - } - - getOAuthRoute() { - return `${this.url}${this.urlVersion}/oauth`; - } - - getUserNeededRoute(userId) { - return `${this.url}${this.urlVersion}/users/${userId}`; - } - - getWebrtcRoute() { - return `${this.url}${this.urlVersion}/webrtc`; - } - - setTranslations(messages) { - this.translations = messages; - } - - enableLogErrorsToConsole(enabled) { - this.logToConsole = enabled; - } - - useHeaderToken() { - this.useToken = true; - if (this.token !== '') { - this.defaultHeaders[HEADER_AUTH] = `${HEADER_BEARER} ${this.token}`; - } - } - - trackEvent(category, event, properties) { // eslint-disable-line no-unused-vars - // NO-OP for inherited classes to override - } - - handleError(err, res) { // eslint-disable-line no-unused-vars - // NO-OP for inherited classes to override - } - - handleSuccess(res) { // eslint-disable-line no-unused-vars - // NO-OP for inherited classes to override - } - - handleResponse(methodName, successCallback, errorCallback, err, res) { - if (res && res.header) { - if (res.header[HEADER_X_VERSION_ID]) { - this.serverVersion = res.header[HEADER_X_VERSION_ID]; - } - - if (res.header[HEADER_X_CLUSTER_ID]) { - this.clusterId = res.header[HEADER_X_CLUSTER_ID]; - } - } - - if (err) { - // test to make sure it looks like a server JSON error response - var e = null; - if (res && res.body && res.body.id) { - e = res.body; - } - - var msg = ''; - - if (e) { - msg = 'method=' + methodName + ' msg=' + e.message + ' detail=' + e.detailed_error + ' rid=' + e.request_id; - } else { - msg = 'method=' + methodName + ' status=' + err.status + ' statusCode=' + err.statusCode + ' err=' + err; - - if (err.status === 0 || !err.status) { - e = {message: this.translations.connectionError}; - } else { - e = {message: this.translations.unknownError + ' (' + err.status + ')'}; - } - } - - if (this.logToConsole) { - console.error(msg); // eslint-disable-line no-console - console.error(e); // eslint-disable-line no-console - } - - this.handleError(err, res); - - if (errorCallback) { - errorCallback(e, err, res); - } - return; - } - - if (successCallback) { - if (res && res.body !== undefined) { // eslint-disable-line no-undefined - successCallback(res.body, res); - } else { - console.error('Missing response body for ' + methodName); // eslint-disable-line no-console - successCallback('', res); - } - this.handleSuccess(res); - } - } - - // General Routes Section - - getClientConfig(success, error) { - return request. - get(`${this.getGeneralRoute()}/client_props`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'getClientConfig', success, error)); - } - - getPing(success, error) { - return request. - get(`${this.getGeneralRoute()}/ping`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'getPing', success, error)); - } - - logClientError(msg) { - var l = {}; - l.level = 'ERROR'; - l.message = msg; - - request. - post(`${this.getGeneralRoute()}/log_client`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - send(l). - end(this.handleResponse.bind(this, 'logClientError', null, null)); - } - - // Admin / Licensing Routes Section - - reloadConfig(success, error) { - return request. - get(`${this.getAdminRoute()}/reload_config`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'reloadConfig', success, error)); - } - - invalidateAllCaches(success, error) { - return request. - get(`${this.getAdminRoute()}/invalidate_all_caches`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'invalidate_all_caches', success, error)); - } - - recycleDatabaseConnection(success, error) { - return request. - get(`${this.getAdminRoute()}/recycle_db_conn`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'recycleDatabaseConnection', success, error)); - } - - getTranslations(url, success, error) { - return request. - get(url). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'getTranslations', success, error)); - } - - getComplianceReports(success, error) { - return request. - get(`${this.getAdminRoute()}/compliance_reports`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'getComplianceReports', success, error)); - } - - uploadBrandImage(image, success, error) { - request. - post(`${this.getAdminRoute()}/upload_brand_image`). - set(this.defaultHeaders). - accept('application/json'). - attach('image', image, image.name). - end(this.handleResponse.bind(this, 'uploadBrandImage', success, error)); - } - - saveComplianceReports(job, success, error) { - return request. - post(`${this.getAdminRoute()}/save_compliance_report`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - send(job). - end(this.handleResponse.bind(this, 'saveComplianceReports', success, error)); - } - - getLogs(success, error) { - return request. - get(`${this.getAdminRoute()}/logs`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'getLogs', success, error)); - } - - getClusterStatus(success, error) { - return request. - get(`${this.getAdminRoute()}/cluster_status`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'getClusterStatus', success, error)); - } - - getServerAudits(success, error) { - return request. - get(`${this.getAdminRoute()}/audits`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'getServerAudits', success, error)); - } - - getConfig(success, error) { - return request. - get(`${this.getAdminRoute()}/config`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'getConfig', success, error)); - } - - getAnalytics(name, teamId, success, error) { - let url = `${this.getAdminRoute()}/analytics/`; - if (teamId == null) { - url += name; - } else { - url += teamId + '/' + name; - } - - return request. - get(url). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'getAnalytics', success, error)); - } - - getTeamAnalytics(teamId, name, success, error) { - return request. - get(`${this.getAdminRoute()}/analytics/${teamId}/${name}`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'getTeamAnalytics', success, error)); - } - - saveConfig(config, success, error) { - request. - post(`${this.getAdminRoute()}/save_config`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - send(config). - end(this.handleResponse.bind(this, 'saveConfig', success, error)); - } - - testEmail(config, success, error) { - request. - post(`${this.getAdminRoute()}/test_email`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - send(config). - end(this.handleResponse.bind(this, 'testEmail', success, error)); - } - - getClientLicenceConfig(success, error) { - request. - get(`${this.getLicenseRoute()}/client_config`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'getClientLicenceConfig', success, error)); - } - - removeLicenseFile(success, error) { - request. - post(`${this.getLicenseRoute()}/remove`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'removeLicenseFile', success, error)); - } - - uploadLicenseFile(license, success, error) { - request. - post(`${this.getLicenseRoute()}/add`). - set(this.defaultHeaders). - accept('application/json'). - attach('license', license, license.name). - end(this.handleResponse.bind(this, 'uploadLicenseFile', success, error)); - - this.trackEvent('api', 'api_license_upload'); - } - - importSlack(fileData, success, error) { - request. - post(`${this.getTeamNeededRoute()}/import_team`). - set(this.defaultHeaders). - accept('application/octet-stream'). - send(fileData). - end(this.handleResponse.bind(this, 'importSlack', success, error)); - } - - exportTeam(success, error) { - request. - get(`${this.getTeamsRoute()}/export_team`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'exportTeam', success, error)); - } - - adminResetMfa(userId, success, error) { - const data = {}; - data.user_id = userId; - - request. - post(`${this.getAdminRoute()}/reset_mfa`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - send(data). - end(this.handleResponse.bind(this, 'adminResetMfa', success, error)); - } - - adminResetPassword(userId, newPassword, success, error) { - var data = {}; - data.new_password = newPassword; - data.user_id = userId; - - request. - post(`${this.getAdminRoute()}/reset_password`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - send(data). - end(this.handleResponse.bind(this, 'adminResetPassword', success, error)); - - this.trackEvent('api', 'api_admin_reset_password'); - } - - ldapSyncNow(success, error) { - request. - post(`${this.getAdminRoute()}/ldap_sync_now`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'ldapSyncNow', success, error)); - } - - ldapTest(success, error) { - request. - post(`${this.getAdminRoute()}/ldap_test`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'ldap_test', success, error)); - } - - // Team Routes Section - - getTeam(teamId, success, error) { - request. - get(`${this.getTeamsRoute()}/${teamId}/me`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'getTeam', success, error)); - } - - findTeamByName(teamName, success, error) { - request. - post(`${this.getTeamsRoute()}/find_team_by_name`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - send({name: teamName}). - end(this.handleResponse.bind(this, 'findTeamByName', success, error)); - } - - getTeamByName(teamName, success, error) { - request. - get(`${this.getTeamsRoute()}/name/${teamName}`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'getTeamByName', success, error)); - } - - createTeam(team, success, error) { - request. - post(`${this.getTeamsRoute()}/create`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - send(team). - end(this.handleResponse.bind(this, 'createTeam', success, error)); - - this.trackEvent('api', 'api_teams_create'); - } - - updateTeam(team, success, error) { - request. - post(`${this.getTeamNeededRoute()}/update`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - send(team). - end(this.handleResponse.bind(this, 'updateTeam', success, error)); - - this.trackEvent('api', 'api_teams_update_name', {team_id: this.getTeamId()}); - } - - getAllTeams(success, error) { - request. - get(`${this.getTeamsRoute()}/all`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'getAllTeams', success, error)); - } - - getAllTeamListings(success, error) { - request. - get(`${this.getTeamsRoute()}/all_team_listings`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'getAllTeamListings', success, error)); - } - - getTeamsForUser(userId, success, error) { - // Call out to API v4 since this call doesn't exist in v3 - request. - get(`${this.url}/api/v4/users/${userId}/teams`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'getTeamsForUser', success, error)); - } - - getMyTeam(success, error) { - request. - get(`${this.getTeamNeededRoute()}/me`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'getMyTeam', success, error)); - } - - getTeamMembers(teamId, offset, limit, success, error) { - request. - get(`${this.getTeamNeededRoute(teamId)}/members/${offset}/${limit}`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'getTeamMembers', success, error)); - } - - getTeamMember(teamId, userId, success, error) { - request. - get(`${this.getTeamNeededRoute(teamId)}/members/${userId}`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'getTeamMember', success, error)); - } - - getMyTeamMembers(success, error) { - request. - get(`${this.getTeamsRoute()}/members`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'getMyTeamMembers', success, error)); - } - - getTeamMembersForUser(userId, success, error) { - // Call out to API v4 since this call doesn't exist in v3 - request. - get(`${this.url}/api/v4/users/${userId}/teams/members`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'getTeamsForUser', success, error)); - } - - getMyTeamsUnread(teamId, success, error) { - let url = `${this.getTeamsRoute()}/unread`; - - if (teamId) { - url += `?id=${encodeURIComponent(teamId)}`; - } - - request. - get(url). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'getMyTeamsUnread', success, error)); - } - - getTeamMembersByIds(teamId, userIds, success, error) { - request. - post(`${this.getTeamNeededRoute(teamId)}/members/ids`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - send(userIds). - end(this.handleResponse.bind(this, 'getTeamMembersByIds', success, error)); - } - - getTeamStats(teamId, success, error) { - request. - get(`${this.getTeamNeededRoute(teamId)}/stats`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'getTeamStats', success, error)); - } - - inviteMembers(data, success, error) { - request. - post(`${this.getTeamNeededRoute()}/invite_members`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - send(data). - end(this.handleResponse.bind(this, 'inviteMembers', success, error)); - - this.trackEvent('api', 'api_teams_invite_members', {team_id: this.getTeamId()}); - } - - addUserToTeam(teamId, userId, success, error) { - let nonEmptyTeamId = teamId; - if (nonEmptyTeamId === '') { - nonEmptyTeamId = this.getTeamId(); - } - - request. - post(`${this.getTeamsRoute()}/${nonEmptyTeamId}/add_user_to_team`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - send({user_id: userId}). - end(this.handleResponse.bind(this, 'addUserToTeam', success, error)); - - this.trackEvent('api', 'api_teams_invite_members', {team_id: nonEmptyTeamId}); - } - - addUserToTeamFromInvite(data, hash, inviteId, success, error) { - request. - post(`${this.getTeamsRoute()}/add_user_to_team_from_invite`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - send({hash, data, invite_id: inviteId}). - end(this.handleResponse.bind(this, 'addUserToTeam', success, error)); - - this.trackEvent('api', 'api_teams_invite_members'); - } - - addUsersToTeam(teamId, userIds, success, error) { - let nonEmptyTeamId = teamId; - if (nonEmptyTeamId === '') { - nonEmptyTeamId = this.getTeamId(); - } - - const teamMembers = userIds.map((userId) => { - return { - team_id: nonEmptyTeamId, - user_id: userId - }; - }); - - request. - post(`${this.url}/api/v4/teams/${nonEmptyTeamId}/members/batch`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - send(teamMembers). - end(this.handleResponse.bind(this, 'addUsersToTeam', success, error)); - - this.trackEvent('api', 'api_teams_batch_add_members', {team_id: nonEmptyTeamId, count: teamMembers.length}); - } - - removeUserFromTeam(teamId, userId, success, error) { - let nonEmptyTeamId = teamId; - if (nonEmptyTeamId === '') { - nonEmptyTeamId = this.getTeamId(); - } - - request. - post(`${this.getTeamsRoute()}/${nonEmptyTeamId}/remove_user_from_team`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - send({user_id: userId}). - end(this.handleResponse.bind(this, 'removeUserFromTeam', success, error)); - - this.trackEvent('api', 'api_teams_remove_members', {team_id: nonEmptyTeamId}); - } - - getInviteInfo(inviteId, success, error) { - request. - post(`${this.getTeamsRoute()}/get_invite_info`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - send({invite_id: inviteId}). - end(this.handleResponse.bind(this, 'getInviteInfo', success, error)); - } - - // User Routes Setions - - createUser(user, success, error) { - this.createUserWithInvite(user, null, null, null, success, error); - } - - createUserWithInvite(user, data, emailHash, inviteId, success, error) { - var url = `${this.getUsersRoute()}/create`; - - url += '?d=' + encodeURIComponent(data); - - if (emailHash) { - url += '&h=' + encodeURIComponent(emailHash); - } - - if (inviteId) { - url += '&iid=' + encodeURIComponent(inviteId); - } - - if (emailHash) { - this.trackEvent('api', 'api_users_create_email'); - } else if (inviteId) { - this.trackEvent('api', 'api_users_create_link'); - } else { - this.trackEvent('api', 'api_users_create_spontaneous'); - } - - request. - post(url). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - send(user). - end(this.handleResponse.bind(this, 'createUser', success, error)); - - this.trackEvent('api', 'api_users_create'); - } - - updateUser(user, type, success, error) { - request. - post(`${this.getUsersRoute()}/update`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - send(user). - end(this.handleResponse.bind(this, 'updateUser', success, error)); - - if (type) { - this.trackEvent('api', 'api_users_update_' + type); - } else { - this.trackEvent('api', 'api_users_update'); - } - } - - updatePassword(userId, currentPassword, newPassword, success, error) { - var data = {}; - data.user_id = userId; - data.current_password = currentPassword; - data.new_password = newPassword; - - request. - post(`${this.getUsersRoute()}/newpassword`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - send(data). - end(this.handleResponse.bind(this, 'updatePassword', success, error)); - - this.trackEvent('api', 'api_users_newpassword'); - } - - updateUserNotifyProps(notifyProps, success, error) { - request. - post(`${this.getUsersRoute()}/update_notify`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - send(notifyProps). - end(this.handleResponse.bind(this, 'updateUserNotifyProps', success, error)); - - this.trackEvent('api', 'api_users_update_notification_settings'); - } - - updateUserRoles(userId, newRoles, success, error) { - var data = { - new_roles: newRoles - }; - - request. - post(`${this.getUserNeededRoute(userId)}/update_roles`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - send(data). - end(this.handleResponse.bind(this, 'updateUserRoles', success, error)); - - this.trackEvent('api', 'api_users_update_roles'); - } - - updateTeamMemberRoles(teamId, userId, newRoles, success, error) { - var data = { - user_id: userId, - new_roles: newRoles - }; - - request. - post(`${this.getTeamNeededRoute(teamId)}/update_member_roles`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - send(data). - end(this.handleResponse.bind(this, 'updateTeamMemberRoles', success, error)); - - this.trackEvent('api', 'api_teams_update_member_roles', {team_id: teamId}); - } - - updateActive(userId, active, success, error) { - var data = {}; - data.user_id = userId; - data.active = String(active); - - request. - post(`${this.getUsersRoute()}/update_active`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - send(data). - end(this.handleResponse.bind(this, 'updateActive', success, error)); - - this.trackEvent('api', 'api_users_update_active'); - } - - sendPasswordReset(email, success, error) { - var data = {}; - data.email = email; - - request. - post(`${this.getUsersRoute()}/send_password_reset`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - send(data). - end(this.handleResponse.bind(this, 'sendPasswordReset', success, error)); - - this.trackEvent('api', 'api_users_send_password_reset'); - } - - resetPassword(code, newPassword, success, error) { - var data = {}; - data.new_password = newPassword; - data.code = code; - - request. - post(`${this.getUsersRoute()}/reset_password`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - send(data). - end(this.handleResponse.bind(this, 'resetPassword', success, error)); - - this.trackEvent('api', 'api_users_reset_password'); - } - - emailToOAuth(email, password, token, service, success, error) { - request. - post(`${this.getUsersRoute()}/claim/email_to_oauth`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - send({password, email, token, service}). - end(this.handleResponse.bind(this, 'emailToOAuth', success, error)); - - this.trackEvent('api', 'api_users_email_to_oauth'); - } - - oauthToEmail(email, password, success, error) { - var data = {}; - data.password = password; - data.email = email; - - request. - post(`${this.getUsersRoute()}/claim/oauth_to_email`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - send(data). - end(this.handleResponse.bind(this, 'oauthToEmail', success, error)); - - this.trackEvent('api', 'api_users_oauth_to_email'); - } - - emailToLdap(email, password, token, ldapId, ldapPassword, success, error) { - var data = {}; - data.email_password = password; - data.email = email; - data.ldap_id = ldapId; - data.ldap_password = ldapPassword; - data.token = token; - - request. - post(`${this.getUsersRoute()}/claim/email_to_ldap`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - send(data). - end(this.handleResponse.bind(this, 'emailToLdap', success, error)); - - this.trackEvent('api', 'api_users_email_to_ldap'); - } - - ldapToEmail(email, emailPassword, token, ldapPassword, success, error) { - var data = {}; - data.email = email; - data.ldap_password = ldapPassword; - data.email_password = emailPassword; - data.token = token; - - request. - post(`${this.getUsersRoute()}/claim/ldap_to_email`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - send(data). - end(this.handleResponse.bind(this, 'ldapToEmail', success, error)); - - this.trackEvent('api', 'api_users_ldap_to_email'); - } - - getInitialLoad(success, error) { - request. - get(`${this.getUsersRoute()}/initial_load`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'getInitialLoad', success, error)); - } - - getMe(success, error) { - request. - get(`${this.getUsersRoute()}/me`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'getMe', success, error)); - } - - getUser(userId, success, error) { - request. - get(`${this.getUserNeededRoute(userId)}/get`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'getUser', success, error)); - } - - getByUsername(userName, success, error) { - request. - get(`${this.getUsersRoute()}/name/${userName}`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'getByUsername', success, error)); - } - - getByEmail(email, success, error) { - request. - get(`${this.getUsersRoute()}/email/${email}`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'getByEmail', success, error)); - } - - login(loginId, password, mfaToken, success, error) { - this.doLogin({login_id: loginId, password, token: mfaToken}, success, error); - - this.trackEvent('api', 'api_users_login'); - } - - loginById(id, password, mfaToken, success, error) { - this.doLogin({id, password, token: mfaToken}, success, error); - - this.trackEvent('api', 'api_users_login'); - } - - loginByLdap(loginId, password, mfaToken, success, error) { - this.doLogin({login_id: loginId, password, token: mfaToken, ldap_only: 'true'}, success, error); - - this.trackEvent('api', 'api_users_login'); - this.trackEvent('api', 'api_users_login_ldap'); - } - - doLogin(outgoingData, success, error) { - var outer = this; // eslint-disable-line consistent-this - - request. - post(`${this.getUsersRoute()}/login`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - send(outgoingData). - end(this.handleResponse.bind( - this, - 'login', - (data, res) => { - if (res && res.header) { - outer.token = res.header[HEADER_TOKEN]; - - if (outer.useToken) { - outer.defaultHeaders[HEADER_AUTH] = `${HEADER_BEARER} ${outer.token}`; - } - } - - if (success) { - success(data, res); - } - }, - error - )); - } - - logout(success, error) { - request. - post(`${this.getUsersRoute()}/logout`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'logout', success, error)); - - this.trackEvent('api', 'api_users_logout'); - } - - checkMfa(loginId, success, error) { - const data = { - login_id: loginId - }; - - request. - post(`${this.getUsersRoute()}/mfa`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - send(data). - end(this.handleResponse.bind(this, 'checkMfa', success, error)); - - this.trackEvent('api', 'api_users_oauth_to_email'); - } - - generateMfaSecret(success, error) { - request. - get(`${this.getUsersRoute()}/generate_mfa_secret`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'generateMfaSecret', success, error)); - } - - revokeSession(altId, success, error) { - request. - post(`${this.getUsersRoute()}/revoke_session`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - send({id: altId}). - end(this.handleResponse.bind(this, 'revokeSession', success, error)); - } - - getSessions(userId, success, error) { - request. - get(`${this.getUserNeededRoute(userId)}/sessions`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'getSessions', success, error)); - } - - getAudits(userId, success, error) { - request. - get(`${this.getUserNeededRoute(userId)}/audits`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'getAudits', success, error)); - } - - getRecentlyActiveUsers(id, success, error) { - request. - get(`${this.getAdminRoute()}/recently_active_users/${id}`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'getRecentlyActiveUsers', success, error)); - } - - getProfiles(offset, limit, success, error) { - request. - get(`${this.getUsersRoute()}/${offset}/${limit}`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'getProfiles', success, error)); - - this.trackEvent('api', 'api_profiles_get'); - } - - getProfilesInTeam(teamId, offset, limit, success, error) { - request. - get(`${this.getTeamNeededRoute(teamId)}/users/${offset}/${limit}`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'getProfilesInTeam', success, error)); - - this.trackEvent('api', 'api_profiles_get_in_team', {team_id: teamId}); - } - - getProfilesNotInTeam(teamId, offset, limit, success, error) { - // Super hacky, but this option only exists in api v4 - function wrappedSuccess(data, res) { - // Convert the profile list provided by api v4 to a map to match similar v3 calls - const profiles = {}; - - for (const profile of data) { - profiles[profile.id] = profile; - } - - success(profiles, res); - } - - request. - get(`${this.url}/api/v4/users?not_in_team=${this.getTeamId()}&page=${offset}&per_page=${limit}`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'getProfilesNotInTeam', wrappedSuccess, error)); - - this.trackEvent('api', 'api_profiles_get_not_in_team', {team_id: teamId}); - } - - getProfilesInChannel(channelId, offset, limit, success, error) { - request. - get(`${this.getChannelNeededRoute(channelId)}/users/${offset}/${limit}`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'getProfilesInChannel', success, error)); - - this.trackEvent('api', 'api_profiles_get_in_channel', {team_id: this.getTeamId(), channel_id: channelId}); - } - - getProfilesNotInChannel(channelId, offset, limit, success, error) { - request. - get(`${this.getChannelNeededRoute(channelId)}/users/not_in_channel/${offset}/${limit}`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'getProfilesNotInChannel', success, error)); - - this.trackEvent('api', 'api_profiles_get_not_in_channel', {team_id: this.getTeamId(), channel_id: channelId}); - } - - getProfilesWithoutTeam(page, perPage, success, error) { - // Super hacky, but this option only exists in api v4 - function wrappedSuccess(data, res) { - // Convert the profile list provided by api v4 to a map to match similar v3 calls - const profiles = {}; - - for (const profile of data) { - profiles[profile.id] = profile; - } - - success(profiles, res); - } - - request. - get(`${this.url}/api/v4/users?without_team=1&page=${page}&per_page=${perPage}`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'getProfilesWithoutTeam', wrappedSuccess, error)); - - this.trackEvent('api', 'api_profiles_get_without_team'); - } - - getProfilesByIds(userIds, success, error) { - request. - post(`${this.getUsersRoute()}/ids`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - send(userIds). - end(this.handleResponse.bind(this, 'getProfilesByIds', success, error)); - - this.trackEvent('api', 'api_profiles_get_by_ids'); - } - - searchUsers(term, teamId, options, success, error) { - request. - post(`${this.getUsersRoute()}/search`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - send({term, team_id: teamId, ...options}). - end(this.handleResponse.bind(this, 'searchUsers', success, error)); - } - - searchUsersNotInTeam(term, teamId, options, success, error) { - // Note that this is calling an APIv4 Endpoint since no APIv3 equivalent exists. - request. - post(`${this.url}/api/v4/users/search`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - send({term, not_in_team_id: teamId, ...options}). - end(this.handleResponse.bind(this, 'searchUsersNotInTeam', success, error)); - - this.trackEvent('api', 'api_search_users_not_in_team', {team_id: teamId}); - } - - autocompleteUsersInChannel(term, channelId, success, error) { - request. - get(`${this.getChannelNeededRoute(channelId)}/users/autocomplete?term=${encodeURIComponent(term)}`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'autocompleteUsersInChannel', success, error)); - } - - autocompleteUsersInTeam(term, success, error) { - request. - get(`${this.getTeamNeededRoute()}/users/autocomplete?term=${encodeURIComponent(term)}`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'autocompleteUsersInTeam', success, error)); - } - - autocompleteUsers(term, success, error) { - request. - get(`${this.getUsersRoute()}/autocomplete?term=${encodeURIComponent(term)}`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'autocompleteUsers', success, error)); - } - - getStatuses(success, error) { - request. - get(`${this.getUsersRoute()}/status`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'getStatuses', success, error)); - } - - getStatusesByIds(userIds, success, error) { - request. - post(`${this.getUsersRoute()}/status/ids`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - send(userIds). - end(this.handleResponse.bind(this, 'getStatuses', success, error)); - } - - // SCHEDULED FOR DEPRECATION IN 3.8 - use viewChannel instead - setActiveChannel(id, success, error) { - request. - post(`${this.getUsersRoute()}/status/set_active_channel`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - send({channel_id: id}). - end(this.handleResponse.bind(this, 'setActiveChannel', success, error)); - - this.trackEvent('api', 'api_channels_set_active', {channel_id: id}); - } - - verifyEmail(token, success, error) { - request. - post(`${this.url}/api/v4/users/email/verify`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - send({token}). - end(this.handleResponse.bind(this, 'verifyEmail', success, error)); - } - - resendVerification(email, success, error) { - request. - post(`${this.url}/api/v4/users/email/verify/send`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - send({email}). - end(this.handleResponse.bind(this, 'resendVerification', success, error)); - } - - updateMfa(token, activate, success, error) { - const data = {}; - data.activate = activate; - data.token = token; - - request. - post(`${this.getUsersRoute()}/update_mfa`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - send(data). - end(this.handleResponse.bind(this, 'updateMfa', success, error)); - } - - uploadProfileImage(image, success, error) { - request. - post(`${this.getUsersRoute()}/newimage`). - set(this.defaultHeaders). - attach('image', image, image.name). - accept('application/json'). - end(this.handleResponse.bind(this, 'uploadProfileImage', success, error)); - - this.trackEvent('api', 'api_users_update_profile_picture'); - } - - getProfilePictureUrl(id, lastPictureUpdate) { - let url = `${this.getUsersRoute()}/${id}/image`; - - if (lastPictureUpdate) { - url += `?time=${lastPictureUpdate}`; - } - - return url; - } - - // Channel Routes Section - - createChannel(channel, success, error) { - request. - post(`${this.getChannelsRoute()}/create`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - send(channel). - end(this.handleResponse.bind(this, 'createChannel', success, error)); - - this.trackEvent('api', 'api_channels_create', {team_id: this.getTeamId()}); - } - - createDirectChannel(userId, success, error) { - request. - post(`${this.getChannelsRoute()}/create_direct`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - send({user_id: userId}). - end(this.handleResponse.bind(this, 'createDirectChannel', success, error)); - - this.trackEvent('api', 'api_channels_create_direct', {team_id: this.getTeamId()}); - } - - createGroupChannel(userIds, success, error) { - request. - post(`${this.getChannelsRoute()}/create_group`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - send(userIds). - end(this.handleResponse.bind(this, 'createGroupChannel', success, error)); - } - - updateChannel(channel, success, error) { - request. - post(`${this.getChannelsRoute()}/update`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - send(channel). - end(this.handleResponse.bind(this, 'updateChannel', success, error)); - - this.trackEvent('api', 'api_channels_update', {team_id: this.getTeamId(), channel_id: channel.id}); - } - - updateChannelHeader(channelId, header, success, error) { - const data = { - channel_id: channelId, - channel_header: header - }; - - request. - post(`${this.getChannelsRoute()}/update_header`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - send(data). - end(this.handleResponse.bind(this, 'updateChannel', success, error)); - - this.trackEvent('api', 'api_channels_header', {team_id: this.getTeamId(), channel_id: channelId}); - } - - updateChannelPurpose(channelId, purpose, success, error) { - const data = { - channel_id: channelId, - channel_purpose: purpose - }; - - request. - post(`${this.getChannelsRoute()}/update_purpose`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - send(data). - end(this.handleResponse.bind(this, 'updateChannelPurpose', success, error)); - - this.trackEvent('api', 'api_channels_purpose', {team_id: this.getTeamId(), channel_id: channelId}); - } - - updateChannelNotifyProps(data, success, error) { - request. - post(`${this.getChannelsRoute()}/update_notify_props`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - send(data). - end(this.handleResponse.bind(this, 'updateChannelNotifyProps', success, error)); - } - - leaveChannel(channelId, success, error) { - request. - post(`${this.getChannelNeededRoute(channelId)}/leave`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'leaveChannel', success, error)); - - this.trackEvent('api', 'api_channels_leave', {team_id: this.getTeamId(), channel_id: channelId}); - } - - joinChannel(channelId, success, error) { - request. - post(`${this.getChannelNeededRoute(channelId)}/join`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'joinChannel', success, error)); - - this.trackEvent('api', 'api_channels_join', {team_id: this.getTeamId(), channel_id: channelId}); - } - - joinChannelByName(name, success, error) { - request. - post(`${this.getChannelNameRoute(name)}/join`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'joinChannelByName', success, error)); - - this.trackEvent('api', 'api_channels_join_name', {team_id: this.getTeamId()}); - } - - deleteChannel(channelId, success, error) { - request. - post(`${this.getChannelNeededRoute(channelId)}/delete`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'deleteChannel', success, error)); - - this.trackEvent('api', 'api_channels_delete', {team_id: this.getTeamId(), channel_id: channelId}); - } - - viewChannel(channelId, prevChannelId = '', time = 0, success, error) { - request. - post(`${this.getChannelsRoute()}/view`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - send({channel_id: channelId, prev_channel_id: prevChannelId, time}). - end(this.handleResponse.bind(this, 'viewChannel', success, error)); - } - - // SCHEDULED FOR DEPRECATION IN 3.8 - use viewChannel instead - updateLastViewedAt(channelId, active, success, error) { - request. - post(`${this.getChannelNeededRoute(channelId)}/update_last_viewed_at`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - send({active}). - end(this.handleResponse.bind(this, 'updateLastViewedAt', success, error)); - } - - // SCHEDULED FOR DEPRECATION IN 3.8 - setLastViewedAt(channelId, lastViewedAt, success, error) { - request. - post(`${this.getChannelNeededRoute(channelId)}/set_last_viewed_at`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - send({last_viewed_at: lastViewedAt}). - end(this.handleResponse.bind(this, 'setLastViewedAt', success, error)); - } - - getChannels(success, error) { - request. - get(`${this.getChannelsRoute()}/`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'getChannels', success, error)); - } - - getChannel(channelId, success, error) { - request. - get(`${this.getChannelNeededRoute(channelId)}/`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'getChannel', success, error)); - - this.trackEvent('api', 'api_channel_get', {team_id: this.getTeamId(), channel_id: channelId}); - } - - getMoreChannelsPage(offset, limit, success, error) { - request. - get(`${this.getChannelsRoute()}/more/${offset}/${limit}`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'getMoreChannelsPage', success, error)); - - this.trackEvent('api', 'api_channels_more_page', {team_id: this.getTeamId()}); - } - - searchMoreChannels(term, success, error) { - request. - post(`${this.getChannelsRoute()}/more/search`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - send({term}). - end(this.handleResponse.bind(this, 'searchMoreChannels', success, error)); - } - - autocompleteChannels(term, success, error) { - request. - get(`${this.getChannelsRoute()}/autocomplete?term=${encodeURIComponent(term)}`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'autocompleteChannels', success, error)); - } - - getChannelCounts(success, error) { - request. - get(`${this.getChannelsRoute()}/counts`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'getChannelCounts', success, error)); - } - - getMyChannelMembers(success, error) { - request. - get(`${this.getChannelsRoute()}/members`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'getMyChannelMembers', success, error)); - } - - getMyChannelMembersForTeam(teamId, success, error) { - request. - get(`${this.getTeamsRoute()}/${teamId}/channels/members`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'getMyChannelMembersForTeam', success, error)); - } - - getChannelByName(channelName, success, error) { - request. - get(`${this.getChannelsRoute()}/name/${channelName}`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'getChannelByName', success, error)); - } - - getChannelStats(channelId, success, error) { - request. - get(`${this.getChannelNeededRoute(channelId)}/stats`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'getChannelStats', success, error)); - } - - getChannelMember(channelId, userId, success, error) { - request. - get(`${this.getChannelNeededRoute(channelId)}/members/${userId}`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'getChannelMember', success, error)); - } - - getChannelMembersByIds(channelId, userIds, success, error) { - request. - post(`${this.getChannelNeededRoute(channelId)}/members/ids`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - send(userIds). - end(this.handleResponse.bind(this, 'getChannelMembersByIds', success, error)); - } - - addChannelMember(channelId, userId, success, error) { - request. - post(`${this.getChannelNeededRoute(channelId)}/add`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - send({user_id: userId}). - end(this.handleResponse.bind(this, 'addChannelMember', success, error)); - - this.trackEvent('api', 'api_channels_add_member', {team_id: this.getTeamId(), channel_id: channelId}); - } - - removeChannelMember(channelId, userId, success, error) { - request. - post(`${this.getChannelNeededRoute(channelId)}/remove`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - send({user_id: userId}). - end(this.handleResponse.bind(this, 'removeChannelMember', success, error)); - - this.trackEvent('api', 'api_channels_remove_member', {team_id: this.getTeamId(), channel_id: channelId}); - } - - updateChannelMemberRoles(channelId, userId, newRoles, success, error) { - var data = { - user_id: userId, - new_roles: newRoles - }; - - request. - post(`${this.getChannelNeededRoute(channelId)}/update_member_roles`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - send(data). - end(this.handleResponse.bind(this, 'updateChannelMemberRoles', success, error)); - } - - // Routes for Commands - - listCommands(success, error) { - request. - get(`${this.getCommandsRoute()}/list`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'listCommands', success, error)); - } - - executeCommand(command, commandArgs, success, error) { - request. - post(`${this.getCommandsRoute()}/execute`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - send({command, ...commandArgs}). - end(this.handleResponse.bind(this, 'executeCommand', success, error)); - - this.trackEvent('api', 'api_integrations_used'); - } - - addCommand(command, success, error) { - request. - post(`${this.getCommandsRoute()}/create`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - send(command). - end(this.handleResponse.bind(this, 'addCommand', success, error)); - - this.trackEvent('api', 'api_integrations_created'); - } - - editCommand(command, success, error) { - request. - post(`${this.getCommandsRoute()}/update`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - send(command). - end(this.handleResponse.bind(this, 'editCommand', success, error)); - - this.trackEvent('api', 'api_integrations_created'); - } - - deleteCommand(commandId, success, error) { - request. - post(`${this.getCommandsRoute()}/delete`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - send({id: commandId}). - end(this.handleResponse.bind(this, 'deleteCommand', success, error)); - - this.trackEvent('api', 'api_integrations_deleted'); - } - - listTeamCommands(success, error) { - request. - get(`${this.getCommandsRoute()}/list_team_commands`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'listTeamCommands', success, error)); - } - - regenCommandToken(commandId, success, error) { - request. - post(`${this.getCommandsRoute()}/regen_token`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - send({id: commandId}). - end(this.handleResponse.bind(this, 'regenCommandToken', success, error)); - } - - // Routes for Posts - - createPost(post, success, error) { - request. - post(`${this.getPostsRoute(post.channel_id)}/create`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - send({...post, create_at: 0}). - end(this.handleResponse.bind(this, 'createPost', success, error)); - - this.trackEvent('api', 'api_posts_create', {team_id: this.getTeamId(), channel_id: post.channel_id}); - - if (post.parent_id != null && post.parent_id !== '') { - this.trackEvent('api', 'api_posts_replied', {team_id: this.getTeamId(), channel_id: post.channel_id}); - } - } - - // This is a temporary route to get around a problem with the permissions system that - // will be fixed in 3.1 or 3.2 - getPermalinkTmp(postId, success, error) { - request. - get(`${this.getTeamNeededRoute()}/pltmp/${postId}`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'getPermalinkTmp', success, error)); - - this.trackEvent('api', 'api_channels_permalink', {team_id: this.getTeamId()}); - } - - getPostById(postId, success, error) { - request. - get(`${this.getTeamNeededRoute()}/posts/${postId}`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'getPostById', success, error)); - } - - getPost(channelId, postId, success, error) { - request. - get(`${this.getChannelNeededRoute(channelId)}/posts/${postId}/get`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'getPost', success, error)); - } - - updatePost(post, success, error) { - request. - post(`${this.getPostsRoute(post.channel_id)}/update`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - send(post). - end(this.handleResponse.bind(this, 'updatePost', success, error)); - - this.trackEvent('api', 'api_posts_update', {team_id: this.getTeamId(), channel_id: post.channel_id}); - } - - deletePost(channelId, postId, success, error) { - request. - post(`${this.getChannelNeededRoute(channelId)}/posts/${postId}/delete`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'deletePost', success, error)); - - this.trackEvent('api', 'api_posts_delete', {team_id: this.getTeamId(), channel_id: channelId}); - } - - search(terms, isOrSearch, success, error) { - const data = {}; - data.terms = terms; - data.is_or_search = isOrSearch; - - request. - post(`${this.getTeamNeededRoute()}/posts/search`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - send(data). - end(this.handleResponse.bind(this, 'search', success, error)); - - this.trackEvent('api', 'api_posts_search', {team_id: this.getTeamId()}); - } - - getPostsPage(channelId, offset, limit, success, error) { - request. - get(`${this.getPostsRoute(channelId)}/page/${offset}/${limit}`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'getPostsPage', success, error)); - } - - getPosts(channelId, since, success, error) { - request. - get(`${this.getPostsRoute(channelId)}/since/${since}`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'getPosts', success, error)); - } - - getPostsBefore(channelId, postId, offset, numPost, success, error) { - request. - get(`${this.getPostsRoute(channelId)}/${postId}/before/${offset}/${numPost}`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'getPostsBefore', success, error)); - - this.trackEvent('api', 'api_posts_get_before', {team_id: this.getTeamId(), channel_id: channelId}); - } - - getPostsAfter(channelId, postId, offset, numPost, success, error) { - request. - get(`${this.getPostsRoute(channelId)}/${postId}/after/${offset}/${numPost}`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'getPostsAfter', success, error)); - - this.trackEvent('api', 'api_posts_get_after', {team_id: this.getTeamId(), channel_id: channelId}); - } - - getFlaggedPosts(offset, limit, success, error) { - request. - get(`${this.getTeamNeededRoute()}/posts/flagged/${offset}/${limit}`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'getFlaggedPosts', success, error)); - - this.trackEvent('api', 'api_posts_get_flagged', {team_id: this.getTeamId()}); - } - - getPinnedPosts(channelId, success, error) { - request. - get(`${this.getChannelNeededRoute(channelId)}/pinned`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'getPinnedPosts', success, error)); - } - - getFileInfosForPost(channelId, postId, success, error) { - request. - get(`${this.getChannelNeededRoute(channelId)}/posts/${postId}/get_file_infos`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'getFileInfosForPost', success, error)); - } - - getOpenGraphMetadata(url, success, error) { - request. - post(`${this.getBaseRoute()}/get_opengraph_metadata`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - send({url}). - end(this.handleResponse.bind(this, 'getOpenGraphMetadata', success, error)); - } - - // Routes for Files - - uploadFile(file, filename, channelId, clientId, success, error) { - this.trackEvent('api', 'api_files_upload', {team_id: this.getTeamId(), channel_id: channelId}); - - return request. - post(`${this.getTeamFilesRoute()}/upload`). - set(this.defaultHeaders). - attach('files', file, filename). - field('channel_id', channelId). - field('client_ids', clientId). - accept('application/json'). - end(this.handleResponse.bind(this, 'uploadFile', success, error)); - } - - getFile(fileId, success, error) { - request. - get(`${this.getFileRoute(fileId)}/get`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'getFile', success, error)); - } - - getFileThumbnail(fileId, success, error) { - request. - get(`${this.getFileRoute(fileId)}/get_thumbnail`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'getFileThumbnail', success, error)); - } - - getFilePreview(fileId, success, error) { - request. - get(`${this.getFileRoute(fileId)}/get`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'getFilePreview', success, error)); - } - - getFileInfo(fileId, success, error) { - request. - get(`${this.getFileRoute(fileId)}/get_info`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'getFileInfo', success, error)); - } - - getPublicLink(fileId, success, error) { - request. - get(`${this.getFileRoute(fileId)}/get_public_link`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'getPublicLink', success, error)); - } - - // Routes for OAuth - - registerOAuthApp(app, success, error) { - request. - post(`${this.getOAuthRoute()}/register`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - send(app). - end(this.handleResponse.bind(this, 'registerOAuthApp', success, error)); - - this.trackEvent('api', 'api_apps_register'); - } - - allowOAuth2(responseType, clientId, redirectUri, state, scope, success, error) { - request. - get(`${this.getOAuthRoute()}/allow`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - query({response_type: responseType}). - query({client_id: clientId}). - query({redirect_uri: redirectUri}). - query({scope}). - query({state}). - end(this.handleResponse.bind(this, 'allowOAuth2', success, error)); - } - - listOAuthApps(success, error) { - request. - get(`${this.getOAuthRoute()}/list`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - send(). - end(this.handleResponse.bind(this, 'getOAuthApps', success, error)); - } - - deleteOAuthApp(id, success, error) { - request. - post(`${this.getOAuthRoute()}/delete`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - send({id}). - end(this.handleResponse.bind(this, 'deleteOAuthApp', success, error)); - - this.trackEvent('api', 'api_apps_delete'); - } - - getOAuthAppInfo(id, success, error) { - request. - get(`${this.getOAuthRoute()}/app/${id}`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - send(). - end(this.handleResponse.bind(this, 'getOAuthAppInfo', success, error)); - } - - getAuthorizedApps(success, error) { - request. - get(`${this.getOAuthRoute()}/authorized`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - send(). - end(this.handleResponse.bind(this, 'getAuthorizedApps', success, error)); - } - - deauthorizeOAuthApp(id, success, error) { - request. - post(`${this.getOAuthRoute()}/${id}/deauthorize`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - send(). - end(this.handleResponse.bind(this, 'deauthorizeOAuthApp', success, error)); - } - - regenerateOAuthAppSecret(id, success, error) { - request. - post(`${this.getOAuthRoute()}/${id}/regen_secret`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - send(). - end(this.handleResponse.bind(this, 'regenerateOAuthAppSecret', success, error)); - } - - // Routes for Hooks - - addIncomingHook(hook, success, error) { - request. - post(`${this.getHooksRoute()}/incoming/create`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - send(hook). - end(this.handleResponse.bind(this, 'addIncomingHook', success, error)); - - this.trackEvent('api', 'api_integrations_created', {team_id: this.getTeamId()}); - } - - updateIncomingHook(hook, success, error) { - request. - post(`${this.getHooksRoute()}/incoming/update`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - send(hook). - end(this.handleResponse.bind(this, 'updateIncomingHook', success, error)); - - this.trackEvent('api', 'api_integrations_updated', {team_id: this.getTeamId()}); - } - - deleteIncomingHook(hookId, success, error) { - request. - post(`${this.getHooksRoute()}/incoming/delete`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - send({id: hookId}). - end(this.handleResponse.bind(this, 'deleteIncomingHook', success, error)); - - this.trackEvent('api', 'api_integrations_deleted', {team_id: this.getTeamId()}); - } - - listIncomingHooks(success, error) { - request. - get(`${this.getHooksRoute()}/incoming/list`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'listIncomingHooks', success, error)); - } - - addOutgoingHook(hook, success, error) { - request. - post(`${this.getHooksRoute()}/outgoing/create`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - send(hook). - end(this.handleResponse.bind(this, 'addOutgoingHook', success, error)); - - this.trackEvent('api', 'api_integrations_created', {team_id: this.getTeamId()}); - } - - updateOutgoingHook(hook, success, error) { - request. - post(`${this.getHooksRoute()}/outgoing/update`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - send(hook). - end(this.handleResponse.bind(this, 'updateOutgoingHook', success, error)); - - this.trackEvent('api', 'api_integrations_updated', {team_id: this.getTeamId()}); - } - - deleteOutgoingHook(hookId, success, error) { - request. - post(`${this.getHooksRoute()}/outgoing/delete`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - send({id: hookId}). - end(this.handleResponse.bind(this, 'deleteOutgoingHook', success, error)); - - this.trackEvent('api', 'api_integrations_deleted', {team_id: this.getTeamId()}); - } - - listOutgoingHooks(success, error) { - request. - get(`${this.getHooksRoute()}/outgoing/list`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'listOutgoingHooks', success, error)); - } - - regenOutgoingHookToken(hookId, success, error) { - request. - post(`${this.getHooksRoute()}/outgoing/regen_token`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - send({id: hookId}). - end(this.handleResponse.bind(this, 'regenOutgoingHookToken', success, error)); - } - - // Routes for Preferences - - getAllPreferences(success, error) { - request. - get(`${this.getBaseRoute()}/preferences/`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'getAllPreferences', success, error)); - } - - savePreferences(preferences, success, error) { - request. - post(`${this.getBaseRoute()}/preferences/save`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - send(preferences). - end(this.handleResponse.bind(this, 'savePreferences', success, error)); - } - - getPreferenceCategory(category, success, error) { - request. - get(`${this.getBaseRoute()}/preferences/${category}`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'getPreferenceCategory', success, error)); - } - - deletePreferences(preferences, success, error) { - request. - post(`${this.getBaseRoute()}/preferences/delete`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - send(preferences). - end(this.handleResponse.bind(this, 'deletePreferences', success, error)); - } - - // Routes for Emoji - - listEmoji(success, error) { - request. - get(`${this.getEmojiRoute()}/list`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'listEmoji', success, error)); - } - - addEmoji(emoji, image, success, error) { - request. - post(`${this.getEmojiRoute()}/create`). - set(this.defaultHeaders). - accept('application/json'). - attach('image', image, image.name). - field('emoji', JSON.stringify(emoji)). - end(this.handleResponse.bind(this, 'addEmoji', success, error)); - - this.trackEvent('api', 'api_emoji_custom_add'); - } - - deleteEmoji(id, success, error) { - request. - post(`${this.getEmojiRoute()}/delete`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - send({id}). - end(this.handleResponse.bind(this, 'deleteEmoji', success, error)); - - this.trackEvent('api', 'api_emoji_custom_delete'); - } - - getCustomEmojiImageUrl(id) { - return `${this.getEmojiRoute()}/${id}`; - } - - uploadCertificateFile(file, success, error) { - request. - post(`${this.getAdminRoute()}/add_certificate`). - set(this.defaultHeaders). - accept('application/json'). - attach('certificate', file, file.name). - end(this.handleResponse.bind(this, 'uploadCertificateFile', success, error)); - } - - removeCertificateFile(filename, success, error) { - request. - post(`${this.getAdminRoute()}/remove_certificate`). - set(this.defaultHeaders). - accept('application/json'). - send({filename}). - end(this.handleResponse.bind(this, 'removeCertificateFile', success, error)); - } - - samlCertificateStatus(success, error) { - request.get(`${this.getAdminRoute()}/saml_cert_status`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end((err, res) => { - if (err) { - return error(err); - } - - if (!res.body) { - console.error('Missing response body for samlCertificateStatus'); // eslint-disable-line no-console - } - - return success(res.body); - }); - } - - pinPost(channelId, postId, success, error) { - request. - post(`${this.getChannelNeededRoute(channelId)}/posts/${postId}/pin`). - set(this.defaultHeaders). - accept('application/json'). - send(). - end(this.handleResponse.bind(this, 'pinPost', success, error)); - } - - unpinPost(channelId, postId, success, error) { - request. - post(`${this.getChannelNeededRoute(channelId)}/posts/${postId}/unpin`). - set(this.defaultHeaders). - accept('application/json'). - send(). - end(this.handleResponse.bind(this, 'unpinPost', success, error)); - } - - saveReaction(channelId, reaction, success, error) { - request. - post(`${this.getChannelNeededRoute(channelId)}/posts/${reaction.post_id}/reactions/save`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - send(reaction). - end(this.handleResponse.bind(this, 'saveReaction', success, error)); - - this.trackEvent('api', 'api_reactions_save', {team_id: this.getTeamId(), channel_id: channelId, post_id: reaction.post_id}); - } - - deleteReaction(channelId, reaction, success, error) { - request. - post(`${this.getChannelNeededRoute(channelId)}/posts/${reaction.post_id}/reactions/delete`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - send(reaction). - end(this.handleResponse.bind(this, 'deleteReaction', success, error)); - - this.trackEvent('api', 'api_reactions_delete', {team_id: this.getTeamId(), channel_id: channelId, post_id: reaction.post_id}); - } - - listReactions(channelId, postId, success, error) { - request. - get(`${this.getChannelNeededRoute(channelId)}/posts/${postId}/reactions`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'listReactions', success, error)); - } - - webrtcToken(success, error) { - request.post(`${this.getWebrtcRoute()}/token`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'webrtcToken', success, error)); - } -} |