2015-06-14 23:53:32 -08:00
// See License.txt for license information.
2015-07-08 09:55:24 -04:00
var BrowserStore = require ( '../stores/browser_store.jsx' ) ;
2015-07-08 11:50:10 -04:00
var TeamStore = require ( '../stores/team_store.jsx' ) ;
2015-10-06 16:17:27 -07:00
var ErrorStore = require ( '../stores/error_store.jsx' ) ;
2015-06-14 23:53:32 -08:00
2015-09-02 10:42:26 -04:00
export function track ( category , action , label , prop , val ) {
2015-06-15 08:00:53 -04:00
global . window . analytics . track ( action , { category : category , label : label , property : prop , value : val } ) ;
2015-09-02 10:42:26 -04:00
}
2015-06-14 23:53:32 -08:00
2015-09-02 10:42:26 -04:00
export function trackPage ( ) {
2015-06-15 08:00:53 -04:00
global . window . analytics . page ( ) ;
2015-09-02 10:42:26 -04:00
}
2015-06-14 23:53:32 -08:00
2015-08-18 09:43:22 -04:00
function handleError ( methodName , xhr , status , err ) {
2015-06-14 23:53:32 -08:00
var e = null ;
try {
e = JSON . parse ( xhr . responseText ) ;
2015-10-05 09:58:42 -04:00
} catch ( parseError ) {
2015-08-18 09:43:22 -04:00
e = null ;
2015-06-14 23:53:32 -08:00
}
2015-08-18 09:43:22 -04:00
var msg = '' ;
2015-06-14 23:53:32 -08:00
if ( e ) {
2015-08-18 09:43:22 -04:00
msg = 'error in ' + methodName + ' msg=' + e . message + ' detail=' + e . detailed _error + ' rid=' + e . request _id ;
} else {
msg = 'error in ' + methodName + ' status=' + status + ' statusCode=' + xhr . status + ' err=' + err ;
2015-06-14 23:53:32 -08:00
2015-08-18 09:43:22 -04:00
if ( xhr . status === 0 ) {
2015-10-06 16:17:27 -07:00
let errorCount = 1 ;
const oldError = ErrorStore . getLastError ( ) ;
let connectError = 'There appears to be a problem with your internet connection' ;
if ( oldError && oldError . connErrorCount ) {
errorCount += oldError . connErrorCount ;
connectError = 'We cannot reach the Mattermost service. The service may be down or misconfigured. Please contact an administrator to make sure the WebSocket port is configured properly.' ;
}
e = { message : connectError , connErrorCount : errorCount } ;
2015-08-18 09:43:22 -04:00
} else {
e = { message : 'We received an unexpected status code from the server (' + xhr . status + ')' } ;
}
2015-06-14 23:53:32 -08:00
}
2015-08-18 09:43:22 -04:00
console . error ( msg ) ; //eslint-disable-line no-console
console . error ( e ) ; //eslint-disable-line no-console
2015-06-14 23:53:32 -08:00
2015-09-02 10:42:26 -04:00
track ( 'api' , 'api_weberror' , methodName , 'message' , msg ) ;
2015-06-14 23:53:32 -08:00
2015-08-18 09:43:22 -04:00
if ( xhr . status === 401 ) {
if ( window . location . href . indexOf ( '/channels' ) === 0 ) {
window . location . pathname = '/login?redirect=' + encodeURIComponent ( window . location . pathname + window . location . search ) ;
2015-07-08 11:50:10 -04:00
} else {
var teamURL = window . location . href . split ( '/channels' ) [ 0 ] ;
2015-08-18 09:43:22 -04:00
window . location . href = teamURL + '/login?redirect=' + encodeURIComponent ( window . location . pathname + window . location . search ) ;
2015-07-08 11:50:10 -04:00
}
2015-06-14 23:53:32 -08:00
}
return e ;
}
2015-09-02 10:42:26 -04:00
export function createTeamFromSignup ( teamSignup , success , error ) {
2015-06-14 23:53:32 -08:00
$ . ajax ( {
2015-08-18 09:43:22 -04:00
url : '/api/v1/teams/create_from_signup' ,
2015-06-14 23:53:32 -08:00
dataType : 'json' ,
contentType : 'application/json' ,
type : 'POST' ,
2015-08-18 09:43:22 -04:00
data : JSON . stringify ( teamSignup ) ,
2015-09-21 14:22:23 -04:00
success ,
2015-08-18 09:43:22 -04:00
error : function onError ( xhr , status , err ) {
var e = handleError ( 'createTeamFromSignup' , xhr , status , err ) ;
2015-06-14 23:53:32 -08:00
error ( e ) ;
}
} ) ;
2015-09-02 10:42:26 -04:00
}
2015-06-14 23:53:32 -08:00
2015-09-02 10:42:26 -04:00
export function createTeamWithSSO ( team , service , success , error ) {
2015-08-28 08:37:55 -04:00
$ . ajax ( {
url : '/api/v1/teams/create_with_sso/' + service ,
dataType : 'json' ,
contentType : 'application/json' ,
type : 'POST' ,
data : JSON . stringify ( team ) ,
2015-09-21 14:22:23 -04:00
success ,
2015-08-28 08:37:55 -04:00
error : function onError ( xhr , status , err ) {
var e = handleError ( 'createTeamWithSSO' , xhr , status , err ) ;
error ( e ) ;
}
} ) ;
2015-09-02 10:42:26 -04:00
}
2015-08-28 08:37:55 -04:00
2015-09-02 10:42:26 -04:00
export function createUser ( user , data , emailHash , success , error ) {
2015-06-14 23:53:32 -08:00
$ . ajax ( {
2015-08-18 09:43:22 -04:00
url : '/api/v1/users/create?d=' + encodeURIComponent ( data ) + '&h=' + encodeURIComponent ( emailHash ) ,
2015-06-14 23:53:32 -08:00
dataType : 'json' ,
contentType : 'application/json' ,
type : 'POST' ,
data : JSON . stringify ( user ) ,
2015-09-21 14:22:23 -04:00
success ,
2015-08-18 09:43:22 -04:00
error : function onError ( xhr , status , err ) {
var e = handleError ( 'createUser' , xhr , status , err ) ;
2015-06-14 23:53:32 -08:00
error ( e ) ;
}
} ) ;
2015-09-02 10:42:26 -04:00
track ( 'api' , 'api_users_create' , user . team _id , 'email' , user . email ) ;
}
2015-06-14 23:53:32 -08:00
2015-09-02 10:42:26 -04:00
export function updateUser ( user , success , error ) {
2015-06-14 23:53:32 -08:00
$ . ajax ( {
2015-08-18 09:43:22 -04:00
url : '/api/v1/users/update' ,
2015-06-14 23:53:32 -08:00
dataType : 'json' ,
contentType : 'application/json' ,
type : 'POST' ,
data : JSON . stringify ( user ) ,
2015-09-21 14:22:23 -04:00
success ,
2015-08-18 09:43:22 -04:00
error : function onError ( xhr , status , err ) {
var e = handleError ( 'updateUser' , xhr , status , err ) ;
2015-06-14 23:53:32 -08:00
error ( e ) ;
}
} ) ;
2015-09-02 10:42:26 -04:00
track ( 'api' , 'api_users_update' ) ;
}
2015-06-14 23:53:32 -08:00
2015-09-02 10:42:26 -04:00
export function updatePassword ( data , success , error ) {
2015-06-14 23:53:32 -08:00
$ . ajax ( {
2015-08-18 09:43:22 -04:00
url : '/api/v1/users/newpassword' ,
2015-06-14 23:53:32 -08:00
dataType : 'json' ,
contentType : 'application/json' ,
type : 'POST' ,
data : JSON . stringify ( data ) ,
2015-09-21 14:22:23 -04:00
success ,
2015-08-18 09:43:22 -04:00
error : function onError ( xhr , status , err ) {
var e = handleError ( 'newPassword' , xhr , status , err ) ;
2015-06-14 23:53:32 -08:00
error ( e ) ;
}
} ) ;
2015-09-02 10:42:26 -04:00
track ( 'api' , 'api_users_newpassword' ) ;
}
2015-06-14 23:53:32 -08:00
2015-09-02 10:42:26 -04:00
export function updateUserNotifyProps ( data , success , error ) {
2015-06-14 23:53:32 -08:00
$ . ajax ( {
2015-08-18 09:43:22 -04:00
url : '/api/v1/users/update_notify' ,
2015-06-14 23:53:32 -08:00
dataType : 'json' ,
contentType : 'application/json' ,
type : 'POST' ,
data : JSON . stringify ( data ) ,
2015-09-21 14:22:23 -04:00
success ,
2015-08-18 09:43:22 -04:00
error : function onError ( xhr , status , err ) {
var e = handleError ( 'updateUserNotifyProps' , xhr , status , err ) ;
2015-06-14 23:53:32 -08:00
error ( e ) ;
}
} ) ;
2015-09-02 10:42:26 -04:00
}
2015-06-14 23:53:32 -08:00
2015-09-02 10:42:26 -04:00
export function updateRoles ( data , success , error ) {
2015-06-14 23:53:32 -08:00
$ . ajax ( {
2015-08-18 09:43:22 -04:00
url : '/api/v1/users/update_roles' ,
2015-06-14 23:53:32 -08:00
dataType : 'json' ,
contentType : 'application/json' ,
type : 'POST' ,
data : JSON . stringify ( data ) ,
2015-09-21 14:22:23 -04:00
success ,
2015-08-18 09:43:22 -04:00
error : function onError ( xhr , status , err ) {
var e = handleError ( 'updateRoles' , xhr , status , err ) ;
2015-06-14 23:53:32 -08:00
error ( e ) ;
}
} ) ;
2015-09-02 10:42:26 -04:00
track ( 'api' , 'api_users_update_roles' ) ;
}
2015-06-14 23:53:32 -08:00
2015-09-02 10:42:26 -04:00
export function updateActive ( userId , active , success , error ) {
2015-08-18 09:43:22 -04:00
var data = { } ;
data . user _id = userId ;
data . active = '' + active ;
2015-06-14 23:53:32 -08:00
$ . ajax ( {
2015-08-18 09:43:22 -04:00
url : '/api/v1/users/update_active' ,
2015-06-14 23:53:32 -08:00
dataType : 'json' ,
contentType : 'application/json' ,
type : 'POST' ,
data : JSON . stringify ( data ) ,
2015-09-21 14:22:23 -04:00
success ,
2015-08-18 09:43:22 -04:00
error : function onError ( xhr , status , err ) {
var e = handleError ( 'updateActive' , xhr , status , err ) ;
2015-06-14 23:53:32 -08:00
error ( e ) ;
}
} ) ;
2015-09-02 10:42:26 -04:00
track ( 'api' , 'api_users_update_roles' ) ;
}
2015-06-14 23:53:32 -08:00
2015-09-02 10:42:26 -04:00
export function sendPasswordReset ( data , success , error ) {
2015-06-14 23:53:32 -08:00
$ . ajax ( {
2015-08-18 09:43:22 -04:00
url : '/api/v1/users/send_password_reset' ,
2015-06-14 23:53:32 -08:00
dataType : 'json' ,
contentType : 'application/json' ,
type : 'POST' ,
data : JSON . stringify ( data ) ,
2015-09-21 14:22:23 -04:00
success ,
2015-08-18 09:43:22 -04:00
error : function onError ( xhr , status , err ) {
var e = handleError ( 'sendPasswordReset' , xhr , status , err ) ;
2015-06-14 23:53:32 -08:00
error ( e ) ;
}
} ) ;
2015-09-02 10:42:26 -04:00
track ( 'api' , 'api_users_send_password_reset' ) ;
}
2015-06-14 23:53:32 -08:00
2015-09-02 10:42:26 -04:00
export function resetPassword ( data , success , error ) {
2015-06-14 23:53:32 -08:00
$ . ajax ( {
2015-08-18 09:43:22 -04:00
url : '/api/v1/users/reset_password' ,
2015-06-14 23:53:32 -08:00
dataType : 'json' ,
contentType : 'application/json' ,
type : 'POST' ,
data : JSON . stringify ( data ) ,
2015-09-21 14:22:23 -04:00
success ,
2015-08-18 09:43:22 -04:00
error : function onError ( xhr , status , err ) {
var e = handleError ( 'resetPassword' , xhr , status , err ) ;
2015-06-14 23:53:32 -08:00
error ( e ) ;
}
} ) ;
2015-09-02 10:42:26 -04:00
track ( 'api' , 'api_users_reset_password' ) ;
}
2015-06-14 23:53:32 -08:00
2015-09-02 10:42:26 -04:00
export function logout ( ) {
track ( 'api' , 'api_users_logout' ) ;
2015-07-08 11:50:10 -04:00
var currentTeamUrl = TeamStore . getCurrentTeamUrl ( ) ;
BrowserStore . clear ( ) ;
2015-08-18 09:43:22 -04:00
window . location . href = currentTeamUrl + '/logout' ;
2015-09-02 10:42:26 -04:00
}
2015-06-14 23:53:32 -08:00
2015-09-02 10:42:26 -04:00
export function loginByEmail ( name , email , password , success , error ) {
2015-06-14 23:53:32 -08:00
$ . ajax ( {
2015-08-18 09:43:22 -04:00
url : '/api/v1/users/login' ,
2015-06-14 23:53:32 -08:00
dataType : 'json' ,
contentType : 'application/json' ,
type : 'POST' ,
2015-07-08 11:50:10 -04:00
data : JSON . stringify ( { name : name , email : email , password : password } ) ,
2015-08-18 09:43:22 -04:00
success : function onSuccess ( data , textStatus , xhr ) {
2015-09-02 10:42:26 -04:00
track ( 'api' , 'api_users_login_success' , data . team _id , 'email' , data . email ) ;
2015-06-14 23:53:32 -08:00
success ( data , textStatus , xhr ) ;
} ,
2015-08-18 09:43:22 -04:00
error : function onError ( xhr , status , err ) {
2015-09-02 10:42:26 -04:00
track ( 'api' , 'api_users_login_fail' , name , 'email' , email ) ;
2015-06-14 23:53:32 -08:00
2015-08-18 09:43:22 -04:00
var e = handleError ( 'loginByEmail' , xhr , status , err ) ;
2015-06-14 23:53:32 -08:00
error ( e ) ;
}
} ) ;
2015-09-02 10:42:26 -04:00
}
2015-06-14 23:53:32 -08:00
2015-09-02 10:42:26 -04:00
export function revokeSession ( altId , success , error ) {
2015-06-14 23:53:32 -08:00
$ . ajax ( {
2015-08-18 09:43:22 -04:00
url : '/api/v1/users/revoke_session' ,
2015-06-14 23:53:32 -08:00
dataType : 'json' ,
contentType : 'application/json' ,
type : 'POST' ,
data : JSON . stringify ( { id : altId } ) ,
2015-09-21 14:22:23 -04:00
success ,
2015-08-18 09:43:22 -04:00
error : function onError ( xhr , status , err ) {
var e = handleError ( 'revokeSession' , xhr , status , err ) ;
2015-06-14 23:53:32 -08:00
error ( e ) ;
}
} ) ;
2015-09-02 10:42:26 -04:00
}
2015-06-14 23:53:32 -08:00
2015-09-02 10:42:26 -04:00
export function getSessions ( userId , success , error ) {
2015-06-14 23:53:32 -08:00
$ . ajax ( {
2015-08-20 20:34:16 -07:00
cache : false ,
2015-08-18 09:43:22 -04:00
url : '/api/v1/users/' + userId + '/sessions' ,
2015-06-14 23:53:32 -08:00
dataType : 'json' ,
contentType : 'application/json' ,
type : 'GET' ,
2015-09-21 14:22:23 -04:00
success ,
2015-08-18 09:43:22 -04:00
error : function onError ( xhr , status , err ) {
var e = handleError ( 'getSessions' , xhr , status , err ) ;
2015-06-14 23:53:32 -08:00
error ( e ) ;
}
} ) ;
2015-09-02 10:42:26 -04:00
}
2015-06-14 23:53:32 -08:00
2015-09-02 10:42:26 -04:00
export function getAudits ( userId , success , error ) {
2015-06-14 23:53:32 -08:00
$ . ajax ( {
2015-08-18 09:43:22 -04:00
url : '/api/v1/users/' + userId + '/audits' ,
2015-06-14 23:53:32 -08:00
dataType : 'json' ,
contentType : 'application/json' ,
type : 'GET' ,
2015-09-21 14:22:23 -04:00
success ,
2015-08-18 09:43:22 -04:00
error : function onError ( xhr , status , err ) {
var e = handleError ( 'getAudits' , xhr , status , err ) ;
2015-06-14 23:53:32 -08:00
error ( e ) ;
}
} ) ;
2015-09-02 10:42:26 -04:00
}
2015-06-14 23:53:32 -08:00
2015-09-10 18:32:22 -07:00
export function getLogs ( success , error ) {
$ . ajax ( {
url : '/api/v1/admin/logs' ,
dataType : 'json' ,
contentType : 'application/json' ,
type : 'GET' ,
2015-09-17 21:00:59 -07:00
success ,
2015-09-10 18:32:22 -07:00
error : function onError ( xhr , status , err ) {
var e = handleError ( 'getLogs' , xhr , status , err ) ;
error ( e ) ;
}
} ) ;
}
2015-09-17 21:00:59 -07:00
export function getConfig ( success , error ) {
$ . ajax ( {
url : '/api/v1/admin/config' ,
dataType : 'json' ,
contentType : 'application/json' ,
type : 'GET' ,
success ,
error : function onError ( xhr , status , err ) {
var e = handleError ( 'getConfig' , xhr , status , err ) ;
error ( e ) ;
}
} ) ;
}
export function saveConfig ( config , success , error ) {
$ . ajax ( {
url : '/api/v1/admin/save_config' ,
dataType : 'json' ,
contentType : 'application/json' ,
type : 'POST' ,
data : JSON . stringify ( config ) ,
success ,
error : function onError ( xhr , status , err ) {
var e = handleError ( 'saveConfig' , xhr , status , err ) ;
error ( e ) ;
}
} ) ;
}
2015-09-29 15:55:19 -07:00
export function logClientError ( msg ) {
var l = { } ;
l . level = 'ERROR' ;
l . message = msg ;
$ . ajax ( {
url : '/api/v1/admin/log_client' ,
dataType : 'json' ,
contentType : 'application/json' ,
type : 'POST' ,
data : JSON . stringify ( l )
} ) ;
}
2015-09-21 15:11:56 -07:00
export function testEmail ( config , success , error ) {
$ . ajax ( {
url : '/api/v1/admin/test_email' ,
dataType : 'json' ,
contentType : 'application/json' ,
type : 'POST' ,
data : JSON . stringify ( config ) ,
success ,
error : function onError ( xhr , status , err ) {
var e = handleError ( 'testEmail' , xhr , status , err ) ;
error ( e ) ;
}
} ) ;
}
2015-09-23 12:49:28 -07:00
export function getAllTeams ( success , error ) {
$ . ajax ( {
url : '/api/v1/teams/all' ,
dataType : 'json' ,
contentType : 'application/json' ,
type : 'GET' ,
success ,
error : function onError ( xhr , status , err ) {
var e = handleError ( 'getAllTeams' , xhr , status , err ) ;
error ( e ) ;
}
} ) ;
}
2015-09-02 10:42:26 -04:00
export function getMeSynchronous ( success , error ) {
2015-08-14 08:43:49 -04:00
var currentUser = null ;
2015-06-14 23:53:32 -08:00
$ . ajax ( {
2015-08-14 08:43:49 -04:00
async : false ,
2015-08-19 17:41:33 -07:00
cache : false ,
2015-08-18 09:43:22 -04:00
url : '/api/v1/users/me' ,
2015-06-14 23:53:32 -08:00
dataType : 'json' ,
contentType : 'application/json' ,
type : 'GET' ,
2015-08-14 08:43:49 -04:00
success : function gotUser ( data , textStatus , xhr ) {
currentUser = data ;
if ( success ) {
success ( data , textStatus , xhr ) ;
}
} ,
2015-08-18 09:43:22 -04:00
error : function onError ( xhr , status , err ) {
2015-08-19 17:41:33 -07:00
if ( error ) {
var e = handleError ( 'getMeSynchronous' , xhr , status , err ) ;
error ( e ) ;
2015-08-18 09:43:22 -04:00
}
2015-06-14 23:53:32 -08:00
}
} ) ;
2015-08-14 08:43:49 -04:00
return currentUser ;
2015-09-02 10:42:26 -04:00
}
2015-06-14 23:53:32 -08:00
2015-09-02 10:42:26 -04:00
export function inviteMembers ( data , success , error ) {
2015-06-14 23:53:32 -08:00
$ . ajax ( {
2015-08-18 09:43:22 -04:00
url : '/api/v1/teams/invite_members' ,
2015-06-14 23:53:32 -08:00
dataType : 'json' ,
contentType : 'application/json' ,
type : 'POST' ,
data : JSON . stringify ( data ) ,
2015-09-21 14:22:23 -04:00
success ,
2015-08-18 09:43:22 -04:00
error : function onError ( xhr , status , err ) {
var e = handleError ( 'inviteMembers' , xhr , status , err ) ;
2015-06-14 23:53:32 -08:00
error ( e ) ;
}
} ) ;
2015-09-02 10:42:26 -04:00
track ( 'api' , 'api_teams_invite_members' ) ;
}
2015-06-14 23:53:32 -08:00
2015-09-02 10:42:26 -04:00
export function updateTeamDisplayName ( data , success , error ) {
2015-06-14 23:53:32 -08:00
$ . ajax ( {
2015-08-18 09:43:22 -04:00
url : '/api/v1/teams/update_name' ,
2015-06-14 23:53:32 -08:00
dataType : 'json' ,
contentType : 'application/json' ,
type : 'POST' ,
data : JSON . stringify ( data ) ,
2015-09-21 14:22:23 -04:00
success ,
2015-08-18 09:43:22 -04:00
error : function onError ( xhr , status , err ) {
var e = handleError ( 'updateTeamDisplayName' , xhr , status , err ) ;
2015-06-14 23:53:32 -08:00
error ( e ) ;
}
} ) ;
2015-09-02 10:42:26 -04:00
track ( 'api' , 'api_teams_update_name' ) ;
}
2015-06-14 23:53:32 -08:00
2015-09-02 10:42:26 -04:00
export function signupTeam ( email , success , error ) {
2015-06-14 23:53:32 -08:00
$ . ajax ( {
2015-08-18 09:43:22 -04:00
url : '/api/v1/teams/signup' ,
2015-06-14 23:53:32 -08:00
dataType : 'json' ,
contentType : 'application/json' ,
type : 'POST' ,
2015-07-28 11:36:33 -04:00
data : JSON . stringify ( { email : email } ) ,
2015-09-21 14:22:23 -04:00
success ,
2015-08-18 09:43:22 -04:00
error : function onError ( xhr , status , err ) {
var e = handleError ( 'singupTeam' , xhr , status , err ) ;
2015-06-14 23:53:32 -08:00
error ( e ) ;
}
} ) ;
2015-09-02 10:42:26 -04:00
track ( 'api' , 'api_teams_signup' ) ;
}
2015-06-14 23:53:32 -08:00
2015-09-02 10:42:26 -04:00
export function createTeam ( team , success , error ) {
2015-06-14 23:53:32 -08:00
$ . ajax ( {
2015-08-18 09:43:22 -04:00
url : '/api/v1/teams/create' ,
2015-06-14 23:53:32 -08:00
dataType : 'json' ,
contentType : 'application/json' ,
type : 'POST' ,
data : JSON . stringify ( team ) ,
2015-09-21 14:22:23 -04:00
success ,
2015-08-18 09:43:22 -04:00
error : function onError ( xhr , status , err ) {
var e = handleError ( 'createTeam' , xhr , status , err ) ;
2015-06-14 23:53:32 -08:00
error ( e ) ;
}
} ) ;
2015-09-02 10:42:26 -04:00
}
2015-06-14 23:53:32 -08:00
2015-09-02 10:42:26 -04:00
export function findTeamByName ( teamName , success , error ) {
2015-06-14 23:53:32 -08:00
$ . ajax ( {
2015-08-18 09:43:22 -04:00
url : '/api/v1/teams/find_team_by_name' ,
2015-06-14 23:53:32 -08:00
dataType : 'json' ,
contentType : 'application/json' ,
type : 'POST' ,
2015-07-08 11:50:10 -04:00
data : JSON . stringify ( { name : teamName } ) ,
2015-09-21 14:22:23 -04:00
success ,
2015-08-18 09:43:22 -04:00
error : function onError ( xhr , status , err ) {
var e = handleError ( 'findTeamByName' , xhr , status , err ) ;
2015-06-14 23:53:32 -08:00
error ( e ) ;
}
} ) ;
2015-09-02 10:42:26 -04:00
}
2015-06-14 23:53:32 -08:00
2015-09-02 10:42:26 -04:00
export function findTeamsSendEmail ( email , success , error ) {
2015-06-14 23:53:32 -08:00
$ . ajax ( {
2015-08-18 09:43:22 -04:00
url : '/api/v1/teams/email_teams' ,
2015-06-14 23:53:32 -08:00
dataType : 'json' ,
contentType : 'application/json' ,
type : 'POST' ,
data : JSON . stringify ( { email : email } ) ,
2015-09-21 14:22:23 -04:00
success ,
2015-08-18 09:43:22 -04:00
error : function onError ( xhr , status , err ) {
var e = handleError ( 'findTeamsSendEmail' , xhr , status , err ) ;
2015-06-14 23:53:32 -08:00
error ( e ) ;
}
} ) ;
2015-09-02 10:42:26 -04:00
track ( 'api' , 'api_teams_email_teams' ) ;
}
2015-06-14 23:53:32 -08:00
2015-09-02 10:42:26 -04:00
export function findTeams ( email , success , error ) {
2015-06-14 23:53:32 -08:00
$ . ajax ( {
2015-08-18 09:43:22 -04:00
url : '/api/v1/teams/find_teams' ,
2015-06-14 23:53:32 -08:00
dataType : 'json' ,
contentType : 'application/json' ,
type : 'POST' ,
data : JSON . stringify ( { email : email } ) ,
2015-09-21 14:22:23 -04:00
success ,
2015-08-18 09:43:22 -04:00
error : function onError ( xhr , status , err ) {
var e = handleError ( 'findTeams' , xhr , status , err ) ;
2015-06-14 23:53:32 -08:00
error ( e ) ;
}
} ) ;
2015-09-02 10:42:26 -04:00
}
2015-06-14 23:53:32 -08:00
2015-09-02 10:42:26 -04:00
export function createChannel ( channel , success , error ) {
2015-06-14 23:53:32 -08:00
$ . ajax ( {
2015-08-18 09:43:22 -04:00
url : '/api/v1/channels/create' ,
2015-06-14 23:53:32 -08:00
dataType : 'json' ,
contentType : 'application/json' ,
type : 'POST' ,
data : JSON . stringify ( channel ) ,
2015-09-21 14:22:23 -04:00
success ,
2015-08-18 09:43:22 -04:00
error : function onError ( xhr , status , err ) {
var e = handleError ( 'createChannel' , xhr , status , err ) ;
2015-06-14 23:53:32 -08:00
error ( e ) ;
}
} ) ;
2015-09-02 10:42:26 -04:00
track ( 'api' , 'api_channels_create' , channel . type , 'name' , channel . name ) ;
}
2015-06-14 23:53:32 -08:00
2015-09-02 10:42:26 -04:00
export function createDirectChannel ( channel , userId , success , error ) {
2015-08-14 17:12:02 -07:00
$ . ajax ( {
url : '/api/v1/channels/create_direct' ,
dataType : 'json' ,
contentType : 'application/json' ,
type : 'POST' ,
data : JSON . stringify ( { user _id : userId } ) ,
2015-09-21 14:22:23 -04:00
success ,
2015-09-02 10:42:26 -04:00
error : function onError ( xhr , status , err ) {
2015-08-14 18:26:09 -07:00
var e = handleError ( 'createDirectChannel' , xhr , status , err ) ;
2015-08-14 17:12:02 -07:00
error ( e ) ;
}
} ) ;
2015-09-02 10:42:26 -04:00
track ( 'api' , 'api_channels_create_direct' , channel . type , 'name' , channel . name ) ;
}
2015-08-14 17:12:02 -07:00
2015-09-02 10:42:26 -04:00
export function updateChannel ( channel , success , error ) {
2015-06-14 23:53:32 -08:00
$ . ajax ( {
2015-08-18 09:43:22 -04:00
url : '/api/v1/channels/update' ,
2015-06-14 23:53:32 -08:00
dataType : 'json' ,
contentType : 'application/json' ,
type : 'POST' ,
data : JSON . stringify ( channel ) ,
2015-09-21 14:22:23 -04:00
success ,
2015-08-18 09:43:22 -04:00
error : function onError ( xhr , status , err ) {
var e = handleError ( 'updateChannel' , xhr , status , err ) ;
2015-06-14 23:53:32 -08:00
error ( e ) ;
}
} ) ;
2015-09-02 10:42:26 -04:00
track ( 'api' , 'api_channels_update' ) ;
}
2015-06-14 23:53:32 -08:00
2015-09-02 10:42:26 -04:00
export function updateChannelDesc ( data , success , error ) {
2015-06-14 23:53:32 -08:00
$ . ajax ( {
2015-08-18 09:43:22 -04:00
url : '/api/v1/channels/update_desc' ,
2015-06-14 23:53:32 -08:00
dataType : 'json' ,
contentType : 'application/json' ,
type : 'POST' ,
data : JSON . stringify ( data ) ,
2015-09-21 14:22:23 -04:00
success ,
2015-08-18 09:43:22 -04:00
error : function onError ( xhr , status , err ) {
var e = handleError ( 'updateChannelDesc' , xhr , status , err ) ;
2015-06-14 23:53:32 -08:00
error ( e ) ;
}
} ) ;
2015-09-02 10:42:26 -04:00
track ( 'api' , 'api_channels_desc' ) ;
}
2015-06-14 23:53:32 -08:00
2015-09-30 11:08:36 -04:00
export function updateNotifyProps ( data , success , error ) {
2015-06-14 23:53:32 -08:00
$ . ajax ( {
2015-09-30 11:08:36 -04:00
url : '/api/v1/channels/update_notify_props' ,
2015-06-14 23:53:32 -08:00
dataType : 'json' ,
contentType : 'application/json' ,
type : 'POST' ,
data : JSON . stringify ( data ) ,
2015-09-21 14:22:23 -04:00
success ,
2015-08-18 09:43:22 -04:00
error : function onError ( xhr , status , err ) {
2015-09-30 11:08:36 -04:00
var e = handleError ( 'updateNotifyProps' , xhr , status , err ) ;
2015-06-14 23:53:32 -08:00
error ( e ) ;
}
} ) ;
2015-09-02 10:42:26 -04:00
}
2015-06-14 23:53:32 -08:00
2015-09-02 10:42:26 -04:00
export function joinChannel ( id , success , error ) {
2015-06-14 23:53:32 -08:00
$ . ajax ( {
2015-08-18 09:43:22 -04:00
url : '/api/v1/channels/' + id + '/join' ,
2015-06-14 23:53:32 -08:00
dataType : 'json' ,
contentType : 'application/json' ,
type : 'POST' ,
2015-09-21 14:22:23 -04:00
success ,
2015-08-18 09:43:22 -04:00
error : function onError ( xhr , status , err ) {
var e = handleError ( 'joinChannel' , xhr , status , err ) ;
2015-06-14 23:53:32 -08:00
error ( e ) ;
}
} ) ;
2015-09-02 10:42:26 -04:00
track ( 'api' , 'api_channels_join' ) ;
}
2015-06-14 23:53:32 -08:00
2015-09-02 10:42:26 -04:00
export function leaveChannel ( id , success , error ) {
2015-06-14 23:53:32 -08:00
$ . ajax ( {
2015-08-18 09:43:22 -04:00
url : '/api/v1/channels/' + id + '/leave' ,
2015-06-14 23:53:32 -08:00
dataType : 'json' ,
contentType : 'application/json' ,
type : 'POST' ,
2015-09-21 14:22:23 -04:00
success ,
2015-08-18 09:43:22 -04:00
error : function onError ( xhr , status , err ) {
var e = handleError ( 'leaveChannel' , xhr , status , err ) ;
2015-06-14 23:53:32 -08:00
error ( e ) ;
}
} ) ;
2015-09-02 10:42:26 -04:00
track ( 'api' , 'api_channels_leave' ) ;
}
2015-06-14 23:53:32 -08:00
2015-09-02 10:42:26 -04:00
export function deleteChannel ( id , success , error ) {
2015-06-14 23:53:32 -08:00
$ . ajax ( {
2015-08-18 09:43:22 -04:00
url : '/api/v1/channels/' + id + '/delete' ,
2015-06-14 23:53:32 -08:00
dataType : 'json' ,
contentType : 'application/json' ,
type : 'POST' ,
2015-09-21 14:22:23 -04:00
success ,
2015-08-18 09:43:22 -04:00
error : function onError ( xhr , status , err ) {
var e = handleError ( 'deleteChannel' , xhr , status , err ) ;
2015-06-14 23:53:32 -08:00
error ( e ) ;
}
} ) ;
2015-09-02 10:42:26 -04:00
track ( 'api' , 'api_channels_delete' ) ;
}
2015-06-14 23:53:32 -08:00
2015-09-02 10:42:26 -04:00
export function updateLastViewedAt ( channelId , success , error ) {
2015-06-14 23:53:32 -08:00
$ . ajax ( {
2015-08-18 09:43:22 -04:00
url : '/api/v1/channels/' + channelId + '/update_last_viewed_at' ,
2015-06-14 23:53:32 -08:00
dataType : 'json' ,
contentType : 'application/json' ,
type : 'POST' ,
2015-09-21 14:22:23 -04:00
success ,
2015-08-18 09:43:22 -04:00
error : function onError ( xhr , status , err ) {
var e = handleError ( 'updateLastViewedAt' , xhr , status , err ) ;
2015-06-14 23:53:32 -08:00
error ( e ) ;
}
} ) ;
2015-09-02 10:42:26 -04:00
}
2015-06-14 23:53:32 -08:00
2015-09-02 10:42:26 -04:00
export function getChannels ( success , error ) {
2015-06-14 23:53:32 -08:00
$ . ajax ( {
2015-08-22 11:59:42 -07:00
cache : false ,
2015-08-10 14:47:45 -04:00
url : '/api/v1/channels/' ,
2015-06-14 23:53:32 -08:00
dataType : 'json' ,
type : 'GET' ,
2015-09-21 14:22:23 -04:00
success ,
2015-06-14 23:53:32 -08:00
ifModified : true ,
2015-08-18 09:43:22 -04:00
error : function onError ( xhr , status , err ) {
2015-08-10 14:47:45 -04:00
var e = handleError ( 'getChannels' , xhr , status , err ) ;
2015-06-14 23:53:32 -08:00
error ( e ) ;
}
} ) ;
2015-08-10 14:47:45 -04:00
}
2015-06-14 23:53:32 -08:00
2015-09-02 10:42:26 -04:00
export function getChannel ( id , success , error ) {
2015-07-27 11:30:03 -04:00
$ . ajax ( {
2015-08-22 11:59:42 -07:00
cache : false ,
2015-08-18 09:43:22 -04:00
url : '/api/v1/channels/' + id + '/' ,
2015-07-27 11:30:03 -04:00
dataType : 'json' ,
type : 'GET' ,
2015-09-21 14:22:23 -04:00
success ,
2015-08-18 09:43:22 -04:00
error : function onError ( xhr , status , err ) {
var e = handleError ( 'getChannel' , xhr , status , err ) ;
2015-07-27 11:30:03 -04:00
error ( e ) ;
}
} ) ;
2015-09-02 10:42:26 -04:00
track ( 'api' , 'api_channel_get' ) ;
}
2015-07-27 11:30:03 -04:00
2015-09-02 10:42:26 -04:00
export function getMoreChannels ( success , error ) {
2015-06-14 23:53:32 -08:00
$ . ajax ( {
2015-08-18 09:43:22 -04:00
url : '/api/v1/channels/more' ,
2015-06-14 23:53:32 -08:00
dataType : 'json' ,
type : 'GET' ,
2015-09-21 14:22:23 -04:00
success ,
2015-06-14 23:53:32 -08:00
ifModified : true ,
2015-08-18 09:43:22 -04:00
error : function onError ( xhr , status , err ) {
var e = handleError ( 'getMoreChannels' , xhr , status , err ) ;
2015-06-14 23:53:32 -08:00
error ( e ) ;
}
} ) ;
2015-09-02 10:42:26 -04:00
}
2015-06-14 23:53:32 -08:00
2015-09-02 10:42:26 -04:00
export function getChannelCounts ( success , error ) {
2015-08-10 14:47:45 -04:00
$ . ajax ( {
2015-08-22 11:59:42 -07:00
cache : false ,
2015-08-10 14:47:45 -04:00
url : '/api/v1/channels/counts' ,
dataType : 'json' ,
type : 'GET' ,
2015-09-21 14:22:23 -04:00
success ,
2015-08-10 14:47:45 -04:00
ifModified : true ,
2015-08-18 09:43:22 -04:00
error : function onError ( xhr , status , err ) {
2015-08-10 14:47:45 -04:00
var e = handleError ( 'getChannelCounts' , xhr , status , err ) ;
error ( e ) ;
}
} ) ;
}
2015-09-02 10:42:26 -04:00
export function getChannelExtraInfo ( id , success , error ) {
2015-06-14 23:53:32 -08:00
$ . ajax ( {
2015-08-18 09:43:22 -04:00
url : '/api/v1/channels/' + id + '/extra_info' ,
2015-06-14 23:53:32 -08:00
dataType : 'json' ,
type : 'GET' ,
2015-09-21 14:22:23 -04:00
success ,
2015-08-18 09:43:22 -04:00
error : function onError ( xhr , status , err ) {
var e = handleError ( 'getChannelExtraInfo' , xhr , status , err ) ;
2015-06-14 23:53:32 -08:00
error ( e ) ;
}
} ) ;
2015-09-02 10:42:26 -04:00
}
2015-06-14 23:53:32 -08:00
2015-09-02 10:42:26 -04:00
export function executeCommand ( channelId , command , suggest , success , error ) {
2015-06-14 23:53:32 -08:00
$ . ajax ( {
2015-08-18 09:43:22 -04:00
url : '/api/v1/command' ,
2015-06-14 23:53:32 -08:00
dataType : 'json' ,
contentType : 'application/json' ,
type : 'POST' ,
2015-08-18 09:43:22 -04:00
data : JSON . stringify ( { channelId : channelId , command : command , suggest : '' + suggest } ) ,
2015-09-21 14:22:23 -04:00
success ,
2015-08-18 09:43:22 -04:00
error : function onError ( xhr , status , err ) {
var e = handleError ( 'executeCommand' , xhr , status , err ) ;
2015-06-14 23:53:32 -08:00
error ( e ) ;
}
} ) ;
2015-09-02 10:42:26 -04:00
}
2015-06-14 23:53:32 -08:00
2015-09-02 10:42:26 -04:00
export function getPostsPage ( channelId , offset , limit , success , error , complete ) {
2015-06-14 23:53:32 -08:00
$ . ajax ( {
2015-08-22 11:59:42 -07:00
cache : false ,
2015-08-18 09:43:22 -04:00
url : '/api/v1/channels/' + channelId + '/posts/' + offset + '/' + limit ,
2015-06-14 23:53:32 -08:00
dataType : 'json' ,
type : 'GET' ,
ifModified : true ,
2015-09-21 14:22:23 -04:00
success ,
2015-08-18 09:43:22 -04:00
error : function onError ( xhr , status , err ) {
var e = handleError ( 'getPosts' , xhr , status , err ) ;
2015-08-26 12:09:01 -04:00
error ( e ) ;
} ,
complete : complete
} ) ;
2015-09-02 10:42:26 -04:00
}
2015-08-26 12:09:01 -04:00
2015-09-02 10:42:26 -04:00
export function getPosts ( channelId , since , success , error , complete ) {
2015-08-26 12:09:01 -04:00
$ . ajax ( {
url : '/api/v1/channels/' + channelId + '/posts/' + since ,
dataType : 'json' ,
type : 'GET' ,
ifModified : true ,
2015-09-21 14:22:23 -04:00
success ,
2015-08-26 12:09:01 -04:00
error : function onError ( xhr , status , err ) {
var e = handleError ( 'getPosts' , xhr , status , err ) ;
2015-08-18 09:43:22 -04:00
error ( e ) ;
2015-06-14 23:53:32 -08:00
} ,
complete : complete
} ) ;
2015-09-02 10:42:26 -04:00
}
2015-06-14 23:53:32 -08:00
2015-09-02 10:42:26 -04:00
export function getPost ( channelId , postId , success , error ) {
2015-06-14 23:53:32 -08:00
$ . ajax ( {
2015-08-22 11:59:42 -07:00
cache : false ,
2015-08-18 09:43:22 -04:00
url : '/api/v1/channels/' + channelId + '/post/' + postId ,
2015-06-14 23:53:32 -08:00
dataType : 'json' ,
type : 'GET' ,
ifModified : false ,
2015-09-21 14:22:23 -04:00
success ,
2015-08-18 09:43:22 -04:00
error : function onError ( xhr , status , err ) {
var e = handleError ( 'getPost' , xhr , status , err ) ;
2015-06-14 23:53:32 -08:00
error ( e ) ;
}
} ) ;
2015-09-02 10:42:26 -04:00
}
2015-06-14 23:53:32 -08:00
2015-09-02 10:42:26 -04:00
export function search ( terms , success , error ) {
2015-06-14 23:53:32 -08:00
$ . ajax ( {
2015-08-18 09:43:22 -04:00
url : '/api/v1/posts/search' ,
2015-06-14 23:53:32 -08:00
dataType : 'json' ,
type : 'GET' ,
2015-08-18 09:43:22 -04:00
data : { terms : terms } ,
2015-09-21 14:22:23 -04:00
success ,
2015-08-18 09:43:22 -04:00
error : function onError ( xhr , status , err ) {
var e = handleError ( 'search' , xhr , status , err ) ;
2015-06-14 23:53:32 -08:00
error ( e ) ;
}
} ) ;
2015-09-02 10:42:26 -04:00
track ( 'api' , 'api_posts_search' ) ;
}
2015-06-14 23:53:32 -08:00
2015-09-02 10:42:26 -04:00
export function deletePost ( channelId , id , success , error ) {
2015-06-14 23:53:32 -08:00
$ . ajax ( {
2015-08-18 09:43:22 -04:00
url : '/api/v1/channels/' + channelId + '/post/' + id + '/delete' ,
2015-06-14 23:53:32 -08:00
dataType : 'json' ,
contentType : 'application/json' ,
type : 'POST' ,
2015-09-21 14:22:23 -04:00
success ,
2015-08-18 09:43:22 -04:00
error : function onError ( xhr , status , err ) {
var e = handleError ( 'deletePost' , xhr , status , err ) ;
2015-06-14 23:53:32 -08:00
error ( e ) ;
}
} ) ;
2015-09-02 10:42:26 -04:00
track ( 'api' , 'api_posts_delete' ) ;
}
2015-06-14 23:53:32 -08:00
2015-09-02 10:42:26 -04:00
export function createPost ( post , channel , success , error ) {
2015-06-14 23:53:32 -08:00
$ . ajax ( {
2015-08-18 09:43:22 -04:00
url : '/api/v1/channels/' + post . channel _id + '/create' ,
2015-06-14 23:53:32 -08:00
dataType : 'json' ,
contentType : 'application/json' ,
type : 'POST' ,
data : JSON . stringify ( post ) ,
2015-09-21 14:22:23 -04:00
success ,
2015-08-18 09:43:22 -04:00
error : function onError ( xhr , status , err ) {
var e = handleError ( 'createPost' , xhr , status , err ) ;
2015-06-14 23:53:32 -08:00
error ( e ) ;
}
} ) ;
2015-09-02 10:42:26 -04:00
track ( 'api' , 'api_posts_create' , channel . name , 'length' , post . message . length ) ;
2015-06-14 23:53:32 -08:00
// global.window.analytics.track('api_posts_create', {
// category: 'api',
// channel_name: channel.name,
// channel_type: channel.type,
// length: post.message.length,
// files: (post.filenames || []).length,
2015-08-18 09:43:22 -04:00
// mentions: (post.message.match('/<mention>/g') || []).length
2015-06-14 23:53:32 -08:00
// });
2015-09-02 10:42:26 -04:00
}
2015-06-14 23:53:32 -08:00
2015-09-02 10:42:26 -04:00
export function updatePost ( post , success , error ) {
2015-06-14 23:53:32 -08:00
$ . ajax ( {
2015-08-18 09:43:22 -04:00
url : '/api/v1/channels/' + post . channel _id + '/update' ,
2015-06-14 23:53:32 -08:00
dataType : 'json' ,
contentType : 'application/json' ,
type : 'POST' ,
data : JSON . stringify ( post ) ,
2015-09-21 14:22:23 -04:00
success ,
2015-08-18 09:43:22 -04:00
error : function onError ( xhr , status , err ) {
var e = handleError ( 'updatePost' , xhr , status , err ) ;
2015-06-14 23:53:32 -08:00
error ( e ) ;
}
} ) ;
2015-09-02 10:42:26 -04:00
track ( 'api' , 'api_posts_update' ) ;
}
2015-06-14 23:53:32 -08:00
2015-09-02 10:42:26 -04:00
export function addChannelMember ( id , data , success , error ) {
2015-06-14 23:53:32 -08:00
$ . ajax ( {
2015-08-18 09:43:22 -04:00
url : '/api/v1/channels/' + id + '/add' ,
2015-06-14 23:53:32 -08:00
dataType : 'json' ,
contentType : 'application/json' ,
type : 'POST' ,
data : JSON . stringify ( data ) ,
2015-09-21 14:22:23 -04:00
success ,
2015-08-18 09:43:22 -04:00
error : function onError ( xhr , status , err ) {
var e = handleError ( 'addChannelMember' , xhr , status , err ) ;
2015-06-14 23:53:32 -08:00
error ( e ) ;
}
} ) ;
2015-09-02 10:42:26 -04:00
track ( 'api' , 'api_channels_add_member' ) ;
}
2015-06-14 23:53:32 -08:00
2015-09-02 10:42:26 -04:00
export function removeChannelMember ( id , data , success , error ) {
2015-06-14 23:53:32 -08:00
$ . ajax ( {
2015-08-18 09:43:22 -04:00
url : '/api/v1/channels/' + id + '/remove' ,
2015-06-14 23:53:32 -08:00
dataType : 'json' ,
contentType : 'application/json' ,
type : 'POST' ,
data : JSON . stringify ( data ) ,
2015-09-21 14:22:23 -04:00
success ,
2015-08-18 09:43:22 -04:00
error : function onError ( xhr , status , err ) {
var e = handleError ( 'removeChannelMember' , xhr , status , err ) ;
2015-06-14 23:53:32 -08:00
error ( e ) ;
}
} ) ;
2015-09-02 10:42:26 -04:00
track ( 'api' , 'api_channels_remove_member' ) ;
}
2015-06-14 23:53:32 -08:00
2015-09-02 10:42:26 -04:00
export function getProfiles ( success , error ) {
2015-06-14 23:53:32 -08:00
$ . ajax ( {
2015-08-20 20:34:16 -07:00
cache : false ,
2015-08-18 09:43:22 -04:00
url : '/api/v1/users/profiles' ,
2015-06-14 23:53:32 -08:00
dataType : 'json' ,
contentType : 'application/json' ,
type : 'GET' ,
2015-09-21 14:22:23 -04:00
success ,
2015-06-14 23:53:32 -08:00
ifModified : true ,
2015-08-18 09:43:22 -04:00
error : function onError ( xhr , status , err ) {
var e = handleError ( 'getProfiles' , xhr , status , err ) ;
2015-06-14 23:53:32 -08:00
error ( e ) ;
}
} ) ;
2015-09-02 10:42:26 -04:00
}
2015-06-14 23:53:32 -08:00
2015-09-23 12:49:28 -07:00
export function getProfilesForTeam ( teamId , success , error ) {
$ . ajax ( {
cache : false ,
url : '/api/v1/users/profiles/' + teamId ,
dataType : 'json' ,
contentType : 'application/json' ,
type : 'GET' ,
success ,
error : function onError ( xhr , status , err ) {
var e = handleError ( 'getProfilesForTeam' , xhr , status , err ) ;
error ( e ) ;
}
} ) ;
}
2015-09-02 10:42:26 -04:00
export function uploadFile ( formData , success , error ) {
2015-08-10 08:41:18 -04:00
var request = $ . ajax ( {
2015-08-18 09:43:22 -04:00
url : '/api/v1/files/upload' ,
2015-06-14 23:53:32 -08:00
type : 'POST' ,
data : formData ,
cache : false ,
contentType : false ,
processData : false ,
2015-09-21 14:22:23 -04:00
success ,
2015-08-18 09:43:22 -04:00
error : function onError ( xhr , status , err ) {
2015-08-10 08:41:18 -04:00
if ( err !== 'abort' ) {
2015-08-18 09:43:22 -04:00
var e = handleError ( 'uploadFile' , xhr , status , err ) ;
2015-08-10 08:41:18 -04:00
error ( e ) ;
}
2015-06-14 23:53:32 -08:00
}
} ) ;
2015-09-02 10:42:26 -04:00
track ( 'api' , 'api_files_upload' ) ;
2015-08-10 08:41:18 -04:00
return request ;
2015-09-02 10:42:26 -04:00
}
2015-06-14 23:53:32 -08:00
2015-09-02 10:42:26 -04:00
export function getFileInfo ( filename , success , error ) {
2015-08-24 15:03:52 -07:00
$ . ajax ( {
url : '/api/v1/files/get_info' + filename ,
dataType : 'json' ,
contentType : 'application/json' ,
type : 'GET' ,
2015-09-21 14:22:23 -04:00
success ,
2015-08-24 15:03:52 -07:00
error : function onError ( xhr , status , err ) {
var e = handleError ( 'getFileInfo' , xhr , status , err ) ;
error ( e ) ;
}
} ) ;
2015-09-02 10:42:26 -04:00
}
2015-08-24 15:03:52 -07:00
2015-09-02 10:42:26 -04:00
export function getPublicLink ( data , success , error ) {
2015-06-14 23:53:32 -08:00
$ . ajax ( {
2015-08-18 09:43:22 -04:00
url : '/api/v1/files/get_public_link' ,
2015-06-14 23:53:32 -08:00
dataType : 'json' ,
type : 'POST' ,
data : JSON . stringify ( data ) ,
2015-09-21 14:22:23 -04:00
success ,
2015-08-18 09:43:22 -04:00
error : function onError ( xhr , status , err ) {
var e = handleError ( 'getPublicLink' , xhr , status , err ) ;
2015-06-14 23:53:32 -08:00
error ( e ) ;
}
} ) ;
2015-09-02 10:42:26 -04:00
}
2015-06-14 23:53:32 -08:00
2015-09-02 10:42:26 -04:00
export function uploadProfileImage ( imageData , success , error ) {
2015-06-14 23:53:32 -08:00
$ . ajax ( {
2015-08-18 09:43:22 -04:00
url : '/api/v1/users/newimage' ,
2015-06-14 23:53:32 -08:00
type : 'POST' ,
data : imageData ,
cache : false ,
contentType : false ,
processData : false ,
2015-09-21 14:22:23 -04:00
success ,
2015-08-18 09:43:22 -04:00
error : function onError ( xhr , status , err ) {
var e = handleError ( 'uploadProfileImage' , xhr , status , err ) ;
2015-06-14 23:53:32 -08:00
error ( e ) ;
}
} ) ;
2015-09-02 10:42:26 -04:00
}
2015-06-14 23:53:32 -08:00
2015-09-02 10:42:26 -04:00
export function importSlack ( fileData , success , error ) {
2015-07-07 09:16:13 -04:00
$ . ajax ( {
2015-08-18 11:53:18 -04:00
url : '/api/v1/teams/import_team' ,
2015-07-07 09:16:13 -04:00
type : 'POST' ,
data : fileData ,
cache : false ,
contentType : false ,
processData : false ,
2015-09-21 14:22:23 -04:00
success ,
2015-08-18 09:43:22 -04:00
error : function onError ( xhr , status , err ) {
var e = handleError ( 'importTeam' , xhr , status , err ) ;
2015-07-07 09:16:13 -04:00
error ( e ) ;
}
} ) ;
2015-09-02 10:42:26 -04:00
}
2015-07-07 09:16:13 -04:00
2015-08-26 12:49:07 -04:00
export function exportTeam ( success , error ) {
$ . ajax ( {
url : '/api/v1/teams/export_team' ,
type : 'GET' ,
dataType : 'json' ,
2015-09-21 14:22:23 -04:00
success ,
2015-08-26 12:49:07 -04:00
error : function onError ( xhr , status , err ) {
var e = handleError ( 'exportTeam' , xhr , status , err ) ;
error ( e ) ;
}
} ) ;
}
2015-09-02 10:42:26 -04:00
export function getStatuses ( success , error ) {
2015-06-14 23:53:32 -08:00
$ . ajax ( {
2015-08-18 09:43:22 -04:00
url : '/api/v1/users/status' ,
2015-06-14 23:53:32 -08:00
dataType : 'json' ,
contentType : 'application/json' ,
type : 'GET' ,
2015-09-21 14:22:23 -04:00
success ,
2015-08-18 09:43:22 -04:00
error : function onError ( xhr , status , err ) {
var e = handleError ( 'getStatuses' , xhr , status , err ) ;
2015-06-14 23:53:32 -08:00
error ( e ) ;
}
} ) ;
2015-09-02 10:42:26 -04:00
}
2015-06-18 10:40:46 -04:00
2015-09-02 10:42:26 -04:00
export function getMyTeam ( success , error ) {
2015-06-18 10:40:46 -04:00
$ . ajax ( {
2015-08-18 09:43:22 -04:00
url : '/api/v1/teams/me' ,
2015-06-18 10:40:46 -04:00
dataType : 'json' ,
type : 'GET' ,
2015-09-21 14:22:23 -04:00
success ,
2015-06-18 10:40:46 -04:00
ifModified : true ,
2015-08-18 09:43:22 -04:00
error : function onError ( xhr , status , err ) {
var e = handleError ( 'getMyTeam' , xhr , status , err ) ;
2015-06-18 10:40:46 -04:00
error ( e ) ;
}
} ) ;
2015-09-02 10:42:26 -04:00
}
2015-06-18 10:40:46 -04:00
2015-09-16 15:49:12 -04:00
export function registerOAuthApp ( app , success , error ) {
$ . ajax ( {
url : '/api/v1/oauth/register' ,
dataType : 'json' ,
contentType : 'application/json' ,
type : 'POST' ,
data : JSON . stringify ( app ) ,
success : success ,
error : ( xhr , status , err ) => {
const e = handleError ( 'registerApp' , xhr , status , err ) ;
error ( e ) ;
}
} ) ;
module . exports . track ( 'api' , 'api_apps_register' ) ;
}
export function allowOAuth2 ( responseType , clientId , redirectUri , state , scope , success , error ) {
$ . ajax ( {
url : '/api/v1/oauth/allow?response_type=' + responseType + '&client_id=' + clientId + '&redirect_uri=' + redirectUri + '&scope=' + scope + '&state=' + state ,
dataType : 'json' ,
contentType : 'application/json' ,
type : 'GET' ,
2015-09-21 14:22:23 -04:00
success ,
2015-09-16 15:49:12 -04:00
error : ( xhr , status , err ) => {
const e = handleError ( 'allowOAuth2' , xhr , status , err ) ;
error ( e ) ;
}
} ) ;
module . exports . track ( 'api' , 'api_users_allow_oauth2' ) ;
}
2015-09-21 14:22:23 -04:00
export function addIncomingHook ( hook , success , error ) {
$ . ajax ( {
url : '/api/v1/hooks/incoming/create' ,
dataType : 'json' ,
contentType : 'application/json' ,
type : 'POST' ,
data : JSON . stringify ( hook ) ,
success ,
error : ( xhr , status , err ) => {
var e = handleError ( 'addIncomingHook' , xhr , status , err ) ;
error ( e ) ;
}
} ) ;
}
export function deleteIncomingHook ( data , success , error ) {
$ . ajax ( {
url : '/api/v1/hooks/incoming/delete' ,
dataType : 'json' ,
contentType : 'application/json' ,
type : 'POST' ,
data : JSON . stringify ( data ) ,
success ,
error : ( xhr , status , err ) => {
var e = handleError ( 'deleteIncomingHook' , xhr , status , err ) ;
error ( e ) ;
}
} ) ;
}
export function listIncomingHooks ( success , error ) {
$ . ajax ( {
url : '/api/v1/hooks/incoming/list' ,
dataType : 'json' ,
type : 'GET' ,
success ,
error : ( xhr , status , err ) => {
var e = handleError ( 'listIncomingHooks' , xhr , status , err ) ;
error ( e ) ;
}
} ) ;
}
2015-10-02 09:50:34 -04:00
export function getPreferencesByName ( category , name , success , error ) {
$ . ajax ( {
url : ` /api/v1/preferences/ ${ category } / ${ name } ` ,
dataType : 'json' ,
type : 'GET' ,
success ,
error : ( xhr , status , err ) => {
var e = handleError ( 'getPreferencesByName' , xhr , status , err ) ;
error ( e ) ;
}
} ) ;
}
2015-10-02 14:25:55 -04:00
export function setPreferences ( preferences , success , error ) {
$ . ajax ( {
url : '/api/v1/preferences/set' ,
dataType : 'json' ,
2015-10-07 11:34:29 -04:00
contentType : 'application/json' ,
2015-10-02 14:25:55 -04:00
type : 'POST' ,
data : JSON . stringify ( preferences ) ,
success ,
error : ( xhr , status , err ) => {
var e = handleError ( 'setPreferences' , xhr , status , err ) ;
error ( e ) ;
}
} ) ;
}