Built motion from commit d13fb11b.|2.6.34
[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 _0xacc2=['Interaction','Interaction\x20with\x20id\x20','read1stAt','get','updateInteractionById','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','sequelize','query','SELECT','length','Contact\x20with\x20id\x20','\x20not\x20found','agent','name','fullname','email','chat','ChatInteractionId','fax','FaxInteractionId','openchannel','OpenchannelInteractionId','sms','SmsInteractionId','whatsapp','min','parse','formData','EventManager','acceptmessage','sendAmiAcceptEvent','AcceptMessage','acceptMessage','sendRoutingAcceptEvent','newinteraction','assign','opened','sendInteractionOpenedEvent','lodash','jayson/promise','../../mysqldb','../../errors/api','APINotFoundError','../../config/logger','api','http','client','then','info','%s,\x20%s,\x20%s','request\x20sent','debug','%s,\x20%s,\x20%s,\x20%s','error','message','result','catch','body','read','readAt','format','YYYY-MM-DD\x20HH:mm:ss','UserId','Message','findOne','Message\x20with\x20id\x20','update','updateMessageById','capitalize'];(function(_0x4c4a18,_0x35be2c){var _0x51a123=function(_0x298960){while(--_0x298960){_0x4c4a18['push'](_0x4c4a18['shift']());}};_0x51a123(++_0x35be2c);}(_0xacc2,0x13a));var _0x2acc=function(_0x4be4a6,_0x3556d3){_0x4be4a6=_0x4be4a6-0x0;var _0x138df5=_0xacc2[_0x4be4a6];return _0x138df5;};'use strict';var _=require(_0x2acc('0x0'));var moment=require('moment');var jayson=require(_0x2acc('0x1'));var db=require(_0x2acc('0x2'))['db'];var APINotFoundError=require(_0x2acc('0x3'))[_0x2acc('0x4')];var logger=require(_0x2acc('0x5'))(_0x2acc('0x6'));var rpcAmiClient=jayson['client'][_0x2acc('0x7')]({'port':0x232a});var rpcRoutingClient=jayson[_0x2acc('0x8')][_0x2acc('0x7')]({'port':0x232c});function respondWithRpcPromise(_0x94a241,_0x107504,_0x3fbc7e,_0x3d7d4e,_0x287610){return new Promise(function(_0x25067e,_0x4347ad){return _0x287610['request'](_0x107504,_0x3d7d4e)[_0x2acc('0x9')](function(_0x1afac5){logger[_0x2acc('0xa')](_0x2acc('0xb'),_0x94a241,_0x3fbc7e,_0x2acc('0xc'));logger[_0x2acc('0xd')](_0x2acc('0xe'),_0x94a241,_0x3fbc7e,'request\x20sent',JSON['stringify'](_0x1afac5));if(_0x1afac5[_0x2acc('0xf')]){if(_0x1afac5[_0x2acc('0xf')]['code']===0x1f4){logger[_0x2acc('0xf')](_0x2acc('0xb'),_0x94a241,_0x3fbc7e,_0x1afac5[_0x2acc('0xf')][_0x2acc('0x10')]);return _0x4347ad(_0x1afac5[_0x2acc('0xf')]['message']);}logger[_0x2acc('0xf')]('%s,\x20%s,\x20%s',_0x94a241,_0x3fbc7e,_0x1afac5[_0x2acc('0xf')][_0x2acc('0x10')]);return _0x25067e(_0x1afac5['error'][_0x2acc('0x10')]);}else{logger[_0x2acc('0xa')](_0x2acc('0xb'),_0x94a241,_0x3fbc7e,'request\x20sent');_0x25067e(_0x1afac5[_0x2acc('0x11')]['message']);}})[_0x2acc('0x12')](function(_0x4f80bf){logger[_0x2acc('0xf')]('%s,\x20%s,\x20%s',_0x94a241,_0x3fbc7e,_0x4f80bf);_0x4347ad(_0x4f80bf);});});}function getAcceptParams(_0x17b7e1){var _0x55b5cd=_0x17b7e1['params']['id'];var _0x738256=_0x17b7e1[_0x2acc('0x13')];delete _0x738256['id'];var _0x28ad2d=_0x17b7e1['user']['get']({'plain':!![]});_0x738256[_0x2acc('0x14')]=!![];_0x738256[_0x2acc('0x15')]=moment()[_0x2acc('0x16')](_0x2acc('0x17'));_0x738256[_0x2acc('0x18')]=_0x738256[_0x2acc('0x18')]||_0x28ad2d['id'];return{'messageId':_0x55b5cd,'payload':_0x738256,'user':_0x28ad2d};}exports['getAcceptParams']=getAcceptParams;function updateMessageById(_0x236703,_0x1339d5,_0x1a90b1){var _0xf4fe48=_['capitalize'](_0x236703)+_0x2acc('0x19');return db[_0xf4fe48][_0x2acc('0x1a')]({'where':{'id':_0x1339d5,'UserId':null}})[_0x2acc('0x9')](function(_0x3dccb0){if(!_0x3dccb0){throw new APINotFoundError(_0x2acc('0x1b')+_0x1339d5+'\x20not\x20found');}return _0x3dccb0[_0x2acc('0x1c')](_0x1a90b1);})[_0x2acc('0x9')](function(_0x55dc64){return _0x55dc64['get']({'plain':!![]});});}exports[_0x2acc('0x1d')]=updateMessageById;function updateInteractionById(_0xe466ec,_0xe4b1e7,_0x505f9a){var _0x38298c=_[_0x2acc('0x1e')](_0xe466ec)+_0x2acc('0x1f');return db[_0x38298c][_0x2acc('0x1a')]({'where':{'id':_0xe4b1e7}})['then'](function(_0x1ce38b){if(!_0x1ce38b){throw new APINotFoundError(_0x2acc('0x20')+_0xe4b1e7+'\x20not\x20found');}var _0x35e320=_0x1ce38b[_0x2acc('0x21')]||moment()[_0x2acc('0x16')](_0x2acc('0x17'));return _0x1ce38b[_0x2acc('0x1c')]({'UserId':_0x505f9a,'read1stAt':_0x35e320});})[_0x2acc('0x9')](function(_0x39d6c5){return _0x39d6c5[_0x2acc('0x22')]({'plain':!![]});});}exports[_0x2acc('0x23')]=updateInteractionById;function findContactById(_0x6183a9){var _0x58586a=_0x2acc('0x24')+_0x6183a9;return db[_0x2acc('0x25')][_0x2acc('0x26')](_0x58586a,{'type':db[_0x2acc('0x25')]['QueryTypes'][_0x2acc('0x27')],'raw':!![]})[_0x2acc('0x9')](function(_0x3af2b9){if(_0x3af2b9[_0x2acc('0x28')]===0x0){throw new APINotFoundError(_0x2acc('0x29')+_0x6183a9+_0x2acc('0x2a'));}return _0x3af2b9[0x0];});}exports['findContactById']=findContactById;function findAgentById(_0x3d75c6){return db['User'][_0x2acc('0x1a')]({'where':{'id':_0x3d75c6,'role':_0x2acc('0x2b')},'attributes':['id',_0x2acc('0x2c'),_0x2acc('0x2d'),_0x2acc('0x2e'),'internal'],'raw':!![]});}exports['findAgentById']=findAgentById;function isNewInteraction(_0xba54e1,_0x4fcf2c,_0x5d9df3){var _0x3f6e0b=_[_0x2acc('0x1e')](_0xba54e1)+_0x2acc('0x19');var _0x5e7787={};switch(_0xba54e1){case _0x2acc('0x2f'):_0x5e7787[_0x2acc('0x30')]=_0x4fcf2c;break;case _0x2acc('0x31'):_0x5e7787[_0x2acc('0x32')]=_0x4fcf2c;break;case'mail':_0x5e7787['MailInteractionId']=_0x4fcf2c;break;case _0x2acc('0x33'):_0x5e7787[_0x2acc('0x34')]=_0x4fcf2c;break;case _0x2acc('0x35'):_0x5e7787[_0x2acc('0x36')]=_0x4fcf2c;break;case _0x2acc('0x37'):_0x5e7787['WhatsappInteractionId']=_0x4fcf2c;break;}return db[_0x3f6e0b][_0x2acc('0x1a')]({'where':_0x5e7787,'attributes':[[db[_0x2acc('0x25')]['fn'](_0x2acc('0x38'),db['sequelize']['col']('id')),'id']],'raw':!![]})[_0x2acc('0x9')](function(_0x1387e8){return _0x5d9df3===_0x1387e8['id'];});}exports['isNewInteraction']=isNewInteraction;function sendAmiAcceptEvent(_0xde448d,_0x21a6a3){var _0x5bff07=_['capitalize'](_0xde448d)+_0x2acc('0x19');var _0x3cb978=_0x21a6a3[_0x2acc('0x10')];if(_0xde448d===_0x2acc('0x2f')){Object['assign'](_0x3cb978,JSON[_0x2acc('0x39')](_0x21a6a3['interaction'][_0x2acc('0x3a')]));}return respondWithRpcPromise(_0x5bff07,_0x2acc('0x3b'),_0x2acc('0x3b'),{'event':_0x2acc('0x3c'),'message':_0x3cb978},rpcAmiClient);}exports[_0x2acc('0x3d')]=sendAmiAcceptEvent;function sendRoutingAcceptEvent(_0x37e93f,_0x165e20){var _0x4f2357=_[_0x2acc('0x1e')](_0x37e93f)+_0x2acc('0x19');return respondWithRpcPromise(_0x4f2357,_0x2acc('0x3e'),_0x2acc('0x3f'),_0x165e20,rpcRoutingClient);}exports[_0x2acc('0x40')]=sendRoutingAcceptEvent;function sendInteractionOpenedEvent(_0x2a5128,_0x1bb8d4){var _0x391a86=_[_0x2acc('0x1e')](_0x2a5128)+_0x2acc('0x19');return respondWithRpcPromise(_0x391a86,_0x2acc('0x3b'),_0x2acc('0x3b'),{'event':_0x2acc('0x41'),'message':Object[_0x2acc('0x42')]({},_0x1bb8d4,{'event':_0x2acc('0x43')})},rpcAmiClient);}exports[_0x2acc('0x44')]=sendInteractionOpenedEvent;