diff options
Diffstat (limited to 'webapp/utils/async_client.jsx')
-rw-r--r-- | webapp/utils/async_client.jsx | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/webapp/utils/async_client.jsx b/webapp/utils/async_client.jsx index 65cb2d258..04e101aa9 100644 --- a/webapp/utils/async_client.jsx +++ b/webapp/utils/async_client.jsx @@ -1384,3 +1384,88 @@ export function getPublicLink(filename, success, error) { } ); } + +export function listEmoji() { + if (isCallInProgress('listEmoji')) { + return; + } + + callTracker.listEmoji = utils.getTimestamp(); + + Client.listEmoji( + (data) => { + callTracker.listEmoji = 0; + + AppDispatcher.handleServerAction({ + type: ActionTypes.RECEIVED_CUSTOM_EMOJIS, + emojis: data + }); + }, + (err) => { + callTracker.listEmoji = 0; + dispatchError(err, 'listEmoji'); + } + ); +} + +export function addEmoji(emoji, image, success, error) { + const callName = 'addEmoji' + emoji.name; + + if (isCallInProgress(callName)) { + return; + } + + callTracker[callName] = utils.getTimestamp(); + + Client.addEmoji( + emoji, + image, + (data) => { + callTracker[callName] = 0; + + AppDispatcher.handleServerAction({ + type: ActionTypes.RECEIVED_CUSTOM_EMOJI, + emoji: data + }); + + if (success) { + success(); + } + }, + (err) => { + callTracker[callName] = 0; + + if (error) { + error(err); + } else { + dispatchError(err, 'addEmoji'); + } + } + ); +} + +export function deleteEmoji(id) { + const callName = 'deleteEmoji' + id; + + if (isCallInProgress(callName)) { + return; + } + + callTracker[callName] = utils.getTimestamp(); + + Client.deleteEmoji( + id, + () => { + callTracker[callName] = 0; + + AppDispatcher.handleServerAction({ + type: ActionTypes.REMOVED_CUSTOM_EMOJI, + id + }); + }, + (err) => { + callTracker[callName] = 0; + dispatchError(err, 'deleteEmoji'); + } + ); +}
\ No newline at end of file |