Built motion from commit 10af8726.|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 _0x39bc=['Message','findOne','Message\x20with\x20id\x20','\x20not\x20found','updateMessageById','Interaction','Interaction\x20with\x20id\x20','read1stAt','updateInteractionById','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','sequelize','query','QueryTypes','SELECT','length','Contact\x20with\x20id\x20','findContactById','User','agent','name','fullname','email','internal','findAgentById','chat','ChatInteractionId','fax','FaxInteractionId','mail','MailInteractionId','OpenchannelInteractionId','sms','SmsInteractionId','whatsapp','WhatsappInteractionId','min','col','isNewInteraction','formData','EventManager','acceptmessage','AcceptMessage','acceptMessage','newinteraction','assign','sendInteractionOpenedEvent','lodash','../../mysqldb','../../errors/api','APINotFoundError','client','http','request','then','%s,\x20%s,\x20%s','debug','%s,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','info','result','catch','params','user','get','read','readAt','format','YYYY-MM-DD\x20HH:mm:ss','UserId','getAcceptParams','capitalize'];(function(_0x1678c8,_0x1c32f4){var _0x387aa9=function(_0x2803bd){while(--_0x2803bd){_0x1678c8['push'](_0x1678c8['shift']());}};_0x387aa9(++_0x1c32f4);}(_0x39bc,0x79));var _0xc39b=function(_0x39a07d,_0x170193){_0x39a07d=_0x39a07d-0x0;var _0x282800=_0x39bc[_0x39a07d];return _0x282800;};'use strict';var _=require(_0xc39b('0x0'));var moment=require('moment');var jayson=require('jayson/promise');var db=require(_0xc39b('0x1'))['db'];var APINotFoundError=require(_0xc39b('0x2'))[_0xc39b('0x3')];var logger=require('../../config/logger')('api');var rpcAmiClient=jayson[_0xc39b('0x4')][_0xc39b('0x5')]({'port':0x232a});var rpcRoutingClient=jayson[_0xc39b('0x4')][_0xc39b('0x5')]({'port':0x232c});function respondWithRpcPromise(_0x3a06c8,_0x29ac4b,_0x25ec06,_0x4e93f7,_0x1e19ab){return new Promise(function(_0x435d3f,_0x245f71){return _0x1e19ab[_0xc39b('0x6')](_0x29ac4b,_0x4e93f7)[_0xc39b('0x7')](function(_0x7eb9ff){logger['info'](_0xc39b('0x8'),_0x3a06c8,_0x25ec06,'request\x20sent');logger[_0xc39b('0x9')](_0xc39b('0xa'),_0x3a06c8,_0x25ec06,_0xc39b('0xb'),JSON[_0xc39b('0xc')](_0x7eb9ff));if(_0x7eb9ff['error']){if(_0x7eb9ff[_0xc39b('0xd')][_0xc39b('0xe')]===0x1f4){logger[_0xc39b('0xd')](_0xc39b('0x8'),_0x3a06c8,_0x25ec06,_0x7eb9ff['error'][_0xc39b('0xf')]);return _0x245f71(_0x7eb9ff[_0xc39b('0xd')][_0xc39b('0xf')]);}logger[_0xc39b('0xd')](_0xc39b('0x8'),_0x3a06c8,_0x25ec06,_0x7eb9ff['error'][_0xc39b('0xf')]);return _0x435d3f(_0x7eb9ff[_0xc39b('0xd')][_0xc39b('0xf')]);}else{logger[_0xc39b('0x10')]('%s,\x20%s,\x20%s',_0x3a06c8,_0x25ec06,_0xc39b('0xb'));_0x435d3f(_0x7eb9ff[_0xc39b('0x11')]['message']);}})[_0xc39b('0x12')](function(_0x27ba48){logger[_0xc39b('0xd')](_0xc39b('0x8'),_0x3a06c8,_0x25ec06,_0x27ba48);_0x245f71(_0x27ba48);});});}function getAcceptParams(_0x5e2317){var _0x9d2fe3=_0x5e2317[_0xc39b('0x13')]['id'];var _0x551927=_0x5e2317['body'];delete _0x551927['id'];var _0x182212=_0x5e2317[_0xc39b('0x14')][_0xc39b('0x15')]({'plain':!![]});_0x551927[_0xc39b('0x16')]=!![];_0x551927[_0xc39b('0x17')]=moment()[_0xc39b('0x18')](_0xc39b('0x19'));_0x551927[_0xc39b('0x1a')]=_0x551927[_0xc39b('0x1a')]||_0x182212['id'];return{'messageId':_0x9d2fe3,'payload':_0x551927,'user':_0x182212};}exports[_0xc39b('0x1b')]=getAcceptParams;function updateMessageById(_0x3de37b,_0x151143,_0x130497){var _0x3a8788=_[_0xc39b('0x1c')](_0x3de37b)+_0xc39b('0x1d');return db[_0x3a8788][_0xc39b('0x1e')]({'where':{'id':_0x151143,'UserId':null}})[_0xc39b('0x7')](function(_0x36548b){if(!_0x36548b){throw new APINotFoundError(_0xc39b('0x1f')+_0x151143+_0xc39b('0x20'));}return _0x36548b['update'](_0x130497);})[_0xc39b('0x7')](function(_0x1ab0c8){return _0x1ab0c8[_0xc39b('0x15')]({'plain':!![]});});}exports[_0xc39b('0x21')]=updateMessageById;function updateInteractionById(_0x5a3ce4,_0x385d1c,_0x30f7f6){var _0x78e1ad=_[_0xc39b('0x1c')](_0x5a3ce4)+_0xc39b('0x22');return db[_0x78e1ad][_0xc39b('0x1e')]({'where':{'id':_0x385d1c}})[_0xc39b('0x7')](function(_0xa46099){if(!_0xa46099){throw new APINotFoundError(_0xc39b('0x23')+_0x385d1c+'\x20not\x20found');}var _0x1d6524=_0xa46099[_0xc39b('0x24')]||moment()['format']('YYYY-MM-DD\x20HH:mm:ss');return _0xa46099['update']({'UserId':_0x30f7f6,'read1stAt':_0x1d6524});})[_0xc39b('0x7')](function(_0x21831b){return _0x21831b[_0xc39b('0x15')]({'plain':!![]});});}exports[_0xc39b('0x25')]=updateInteractionById;function findContactById(_0x290fcc){var _0x4c9d97=_0xc39b('0x26')+_0x290fcc;return db[_0xc39b('0x27')][_0xc39b('0x28')](_0x4c9d97,{'type':db[_0xc39b('0x27')][_0xc39b('0x29')][_0xc39b('0x2a')],'raw':!![]})[_0xc39b('0x7')](function(_0x1d55e8){if(_0x1d55e8[_0xc39b('0x2b')]===0x0){throw new APINotFoundError(_0xc39b('0x2c')+_0x290fcc+'\x20not\x20found');}return _0x1d55e8[0x0];});}exports[_0xc39b('0x2d')]=findContactById;function findAgentById(_0x6e2e02){return db[_0xc39b('0x2e')][_0xc39b('0x1e')]({'where':{'id':_0x6e2e02,'role':_0xc39b('0x2f')},'attributes':['id',_0xc39b('0x30'),_0xc39b('0x31'),_0xc39b('0x32'),_0xc39b('0x33')],'raw':!![]});}exports[_0xc39b('0x34')]=findAgentById;function isNewInteraction(_0x226dba,_0x40260c,_0x3ad62d){var _0xc6a096=_[_0xc39b('0x1c')](_0x226dba)+_0xc39b('0x1d');var _0x5f4273={};switch(_0x226dba){case _0xc39b('0x35'):_0x5f4273[_0xc39b('0x36')]=_0x40260c;break;case _0xc39b('0x37'):_0x5f4273[_0xc39b('0x38')]=_0x40260c;break;case _0xc39b('0x39'):_0x5f4273[_0xc39b('0x3a')]=_0x40260c;break;case'openchannel':_0x5f4273[_0xc39b('0x3b')]=_0x40260c;break;case _0xc39b('0x3c'):_0x5f4273[_0xc39b('0x3d')]=_0x40260c;break;case _0xc39b('0x3e'):_0x5f4273[_0xc39b('0x3f')]=_0x40260c;break;}return db[_0xc6a096]['findOne']({'where':_0x5f4273,'attributes':[[db[_0xc39b('0x27')]['fn'](_0xc39b('0x40'),db[_0xc39b('0x27')][_0xc39b('0x41')]('id')),'id']],'raw':!![]})[_0xc39b('0x7')](function(_0x305ad3){return _0x3ad62d===_0x305ad3['id'];});}exports[_0xc39b('0x42')]=isNewInteraction;function sendAmiAcceptEvent(_0x23d3e6,_0x1c10e1){var _0xe316a3=_[_0xc39b('0x1c')](_0x23d3e6)+_0xc39b('0x1d');var _0x317928=_0x1c10e1['message'];if(_0x23d3e6==='chat'){Object['assign'](_0x317928,JSON['parse'](_0x1c10e1['interaction'][_0xc39b('0x43')]));}return respondWithRpcPromise(_0xe316a3,_0xc39b('0x44'),_0xc39b('0x44'),{'event':_0xc39b('0x45'),'message':_0x317928},rpcAmiClient);}exports['sendAmiAcceptEvent']=sendAmiAcceptEvent;function sendRoutingAcceptEvent(_0xbb05b6,_0x325571){var _0x29439f=_[_0xc39b('0x1c')](_0xbb05b6)+_0xc39b('0x1d');return respondWithRpcPromise(_0x29439f,_0xc39b('0x46'),_0xc39b('0x47'),_0x325571,rpcRoutingClient);}exports['sendRoutingAcceptEvent']=sendRoutingAcceptEvent;function sendInteractionOpenedEvent(_0x5e623b,_0x187d64){var _0xcdda51=_['capitalize'](_0x5e623b)+'Message';return respondWithRpcPromise(_0xcdda51,_0xc39b('0x44'),_0xc39b('0x44'),{'event':_0xc39b('0x48'),'message':Object[_0xc39b('0x49')]({},_0x187d64,{'event':'opened'})},rpcAmiClient);}exports[_0xc39b('0x4a')]=sendInteractionOpenedEvent;