Built motion from commit (unavailable).|2.5.3
[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 _0x66c3=['body','params','describe','chat-interactions','accept','chat','read','readAt','format','YYYY-MM-DD\x20HH:mm:ss','UserId','CmContact','get','ChatInteraction','isNil','read1stAt','interaction','[CHATMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','user','role','null','interface','SIP/%s','channel','EventManager','acceptmessage','parse','ChatInteractionId','[CHATMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','RejectMessage','rejectMessage','event','rejectmessage','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','defaults','localhost','socket.io-emitter','redis','./chatMessage.socket','jayson/promise','client','http','test','ValidationError','The\x20password\x20must\x20be\x20at\x20least\x208\x20characters\x20long\x20and\x20have\x201\x20lowercase\x20character,\x201\x20uppercase\x20character,\x201\x20number\x20and\x201\x20special\x20character\x20~!@#$%^&-_=+[{]}.','then','ChatMessage,\x20%s,\x20%s','stringify','error','code','message','info','request\x20sent','result','sendStatus','status','end','json','count','offset','limit','set','Content-Range','apply','reject','update','destroy','stack','name','index','map','ChatMessage','rawAttributes','fieldName','type','key','query','keys','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','pick','filter','where','VIRTUAL','merge','includeAll','include','rows','catch','show','options','find','create'];(function(_0x49052b,_0x1612f7){var _0x2f40cf=function(_0x3357a2){while(--_0x3357a2){_0x49052b['push'](_0x49052b['shift']());}};_0x2f40cf(++_0x1612f7);}(_0x66c3,0xa2));var _0x366c=function(_0x3b44af,_0x1ddf26){_0x3b44af=_0x3b44af-0x0;var _0x1660d1=_0x66c3[_0x3b44af];return _0x1660d1;};'use strict';var pdf=require(_0x366c('0x0'));var emlformat=require(_0x366c('0x1'));var rimraf=require(_0x366c('0x2'));var zipdir=require(_0x366c('0x3'));var jsonpatch=require(_0x366c('0x4'));var rp=require(_0x366c('0x5'));var moment=require(_0x366c('0x6'));var BPromise=require(_0x366c('0x7'));var Mustache=require(_0x366c('0x8'));var util=require(_0x366c('0x9'));var path=require(_0x366c('0xa'));var sox=require('sox');var csv=require(_0x366c('0xb'));var ejs=require(_0x366c('0xc'));var fs=require('fs');var _=require(_0x366c('0xd'));var squel=require(_0x366c('0xe'));var crypto=require(_0x366c('0xf'));var jsforce=require(_0x366c('0x10'));var deskjs=require(_0x366c('0x11'));var toCsv=require('to-csv');var querystring=require(_0x366c('0x12'));var Papa=require(_0x366c('0x13'));var Redis=require(_0x366c('0x14'));var authService=require('../../components/auth/service');var qs=require(_0x366c('0x15'));var as=require(_0x366c('0x16'));var hardwareService=require(_0x366c('0x17'));var logger=require(_0x366c('0x18'))(_0x366c('0x19'));var utils=require(_0x366c('0x1a'));var config=require(_0x366c('0x1b'));var db=require(_0x366c('0x1c'))['db'];config['redis']=_[_0x366c('0x1d')](config['redis'],{'host':_0x366c('0x1e'),'port':0x18eb});var socket=require(_0x366c('0x1f'))(new Redis(config[_0x366c('0x20')]));require(_0x366c('0x21'))['register'](socket);var jayson=require(_0x366c('0x22'));var client=jayson[_0x366c('0x23')][_0x366c('0x24')]({'port':0x232c});var client9002=jayson[_0x366c('0x23')]['http']({'port':0x232a});function checkPasswordPattern(_0xd49309,_0x4c3ac5,_0x277e66){if(_0x277e66){var _0x9dfdac=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(_0x9dfdac[_0x366c('0x25')](_0x4c3ac5)){return _0xd49309;}else{throw new db['Sequelize'][(_0x366c('0x26'))](_0x366c('0x27'));}}else{return _0xd49309;}}function respondWithRpcPromise(_0x62c427,_0x4b1acc,_0x480be7,_0x1c5964){return new BPromise(function(_0x14bc30,_0x54da6b){var _0x2055f1=_0x1c5964||client;return _0x2055f1['request'](_0x62c427,_0x480be7)[_0x366c('0x28')](function(_0x47d686){logger['info'](_0x366c('0x29'),_0x4b1acc,'request\x20sent');logger['debug']('ChatMessage,\x20%s,\x20%s,\x20%s',_0x4b1acc,'request\x20sent',JSON[_0x366c('0x2a')](_0x47d686));if(_0x47d686[_0x366c('0x2b')]){if(_0x47d686[_0x366c('0x2b')][_0x366c('0x2c')]===0x1f4){logger[_0x366c('0x2b')]('ChatMessage,\x20%s,\x20%s',_0x4b1acc,_0x47d686[_0x366c('0x2b')][_0x366c('0x2d')]);return _0x54da6b(_0x47d686['error']['message']);}logger[_0x366c('0x2b')](_0x366c('0x29'),_0x4b1acc,_0x47d686[_0x366c('0x2b')][_0x366c('0x2d')]);return _0x14bc30(_0x47d686['error'][_0x366c('0x2d')]);}else{logger[_0x366c('0x2e')](_0x366c('0x29'),_0x4b1acc,_0x366c('0x2f'));_0x14bc30(_0x47d686[_0x366c('0x30')][_0x366c('0x2d')]);}})['catch'](function(_0x2c7093){logger[_0x366c('0x2b')]('ChatMessage,\x20%s,\x20%s',_0x4b1acc,_0x2c7093);_0x54da6b(_0x2c7093);});});}function respondWithStatusCode(_0x3fae59,_0x2b9c77){_0x2b9c77=_0x2b9c77||0xcc;return function(_0x28a064){if(_0x28a064){return _0x3fae59[_0x366c('0x31')](_0x2b9c77);}return _0x3fae59[_0x366c('0x32')](_0x2b9c77)[_0x366c('0x33')]();};}function respondWithResult(_0x539052,_0x36b45){_0x36b45=_0x36b45||0xc8;return function(_0x214c3c){if(_0x214c3c){return _0x539052['status'](_0x36b45)[_0x366c('0x34')](_0x214c3c);}};}function respondWithFilteredResult(_0x58e2ce,_0x443633){return function(_0x513e08){if(_0x513e08){var _0x1d3ec0=_0x513e08[_0x366c('0x35')],_0x58d2bc=_0x443633[_0x366c('0x36')],_0x17c60c=_0x443633[_0x366c('0x36')]+_0x443633[_0x366c('0x37')],_0x521163;if(_0x17c60c>=_0x1d3ec0){_0x17c60c=_0x1d3ec0;_0x521163=0xc8;}else{_0x521163=0xce;}_0x58e2ce[_0x366c('0x32')](_0x521163);return _0x58e2ce[_0x366c('0x38')](_0x366c('0x39'),_0x58d2bc+'-'+_0x17c60c+'/'+_0x1d3ec0)[_0x366c('0x34')](_0x513e08);}return null;};}function patchUpdates(_0x3f4407){return function(_0x5ce25b){try{jsonpatch[_0x366c('0x3a')](_0x5ce25b,_0x3f4407,!![]);}catch(_0x3c7459){return BPromise[_0x366c('0x3b')](_0x3c7459);}return _0x5ce25b['save']();};}function saveUpdates(_0x4f787e,_0x98ec9b){return function(_0x18eb70){if(_0x18eb70){return _0x18eb70[_0x366c('0x3c')](_0x4f787e)[_0x366c('0x28')](function(_0x1c52d6){return _0x1c52d6;});}return null;};}function removeEntity(_0x28821e,_0x122711){return function(_0x18f6f7){if(_0x18f6f7){return _0x18f6f7[_0x366c('0x3d')]()[_0x366c('0x28')](function(){_0x28821e[_0x366c('0x32')](0xcc)[_0x366c('0x33')]();});}};}function handleEntityNotFound(_0x348b48,_0x548588){return function(_0x478623){if(!_0x478623){_0x348b48[_0x366c('0x31')](0x194);}return _0x478623;};}function handleError(_0x431d64,_0xc5d614){_0xc5d614=_0xc5d614||0x1f4;return function(_0x2665b2){logger[_0x366c('0x2b')](_0x2665b2[_0x366c('0x3e')]);if(_0x2665b2[_0x366c('0x3f')]){delete _0x2665b2[_0x366c('0x3f')];}_0x431d64[_0x366c('0x32')](_0xc5d614)['send'](_0x2665b2);};}exports[_0x366c('0x40')]=function(_0x3e9f47,_0x3e17e1){var _0x1d1339={},_0x140c38={},_0x2cad53={'count':0x0,'rows':[]};var _0x5b9af6=_[_0x366c('0x41')](db[_0x366c('0x42')][_0x366c('0x43')],function(_0x40259a){return{'name':_0x40259a[_0x366c('0x44')],'type':_0x40259a[_0x366c('0x45')][_0x366c('0x46')]};});_0x140c38['model']=_[_0x366c('0x41')](_0x5b9af6,'name');_0x140c38[_0x366c('0x47')]=_[_0x366c('0x48')](_0x3e9f47[_0x366c('0x47')]);_0x140c38[_0x366c('0x49')]=_[_0x366c('0x4a')](_0x140c38[_0x366c('0x4b')],_0x140c38[_0x366c('0x47')]);_0x1d1339[_0x366c('0x4c')]=_[_0x366c('0x4a')](_0x140c38['model'],qs[_0x366c('0x4d')](_0x3e9f47['query']['fields']));_0x1d1339[_0x366c('0x4c')]=_0x1d1339[_0x366c('0x4c')][_0x366c('0x4e')]?_0x1d1339[_0x366c('0x4c')]:_0x140c38[_0x366c('0x4b')];if(!_0x3e9f47[_0x366c('0x47')][_0x366c('0x4f')](_0x366c('0x50'))){_0x1d1339['limit']=qs[_0x366c('0x37')](_0x3e9f47[_0x366c('0x47')][_0x366c('0x37')]);_0x1d1339[_0x366c('0x36')]=qs[_0x366c('0x36')](_0x3e9f47['query'][_0x366c('0x36')]);}_0x1d1339[_0x366c('0x51')]=qs[_0x366c('0x52')](_0x3e9f47[_0x366c('0x47')][_0x366c('0x52')]);_0x1d1339['where']=qs[_0x366c('0x49')](_[_0x366c('0x53')](_0x3e9f47[_0x366c('0x47')],_0x140c38[_0x366c('0x49')]),_0x5b9af6);if(_0x3e9f47[_0x366c('0x47')][_0x366c('0x54')]){_0x1d1339['where']=_['merge'](_0x1d1339[_0x366c('0x55')],{'$or':_[_0x366c('0x41')](_0x5b9af6,function(_0x1dbb80){if(_0x1dbb80['type']!==_0x366c('0x56')){var _0x210add={};_0x210add[_0x1dbb80['name']]={'$like':'%'+_0x3e9f47[_0x366c('0x47')][_0x366c('0x54')]+'%'};return _0x210add;}})});}_0x1d1339=_[_0x366c('0x57')]({},_0x1d1339,_0x3e9f47['options']);var _0x5b2bf0={'where':_0x1d1339[_0x366c('0x55')]};return db[_0x366c('0x42')]['count'](_0x5b2bf0)['then'](function(_0x41063c){_0x2cad53[_0x366c('0x35')]=_0x41063c;if(_0x3e9f47[_0x366c('0x47')][_0x366c('0x58')]){_0x1d1339[_0x366c('0x59')]=[{'all':!![]}];}return db[_0x366c('0x42')]['findAll'](_0x1d1339);})[_0x366c('0x28')](function(_0x31d79b){_0x2cad53[_0x366c('0x5a')]=_0x31d79b;return _0x2cad53;})[_0x366c('0x28')](respondWithFilteredResult(_0x3e17e1,_0x1d1339))[_0x366c('0x5b')](handleError(_0x3e17e1,null));};exports[_0x366c('0x5c')]=function(_0x187d19,_0x16f64b){var _0x5b8439={'raw':!![],'where':{'id':_0x187d19['params']['id']}},_0x4ccbec={};_0x4ccbec[_0x366c('0x4b')]=_[_0x366c('0x48')](db['ChatMessage'][_0x366c('0x43')]);_0x4ccbec[_0x366c('0x47')]=_[_0x366c('0x48')](_0x187d19[_0x366c('0x47')]);_0x4ccbec[_0x366c('0x49')]=_[_0x366c('0x4a')](_0x4ccbec['model'],_0x4ccbec[_0x366c('0x47')]);_0x5b8439['attributes']=_[_0x366c('0x4a')](_0x4ccbec[_0x366c('0x4b')],qs[_0x366c('0x4d')](_0x187d19[_0x366c('0x47')][_0x366c('0x4d')]));_0x5b8439[_0x366c('0x4c')]=_0x5b8439[_0x366c('0x4c')]['length']?_0x5b8439[_0x366c('0x4c')]:_0x4ccbec['model'];if(_0x187d19['query'][_0x366c('0x58')]){_0x5b8439[_0x366c('0x59')]=[{'all':!![]}];}_0x5b8439=_[_0x366c('0x57')]({},_0x5b8439,_0x187d19[_0x366c('0x5d')]);return db[_0x366c('0x42')][_0x366c('0x5e')](_0x5b8439)['then'](handleEntityNotFound(_0x16f64b,null))[_0x366c('0x28')](respondWithResult(_0x16f64b,null))[_0x366c('0x5b')](handleError(_0x16f64b,null));};exports[_0x366c('0x5f')]=function(_0x19a7d1,_0x541741){return db['ChatMessage'][_0x366c('0x5f')](_0x19a7d1[_0x366c('0x60')],{})['then'](respondWithResult(_0x541741,0xc9))[_0x366c('0x5b')](handleError(_0x541741,null));};exports[_0x366c('0x3c')]=function(_0x40889a,_0x3673b4){if(_0x40889a[_0x366c('0x60')]['id']){delete _0x40889a[_0x366c('0x60')]['id'];}return db[_0x366c('0x42')][_0x366c('0x5e')]({'where':{'id':_0x40889a['params']['id']}})[_0x366c('0x28')](handleEntityNotFound(_0x3673b4,null))[_0x366c('0x28')](saveUpdates(_0x40889a[_0x366c('0x60')],null))[_0x366c('0x28')](respondWithResult(_0x3673b4,null))[_0x366c('0x5b')](handleError(_0x3673b4,null));};exports['destroy']=function(_0x562233,_0x3445bb){return db[_0x366c('0x42')][_0x366c('0x5e')]({'where':{'id':_0x562233[_0x366c('0x61')]['id']}})[_0x366c('0x28')](handleEntityNotFound(_0x3445bb,null))['then'](removeEntity(_0x3445bb,null))[_0x366c('0x5b')](handleError(_0x3445bb,null));};exports[_0x366c('0x62')]=function(_0x32f8bf,_0x53656d){return db[_0x366c('0x42')]['describe']()['then'](respondWithResult(_0x53656d,null))[_0x366c('0x5b')](handleError(_0x53656d,null));};var interaction_log=require('../../config/logger')(_0x366c('0x63'));exports[_0x366c('0x64')]=function(_0x3f46bf,_0x49ea25,_0x2c9f5f){var _0x105ff0={'channel':_0x366c('0x65')};if(_0x3f46bf[_0x366c('0x60')]['id']){delete _0x3f46bf['body']['id'];}_0x3f46bf[_0x366c('0x60')][_0x366c('0x66')]=!![];_0x3f46bf[_0x366c('0x60')][_0x366c('0x67')]=moment()[_0x366c('0x68')](_0x366c('0x69'));_0x3f46bf[_0x366c('0x60')][_0x366c('0x6a')]=_0x3f46bf[_0x366c('0x60')][_0x366c('0x6a')]||_0x3f46bf['user']['id'];return db[_0x366c('0x42')][_0x366c('0x5e')]({'where':{'id':_0x3f46bf[_0x366c('0x61')]['id'],'UserId':null},'include':[{'model':db[_0x366c('0x6b')],'as':'Contact'}]})[_0x366c('0x28')](handleEntityNotFound(_0x49ea25,null))[_0x366c('0x28')](saveUpdates(_0x3f46bf[_0x366c('0x60')],null))[_0x366c('0x28')](function(_0x839c94){if(_0x839c94){_0x105ff0[_0x366c('0x2d')]=_0x839c94[_0x366c('0x6c')]({'plain':!![]});return db[_0x366c('0x6d')][_0x366c('0x5e')]({'where':{'id':_0x839c94['ChatInteractionId']}});}return null;})[_0x366c('0x28')](handleEntityNotFound(_0x49ea25,null))['then'](function(_0x5ca50d){if(_0x5ca50d){return _0x5ca50d['update']({'UserId':_0x3f46bf['body'][_0x366c('0x6a')],'read1stAt':_[_0x366c('0x6e')](_0x5ca50d[_0x366c('0x6f')])?moment()[_0x366c('0x68')](_0x366c('0x69')):undefined});}return null;})['then'](function(_0x17f3cb){if(_0x17f3cb){_0x105ff0[_0x366c('0x70')]=_0x17f3cb[_0x366c('0x6c')]({'plain':!![]});interaction_log[_0x366c('0x2e')](_0x366c('0x71'),_0x3f46bf[_0x366c('0x72')]['id'],_0x3f46bf[_0x366c('0x72')][_0x366c('0x3f')],_0x3f46bf['user'][_0x366c('0x73')],_0x105ff0['interaction']['id'],_0x3f46bf[_0x366c('0x60')]?JSON[_0x366c('0x2a')](_0x3f46bf[_0x366c('0x60')]):_0x366c('0x74'));return respondWithRpcPromise('AcceptMessage','acceptMessage',_0x105ff0);}return null;})[_0x366c('0x28')](function(_0x1487f8){if(_0x1487f8){if(_0x3f46bf['body']['manual']){_0x105ff0['message'][_0x366c('0x75')]=util['format'](_0x366c('0x76'),_0x3f46bf[_0x366c('0x72')][_0x366c('0x3f')]);_0x105ff0['message']['channel']=_0x105ff0[_0x366c('0x77')];_0x105ff0[_0x366c('0x2d')]['event']=_0x366c('0x64');return respondWithRpcPromise(_0x366c('0x78'),'EventManager',{'event':_0x366c('0x79'),'message':_[_0x366c('0x57')](_0x105ff0[_0x366c('0x2d')],JSON[_0x366c('0x7a')](_0x105ff0['interaction']['formData']))},client9002)[_0x366c('0x28')](function(){return _0x105ff0;});}return _0x105ff0;}return null;})['then'](respondWithResult(_0x49ea25,null))[_0x366c('0x5b')](handleError(_0x49ea25,null));};var interaction_log=require('../../config/logger')(_0x366c('0x63'));exports['reject']=function(_0x3d3ac9,_0x382aeb,_0x17ccbe){var _0x27e5e8={'agent':{},'channel':'chat'};if(_0x3d3ac9[_0x366c('0x60')]['id']){delete _0x3d3ac9[_0x366c('0x60')]['id'];}_0x3d3ac9['body'][_0x366c('0x6a')]=_0x3d3ac9[_0x366c('0x60')][_0x366c('0x6a')]||_0x3d3ac9['user']['id'];_0x27e5e8['agent']['id']=_0x3d3ac9['body'][_0x366c('0x6a')];return db[_0x366c('0x42')][_0x366c('0x5e')]({'where':{'id':_0x3d3ac9[_0x366c('0x61')]['id'],'UserId':null}})[_0x366c('0x28')](handleEntityNotFound(_0x382aeb,null))[_0x366c('0x28')](function(_0x5e9c1a){if(_0x5e9c1a){_0x27e5e8[_0x366c('0x2d')]=_0x5e9c1a[_0x366c('0x6c')]({'plain':!![]});return db[_0x366c('0x6d')][_0x366c('0x5e')]({'where':{'id':_0x5e9c1a[_0x366c('0x7b')]}});}return null;})[_0x366c('0x28')](handleEntityNotFound(_0x382aeb,null))[_0x366c('0x28')](function(_0x24cf4b){if(_0x24cf4b){_0x27e5e8[_0x366c('0x70')]=_0x24cf4b[_0x366c('0x6c')]({'plain':!![]});interaction_log[_0x366c('0x2e')](_0x366c('0x7c'),_0x3d3ac9['user']['id'],_0x3d3ac9[_0x366c('0x72')]['name'],_0x3d3ac9['user']['role'],_0x27e5e8[_0x366c('0x70')]['id'],_0x3d3ac9[_0x366c('0x60')]?JSON[_0x366c('0x2a')](_0x3d3ac9[_0x366c('0x60')]):_0x366c('0x74'));return respondWithRpcPromise(_0x366c('0x7d'),_0x366c('0x7e'),_0x27e5e8);}return null;})[_0x366c('0x28')](function(_0x276402){if(_0x276402){_0x276402[_0x366c('0x2d')][_0x366c('0x75')]=util['format'](_0x366c('0x76'),_0x3d3ac9[_0x366c('0x72')]['name']);_0x276402[_0x366c('0x2d')]['channel']=_0x27e5e8[_0x366c('0x77')];_0x276402[_0x366c('0x2d')][_0x366c('0x7f')]='reject';respondWithRpcPromise('EventManager','EventManager',{'event':_0x366c('0x80'),'message':_0x276402[_0x366c('0x2d')]},client9002);return _0x27e5e8;}return null;})[_0x366c('0x28')](respondWithResult(_0x382aeb,null))[_0x366c('0x5b')](handleError(_0x382aeb,null));};