From e4ccd12bc45e9b86509e7aefd5155a3f9131cec5 Mon Sep 17 00:00:00 2001 From: Christopher Speller Date: Wed, 18 May 2016 10:42:25 -0400 Subject: [PATCH] Moving out javascript driver (#3040) --- client/client.jsx | 1497 ----------------------------------------- package.json | 3 +- tests/test_helper.jsx | 2 +- utils/web_client.jsx | 2 +- webpack.config.js | 9 + 5 files changed, 13 insertions(+), 1500 deletions(-) delete mode 100644 client/client.jsx diff --git a/client/client.jsx b/client/client.jsx deleted file mode 100644 index 3ee7b1de994e..000000000000 --- a/client/client.jsx +++ /dev/null @@ -1,1497 +0,0 @@ -// Copyright (c) 2016 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_TOKEN = 'token'; -const HEADER_BEARER = 'BEARER'; -const HEADER_AUTH = 'Authorization'; - -export default class Client { - constructor() { - this.teamId = ''; - this.serverVersion = ''; - 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; - } - - 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`; - } - - getLicenseRoute() { - return `${this.url}${this.urlVersion}/license`; - } - - getTeamsRoute() { - return `${this.url}${this.urlVersion}/teams`; - } - - getTeamNeededRoute() { - return `${this.url}${this.urlVersion}/teams/${this.getTeamId()}`; - } - - 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`; - } - - 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`; - } - - getFilesRoute() { - return `${this.url}${this.urlVersion}/teams/${this.getTeamId()}/files`; - } - - getOAuthRoute() { - return `${this.url}${this.urlVersion}/oauth`; - } - - getUserNeededRoute(userId) { - return `${this.url}${this.urlVersion}/users/${userId}`; - } - - 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}`; - } - } - - track = (category, action, label, property, value) => { // eslint-disable-line no-unused-vars - // NO-OP for inherited classes to override - } - - trackPage = () => { - // NO-OP for inherited classes to override - } - - handleError = (err, res) => { // eslint-disable-line no-unused-vars - // NO-OP for inherited classes to override - } - - handleResponse = (methodName, successCallback, errorCallback, err, res) => { - if (res && res.header) { - this.serverVersion = res.header[HEADER_X_VERSION_ID]; - if (res.header[HEADER_X_VERSION_ID]) { - this.serverVersion = res.header[HEADER_X_VERSION_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.track('api', 'api_weberror', methodName, 'message', msg); - - this.handleError(err, res); - - if (errorCallback) { - errorCallback(e, err, res); - return; - } - } - - if (successCallback) { - successCallback(res.body, res); - } - } - - // General / Admin / Licensing Routes Section - - 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)); - } - - getClientConfig = (success, error) => { - return request. - get(`${this.getAdminRoute()}/client_props`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'getClientConfig', 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)); - } - - 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)); - } - - logClientError = (msg) => { - var l = {}; - l.level = 'ERROR'; - l.message = msg; - - request. - post(`${this.getAdminRoute()}/log_client`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - send(l). - end(this.handleResponse.bind(this, 'logClientError', null, null)); - } - - 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.track('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)); - } - - signupTeam = (email, success, error) => { - request. - post(`${this.getTeamsRoute()}/signup`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - send({email}). - end(this.handleResponse.bind(this, 'signupTeam', success, error)); - - this.track('api', 'api_teams_signup'); - } - - 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.track('api', 'api_admin_reset_password'); - } - - // Team Routes Section - - createTeamFromSignup = (teamSignup, success, error) => { - request. - post(`${this.getTeamsRoute()}/create_from_signup`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - send(teamSignup). - end(this.handleResponse.bind(this, 'createTeamFromSignup', 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)); - } - - 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.track('api', 'api_users_create', '', 'email', team.name); - } - - 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.track('api', 'api_teams_update_name'); - } - - 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)); - } - - 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, success, error) => { - request. - get(`${this.getTeamsRoute()}/members/${teamId}`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'getTeamMembers', 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.track('api', 'api_teams_invite_members'); - } - - addUserToTeam = (userId, success, error) => { - request. - post(`${this.getTeamNeededRoute()}/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.track('api', 'api_teams_invite_members'); - } - - 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.track('api', 'api_teams_invite_members'); - } - - 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); - } - - request. - post(url). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - send(user). - end(this.handleResponse.bind(this, 'createUser', success, error)); - - this.track('api', 'api_users_create', '', 'email', user.email); - } - - updateUser = (user, 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)); - - this.track('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.track('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)); - } - - updateRoles = (teamId, userId, newRoles, success, error) => { - var data = { - team_id: teamId, - user_id: userId, - new_roles: newRoles - }; - - request. - post(`${this.getUsersRoute()}/update_roles`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - send(data). - end(this.handleResponse.bind(this, 'updateRoles', success, error)); - - this.track('api', 'api_users_update_roles'); - } - - updateActive = (userId, active, success, error) => { - var data = {}; - data.user_id = userId; - data.active = '' + 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.track('api', 'api_users_update_roles'); - } - - 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.track('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.track('api', 'api_users_reset_password'); - } - - emailToOAuth = (email, password, service, success, error) => { - var data = {}; - data.password = password; - data.email = email; - data.service = service; - - request. - post(`${this.getUsersRoute()}/claim/email_to_oauth`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - send(data). - end(this.handleResponse.bind(this, 'emailToOAuth', success, error)); - - this.track('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.track('api', 'api_users_oauth_to_email'); - } - - emailToLdap = (email, password, ldapId, ldapPassword, success, error) => { - var data = {}; - data.email_password = password; - data.email = email; - data.ldap_id = ldapId; - data.ldap_password = ldapPassword; - - 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.track('api', 'api_users_email_to_ldap'); - } - - ldapToEmail = (email, emailPassword, ldapPassword, success, error) => { - var data = {}; - data.email = email; - data.ldap_password = ldapPassword; - data.email_password = emailPassword; - - 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.track('api', 'api_users_oauth_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)); - } - - login = (loginId, password, mfaToken, success, error) => { - this.doLogin({login_id: loginId, password, token: mfaToken}, success, error); - - this.track('api', 'api_users_login', '', 'login_id', loginId); - } - - loginById = (id, password, mfaToken, success, error) => { - this.doLogin({id, password, token: mfaToken}, success, error); - - this.track('api', 'api_users_login', '', 'id', id); - } - - loginByLdap = (loginId, password, mfaToken, success, error) => { - this.doLogin({login_id: loginId, password, token: mfaToken, ldap_only: 'true'}, success, error); - - this.track('api', 'api_users_login', '', 'login_id', loginId); - } - - 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.track('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.track('api', 'api_users_oauth_to_email'); - } - - 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)); - } - - getDirectProfiles = (success, error) => { - request. - get(`${this.getUsersRoute()}/direct_profiles`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'getDirectProfiles', success, error)); - } - - getProfiles = (success, error) => { - request. - get(`${this.getUsersRoute()}/profiles/${this.getTeamId()}`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'getProfiles', success, error)); - } - - getProfilesForTeam = (teamId, success, error) => { - request. - get(`${this.getUsersRoute()}/profiles/${teamId}`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'getProfilesForTeam', success, error)); - } - - getProfilesForDirectMessageList = (success, error) => { - request. - get(`${this.getUsersRoute()}/profiles_for_dm_list/${this.getTeamId()}`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'getProfilesForDirectMessageList', success, error)); - } - - getStatuses = (ids, success, error) => { - request. - post(`${this.getUsersRoute()}/status`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - send(ids). - end(this.handleResponse.bind(this, 'getStatuses', success, error)); - } - - verifyEmail = (uid, hid, success, error) => { - request. - post(`${this.getUsersRoute()}/verify_email`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - send({uid, hid}). - end(this.handleResponse.bind(this, 'verifyEmail', success, error)); - } - - resendVerification = (email, success, error) => { - request. - post(`${this.getUsersRoute()}/resend_verification`). - 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)); - } - - // 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.track('api', 'api_channels_create', channel.type, 'name', channel.name); - } - - 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)); - } - - 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.track('api', 'api_channels_update'); - } - - 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.track('api', 'api_channels_header'); - } - - 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.track('api', 'api_channels_purpose'); - } - - 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.track('api', 'api_channels_leave'); - } - - 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.track('api', 'api_channels_join'); - } - - 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.track('api', 'api_channels_join_name'); - } - - 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.track('api', 'api_channels_delete'); - } - - updateLastViewedAt = (channelId, success, error) => { - request. - post(`${this.getChannelNeededRoute(channelId)}/update_last_viewed_at`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'updateLastViewedAt', 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.track('api', 'api_channel_get'); - } - - getMoreChannels = (success, error) => { - request. - get(`${this.getChannelsRoute()}/more`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'getMoreChannels', 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)); - } - - getChannelExtraInfo = (channelId, memberLimit, success, error) => { - var url = `${this.getChannelNeededRoute(channelId)}/extra_info`; - if (memberLimit) { - url += '/' + memberLimit; - } - - request. - get(url). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'getChannelExtraInfo', 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.track('api', 'api_channels_add_member'); - } - - 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.track('api', 'api_channels_remove_member'); - } - - // 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 = (channelId, command, suggest, success, error) => { - request. - post(`${this.getCommandsRoute()}/execute`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - send({channelId, command, suggest: '' + suggest}). - end(this.handleResponse.bind(this, 'executeCommand', success, error)); - } - - 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)); - } - - 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)); - } - - 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). - end(this.handleResponse.bind(this, 'createPost', success, error)); - - this.track('api', 'api_posts_create', post.channel_id, 'length', post.message.length); - } - - // 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)); - } - - 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.track('api', 'api_posts_update'); - } - - 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.track('api', 'api_posts_delete'); - } - - 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.track('api', 'api_posts_search'); - } - - 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)); - } - - 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)); - } - - // Routes for Files - - getFileInfo = (filename, success, error) => { - request. - get(`${this.getFilesRoute()}/get_info${filename}`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - end(this.handleResponse.bind(this, 'getFileInfo', success, error)); - } - - getPublicLink = (filename, success, error) => { - const data = { - filename - }; - - request. - post(`${this.getFilesRoute()}/get_public_link`). - set(this.defaultHeaders). - type('application/json'). - accept('application/json'). - send(data). - end(this.handleResponse.bind(this, 'getPublicLink', success, error)); - } - - uploadFile = (file, filename, channelId, clientId, success, error) => { - return request. - post(`${this.getFilesRoute()}/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)); - } - - // 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.track('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)); - } - - // 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)); - } - - 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)); - } - - 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)); - } - - 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)); - } - - 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 Prefrecnes - - 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)); - } -} diff --git a/package.json b/package.json index 505114b0bc3b..aa961eb87066 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "name": "mattermost", + "name": "mattermost-webapp", "version": "0.0.1", "private": true, "dependencies": { @@ -17,6 +17,7 @@ "jquery": "2.2.3", "keymirror": "0.1.1", "marked": "mattermost/marked#cb85e5cc81bc7937dbb73c3c53d9532b1b97e3ca", + "mattermost": "mattermost/mattermost-javascript#master", "match-at": "0.1.0", "object-assign": "4.1.0", "perfect-scrollbar": "0.6.11", diff --git a/tests/test_helper.jsx b/tests/test_helper.jsx index 4352096a1a63..88813ecef121 100644 --- a/tests/test_helper.jsx +++ b/tests/test_helper.jsx @@ -1,7 +1,7 @@ // Copyright (c) 2016 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -import Client from '../client/client.jsx'; +import Client from '../node_modules/mattermost/client.jsx'; import jqd from 'jquery-deferred'; class TestHelperClass { diff --git a/utils/web_client.jsx b/utils/web_client.jsx index c7e4bd3067f7..04fba0c5b938 100644 --- a/utils/web_client.jsx +++ b/utils/web_client.jsx @@ -1,7 +1,7 @@ // Copyright (c) 2016 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -import Client from '../client/client.jsx'; +import Client from 'mattermost/client.jsx'; import TeamStore from '../stores/team_store.jsx'; import BrowserStore from '../stores/browser_store.jsx'; import * as GlobalActions from 'action_creators/global_actions.jsx'; diff --git a/webpack.config.js b/webpack.config.js index 224d6701478e..191518a079f7 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -42,6 +42,15 @@ var config = { cacheDirectory: DEV } }, + { + test: /node_modules\/mattermost\/client\.jsx?$/, + loader: 'babel', + query: { + presets: ['react', 'es2015-webpack', 'stage-0'], + plugins: ['transform-runtime'], + cacheDirectory: DEV + } + }, { test: /\.json$/, loader: 'json'