| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- request = require("request")
- settings = require("settings-sharelatex")
- logger = require("logger-sharelatex")
- module.exports = ChatApiHandler =
- _apiRequest: (opts, callback = (error, data) ->) ->
- request opts, (error, response, data) ->
- return callback(error) if error?
- if 200 <= response.statusCode < 300
- return callback null, data
- else
- error = new Error("chat api returned non-success code: #{response.statusCode}")
- error.statusCode = response.statusCode
- logger.error {err: error, opts}, "error sending request to chat api"
- return callback error
- sendGlobalMessage: (project_id, user_id, content, callback)->
- ChatApiHandler._apiRequest {
- url: "#{settings.apis.chat.internal_url}/project/#{project_id}/messages"
- method: "POST"
- json: {user_id, content}
- }, callback
- getGlobalMessages: (project_id, limit, before, callback)->
- qs = {}
- qs.limit = limit if limit?
- qs.before = before if before?
-
- ChatApiHandler._apiRequest {
- url: "#{settings.apis.chat.internal_url}/project/#{project_id}/messages"
- method: "GET"
- qs: qs
- json: true
- }, callback
-
- sendComment: (project_id, thread_id, user_id, content, callback = (error) ->) ->
- ChatApiHandler._apiRequest {
- url: "#{settings.apis.chat.internal_url}/project/#{project_id}/thread/#{thread_id}/messages"
- method: "POST"
- json: {user_id, content}
- }, callback
-
- getThreads: (project_id, callback = (error) ->) ->
- ChatApiHandler._apiRequest {
- url: "#{settings.apis.chat.internal_url}/project/#{project_id}/threads"
- method: "GET"
- json: true
- }, callback
-
- resolveThread: (project_id, thread_id, user_id, callback = (error) ->) ->
- ChatApiHandler._apiRequest {
- url: "#{settings.apis.chat.internal_url}/project/#{project_id}/thread/#{thread_id}/resolve"
- method: "POST"
- json: {user_id}
- }, callback
-
- reopenThread: (project_id, thread_id, callback = (error) ->) ->
- ChatApiHandler._apiRequest {
- url: "#{settings.apis.chat.internal_url}/project/#{project_id}/thread/#{thread_id}/reopen"
- method: "POST"
- }, callback
-
- deleteThread: (project_id, thread_id, callback = (error) ->) ->
- ChatApiHandler._apiRequest {
- url: "#{settings.apis.chat.internal_url}/project/#{project_id}/thread/#{thread_id}"
- method: "DELETE"
- }, callback
-
- editMessage: (project_id, thread_id, message_id, content, callback = (error) ->) ->
- ChatApiHandler._apiRequest {
- url: "#{settings.apis.chat.internal_url}/project/#{project_id}/thread/#{thread_id}/messages/#{message_id}/edit"
- method: "POST"
- json:
- content: content
- }, callback
-
- deleteMessage: (project_id, thread_id, message_id, callback = (error) ->) ->
- ChatApiHandler._apiRequest {
- url: "#{settings.apis.chat.internal_url}/project/#{project_id}/thread/#{thread_id}/messages/#{message_id}"
- method: "DELETE"
- }, callback
-
|