diff options
Diffstat (limited to 'webapp/client')
-rw-r--r-- | webapp/client/client.jsx | 130 | ||||
-rw-r--r-- | webapp/client/websocket_client.jsx | 20 |
2 files changed, 119 insertions, 31 deletions
diff --git a/webapp/client/client.jsx b/webapp/client/client.jsx index 334f8374d..596242e41 100644 --- a/webapp/client/client.jsx +++ b/webapp/client/client.jsx @@ -73,11 +73,7 @@ export default class Client { return `${this.url}${this.urlVersion}/teams`; } - getTeamNeededRoute() { - return `${this.url}${this.urlVersion}/teams/${this.getTeamId()}`; - } - - getTeamNeededManualRoute(teamId) { + getTeamNeededRoute(teamId = this.getTeamId()) { return `${this.url}${this.urlVersion}/teams/${teamId}`; } @@ -565,15 +561,43 @@ export default class Client { end(this.handleResponse.bind(this, 'getMyTeam', success, error)); } - getTeamMembers(teamId, success, error) { + getTeamMembers(teamId, offset, limit, success, error) { request. - get(`${this.getTeamsRoute()}/members/${teamId}`). + 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)); + } + + 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`). @@ -740,7 +764,7 @@ export default class Client { }; request. - post(`${this.getTeamNeededManualRoute(teamId)}/update_member_roles`). + post(`${this.getTeamNeededRoute(teamId)}/update_member_roles`). set(this.defaultHeaders). type('application/json'). accept('application/json'). @@ -1003,40 +1027,78 @@ export default class Client { end(this.handleResponse.bind(this, 'getRecentlyActiveUsers', success, error)); } - getDirectProfiles(success, error) { + getProfiles(offset, limit, success, error) { request. - get(`${this.getUsersRoute()}/direct_profiles`). + get(`${this.getUsersRoute()}/${offset}/${limit}`). set(this.defaultHeaders). type('application/json'). accept('application/json'). - end(this.handleResponse.bind(this, 'getDirectProfiles', success, error)); + end(this.handleResponse.bind(this, 'getProfiles', success, error)); } - getProfiles(success, error) { + getProfilesInTeam(teamId, offset, limit, success, error) { request. - get(`${this.getUsersRoute()}/profiles/${this.getTeamId()}`). + get(`${this.getTeamNeededRoute(teamId)}/users/${offset}/${limit}`). set(this.defaultHeaders). type('application/json'). accept('application/json'). - end(this.handleResponse.bind(this, 'getProfiles', success, error)); + end(this.handleResponse.bind(this, 'getProfilesInTeam', success, error)); + } + + 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)); + } + + 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)); + } + + 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)); + } + + 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)); } - getProfilesForTeam(teamId, success, error) { + autocompleteUsersInChannel(term, channelId, success, error) { request. - get(`${this.getUsersRoute()}/profiles/${teamId}`). + get(`${this.getChannelNeededRoute(channelId)}/users/autocomplete?term=${encodeURIComponent(term)}`). set(this.defaultHeaders). type('application/json'). accept('application/json'). - end(this.handleResponse.bind(this, 'getProfilesForTeam', success, error)); + end(this.handleResponse.bind(this, 'autocompleteUsers', success, error)); } - getProfilesForDirectMessageList(success, error) { + autocompleteUsersInTeam(term, success, error) { request. - get(`${this.getUsersRoute()}/profiles_for_dm_list/${this.getTeamId()}`). + get(`${this.getTeamNeededRoute()}/users/autocomplete?term=${encodeURIComponent(term)}`). set(this.defaultHeaders). type('application/json'). accept('application/json'). - end(this.handleResponse.bind(this, 'getProfilesForDirectMessageList', success, error)); + end(this.handleResponse.bind(this, 'autocompleteUsers', success, error)); } getStatuses(success, error) { @@ -1048,6 +1110,16 @@ export default class Client { 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)); + } + setActiveChannel(id, success, error) { request. post(`${this.getUsersRoute()}/status/set_active_channel`). @@ -1285,18 +1357,22 @@ export default class Client { end(this.handleResponse.bind(this, 'getChannelCounts', success, error)); } - getChannelExtraInfo(channelId, memberLimit, success, error) { - var url = `${this.getChannelNeededRoute(channelId)}/extra_info`; - if (memberLimit) { - url += '/' + memberLimit; - } + 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(url). + get(`${this.getChannelNeededRoute(channelId)}/members/${userId}`). set(this.defaultHeaders). type('application/json'). accept('application/json'). - end(this.handleResponse.bind(this, 'getChannelExtraInfo', success, error)); + end(this.handleResponse.bind(this, 'getChannelMember', success, error)); } addChannelMember(channelId, userId, success, error) { diff --git a/webapp/client/websocket_client.jsx b/webapp/client/websocket_client.jsx index aa78d8d98..035e30be5 100644 --- a/webapp/client/websocket_client.jsx +++ b/webapp/client/websocket_client.jsx @@ -12,6 +12,7 @@ export default class WebSocketClient { this.connectFailCount = 0; this.eventCallback = null; this.responseCallbacks = {}; + this.firstConnectCallback = null; this.reconnectCallback = null; this.errorCallback = null; this.closeCallback = null; @@ -29,12 +30,13 @@ export default class WebSocketClient { this.conn = new WebSocket(connectionUrl); this.conn.onopen = () => { - if (this.reconnectCallback) { - this.reconnectCallback(); - } - if (this.connectFailCount > 0) { console.log('websocket re-established connection'); //eslint-disable-line no-console + if (this.reconnectCallback) { + this.reconnectCallback(); + } + } else if (this.firstConnectCallback) { + this.firstConnectCallback(); } this.connectFailCount = 0; @@ -104,6 +106,10 @@ export default class WebSocketClient { this.eventCallback = callback; } + setFirstConnectCallback(callback) { + this.firstConnectCallback = callback; + } + setReconnectCallback(callback) { this.reconnectCallback = callback; } @@ -157,4 +163,10 @@ export default class WebSocketClient { getStatuses(callback) { this.sendMessage('get_statuses', null, callback); } + + getStatusesByIds(userIds, callback) { + const data = {}; + data.user_ids = userIds; + this.sendMessage('get_statuses_by_ids', data, callback); + } } |