Built motion from commit f67b3b02.|2.6.31
[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 _0xc974=['sendAmiAcceptEvent','AcceptMessage','sendRoutingAcceptEvent','newinteraction','opened','jayson/promise','../../mysqldb','../../errors/api','../../config/logger','client','then','info','request\x20sent','debug','%s,\x20%s,\x20%s,\x20%s','error','message','%s,\x20%s,\x20%s','result','catch','params','body','user','get','read','readAt','format','UserId','capitalize','Message','findOne','Message\x20with\x20id\x20','\x20not\x20found','update','updateMessageById','Interaction','Interaction\x20with\x20id\x20','read1stAt','YYYY-MM-DD\x20HH:mm:ss','updateInteractionById','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','sequelize','SELECT','length','Contact\x20with\x20id\x20','findContactById','User','agent','email','internal','findAgentById','chat','ChatInteractionId','fax','FaxInteractionId','mail','openchannel','OpenchannelInteractionId','sms','whatsapp','WhatsappInteractionId','min','col','isNewInteraction','interaction','formData','EventManager','acceptmessage'];(function(_0x4bcb3c,_0x192122){var _0xfe09bb=function(_0xcd8ad2){while(--_0xcd8ad2){_0x4bcb3c['push'](_0x4bcb3c['shift']());}};_0xfe09bb(++_0x192122);}(_0xc974,0x1e1));var _0x4c97=function(_0xa3699f,_0x1d3aeb){_0xa3699f=_0xa3699f-0x0;var _0x4e8749=_0xc974[_0xa3699f];return _0x4e8749;};'use strict';var _=require('lodash');var moment=require('moment');var jayson=require(_0x4c97('0x0'));var db=require(_0x4c97('0x1'))['db'];var APINotFoundError=require(_0x4c97('0x2'))['APINotFoundError'];var logger=require(_0x4c97('0x3'))('api');var rpcAmiClient=jayson[_0x4c97('0x4')]['http']({'port':0x232a});var rpcRoutingClient=jayson['client']['http']({'port':0x232c});function respondWithRpcPromise(_0x29ffe6,_0x1d21ba,_0x159159,_0x127f70,_0x474f64){return new Promise(function(_0xf32e0f,_0x3b3591){return _0x474f64['request'](_0x1d21ba,_0x127f70)[_0x4c97('0x5')](function(_0x4112f5){logger[_0x4c97('0x6')]('%s,\x20%s,\x20%s',_0x29ffe6,_0x159159,_0x4c97('0x7'));logger[_0x4c97('0x8')](_0x4c97('0x9'),_0x29ffe6,_0x159159,_0x4c97('0x7'),JSON['stringify'](_0x4112f5));if(_0x4112f5[_0x4c97('0xa')]){if(_0x4112f5['error']['code']===0x1f4){logger[_0x4c97('0xa')]('%s,\x20%s,\x20%s',_0x29ffe6,_0x159159,_0x4112f5['error']['message']);return _0x3b3591(_0x4112f5['error'][_0x4c97('0xb')]);}logger['error'](_0x4c97('0xc'),_0x29ffe6,_0x159159,_0x4112f5[_0x4c97('0xa')][_0x4c97('0xb')]);return _0xf32e0f(_0x4112f5[_0x4c97('0xa')][_0x4c97('0xb')]);}else{logger[_0x4c97('0x6')]('%s,\x20%s,\x20%s',_0x29ffe6,_0x159159,_0x4c97('0x7'));_0xf32e0f(_0x4112f5[_0x4c97('0xd')][_0x4c97('0xb')]);}})[_0x4c97('0xe')](function(_0x2cb285){logger[_0x4c97('0xa')](_0x4c97('0xc'),_0x29ffe6,_0x159159,_0x2cb285);_0x3b3591(_0x2cb285);});});}function getAcceptParams(_0x2f13aa){var _0x4aebbb=_0x2f13aa[_0x4c97('0xf')]['id'];var _0x1a85f7=_0x2f13aa[_0x4c97('0x10')];delete _0x1a85f7['id'];var _0xe24d4a=_0x2f13aa[_0x4c97('0x11')][_0x4c97('0x12')]({'plain':!![]});_0x1a85f7[_0x4c97('0x13')]=!![];_0x1a85f7[_0x4c97('0x14')]=moment()[_0x4c97('0x15')]('YYYY-MM-DD\x20HH:mm:ss');_0x1a85f7[_0x4c97('0x16')]=_0x1a85f7['UserId']||_0xe24d4a['id'];return{'messageId':_0x4aebbb,'payload':_0x1a85f7,'user':_0xe24d4a};}exports['getAcceptParams']=getAcceptParams;function updateMessageById(_0x56c341,_0x3cd3b3,_0x292b88){var _0x8852e0=_[_0x4c97('0x17')](_0x56c341)+_0x4c97('0x18');return db[_0x8852e0][_0x4c97('0x19')]({'where':{'id':_0x3cd3b3,'UserId':null}})[_0x4c97('0x5')](function(_0xca9f8f){if(!_0xca9f8f){throw new APINotFoundError(_0x4c97('0x1a')+_0x3cd3b3+_0x4c97('0x1b'));}return _0xca9f8f[_0x4c97('0x1c')](_0x292b88);})[_0x4c97('0x5')](function(_0x34a75b){return _0x34a75b['get']({'plain':!![]});});}exports[_0x4c97('0x1d')]=updateMessageById;function updateInteractionById(_0x481afc,_0x2e8e91,_0x419d10){var _0x418e01=_['capitalize'](_0x481afc)+_0x4c97('0x1e');return db[_0x418e01][_0x4c97('0x19')]({'where':{'id':_0x2e8e91}})[_0x4c97('0x5')](function(_0x4278f0){if(!_0x4278f0){throw new APINotFoundError(_0x4c97('0x1f')+_0x2e8e91+_0x4c97('0x1b'));}var _0x381ade=_0x4278f0[_0x4c97('0x20')]||moment()[_0x4c97('0x15')](_0x4c97('0x21'));return _0x4278f0[_0x4c97('0x1c')]({'UserId':_0x419d10,'read1stAt':_0x381ade});})[_0x4c97('0x5')](function(_0x3a239a){return _0x3a239a['get']({'plain':!![]});});}exports[_0x4c97('0x22')]=updateInteractionById;function findContactById(_0x3b49fd){var _0xbf606b=_0x4c97('0x23')+_0x3b49fd;return db[_0x4c97('0x24')]['query'](_0xbf606b,{'type':db['sequelize']['QueryTypes'][_0x4c97('0x25')],'raw':!![]})[_0x4c97('0x5')](function(_0x1e2c29){if(_0x1e2c29[_0x4c97('0x26')]===0x0){throw new APINotFoundError(_0x4c97('0x27')+_0x3b49fd+_0x4c97('0x1b'));}return _0x1e2c29[0x0];});}exports[_0x4c97('0x28')]=findContactById;function findAgentById(_0x22b2f1){return db[_0x4c97('0x29')]['findOne']({'where':{'id':_0x22b2f1,'role':_0x4c97('0x2a')},'attributes':['id','name','fullname',_0x4c97('0x2b'),_0x4c97('0x2c')],'raw':!![]});}exports[_0x4c97('0x2d')]=findAgentById;function isNewInteraction(_0x24cb25,_0x315cf6,_0x5f0597){var _0x5b9ab1=_[_0x4c97('0x17')](_0x24cb25)+_0x4c97('0x18');var _0x310edf={};switch(_0x24cb25){case _0x4c97('0x2e'):_0x310edf[_0x4c97('0x2f')]=_0x315cf6;break;case _0x4c97('0x30'):_0x310edf[_0x4c97('0x31')]=_0x315cf6;break;case _0x4c97('0x32'):_0x310edf['MailInteractionId']=_0x315cf6;break;case _0x4c97('0x33'):_0x310edf[_0x4c97('0x34')]=_0x315cf6;break;case _0x4c97('0x35'):_0x310edf['SmsInteractionId']=_0x315cf6;break;case _0x4c97('0x36'):_0x310edf[_0x4c97('0x37')]=_0x315cf6;break;}return db[_0x5b9ab1]['findOne']({'where':_0x310edf,'attributes':[[db[_0x4c97('0x24')]['fn'](_0x4c97('0x38'),db[_0x4c97('0x24')][_0x4c97('0x39')]('id')),'id']],'raw':!![]})[_0x4c97('0x5')](function(_0x95cefe){return _0x5f0597===_0x95cefe['id'];});}exports[_0x4c97('0x3a')]=isNewInteraction;function sendAmiAcceptEvent(_0x240fd0,_0x32407c){var _0x42d13d=_[_0x4c97('0x17')](_0x240fd0)+_0x4c97('0x18');var _0x52b7a7=_0x32407c[_0x4c97('0xb')];if(_0x240fd0===_0x4c97('0x2e')){Object['assign'](_0x52b7a7,JSON['parse'](_0x32407c[_0x4c97('0x3b')][_0x4c97('0x3c')]));}return respondWithRpcPromise(_0x42d13d,_0x4c97('0x3d'),'EventManager',{'event':_0x4c97('0x3e'),'message':_0x52b7a7},rpcAmiClient);}exports[_0x4c97('0x3f')]=sendAmiAcceptEvent;function sendRoutingAcceptEvent(_0x595b6d,_0x1420c3){var _0x6dfc61=_['capitalize'](_0x595b6d)+_0x4c97('0x18');return respondWithRpcPromise(_0x6dfc61,_0x4c97('0x40'),'acceptMessage',_0x1420c3,rpcRoutingClient);}exports[_0x4c97('0x41')]=sendRoutingAcceptEvent;function sendInteractionOpenedEvent(_0x5d6419,_0x667974){var _0x592c20=_[_0x4c97('0x17')](_0x5d6419)+'Message';return respondWithRpcPromise(_0x592c20,_0x4c97('0x3d'),_0x4c97('0x3d'),{'event':_0x4c97('0x42'),'message':Object['assign']({},_0x667974,{'event':_0x4c97('0x43')})},rpcAmiClient);}exports['sendInteractionOpenedEvent']=sendInteractionOpenedEvent;