mirror of
https://github.com/overleaf/overleaf.git
synced 2025-03-13 09:13:07 +00:00
added basic chat handler
This commit is contained in:
parent
b81fac1cf4
commit
8670b543b9
5 changed files with 101 additions and 2 deletions
26
services/web/app/coffee/Features/Chat/ChatHandler.coffee
Normal file
26
services/web/app/coffee/Features/Chat/ChatHandler.coffee
Normal file
|
@ -0,0 +1,26 @@
|
|||
request = require("request")
|
||||
settings = require("settings-sharelatex")
|
||||
logger = require("logger-sharelatex")
|
||||
|
||||
module.exports =
|
||||
|
||||
sendMessage: (project_id, user_id, messageContent, callback)->
|
||||
opts =
|
||||
method:"post"
|
||||
json:
|
||||
content:messageContent
|
||||
user_id:user_id
|
||||
uri:"#{settings.apis.chat.url}/room/#{project_id}/messages"
|
||||
request opts, (err, response, body)->
|
||||
if err?
|
||||
logger.err err:err, "problem sending new message to chat"
|
||||
callback(err, body)
|
||||
|
||||
|
||||
|
||||
getMessages: (project_id, query, callback)->
|
||||
opts =
|
||||
uri:"#{settings.apis.chat.url}/room/#{project_id}/messages"
|
||||
method:"get"
|
||||
request opts, (err, response, body)->
|
||||
callback(err, body)
|
|
@ -23,6 +23,7 @@ module.exports =
|
|||
new_email:req.query.new_email || ""
|
||||
|
||||
loginPage : (req, res)->
|
||||
console.info req
|
||||
res.render 'user/login',
|
||||
title: 'Login',
|
||||
redir: req.query.redir
|
||||
|
|
|
@ -0,0 +1,74 @@
|
|||
should = require('chai').should()
|
||||
SandboxedModule = require('sandboxed-module')
|
||||
assert = require('assert')
|
||||
path = require('path')
|
||||
sinon = require('sinon')
|
||||
modulePath = path.join __dirname, "../../../../app/js/Features/Chat/ChatHandler"
|
||||
expect = require("chai").expect
|
||||
|
||||
describe "ChatHandler", ->
|
||||
|
||||
beforeEach ->
|
||||
|
||||
@settings =
|
||||
apis:
|
||||
chat:
|
||||
url:"chat.sharelatex.env"
|
||||
@request = sinon.stub()
|
||||
@ChatHandler = SandboxedModule.require modulePath, requires:
|
||||
"settings-sharelatex":@settings
|
||||
"logger-sharelatex": log:->
|
||||
"request": @request
|
||||
@project_id = "3213213kl12j"
|
||||
@user_id = "2k3jlkjs9"
|
||||
@messageContent = "my message here"
|
||||
|
||||
describe "sending message", ->
|
||||
|
||||
beforeEach ->
|
||||
@messageResponse =
|
||||
message:"Details"
|
||||
@request.callsArgWith(1, null, null, @messageResponse)
|
||||
|
||||
it "should post the data to the chat api", (done)->
|
||||
|
||||
@ChatHandler.sendMessage @project_id, @user_id, @messageContent, (err)=>
|
||||
@opts =
|
||||
method:"post"
|
||||
json:
|
||||
content:@messageContent
|
||||
user_id:@user_id
|
||||
uri:"#{@settings.apis.chat.url}/room/#{@project_id}/messages"
|
||||
@request.calledWith(@opts).should.equal true
|
||||
done()
|
||||
|
||||
it "should return the message from the post", (done)->
|
||||
@ChatHandler.sendMessage @project_id, @user_id, @messageContent, (err, returnedMessage)=>
|
||||
returnedMessage.should.equal @messageResponse
|
||||
done()
|
||||
|
||||
describe "get messages", ->
|
||||
|
||||
beforeEach ->
|
||||
@returnedMessages = [{content:"hello world"}]
|
||||
@request.callsArgWith(1, null, null, @returnedMessages)
|
||||
|
||||
it "should make get request for room to chat api", (done)->
|
||||
|
||||
@ChatHandler.getMessages @project_id, (err)=>
|
||||
@opts =
|
||||
method:"get"
|
||||
uri:"#{@settings.apis.chat.url}/room/#{@project_id}/messages"
|
||||
@request.calledWith(@opts).should.equal true
|
||||
done()
|
||||
|
||||
it "should return the messages from the request", (done)->
|
||||
@ChatHandler.getMessages @project_id, (err, returnedMessages)=>
|
||||
returnedMessages.should.equal @returnedMessages
|
||||
done()
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -4,7 +4,6 @@ Settings = require 'settings-sharelatex'
|
|||
should = require("chai").should()
|
||||
MockRequest = require "../helpers/MockRequest"
|
||||
MockResponse = require "../helpers/MockResponse"
|
||||
tk = require 'timekeeper'
|
||||
modulePath = '../../../../app/js/Features/Subscription/SubscriptionController'
|
||||
|
||||
mockSubscriptions =
|
||||
|
|
|
@ -4,7 +4,6 @@ sinon = require 'sinon'
|
|||
querystring = require 'querystring'
|
||||
modulePath = "../../../../app/js/Features/Subscription/SubscriptionHandler"
|
||||
SubscriptionHandler = require modulePath
|
||||
tk = require 'timekeeper'
|
||||
|
||||
mockRecurlySubscriptions =
|
||||
"subscription-123-active":
|
||||
|
|
Loading…
Reference in a new issue