@tiledesk/tiledesk-server 2.3.106 → 2.3.108
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/channels/chat21/chat21Handler.js +10 -6
 - package/package.json +3 -3
 - package/routes/message.js +20 -3
 - package/test/messageRoute.js +69 -0
 
| 
         @@ -184,7 +184,6 @@ class Chat21Handler { 
     | 
|
| 
       184 
184 
     | 
    
         | 
| 
       185 
185 
     | 
    
         | 
| 
       186 
186 
     | 
    
         
             
                // quando passa da lead temp a default aggiorna tutti va bene?        
         
     | 
| 
       187 
     | 
    
         
            -
             
     | 
| 
       188 
187 
     | 
    
         
             
                     leadEvent.on('lead.update', function(lead) {
         
     | 
| 
       189 
188 
     | 
    
         
             
                        //  non sembra funzionare chiedi a Dario dove prende le info
         
     | 
| 
       190 
189 
     | 
    
         
             
                        setImmediate(() => {
         
     | 
| 
         @@ -363,6 +362,7 @@ class Chat21Handler { 
     | 
|
| 
       363 
362 
     | 
    
         | 
| 
       364 
363 
     | 
    
         
             
                                                        chat21Event.emit('message.sent', data);
         
     | 
| 
       365 
364 
     | 
    
         | 
| 
      
 365 
     | 
    
         
            +
                                                            winston.debug("Message changeStatus 1");
         
     | 
| 
       366 
366 
     | 
    
         
             
                                                            messageService.changeStatus(message._id, MessageConstants.CHAT_MESSAGE_STATUS.DELIVERED) .then(function(upMessage){
         
     | 
| 
       367 
367 
     | 
    
         
             
                                                                winston.debug("Chat21 message sent ", upMessage.toObject());                                        
         
     | 
| 
       368 
368 
     | 
    
         
             
                                                            }).catch(function(err) {
         
     | 
| 
         @@ -398,7 +398,7 @@ class Chat21Handler { 
     | 
|
| 
       398 
398 
     | 
    
         
             
                                                    // chat21.conversations.stopTyping(message.recipient,message.sender);
         
     | 
| 
       399 
399 
     | 
    
         | 
| 
       400 
400 
     | 
    
         
             
                                                    chat21Event.emit('message.sent', data);
         
     | 
| 
       401 
     | 
    
         
            -
             
     | 
| 
      
 401 
     | 
    
         
            +
                                                        winston.debug("Message changeStatus 2");
         
     | 
| 
       402 
402 
     | 
    
         
             
                                                        messageService.changeStatus(message._id, MessageConstants.CHAT_MESSAGE_STATUS.DELIVERED) .then(function(upMessage){
         
     | 
| 
       403 
403 
     | 
    
         
             
                                                            winston.debug("Chat21 message sent ", upMessage.toObject());                                        
         
     | 
| 
       404 
404 
     | 
    
         
             
                                                        }).catch(function(err) {
         
     | 
| 
         @@ -439,7 +439,7 @@ class Chat21Handler { 
     | 
|
| 
       439 
439 
     | 
    
         
             
                                                   // chat21.conversations.stopTyping(message.recipient,message.sender);
         
     | 
| 
       440 
440 
     | 
    
         | 
| 
       441 
441 
     | 
    
         
             
                                                   chat21Event.emit('message.sent', data);
         
     | 
| 
       442 
     | 
    
         
            -
             
     | 
| 
      
 442 
     | 
    
         
            +
                                                   winston.debug("Message changeStatus 3");
         
     | 
| 
       443 
443 
     | 
    
         
             
                                                       messageService.changeStatus(message._id, MessageConstants.CHAT_MESSAGE_STATUS.DELIVERED) .then(function(upMessage){
         
     | 
| 
       444 
444 
     | 
    
         
             
                                                           winston.debug("Chat21 message sent ", upMessage.toObject());                                        
         
     | 
| 
       445 
445 
     | 
    
         
             
                                                       }).catch(function(err) {
         
     | 
| 
         @@ -545,7 +545,11 @@ class Chat21Handler { 
     | 
|
| 
       545 
545 
     | 
    
         
             
                                    // let membersArray = JSON.parse(JSON.stringify(members));
         
     | 
| 
       546 
546 
     | 
    
         
             
                                    // winston.info("membersArray", membersArray);
         
     | 
| 
       547 
547 
     | 
    
         | 
| 
       548 
     | 
    
         
            -
                                    var gAttributes =  
     | 
| 
      
 548 
     | 
    
         
            +
                                    var gAttributes = requestObj.attributes || {};
         
     | 
| 
      
 549 
     | 
    
         
            +
                                    // TODO ATTENTION change value by reference
         
     | 
| 
      
 550 
     | 
    
         
            +
                                    // var gAttributes = request.attributes || {}; //BUG LINK TO event emmiter obiect
         
     | 
| 
      
 551 
     | 
    
         
            +
             
     | 
| 
      
 552 
     | 
    
         
            +
             
     | 
| 
       549 
553 
     | 
    
         
             
                                    // problema requester_id
         
     | 
| 
       550 
554 
     | 
    
         
             
                                    gAttributes["requester_id"] = request.requester_id;
         
     | 
| 
       551 
555 
     | 
    
         | 
| 
         @@ -631,12 +635,12 @@ class Chat21Handler { 
     | 
|
| 
       631 
635 
     | 
    
         | 
| 
       632 
636 
     | 
    
         
             
                                    chat21.auth.setAdminToken(adminToken);                      
         
     | 
| 
       633 
637 
     | 
    
         | 
| 
       634 
     | 
    
         
            -
                                    winston. 
     | 
| 
      
 638 
     | 
    
         
            +
                                    winston.debug("Chat21Sender archiving conversations for ",request.participants);
         
     | 
| 
       635 
639 
     | 
    
         | 
| 
       636 
640 
     | 
    
         
             
                                   //iterate request.participant and archive conversation
         
     | 
| 
       637 
641 
     | 
    
         
             
                                   request.participants.forEach(function(participant,index) {
         
     | 
| 
       638 
642 
     | 
    
         | 
| 
       639 
     | 
    
         
            -
                                    winston. 
     | 
| 
      
 643 
     | 
    
         
            +
                                    winston.debug("Chat21Sender archiving conversation: " + request.request_id + "for " + participant);
         
     | 
| 
       640 
644 
     | 
    
         | 
| 
       641 
645 
     | 
    
         
             
                                        chat21.conversations.archive(request.request_id, participant)
         
     | 
| 
       642 
646 
     | 
    
         
             
                                                    .then(function(data){
         
     | 
    
        package/package.json
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            {
         
     | 
| 
       2 
2 
     | 
    
         
             
              "name": "@tiledesk/tiledesk-server",
         
     | 
| 
       3 
3 
     | 
    
         
             
              "description": "The Tiledesk server module",
         
     | 
| 
       4 
     | 
    
         
            -
              "version": "2.3. 
     | 
| 
      
 4 
     | 
    
         
            +
              "version": "2.3.108",
         
     | 
| 
       5 
5 
     | 
    
         
             
              "scripts": {
         
     | 
| 
       6 
6 
     | 
    
         
             
                "start": "node ./bin/www",
         
     | 
| 
       7 
7 
     | 
    
         
             
                "pretest": "mongodb-runner start",
         
     | 
| 
         @@ -43,8 +43,8 @@ 
     | 
|
| 
       43 
43 
     | 
    
         
             
                "@tiledesk/tiledesk-json-rules-engine": "^4.0.3",
         
     | 
| 
       44 
44 
     | 
    
         
             
                "@tiledesk/tiledesk-kaleyra-proxy": "^0.1.7",
         
     | 
| 
       45 
45 
     | 
    
         
             
                "@tiledesk/tiledesk-rasa-connector": "^1.0.10",
         
     | 
| 
       46 
     | 
    
         
            -
                "@tiledesk/tiledesk-tybot-connector": "^0.1. 
     | 
| 
       47 
     | 
    
         
            -
                "@tiledesk/tiledesk-whatsapp-connector": "^0.1. 
     | 
| 
      
 46 
     | 
    
         
            +
                "@tiledesk/tiledesk-tybot-connector": "^0.1.65",
         
     | 
| 
      
 47 
     | 
    
         
            +
                "@tiledesk/tiledesk-whatsapp-connector": "^0.1.39",
         
     | 
| 
       48 
48 
     | 
    
         
             
                "amqplib": "^0.5.5",
         
     | 
| 
       49 
49 
     | 
    
         
             
                "app-root-path": "^3.0.0",
         
     | 
| 
       50 
50 
     | 
    
         
             
                "bcrypt-nodejs": "0.0.3",
         
     | 
    
        package/routes/message.js
    CHANGED
    
    | 
         @@ -184,6 +184,8 @@ async (req, res)  => { 
     | 
|
| 
       184 
184 
     | 
    
         | 
| 
       185 
185 
     | 
    
         
             
                            return requestService.create(new_request).then(function (savedRequest) {
         
     | 
| 
       186 
186 
     | 
    
         | 
| 
      
 187 
     | 
    
         
            +
                              winston.debug("returning savedRequest to", savedRequest.toJSON());
         
     | 
| 
      
 188 
     | 
    
         
            +
             
     | 
| 
       187 
189 
     | 
    
         
             
                              // createWithIdAndRequester(request_id, project_user_id, lead_id, id_project, first_text, departmentid, sourcePage, language, userAgent, status, 
         
     | 
| 
       188 
190 
     | 
    
         
             
                              //  createdBy, attributes, subject, preflight, channel, location) {
         
     | 
| 
       189 
191 
     | 
    
         | 
| 
         @@ -204,26 +206,41 @@ async (req, res)  => { 
     | 
|
| 
       204 
206 
     | 
    
         | 
| 
       205 
207 
     | 
    
         
             
                                      winston.debug("returning message to", message);
         
     | 
| 
       206 
208 
     | 
    
         | 
| 
       207 
     | 
    
         
            -
                                      savedRequest
         
     | 
| 
      
 209 
     | 
    
         
            +
                                      winston.debug("returning savedRequest2210 to", savedRequest.toJSON());
         
     | 
| 
      
 210 
     | 
    
         
            +
             
     | 
| 
      
 211 
     | 
    
         
            +
             
     | 
| 
      
 212 
     | 
    
         
            +
                                      savedRequest //bug
         
     | 
| 
      
 213 
     | 
    
         
            +
                                      // Request.findById(savedRequest.id)
         
     | 
| 
       208 
214 
     | 
    
         
             
                                        .populate('lead')
         
     | 
| 
       209 
215 
     | 
    
         
             
                                        .populate('department')
         
     | 
| 
       210 
216 
     | 
    
         
             
                                        .populate('participatingBots')
         
     | 
| 
       211 
217 
     | 
    
         
             
                                        .populate('participatingAgents') 
         
     | 
| 
       212 
218 
     | 
    
         
             
                                        // .populate('followers')  
         
     | 
| 
       213 
219 
     | 
    
         
             
                                        .populate({path:'requester',populate:{path:'id_user'}})
         
     | 
| 
       214 
     | 
    
         
            -
                                        . 
     | 
| 
      
 220 
     | 
    
         
            +
                                        // .exec(function (err, savedRequestPopulated){    
         
     | 
| 
      
 221 
     | 
    
         
            +
                                          .execPopulate(function (err, savedRequestPopulated){   //bug with  execPopulate request.attributes are invalid (NOT real data). but this bug is related to chat21 listener changes by reference. i think populate suffer from this problem bacause it it the same obect passed by reference 
         
     | 
| 
       215 
222 
     | 
    
         | 
| 
       216 
223 
     | 
    
         
             
                                        if (err) {
         
     | 
| 
       217 
224 
     | 
    
         
             
                                          return winston.error("Error gettting savedRequestPopulated for send Message", err);
         
     | 
| 
       218 
     | 
    
         
            -
                                        } 
     | 
| 
      
 225 
     | 
    
         
            +
                                        }       
         
     | 
| 
      
 226 
     | 
    
         
            +
                                        
         
     | 
| 
      
 227 
     | 
    
         
            +
                                        winston.debug("returning savedRequest221 to", savedRequest.toJSON());
         
     | 
| 
      
 228 
     | 
    
         
            +
             
     | 
| 
      
 229 
     | 
    
         
            +
             
     | 
| 
      
 230 
     | 
    
         
            +
                                        winston.debug("savedRequestPopulated", savedRequestPopulated.toJSON());
         
     | 
| 
      
 231 
     | 
    
         
            +
             
     | 
| 
      
 232 
     | 
    
         
            +
                                        winston.debug("returning savedRequest22 to", savedRequest.toJSON());
         
     | 
| 
      
 233 
     | 
    
         
            +
             
     | 
| 
       219 
234 
     | 
    
         | 
| 
       220 
235 
     | 
    
         
             
                                        message.request = savedRequestPopulated;
         
     | 
| 
      
 236 
     | 
    
         
            +
                                        winston.debug("returning2 message to", message);
         
     | 
| 
       221 
237 
     | 
    
         | 
| 
       222 
238 
     | 
    
         | 
| 
       223 
239 
     | 
    
         
             
                                        return res.json(message);
         
     | 
| 
       224 
240 
     | 
    
         
             
                                      });
         
     | 
| 
       225 
241 
     | 
    
         
             
                                    });
         
     | 
| 
       226 
242 
     | 
    
         
             
                                }).catch(function(err){    //pubblica questo
         
     | 
| 
      
 243 
     | 
    
         
            +
                                  winston.error('Error creating request: '+ JSON.stringify(err));
         
     | 
| 
       227 
244 
     | 
    
         
             
                                  winston.log({
         
     | 
| 
       228 
245 
     | 
    
         
             
                                    level: 'error',
         
     | 
| 
       229 
246 
     | 
    
         
             
                                    message: 'Error creating request: '+ JSON.stringify(err) + " " + JSON.stringify(req.body) ,
         
     | 
    
        package/test/messageRoute.js
    CHANGED
    
    | 
         @@ -155,6 +155,75 @@ it('createSimpleNoText', function (done) { 
     | 
|
| 
       155 
155 
     | 
    
         | 
| 
       156 
156 
     | 
    
         | 
| 
       157 
157 
     | 
    
         | 
| 
      
 158 
     | 
    
         
            +
             
     | 
| 
      
 159 
     | 
    
         
            +
            // mocha test/messageRoute.js  --grep 'createSimpleWithAttributes'
         
     | 
| 
      
 160 
     | 
    
         
            +
             
     | 
| 
      
 161 
     | 
    
         
            +
            it('createSimpleWithAttributes', function (done) {
         
     | 
| 
      
 162 
     | 
    
         
            +
              // this.timeout(10000);
         
     | 
| 
      
 163 
     | 
    
         
            +
             
     | 
| 
      
 164 
     | 
    
         
            +
              var email = "test-message-create-" + Date.now() + "@email.com";
         
     | 
| 
      
 165 
     | 
    
         
            +
              var pwd = "pwd";
         
     | 
| 
      
 166 
     | 
    
         
            +
             
     | 
| 
      
 167 
     | 
    
         
            +
              userService.signup( email ,pwd, "Test Firstname", "Test lastname").then(function(savedUser) {
         
     | 
| 
      
 168 
     | 
    
         
            +
               projectService.createAndReturnProjectAndProjectUser("message-create", savedUser._id).then(function(savedProjectAndPU) {
         
     | 
| 
      
 169 
     | 
    
         
            +
               
         
     | 
| 
      
 170 
     | 
    
         
            +
                var savedProject = savedProjectAndPU.project;
         
     | 
| 
      
 171 
     | 
    
         
            +
             
     | 
| 
      
 172 
     | 
    
         
            +
                    chai.request(server)
         
     | 
| 
      
 173 
     | 
    
         
            +
                      .post('/'+ savedProject._id + '/requests/req123-createSimpleWithAttributes/messages')
         
     | 
| 
      
 174 
     | 
    
         
            +
                      .auth(email, pwd)
         
     | 
| 
      
 175 
     | 
    
         
            +
                      .set('content-type', 'application/json')
         
     | 
| 
      
 176 
     | 
    
         
            +
                      .send({"text":"text","attributes": {"a":"b"}})
         
     | 
| 
      
 177 
     | 
    
         
            +
                      .end(function(err, res) {
         
     | 
| 
      
 178 
     | 
    
         
            +
                          //console.log("res",  res);
         
     | 
| 
      
 179 
     | 
    
         
            +
                          console.log("res.body",  res.body);
         
     | 
| 
      
 180 
     | 
    
         
            +
                          res.should.have.status(200);
         
     | 
| 
      
 181 
     | 
    
         
            +
                          res.body.should.be.a('object');                          
         
     | 
| 
      
 182 
     | 
    
         
            +
             
     | 
| 
      
 183 
     | 
    
         
            +
                          expect(res.body.sender).to.equal(savedUser._id.toString());
         
     | 
| 
      
 184 
     | 
    
         
            +
                          // expect(res.body.sender).to.equal(savedProjectAndPU.project_user._id.toString());
         
     | 
| 
      
 185 
     | 
    
         
            +
                          // expect(res.body.senderFullname).to.equal("senderFullname");
         
     | 
| 
      
 186 
     | 
    
         
            +
                          expect(res.body.recipient).to.equal("req123-createSimpleWithAttributes");
         
     | 
| 
      
 187 
     | 
    
         
            +
                          expect(res.body.text).to.equal("text");
         
     | 
| 
      
 188 
     | 
    
         
            +
                          expect(res.body.id_project).to.equal(savedProject._id.toString());
         
     | 
| 
      
 189 
     | 
    
         
            +
                          expect(res.body.createdBy).to.equal(savedUser._id.toString());
         
     | 
| 
      
 190 
     | 
    
         
            +
                          expect(res.body.status).to.equal(0);
         
     | 
| 
      
 191 
     | 
    
         
            +
                          expect(res.body.attributes.a).to.equal("b");
         
     | 
| 
      
 192 
     | 
    
         
            +
             
     | 
| 
      
 193 
     | 
    
         
            +
                          expect(res.body.request.request_id).to.equal("req123-createSimpleWithAttributes");
         
     | 
| 
      
 194 
     | 
    
         
            +
                          expect(res.body.request.requester._id).to.equal(savedProjectAndPU.project_user._id.toString());
         
     | 
| 
      
 195 
     | 
    
         
            +
                          // expect(res.body.request.requester_id).to.equal("sender");
         
     | 
| 
      
 196 
     | 
    
         
            +
                          expect(res.body.request.first_text).to.equal("text");
         
     | 
| 
      
 197 
     | 
    
         
            +
                          expect(res.body.request.id_project).to.equal(savedProject._id.toString());
         
     | 
| 
      
 198 
     | 
    
         
            +
                          expect(res.body.request.createdBy).to.equal(savedUser._id.toString());
         
     | 
| 
      
 199 
     | 
    
         
            +
             
     | 
| 
      
 200 
     | 
    
         
            +
                          // expect(res.body.request.messages_count).to.equal(1);
         
     | 
| 
      
 201 
     | 
    
         
            +
             
     | 
| 
      
 202 
     | 
    
         
            +
                          expect(res.body.request.status).to.equal(200);                                
         
     | 
| 
      
 203 
     | 
    
         
            +
                          expect(res.body.request.snapshot.agents.length).to.equal(1);
         
     | 
| 
      
 204 
     | 
    
         
            +
                          expect(res.body.request.participants.length).to.equal(1);
         
     | 
| 
      
 205 
     | 
    
         
            +
                          expect(res.body.request.department).to.not.equal(null);
         
     | 
| 
      
 206 
     | 
    
         
            +
                          expect(res.body.request.lead).to.not.equal(null);               
         
     | 
| 
      
 207 
     | 
    
         
            +
                          
         
     | 
| 
      
 208 
     | 
    
         
            +
                          expect(res.body.request.attributes.a).to.equal("b");
         
     | 
| 
      
 209 
     | 
    
         
            +
             
     | 
| 
      
 210 
     | 
    
         
            +
                          expect(res.body.channel_type).to.equal("group");
         
     | 
| 
      
 211 
     | 
    
         
            +
                          expect(res.body.channel.name).to.equal("chat21");
         
     | 
| 
      
 212 
     | 
    
         
            +
                          expect(res.body.request.channel.name).to.equal("chat21");
         
     | 
| 
      
 213 
     | 
    
         
            +
             
     | 
| 
      
 214 
     | 
    
         
            +
             
     | 
| 
      
 215 
     | 
    
         
            +
                          expect(res.body.request.location).to.equal(undefined);
         
     | 
| 
      
 216 
     | 
    
         
            +
                         
         
     | 
| 
      
 217 
     | 
    
         
            +
                    
         
     | 
| 
      
 218 
     | 
    
         
            +
                         done();
         
     | 
| 
      
 219 
     | 
    
         
            +
                      });
         
     | 
| 
      
 220 
     | 
    
         
            +
              });
         
     | 
| 
      
 221 
     | 
    
         
            +
            });
         
     | 
| 
      
 222 
     | 
    
         
            +
            });
         
     | 
| 
      
 223 
     | 
    
         
            +
             
     | 
| 
      
 224 
     | 
    
         
            +
             
     | 
| 
      
 225 
     | 
    
         
            +
             
     | 
| 
      
 226 
     | 
    
         
            +
             
     | 
| 
       158 
227 
     | 
    
         
             
            // mocha test/messageRoute.js  --grep 'createWithSender'
         
     | 
| 
       159 
228 
     | 
    
         | 
| 
       160 
229 
     | 
    
         
             
            it('createWithSender', function (done) {
         
     |