Built motion from commit (unavailable).|2.5.6
[motion2.git] / server / api / chatMessage / chatMessage.controller.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 _0x29ac=['filters','intersection','attributes','fields','nolimit','sort','where','pick','filter','merge','VIRTUAL','count','includeAll','include','findAll','rows','show','params','length','find','create','body','update','describe','../../config/logger','accept','chat','read','readAt','format','UserId','user','get','ChatInteraction','ChatInteractionId','isNil','read1stAt','YYYY-MM-DD\x20HH:mm:ss','role','interaction','null','acceptMessage','manual','interface','SIP/%s','channel','event','EventManager','acceptmessage','parse','formData','chat-interactions','agent','rejectmessage','html-pdf','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','localhost','socket.io-emitter','./chatMessage.socket','register','http','client','request','then','info','ChatMessage,\x20%s,\x20%s','request\x20sent','debug','ChatMessage,\x20%s,\x20%s,\x20%s','stringify','error','message','result','catch','sendStatus','status','end','json','offset','limit','reject','destroy','stack','name','map','ChatMessage','rawAttributes','fieldName','type','key','model','query','keys'];(function(_0x187b8f,_0x58c42f){var _0x4b0ff7=function(_0x5c2ca8){while(--_0x5c2ca8){_0x187b8f['push'](_0x187b8f['shift']());}};_0x4b0ff7(++_0x58c42f);}(_0x29ac,0x195));var _0xc29a=function(_0xbb091,_0x3fe7ee){_0xbb091=_0xbb091-0x0;var _0x467a04=_0x29ac[_0xbb091];return _0x467a04;};'use strict';var pdf=require(_0xc29a('0x0'));var emlformat=require(_0xc29a('0x1'));var rimraf=require('rimraf');var zipdir=require(_0xc29a('0x2'));var jsonpatch=require(_0xc29a('0x3'));var rp=require(_0xc29a('0x4'));var moment=require(_0xc29a('0x5'));var BPromise=require(_0xc29a('0x6'));var Mustache=require(_0xc29a('0x7'));var util=require(_0xc29a('0x8'));var path=require(_0xc29a('0x9'));var sox=require(_0xc29a('0xa'));var csv=require(_0xc29a('0xb'));var ejs=require(_0xc29a('0xc'));var fs=require('fs');var _=require(_0xc29a('0xd'));var squel=require(_0xc29a('0xe'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0xc29a('0xb'));var querystring=require(_0xc29a('0xf'));var Papa=require(_0xc29a('0x10'));var Redis=require('ioredis');var authService=require(_0xc29a('0x11'));var qs=require(_0xc29a('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xc29a('0x13'));var logger=require('../../config/logger')(_0xc29a('0x14'));var utils=require(_0xc29a('0x15'));var config=require(_0xc29a('0x16'));var licenseUtil=require(_0xc29a('0x17'));var db=require(_0xc29a('0x18'))['db'];config[_0xc29a('0x19')]=_['defaults'](config[_0xc29a('0x19')],{'host':_0xc29a('0x1a'),'port':0x18eb});var socket=require(_0xc29a('0x1b'))(new Redis(config['redis']));require(_0xc29a('0x1c'))[_0xc29a('0x1d')](socket);var jayson=require('jayson/promise');var client=jayson['client'][_0xc29a('0x1e')]({'port':0x232c});var client9002=jayson[_0xc29a('0x1f')][_0xc29a('0x1e')]({'port':0x232a});function respondWithRpcPromise(_0x58b45f,_0x444176,_0x368759,_0x415053){return new BPromise(function(_0x918209,_0x52fc08){var _0x31a89f=_0x415053||client;return _0x31a89f[_0xc29a('0x20')](_0x58b45f,_0x368759)[_0xc29a('0x21')](function(_0xebe699){logger[_0xc29a('0x22')](_0xc29a('0x23'),_0x444176,_0xc29a('0x24'));logger[_0xc29a('0x25')](_0xc29a('0x26'),_0x444176,'request\x20sent',JSON[_0xc29a('0x27')](_0xebe699));if(_0xebe699[_0xc29a('0x28')]){if(_0xebe699[_0xc29a('0x28')]['code']===0x1f4){logger[_0xc29a('0x28')]('ChatMessage,\x20%s,\x20%s',_0x444176,_0xebe699[_0xc29a('0x28')][_0xc29a('0x29')]);return _0x52fc08(_0xebe699[_0xc29a('0x28')][_0xc29a('0x29')]);}logger['error'](_0xc29a('0x23'),_0x444176,_0xebe699[_0xc29a('0x28')][_0xc29a('0x29')]);return _0x918209(_0xebe699['error'][_0xc29a('0x29')]);}else{logger[_0xc29a('0x22')](_0xc29a('0x23'),_0x444176,_0xc29a('0x24'));_0x918209(_0xebe699[_0xc29a('0x2a')][_0xc29a('0x29')]);}})[_0xc29a('0x2b')](function(_0x4dbe84){logger[_0xc29a('0x28')](_0xc29a('0x23'),_0x444176,_0x4dbe84);_0x52fc08(_0x4dbe84);});});}function respondWithStatusCode(_0x47db48,_0x1eec6e){_0x1eec6e=_0x1eec6e||0xcc;return function(_0x597076){if(_0x597076){return _0x47db48[_0xc29a('0x2c')](_0x1eec6e);}return _0x47db48[_0xc29a('0x2d')](_0x1eec6e)[_0xc29a('0x2e')]();};}function respondWithResult(_0x2fabd1,_0xa5dda6){_0xa5dda6=_0xa5dda6||0xc8;return function(_0x4cce5b){if(_0x4cce5b){return _0x2fabd1[_0xc29a('0x2d')](_0xa5dda6)[_0xc29a('0x2f')](_0x4cce5b);}};}function respondWithFilteredResult(_0x134cc6,_0x3d83b6){return function(_0x145f37){if(_0x145f37){var _0x17a40f=_0x145f37['count'],_0x85a67f=_0x3d83b6[_0xc29a('0x30')],_0x5ec653=_0x3d83b6[_0xc29a('0x30')]+_0x3d83b6[_0xc29a('0x31')],_0x4a279e;if(_0x5ec653>=_0x17a40f){_0x5ec653=_0x17a40f;_0x4a279e=0xc8;}else{_0x4a279e=0xce;}_0x134cc6['status'](_0x4a279e);return _0x134cc6['set']('Content-Range',_0x85a67f+'-'+_0x5ec653+'/'+_0x17a40f)[_0xc29a('0x2f')](_0x145f37);}return null;};}function patchUpdates(_0x3da747){return function(_0x589368){try{jsonpatch['apply'](_0x589368,_0x3da747,!![]);}catch(_0x452b1e){return BPromise[_0xc29a('0x32')](_0x452b1e);}return _0x589368['save']();};}function saveUpdates(_0xebff91,_0xa6e076){return function(_0x4e24b9){if(_0x4e24b9){return _0x4e24b9['update'](_0xebff91)[_0xc29a('0x21')](function(_0x1d5899){return _0x1d5899;});}return null;};}function removeEntity(_0xcf3aff,_0x3f6d54){return function(_0x3dbc91){if(_0x3dbc91){return _0x3dbc91[_0xc29a('0x33')]()['then'](function(){_0xcf3aff[_0xc29a('0x2d')](0xcc)[_0xc29a('0x2e')]();});}};}function handleEntityNotFound(_0xc3573e,_0xf77a78){return function(_0x4c605e){if(!_0x4c605e){_0xc3573e[_0xc29a('0x2c')](0x194);}return _0x4c605e;};}function handleError(_0x343c4b,_0x4ec8e8){_0x4ec8e8=_0x4ec8e8||0x1f4;return function(_0xddb823){logger[_0xc29a('0x28')](_0xddb823[_0xc29a('0x34')]);if(_0xddb823['name']){delete _0xddb823[_0xc29a('0x35')];}_0x343c4b['status'](_0x4ec8e8)['send'](_0xddb823);};}exports['index']=function(_0xb3f4ad,_0x397c72){var _0x3ee0b0={},_0x391e9a={},_0x485777={'count':0x0,'rows':[]};var _0x2eb34c=_[_0xc29a('0x36')](db[_0xc29a('0x37')][_0xc29a('0x38')],function(_0x538527){return{'name':_0x538527[_0xc29a('0x39')],'type':_0x538527[_0xc29a('0x3a')][_0xc29a('0x3b')]};});_0x391e9a[_0xc29a('0x3c')]=_[_0xc29a('0x36')](_0x2eb34c,_0xc29a('0x35'));_0x391e9a[_0xc29a('0x3d')]=_[_0xc29a('0x3e')](_0xb3f4ad['query']);_0x391e9a[_0xc29a('0x3f')]=_[_0xc29a('0x40')](_0x391e9a[_0xc29a('0x3c')],_0x391e9a[_0xc29a('0x3d')]);_0x3ee0b0[_0xc29a('0x41')]=_['intersection'](_0x391e9a[_0xc29a('0x3c')],qs['fields'](_0xb3f4ad[_0xc29a('0x3d')][_0xc29a('0x42')]));_0x3ee0b0['attributes']=_0x3ee0b0[_0xc29a('0x41')]['length']?_0x3ee0b0[_0xc29a('0x41')]:_0x391e9a['model'];if(!_0xb3f4ad['query']['hasOwnProperty'](_0xc29a('0x43'))){_0x3ee0b0[_0xc29a('0x31')]=qs[_0xc29a('0x31')](_0xb3f4ad[_0xc29a('0x3d')]['limit']);_0x3ee0b0[_0xc29a('0x30')]=qs['offset'](_0xb3f4ad['query']['offset']);}_0x3ee0b0['order']=qs[_0xc29a('0x44')](_0xb3f4ad[_0xc29a('0x3d')][_0xc29a('0x44')]);_0x3ee0b0[_0xc29a('0x45')]=qs['filters'](_[_0xc29a('0x46')](_0xb3f4ad[_0xc29a('0x3d')],_0x391e9a[_0xc29a('0x3f')]),_0x2eb34c);if(_0xb3f4ad[_0xc29a('0x3d')][_0xc29a('0x47')]){_0x3ee0b0[_0xc29a('0x45')]=_[_0xc29a('0x48')](_0x3ee0b0[_0xc29a('0x45')],{'$or':_[_0xc29a('0x36')](_0x2eb34c,function(_0x4bd7e3){if(_0x4bd7e3[_0xc29a('0x3a')]!==_0xc29a('0x49')){var _0x44f65d={};_0x44f65d[_0x4bd7e3[_0xc29a('0x35')]]={'$like':'%'+_0xb3f4ad['query'][_0xc29a('0x47')]+'%'};return _0x44f65d;}})});}_0x3ee0b0=_['merge']({},_0x3ee0b0,_0xb3f4ad['options']);var _0x5488c7={'where':_0x3ee0b0['where']};return db['ChatMessage'][_0xc29a('0x4a')](_0x5488c7)[_0xc29a('0x21')](function(_0x36ef34){_0x485777[_0xc29a('0x4a')]=_0x36ef34;if(_0xb3f4ad['query'][_0xc29a('0x4b')]){_0x3ee0b0[_0xc29a('0x4c')]=[{'all':!![]}];}return db[_0xc29a('0x37')][_0xc29a('0x4d')](_0x3ee0b0);})['then'](function(_0x3d9f30){_0x485777[_0xc29a('0x4e')]=_0x3d9f30;return _0x485777;})[_0xc29a('0x21')](respondWithFilteredResult(_0x397c72,_0x3ee0b0))[_0xc29a('0x2b')](handleError(_0x397c72,null));};exports[_0xc29a('0x4f')]=function(_0x5c1cea,_0x13acc3){var _0x7dab91={'raw':!![],'where':{'id':_0x5c1cea[_0xc29a('0x50')]['id']}},_0x15b39e={};_0x15b39e['model']=_['keys'](db[_0xc29a('0x37')][_0xc29a('0x38')]);_0x15b39e[_0xc29a('0x3d')]=_[_0xc29a('0x3e')](_0x5c1cea[_0xc29a('0x3d')]);_0x15b39e[_0xc29a('0x3f')]=_[_0xc29a('0x40')](_0x15b39e[_0xc29a('0x3c')],_0x15b39e[_0xc29a('0x3d')]);_0x7dab91['attributes']=_[_0xc29a('0x40')](_0x15b39e[_0xc29a('0x3c')],qs['fields'](_0x5c1cea['query'][_0xc29a('0x42')]));_0x7dab91[_0xc29a('0x41')]=_0x7dab91['attributes'][_0xc29a('0x51')]?_0x7dab91[_0xc29a('0x41')]:_0x15b39e[_0xc29a('0x3c')];if(_0x5c1cea['query'][_0xc29a('0x4b')]){_0x7dab91['include']=[{'all':!![]}];}_0x7dab91=_['merge']({},_0x7dab91,_0x5c1cea['options']);return db['ChatMessage'][_0xc29a('0x52')](_0x7dab91)[_0xc29a('0x21')](handleEntityNotFound(_0x13acc3,null))[_0xc29a('0x21')](respondWithResult(_0x13acc3,null))[_0xc29a('0x2b')](handleError(_0x13acc3,null));};exports[_0xc29a('0x53')]=function(_0x4a19d9,_0x570098){return db['ChatMessage']['create'](_0x4a19d9[_0xc29a('0x54')],{})[_0xc29a('0x21')](respondWithResult(_0x570098,0xc9))[_0xc29a('0x2b')](handleError(_0x570098,null));};exports[_0xc29a('0x55')]=function(_0x17a0e4,_0x1c96d5){if(_0x17a0e4[_0xc29a('0x54')]['id']){delete _0x17a0e4[_0xc29a('0x54')]['id'];}return db[_0xc29a('0x37')][_0xc29a('0x52')]({'where':{'id':_0x17a0e4[_0xc29a('0x50')]['id']}})[_0xc29a('0x21')](handleEntityNotFound(_0x1c96d5,null))[_0xc29a('0x21')](saveUpdates(_0x17a0e4[_0xc29a('0x54')],null))[_0xc29a('0x21')](respondWithResult(_0x1c96d5,null))[_0xc29a('0x2b')](handleError(_0x1c96d5,null));};exports['destroy']=function(_0x2de962,_0x389a05){return db[_0xc29a('0x37')][_0xc29a('0x52')]({'where':{'id':_0x2de962['params']['id']}})[_0xc29a('0x21')](handleEntityNotFound(_0x389a05,null))[_0xc29a('0x21')](removeEntity(_0x389a05,null))[_0xc29a('0x2b')](handleError(_0x389a05,null));};exports[_0xc29a('0x56')]=function(_0x22956b,_0xcf49a6){return db[_0xc29a('0x37')][_0xc29a('0x56')]()[_0xc29a('0x21')](respondWithResult(_0xcf49a6,null))[_0xc29a('0x2b')](handleError(_0xcf49a6,null));};var interaction_log=require(_0xc29a('0x57'))('chat-interactions');exports[_0xc29a('0x58')]=function(_0x2c6c62,_0x1dc58c,_0x40b592){var _0x5e6c07={'channel':_0xc29a('0x59')};if(_0x2c6c62[_0xc29a('0x54')]['id']){delete _0x2c6c62[_0xc29a('0x54')]['id'];}_0x2c6c62[_0xc29a('0x54')][_0xc29a('0x5a')]=!![];_0x2c6c62[_0xc29a('0x54')][_0xc29a('0x5b')]=moment()[_0xc29a('0x5c')]('YYYY-MM-DD\x20HH:mm:ss');_0x2c6c62[_0xc29a('0x54')][_0xc29a('0x5d')]=_0x2c6c62[_0xc29a('0x54')][_0xc29a('0x5d')]||_0x2c6c62[_0xc29a('0x5e')]['id'];return db[_0xc29a('0x37')][_0xc29a('0x52')]({'where':{'id':_0x2c6c62[_0xc29a('0x50')]['id'],'UserId':null},'include':[{'model':db['CmContact'],'as':'Contact'}]})[_0xc29a('0x21')](handleEntityNotFound(_0x1dc58c,null))[_0xc29a('0x21')](saveUpdates(_0x2c6c62[_0xc29a('0x54')],null))[_0xc29a('0x21')](function(_0x4fe227){if(_0x4fe227){_0x5e6c07['message']=_0x4fe227[_0xc29a('0x5f')]({'plain':!![]});return db[_0xc29a('0x60')]['find']({'where':{'id':_0x4fe227[_0xc29a('0x61')]}});}return null;})[_0xc29a('0x21')](handleEntityNotFound(_0x1dc58c,null))['then'](function(_0x140a1a){if(_0x140a1a){return _0x140a1a[_0xc29a('0x55')]({'UserId':_0x2c6c62['body'][_0xc29a('0x5d')],'read1stAt':_[_0xc29a('0x62')](_0x140a1a[_0xc29a('0x63')])?moment()[_0xc29a('0x5c')](_0xc29a('0x64')):undefined});}return null;})[_0xc29a('0x21')](function(_0x89316a){if(_0x89316a){_0x5e6c07['interaction']=_0x89316a[_0xc29a('0x5f')]({'plain':!![]});interaction_log[_0xc29a('0x22')]('[CHATMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s',_0x2c6c62[_0xc29a('0x5e')]['id'],_0x2c6c62[_0xc29a('0x5e')]['name'],_0x2c6c62[_0xc29a('0x5e')][_0xc29a('0x65')],_0x5e6c07[_0xc29a('0x66')]['id'],_0x2c6c62[_0xc29a('0x54')]?JSON['stringify'](_0x2c6c62[_0xc29a('0x54')]):_0xc29a('0x67'));return respondWithRpcPromise('AcceptMessage',_0xc29a('0x68'),_0x5e6c07);}return null;})[_0xc29a('0x21')](function(_0x5916f1){if(_0x5916f1){if(_0x2c6c62[_0xc29a('0x54')][_0xc29a('0x69')]){_0x5e6c07['message'][_0xc29a('0x6a')]=util['format'](_0xc29a('0x6b'),_0x2c6c62[_0xc29a('0x5e')][_0xc29a('0x35')]);_0x5e6c07[_0xc29a('0x29')][_0xc29a('0x6c')]=_0x5e6c07[_0xc29a('0x6c')];_0x5e6c07[_0xc29a('0x29')][_0xc29a('0x6d')]=_0xc29a('0x58');return respondWithRpcPromise(_0xc29a('0x6e'),'EventManager',{'event':_0xc29a('0x6f'),'message':_[_0xc29a('0x48')](_0x5e6c07[_0xc29a('0x29')],JSON[_0xc29a('0x70')](_0x5e6c07[_0xc29a('0x66')][_0xc29a('0x71')]))},client9002)['then'](function(){return _0x5e6c07;});}return _0x5e6c07;}return null;})['then'](respondWithResult(_0x1dc58c,null))[_0xc29a('0x2b')](handleError(_0x1dc58c,null));};var interaction_log=require(_0xc29a('0x57'))(_0xc29a('0x72'));exports[_0xc29a('0x32')]=function(_0x417cdc,_0x1216e5,_0x407d18){var _0x15f71b={'agent':{},'channel':_0xc29a('0x59')};if(_0x417cdc['body']['id']){delete _0x417cdc[_0xc29a('0x54')]['id'];}_0x417cdc[_0xc29a('0x54')]['UserId']=_0x417cdc[_0xc29a('0x54')][_0xc29a('0x5d')]||_0x417cdc[_0xc29a('0x5e')]['id'];_0x15f71b[_0xc29a('0x73')]['id']=_0x417cdc['body'][_0xc29a('0x5d')];return db['ChatMessage'][_0xc29a('0x52')]({'where':{'id':_0x417cdc['params']['id'],'UserId':null}})[_0xc29a('0x21')](handleEntityNotFound(_0x1216e5,null))['then'](function(_0x181b2a){if(_0x181b2a){_0x15f71b[_0xc29a('0x29')]=_0x181b2a[_0xc29a('0x5f')]({'plain':!![]});return db[_0xc29a('0x60')][_0xc29a('0x52')]({'where':{'id':_0x181b2a[_0xc29a('0x61')]}});}return null;})['then'](handleEntityNotFound(_0x1216e5,null))[_0xc29a('0x21')](function(_0x1ffa0c){if(_0x1ffa0c){_0x15f71b[_0xc29a('0x66')]=_0x1ffa0c[_0xc29a('0x5f')]({'plain':!![]});interaction_log[_0xc29a('0x22')]('[CHATMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s',_0x417cdc[_0xc29a('0x5e')]['id'],_0x417cdc['user'][_0xc29a('0x35')],_0x417cdc['user'][_0xc29a('0x65')],_0x15f71b['interaction']['id'],_0x417cdc['body']?JSON[_0xc29a('0x27')](_0x417cdc['body']):_0xc29a('0x67'));return respondWithRpcPromise('RejectMessage','rejectMessage',_0x15f71b);}return null;})[_0xc29a('0x21')](function(_0x52e28d){if(_0x52e28d){_0x52e28d[_0xc29a('0x29')][_0xc29a('0x6a')]=util[_0xc29a('0x5c')]('SIP/%s',_0x417cdc['user'][_0xc29a('0x35')]);_0x52e28d['message'][_0xc29a('0x6c')]=_0x15f71b[_0xc29a('0x6c')];_0x52e28d[_0xc29a('0x29')][_0xc29a('0x6d')]=_0xc29a('0x32');respondWithRpcPromise(_0xc29a('0x6e'),_0xc29a('0x6e'),{'event':_0xc29a('0x74'),'message':_0x52e28d['message']},client9002);return _0x15f71b;}return null;})['then'](respondWithResult(_0x1216e5,null))['catch'](handleError(_0x1216e5,null));};