Built motion from commit 953226e6.|2.6.32
[motion2.git] / server / components / interaction / accept-message.js
1 // *************************************************************************
2 // *                                                                       *
3 // * xCALLY Motion -  The Omnichannel Contact Center                       *
4 // * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
5 // *                                                                       *
6 // *************************************************************************
7 // *                                                                       *
8 // * Email: info@xcally.com                                                *
9 // * Website: https://www.xcally.com                                       *
10 // *                                                                       *
11 // *************************************************************************
12 // *                                                                       *
13 // * The SOFTWARE PRODUCT is protected by copyright laws and international *
14 // * copyright treaties, as well as other intellectual property laws and   *
15 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                         *
16 // *                                                                       *
17 // *************************************************************************
18 var _0xbc01=['APINotFoundError','../../config/logger','api','http','info','%s,\x20%s,\x20%s','debug','%s,\x20%s,\x20%s,\x20%s','error','code','message','request\x20sent','user','get','read','YYYY-MM-DD\x20HH:mm:ss','UserId','getAcceptParams','capitalize','findOne','then','Message\x20with\x20id\x20','\x20not\x20found','update','updateMessageById','Interaction','Interaction\x20with\x20id\x20','read1stAt','format','updateInteractionById','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','sequelize','query','QueryTypes','SELECT','Contact\x20with\x20id\x20','findContactById','User','agent','fullname','email','internal','chat','ChatInteractionId','fax','FaxInteractionId','mail','MailInteractionId','openchannel','OpenchannelInteractionId','sms','SmsInteractionId','WhatsappInteractionId','min','col','isNewInteraction','assign','parse','interaction','EventManager','acceptmessage','Message','AcceptMessage','acceptMessage','sendRoutingAcceptEvent','newinteraction','opened','sendInteractionOpenedEvent','lodash','../../mysqldb','../../errors/api'];(function(_0x132641,_0x153b24){var _0xc68b80=function(_0x14dd35){while(--_0x14dd35){_0x132641['push'](_0x132641['shift']());}};_0xc68b80(++_0x153b24);}(_0xbc01,0xd2));var _0x1bc0=function(_0x17be21,_0x311a25){_0x17be21=_0x17be21-0x0;var _0x4cbc37=_0xbc01[_0x17be21];return _0x4cbc37;};'use strict';var _=require(_0x1bc0('0x0'));var moment=require('moment');var jayson=require('jayson/promise');var db=require(_0x1bc0('0x1'))['db'];var APINotFoundError=require(_0x1bc0('0x2'))[_0x1bc0('0x3')];var logger=require(_0x1bc0('0x4'))(_0x1bc0('0x5'));var rpcAmiClient=jayson['client'][_0x1bc0('0x6')]({'port':0x232a});var rpcRoutingClient=jayson['client']['http']({'port':0x232c});function respondWithRpcPromise(_0x3b968a,_0x22d72c,_0x1972dc,_0x371851,_0x2e9e0d){return new Promise(function(_0x1a96a4,_0x53e05e){return _0x2e9e0d['request'](_0x22d72c,_0x371851)['then'](function(_0xbb47f8){logger[_0x1bc0('0x7')](_0x1bc0('0x8'),_0x3b968a,_0x1972dc,'request\x20sent');logger[_0x1bc0('0x9')](_0x1bc0('0xa'),_0x3b968a,_0x1972dc,'request\x20sent',JSON['stringify'](_0xbb47f8));if(_0xbb47f8[_0x1bc0('0xb')]){if(_0xbb47f8[_0x1bc0('0xb')][_0x1bc0('0xc')]===0x1f4){logger[_0x1bc0('0xb')]('%s,\x20%s,\x20%s',_0x3b968a,_0x1972dc,_0xbb47f8['error'][_0x1bc0('0xd')]);return _0x53e05e(_0xbb47f8['error']['message']);}logger[_0x1bc0('0xb')](_0x1bc0('0x8'),_0x3b968a,_0x1972dc,_0xbb47f8['error']['message']);return _0x1a96a4(_0xbb47f8['error'][_0x1bc0('0xd')]);}else{logger['info'](_0x1bc0('0x8'),_0x3b968a,_0x1972dc,_0x1bc0('0xe'));_0x1a96a4(_0xbb47f8['result']['message']);}})['catch'](function(_0x1b5a58){logger[_0x1bc0('0xb')](_0x1bc0('0x8'),_0x3b968a,_0x1972dc,_0x1b5a58);_0x53e05e(_0x1b5a58);});});}function getAcceptParams(_0x2b44d8){var _0x4db893=_0x2b44d8['params']['id'];var _0x10aaff=_0x2b44d8['body'];delete _0x10aaff['id'];var _0x4ed4a2=_0x2b44d8[_0x1bc0('0xf')][_0x1bc0('0x10')]({'plain':!![]});_0x10aaff[_0x1bc0('0x11')]=!![];_0x10aaff['readAt']=moment()['format'](_0x1bc0('0x12'));_0x10aaff[_0x1bc0('0x13')]=_0x10aaff['UserId']||_0x4ed4a2['id'];return{'messageId':_0x4db893,'payload':_0x10aaff,'user':_0x4ed4a2};}exports[_0x1bc0('0x14')]=getAcceptParams;function updateMessageById(_0xa9e857,_0x540b53,_0x5538d1){var _0x14ce8c=_[_0x1bc0('0x15')](_0xa9e857)+'Message';return db[_0x14ce8c][_0x1bc0('0x16')]({'where':{'id':_0x540b53,'UserId':null}})[_0x1bc0('0x17')](function(_0x50526b){if(!_0x50526b){throw new APINotFoundError(_0x1bc0('0x18')+_0x540b53+_0x1bc0('0x19'));}return _0x50526b[_0x1bc0('0x1a')](_0x5538d1);})[_0x1bc0('0x17')](function(_0x172a7d){return _0x172a7d[_0x1bc0('0x10')]({'plain':!![]});});}exports[_0x1bc0('0x1b')]=updateMessageById;function updateInteractionById(_0x211405,_0x54c123,_0x4c86c0){var _0x42e201=_['capitalize'](_0x211405)+_0x1bc0('0x1c');return db[_0x42e201][_0x1bc0('0x16')]({'where':{'id':_0x54c123}})['then'](function(_0x245f0f){if(!_0x245f0f){throw new APINotFoundError(_0x1bc0('0x1d')+_0x54c123+_0x1bc0('0x19'));}var _0x5091b1=_0x245f0f[_0x1bc0('0x1e')]||moment()[_0x1bc0('0x1f')]('YYYY-MM-DD\x20HH:mm:ss');return _0x245f0f['update']({'UserId':_0x4c86c0,'read1stAt':_0x5091b1});})['then'](function(_0x2e4343){return _0x2e4343['get']({'plain':!![]});});}exports[_0x1bc0('0x20')]=updateInteractionById;function findContactById(_0x644fa6){var _0xd2ab38=_0x1bc0('0x21')+_0x644fa6;return db[_0x1bc0('0x22')][_0x1bc0('0x23')](_0xd2ab38,{'type':db[_0x1bc0('0x22')][_0x1bc0('0x24')][_0x1bc0('0x25')],'raw':!![]})[_0x1bc0('0x17')](function(_0x2813c2){if(_0x2813c2['length']===0x0){throw new APINotFoundError(_0x1bc0('0x26')+_0x644fa6+_0x1bc0('0x19'));}return _0x2813c2[0x0];});}exports[_0x1bc0('0x27')]=findContactById;function findAgentById(_0x31206b){return db[_0x1bc0('0x28')][_0x1bc0('0x16')]({'where':{'id':_0x31206b,'role':_0x1bc0('0x29')},'attributes':['id','name',_0x1bc0('0x2a'),_0x1bc0('0x2b'),_0x1bc0('0x2c')],'raw':!![]});}exports['findAgentById']=findAgentById;function isNewInteraction(_0x2216fe,_0x26347a,_0x3939c4){var _0x16686d=_[_0x1bc0('0x15')](_0x2216fe)+'Message';var _0x32f838={};switch(_0x2216fe){case _0x1bc0('0x2d'):_0x32f838[_0x1bc0('0x2e')]=_0x26347a;break;case _0x1bc0('0x2f'):_0x32f838[_0x1bc0('0x30')]=_0x26347a;break;case _0x1bc0('0x31'):_0x32f838[_0x1bc0('0x32')]=_0x26347a;break;case _0x1bc0('0x33'):_0x32f838[_0x1bc0('0x34')]=_0x26347a;break;case _0x1bc0('0x35'):_0x32f838[_0x1bc0('0x36')]=_0x26347a;break;case'whatsapp':_0x32f838[_0x1bc0('0x37')]=_0x26347a;break;}return db[_0x16686d]['findOne']({'where':_0x32f838,'attributes':[[db['sequelize']['fn'](_0x1bc0('0x38'),db['sequelize'][_0x1bc0('0x39')]('id')),'id']],'raw':!![]})[_0x1bc0('0x17')](function(_0x118913){return _0x3939c4===_0x118913['id'];});}exports[_0x1bc0('0x3a')]=isNewInteraction;function sendAmiAcceptEvent(_0x397e4f,_0x1678ab){var _0x5b7aad=_[_0x1bc0('0x15')](_0x397e4f)+'Message';var _0x3a851c=_0x1678ab[_0x1bc0('0xd')];if(_0x397e4f==='chat'){Object[_0x1bc0('0x3b')](_0x3a851c,JSON[_0x1bc0('0x3c')](_0x1678ab[_0x1bc0('0x3d')]['formData']));}return respondWithRpcPromise(_0x5b7aad,_0x1bc0('0x3e'),_0x1bc0('0x3e'),{'event':_0x1bc0('0x3f'),'message':_0x3a851c},rpcAmiClient);}exports['sendAmiAcceptEvent']=sendAmiAcceptEvent;function sendRoutingAcceptEvent(_0x4131c0,_0x4d80f9){var _0x483395=_[_0x1bc0('0x15')](_0x4131c0)+_0x1bc0('0x40');return respondWithRpcPromise(_0x483395,_0x1bc0('0x41'),_0x1bc0('0x42'),_0x4d80f9,rpcRoutingClient);}exports[_0x1bc0('0x43')]=sendRoutingAcceptEvent;function sendInteractionOpenedEvent(_0x3ca4e8,_0x2976eb){var _0x502272=_['capitalize'](_0x3ca4e8)+_0x1bc0('0x40');return respondWithRpcPromise(_0x502272,_0x1bc0('0x3e'),_0x1bc0('0x3e'),{'event':_0x1bc0('0x44'),'message':Object['assign']({},_0x2976eb,{'event':_0x1bc0('0x45')})},rpcAmiClient);}exports[_0x1bc0('0x46')]=sendInteractionOpenedEvent;