ac6078e21ad0ac105fc9ccf1f297c03d289cb946
[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 _0xa6af=['User','agent','name','fullname','email','internal','findAgentById','chat','ChatInteractionId','fax','FaxInteractionId','OpenchannelInteractionId','sms','SmsInteractionId','whatsapp','WhatsappInteractionId','min','sequelize','col','isNewInteraction','parse','interaction','formData','EventManager','acceptmessage','sendAmiAcceptEvent','acceptMessage','sendRoutingAcceptEvent','newinteraction','opened','lodash','moment','APINotFoundError','../../config/logger','api','client','request','then','%s,\x20%s,\x20%s','debug','%s,\x20%s,\x20%s,\x20%s','error','code','message','info','request\x20sent','result','catch','params','user','get','read','readAt','format','YYYY-MM-DD\x20HH:mm:ss','UserId','getAcceptParams','capitalize','Message','findOne','Message\x20with\x20id\x20','\x20not\x20found','update','updateMessageById','Interaction','Interaction\x20with\x20id\x20','read1stAt','updateInteractionById','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','query','QueryTypes','SELECT','length','Contact\x20with\x20id\x20','findContactById'];(function(_0x20ef64,_0x4a8fe9){var _0x3707d8=function(_0x5b9a88){while(--_0x5b9a88){_0x20ef64['push'](_0x20ef64['shift']());}};_0x3707d8(++_0x4a8fe9);}(_0xa6af,0x14a));var _0xfa6a=function(_0x536b1b,_0x4ec563){_0x536b1b=_0x536b1b-0x0;var _0x64841f=_0xa6af[_0x536b1b];return _0x64841f;};'use strict';var _=require(_0xfa6a('0x0'));var moment=require(_0xfa6a('0x1'));var jayson=require('jayson/promise');var db=require('../../mysqldb')['db'];var APINotFoundError=require('../../errors/api')[_0xfa6a('0x2')];var logger=require(_0xfa6a('0x3'))(_0xfa6a('0x4'));var rpcAmiClient=jayson[_0xfa6a('0x5')]['http']({'port':0x232a});var rpcRoutingClient=jayson[_0xfa6a('0x5')]['http']({'port':0x232c});function respondWithRpcPromise(_0x37a396,_0x19b2f6,_0x31768b,_0x466c1c,_0x7f476){return new Promise(function(_0x52a2bb,_0x787dab){return _0x7f476[_0xfa6a('0x6')](_0x19b2f6,_0x466c1c)[_0xfa6a('0x7')](function(_0x327b2f){logger['info'](_0xfa6a('0x8'),_0x37a396,_0x31768b,'request\x20sent');logger[_0xfa6a('0x9')](_0xfa6a('0xa'),_0x37a396,_0x31768b,'request\x20sent',JSON['stringify'](_0x327b2f));if(_0x327b2f['error']){if(_0x327b2f[_0xfa6a('0xb')][_0xfa6a('0xc')]===0x1f4){logger[_0xfa6a('0xb')](_0xfa6a('0x8'),_0x37a396,_0x31768b,_0x327b2f[_0xfa6a('0xb')][_0xfa6a('0xd')]);return _0x787dab(_0x327b2f[_0xfa6a('0xb')][_0xfa6a('0xd')]);}logger['error'](_0xfa6a('0x8'),_0x37a396,_0x31768b,_0x327b2f[_0xfa6a('0xb')][_0xfa6a('0xd')]);return _0x52a2bb(_0x327b2f[_0xfa6a('0xb')][_0xfa6a('0xd')]);}else{logger[_0xfa6a('0xe')](_0xfa6a('0x8'),_0x37a396,_0x31768b,_0xfa6a('0xf'));_0x52a2bb(_0x327b2f[_0xfa6a('0x10')][_0xfa6a('0xd')]);}})[_0xfa6a('0x11')](function(_0x1474cc){logger[_0xfa6a('0xb')](_0xfa6a('0x8'),_0x37a396,_0x31768b,_0x1474cc);_0x787dab(_0x1474cc);});});}function getAcceptParams(_0x548ea5){var _0x270c85=_0x548ea5[_0xfa6a('0x12')]['id'];var _0x2ea285=_0x548ea5['body'];delete _0x2ea285['id'];var _0x5bd867=_0x548ea5[_0xfa6a('0x13')][_0xfa6a('0x14')]({'plain':!![]});_0x2ea285[_0xfa6a('0x15')]=!![];_0x2ea285[_0xfa6a('0x16')]=moment()[_0xfa6a('0x17')](_0xfa6a('0x18'));_0x2ea285[_0xfa6a('0x19')]=_0x2ea285['UserId']||_0x5bd867['id'];return{'messageId':_0x270c85,'payload':_0x2ea285,'user':_0x5bd867};}exports[_0xfa6a('0x1a')]=getAcceptParams;function updateMessageById(_0x3bdc7f,_0x4a8c5b,_0x46f55a){var _0x4d5d9f=_[_0xfa6a('0x1b')](_0x3bdc7f)+_0xfa6a('0x1c');return db[_0x4d5d9f][_0xfa6a('0x1d')]({'where':{'id':_0x4a8c5b,'UserId':null}})[_0xfa6a('0x7')](function(_0x55d655){if(!_0x55d655){throw new APINotFoundError(_0xfa6a('0x1e')+_0x4a8c5b+_0xfa6a('0x1f'));}return _0x55d655[_0xfa6a('0x20')](_0x46f55a);})['then'](function(_0x585465){return _0x585465[_0xfa6a('0x14')]({'plain':!![]});});}exports[_0xfa6a('0x21')]=updateMessageById;function updateInteractionById(_0x5239dd,_0x2ca5a8,_0x2aba4c){var _0x52040b=_[_0xfa6a('0x1b')](_0x5239dd)+_0xfa6a('0x22');return db[_0x52040b][_0xfa6a('0x1d')]({'where':{'id':_0x2ca5a8}})['then'](function(_0x543418){if(!_0x543418){throw new APINotFoundError(_0xfa6a('0x23')+_0x2ca5a8+_0xfa6a('0x1f'));}var _0x1a1cdd=_0x543418[_0xfa6a('0x24')]||moment()['format']('YYYY-MM-DD\x20HH:mm:ss');return _0x543418[_0xfa6a('0x20')]({'UserId':_0x2aba4c,'read1stAt':_0x1a1cdd});})[_0xfa6a('0x7')](function(_0x51a8c0){return _0x51a8c0['get']({'plain':!![]});});}exports[_0xfa6a('0x25')]=updateInteractionById;function findContactById(_0xa8adef){var _0x4dc411=_0xfa6a('0x26')+_0xa8adef;return db['sequelize'][_0xfa6a('0x27')](_0x4dc411,{'type':db['sequelize'][_0xfa6a('0x28')][_0xfa6a('0x29')],'raw':!![]})[_0xfa6a('0x7')](function(_0x4cd53a){if(_0x4cd53a[_0xfa6a('0x2a')]===0x0){throw new APINotFoundError(_0xfa6a('0x2b')+_0xa8adef+_0xfa6a('0x1f'));}return _0x4cd53a[0x0];});}exports[_0xfa6a('0x2c')]=findContactById;function findAgentById(_0x51fad4){return db[_0xfa6a('0x2d')][_0xfa6a('0x1d')]({'where':{'id':_0x51fad4,'role':_0xfa6a('0x2e')},'attributes':['id',_0xfa6a('0x2f'),_0xfa6a('0x30'),_0xfa6a('0x31'),_0xfa6a('0x32')],'raw':!![]});}exports[_0xfa6a('0x33')]=findAgentById;function isNewInteraction(_0x559e09,_0x556b71,_0x3132e0){var _0x20fdb6=_[_0xfa6a('0x1b')](_0x559e09)+_0xfa6a('0x1c');var _0x37284b={};switch(_0x559e09){case _0xfa6a('0x34'):_0x37284b[_0xfa6a('0x35')]=_0x556b71;break;case _0xfa6a('0x36'):_0x37284b[_0xfa6a('0x37')]=_0x556b71;break;case'mail':_0x37284b['MailInteractionId']=_0x556b71;break;case'openchannel':_0x37284b[_0xfa6a('0x38')]=_0x556b71;break;case _0xfa6a('0x39'):_0x37284b[_0xfa6a('0x3a')]=_0x556b71;break;case _0xfa6a('0x3b'):_0x37284b[_0xfa6a('0x3c')]=_0x556b71;break;}return db[_0x20fdb6][_0xfa6a('0x1d')]({'where':_0x37284b,'attributes':[[db['sequelize']['fn'](_0xfa6a('0x3d'),db[_0xfa6a('0x3e')][_0xfa6a('0x3f')]('id')),'id']],'raw':!![]})[_0xfa6a('0x7')](function(_0x3eb489){return _0x3132e0===_0x3eb489['id'];});}exports[_0xfa6a('0x40')]=isNewInteraction;function sendAmiAcceptEvent(_0x4b1e2c,_0x1410c6){var _0x17fde8=_['capitalize'](_0x4b1e2c)+_0xfa6a('0x1c');var _0x198ba7=_0x1410c6['message'];if(_0x4b1e2c===_0xfa6a('0x34')){Object['assign'](_0x198ba7,JSON[_0xfa6a('0x41')](_0x1410c6[_0xfa6a('0x42')][_0xfa6a('0x43')]));}return respondWithRpcPromise(_0x17fde8,_0xfa6a('0x44'),_0xfa6a('0x44'),{'event':_0xfa6a('0x45'),'message':_0x198ba7},rpcAmiClient);}exports[_0xfa6a('0x46')]=sendAmiAcceptEvent;function sendRoutingAcceptEvent(_0x10d95b,_0x6a0373){var _0x498668=_[_0xfa6a('0x1b')](_0x10d95b)+_0xfa6a('0x1c');return respondWithRpcPromise(_0x498668,'AcceptMessage',_0xfa6a('0x47'),_0x6a0373,rpcRoutingClient);}exports[_0xfa6a('0x48')]=sendRoutingAcceptEvent;function sendInteractionOpenedEvent(_0x30ee41,_0x5c0112){var _0x14fe47=_[_0xfa6a('0x1b')](_0x30ee41)+_0xfa6a('0x1c');return respondWithRpcPromise(_0x14fe47,'EventManager',_0xfa6a('0x44'),{'event':_0xfa6a('0x49'),'message':Object['assign']({},_0x5c0112,{'event':_0xfa6a('0x4a')})},rpcAmiClient);}exports['sendInteractionOpenedEvent']=sendInteractionOpenedEvent;