Built motion from commit (unavailable).|2.5.2
[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 _0xe315=['debug','error','message','result','sendStatus','status','json','count','offset','set','Content-Range','apply','reject','destroy','end','stack','name','send','index','map','rawAttributes','fieldName','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','limit','order','sort','where','pick','merge','type','VIRTUAL','filter','options','ChatMessage','includeAll','findAll','rows','catch','show','params','include','find','create','body','update','describe','chat-interactions','accept','chat','read','readAt','format','YYYY-MM-DD\x20HH:mm:ss','UserId','user','Contact','get','ChatInteraction','ChatInteractionId','isNil','read1stAt','interaction','[CHATMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','role','stringify','null','AcceptMessage','acceptMessage','manual','SIP/%s','event','EventManager','acceptmessage','parse','formData','agent','RejectMessage','rejectMessage','interface','channel','rejectmessage','rimraf','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','crypto','jsforce','to-csv','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','defaults','redis','localhost','socket.io-emitter','./chatMessage.socket','jayson/promise','client','http','test','Sequelize','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~!@#$%^&-_=+[{]}.','request','then','info','ChatMessage,\x20%s,\x20%s','request\x20sent'];(function(_0xe11d1e,_0x5db72b){var _0x5b0b27=function(_0x1c6690){while(--_0x1c6690){_0xe11d1e['push'](_0xe11d1e['shift']());}};_0x5b0b27(++_0x5db72b);}(_0xe315,0x15c));var _0x5e31=function(_0x2ac577,_0x2fd4f6){_0x2ac577=_0x2ac577-0x0;var _0x5e5f8e=_0xe315[_0x2ac577];return _0x5e5f8e;};'use strict';var pdf=require('html-pdf');var emlformat=require('eml-format');var rimraf=require(_0x5e31('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0x5e31('0x1'));var rp=require(_0x5e31('0x2'));var moment=require('moment');var BPromise=require(_0x5e31('0x3'));var Mustache=require(_0x5e31('0x4'));var util=require(_0x5e31('0x5'));var path=require(_0x5e31('0x6'));var sox=require(_0x5e31('0x7'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var _=require('lodash');var squel=require('squel');var crypto=require(_0x5e31('0x8'));var jsforce=require(_0x5e31('0x9'));var deskjs=require('desk.js');var toCsv=require(_0x5e31('0xa'));var querystring=require(_0x5e31('0xb'));var Papa=require(_0x5e31('0xc'));var Redis=require('ioredis');var authService=require(_0x5e31('0xd'));var qs=require(_0x5e31('0xe'));var as=require(_0x5e31('0xf'));var hardwareService=require(_0x5e31('0x10'));var logger=require(_0x5e31('0x11'))(_0x5e31('0x12'));var utils=require(_0x5e31('0x13'));var config=require(_0x5e31('0x14'));var db=require(_0x5e31('0x15'))['db'];config['redis']=_[_0x5e31('0x16')](config[_0x5e31('0x17')],{'host':_0x5e31('0x18'),'port':0x18eb});var socket=require(_0x5e31('0x19'))(new Redis(config['redis']));require(_0x5e31('0x1a'))['register'](socket);var jayson=require(_0x5e31('0x1b'));var client=jayson[_0x5e31('0x1c')][_0x5e31('0x1d')]({'port':0x232c});var client9002=jayson[_0x5e31('0x1c')][_0x5e31('0x1d')]({'port':0x232a});function checkPasswordPattern(_0x2ebc57,_0x22bd5c,_0x28370f){if(_0x28370f){var _0x2e97c3=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(_0x2e97c3[_0x5e31('0x1e')](_0x22bd5c)){return _0x2ebc57;}else{throw new db[(_0x5e31('0x1f'))][(_0x5e31('0x20'))](_0x5e31('0x21'));}}else{return _0x2ebc57;}}function respondWithRpcPromise(_0x5156f7,_0x95a6d3,_0x2d1587,_0x255602){return new BPromise(function(_0x5b9d85,_0x53bd66){var _0x4179f8=_0x255602||client;return _0x4179f8[_0x5e31('0x22')](_0x5156f7,_0x2d1587)[_0x5e31('0x23')](function(_0x20885a){logger[_0x5e31('0x24')](_0x5e31('0x25'),_0x95a6d3,_0x5e31('0x26'));logger[_0x5e31('0x27')]('ChatMessage,\x20%s,\x20%s,\x20%s',_0x95a6d3,_0x5e31('0x26'),JSON['stringify'](_0x20885a));if(_0x20885a[_0x5e31('0x28')]){if(_0x20885a[_0x5e31('0x28')]['code']===0x1f4){logger[_0x5e31('0x28')](_0x5e31('0x25'),_0x95a6d3,_0x20885a[_0x5e31('0x28')][_0x5e31('0x29')]);return _0x53bd66(_0x20885a[_0x5e31('0x28')][_0x5e31('0x29')]);}logger[_0x5e31('0x28')](_0x5e31('0x25'),_0x95a6d3,_0x20885a['error'][_0x5e31('0x29')]);return _0x5b9d85(_0x20885a['error'][_0x5e31('0x29')]);}else{logger[_0x5e31('0x24')](_0x5e31('0x25'),_0x95a6d3,'request\x20sent');_0x5b9d85(_0x20885a[_0x5e31('0x2a')][_0x5e31('0x29')]);}})['catch'](function(_0xf8d120){logger[_0x5e31('0x28')](_0x5e31('0x25'),_0x95a6d3,_0xf8d120);_0x53bd66(_0xf8d120);});});}function respondWithStatusCode(_0xef3c13,_0x251b19){_0x251b19=_0x251b19||0xcc;return function(_0x264139){if(_0x264139){return _0xef3c13[_0x5e31('0x2b')](_0x251b19);}return _0xef3c13[_0x5e31('0x2c')](_0x251b19)['end']();};}function respondWithResult(_0x18543e,_0x2a2447){_0x2a2447=_0x2a2447||0xc8;return function(_0x52d8a5){if(_0x52d8a5){return _0x18543e[_0x5e31('0x2c')](_0x2a2447)[_0x5e31('0x2d')](_0x52d8a5);}};}function respondWithFilteredResult(_0x14bd61,_0x223ed9){return function(_0x39a45b){if(_0x39a45b){var _0x148a2d=_0x39a45b[_0x5e31('0x2e')],_0x25b9c3=_0x223ed9[_0x5e31('0x2f')],_0x3d86e5=_0x223ed9[_0x5e31('0x2f')]+_0x223ed9['limit'],_0xe422a4;if(_0x3d86e5>=_0x148a2d){_0x3d86e5=_0x148a2d;_0xe422a4=0xc8;}else{_0xe422a4=0xce;}_0x14bd61[_0x5e31('0x2c')](_0xe422a4);return _0x14bd61[_0x5e31('0x30')](_0x5e31('0x31'),_0x25b9c3+'-'+_0x3d86e5+'/'+_0x148a2d)[_0x5e31('0x2d')](_0x39a45b);}return null;};}function patchUpdates(_0x1e68f6){return function(_0x2e9ca1){try{jsonpatch[_0x5e31('0x32')](_0x2e9ca1,_0x1e68f6,!![]);}catch(_0x173c73){return BPromise[_0x5e31('0x33')](_0x173c73);}return _0x2e9ca1['save']();};}function saveUpdates(_0x9b9f6e,_0x2834bd){return function(_0x49a5a5){if(_0x49a5a5){return _0x49a5a5['update'](_0x9b9f6e)['then'](function(_0x2f99ad){return _0x2f99ad;});}return null;};}function removeEntity(_0x2772de,_0x4c99dc){return function(_0x465314){if(_0x465314){return _0x465314[_0x5e31('0x34')]()[_0x5e31('0x23')](function(){_0x2772de[_0x5e31('0x2c')](0xcc)[_0x5e31('0x35')]();});}};}function handleEntityNotFound(_0x48f4bf,_0x1ce200){return function(_0x99317a){if(!_0x99317a){_0x48f4bf[_0x5e31('0x2b')](0x194);}return _0x99317a;};}function handleError(_0x4ce08f,_0x4c0ae6){_0x4c0ae6=_0x4c0ae6||0x1f4;return function(_0x3c8cde){logger[_0x5e31('0x28')](_0x3c8cde[_0x5e31('0x36')]);if(_0x3c8cde[_0x5e31('0x37')]){delete _0x3c8cde['name'];}_0x4ce08f[_0x5e31('0x2c')](_0x4c0ae6)[_0x5e31('0x38')](_0x3c8cde);};}exports[_0x5e31('0x39')]=function(_0x2e184d,_0x5dc86){var _0xb2312a={},_0x56258c={},_0x38d4a1={'count':0x0,'rows':[]};var _0x254cde=_[_0x5e31('0x3a')](db['ChatMessage'][_0x5e31('0x3b')],function(_0x5789a1){return{'name':_0x5789a1[_0x5e31('0x3c')],'type':_0x5789a1['type']['key']};});_0x56258c[_0x5e31('0x3d')]=_[_0x5e31('0x3a')](_0x254cde,_0x5e31('0x37'));_0x56258c[_0x5e31('0x3e')]=_[_0x5e31('0x3f')](_0x2e184d[_0x5e31('0x3e')]);_0x56258c[_0x5e31('0x40')]=_[_0x5e31('0x41')](_0x56258c[_0x5e31('0x3d')],_0x56258c[_0x5e31('0x3e')]);_0xb2312a[_0x5e31('0x42')]=_[_0x5e31('0x41')](_0x56258c[_0x5e31('0x3d')],qs[_0x5e31('0x43')](_0x2e184d[_0x5e31('0x3e')][_0x5e31('0x43')]));_0xb2312a[_0x5e31('0x42')]=_0xb2312a['attributes'][_0x5e31('0x44')]?_0xb2312a['attributes']:_0x56258c[_0x5e31('0x3d')];if(!_0x2e184d[_0x5e31('0x3e')][_0x5e31('0x45')](_0x5e31('0x46'))){_0xb2312a['limit']=qs[_0x5e31('0x47')](_0x2e184d['query'][_0x5e31('0x47')]);_0xb2312a['offset']=qs[_0x5e31('0x2f')](_0x2e184d[_0x5e31('0x3e')]['offset']);}_0xb2312a[_0x5e31('0x48')]=qs[_0x5e31('0x49')](_0x2e184d[_0x5e31('0x3e')][_0x5e31('0x49')]);_0xb2312a[_0x5e31('0x4a')]=qs[_0x5e31('0x40')](_[_0x5e31('0x4b')](_0x2e184d[_0x5e31('0x3e')],_0x56258c[_0x5e31('0x40')]),_0x254cde);if(_0x2e184d[_0x5e31('0x3e')]['filter']){_0xb2312a[_0x5e31('0x4a')]=_[_0x5e31('0x4c')](_0xb2312a['where'],{'$or':_[_0x5e31('0x3a')](_0x254cde,function(_0x1828fb){if(_0x1828fb[_0x5e31('0x4d')]!==_0x5e31('0x4e')){var _0x58eab0={};_0x58eab0[_0x1828fb[_0x5e31('0x37')]]={'$like':'%'+_0x2e184d[_0x5e31('0x3e')][_0x5e31('0x4f')]+'%'};return _0x58eab0;}})});}_0xb2312a=_['merge']({},_0xb2312a,_0x2e184d[_0x5e31('0x50')]);var _0x54a473={'where':_0xb2312a[_0x5e31('0x4a')]};return db[_0x5e31('0x51')][_0x5e31('0x2e')](_0x54a473)[_0x5e31('0x23')](function(_0x410920){_0x38d4a1['count']=_0x410920;if(_0x2e184d[_0x5e31('0x3e')][_0x5e31('0x52')]){_0xb2312a['include']=[{'all':!![]}];}return db[_0x5e31('0x51')][_0x5e31('0x53')](_0xb2312a);})[_0x5e31('0x23')](function(_0x3ad78b){_0x38d4a1[_0x5e31('0x54')]=_0x3ad78b;return _0x38d4a1;})[_0x5e31('0x23')](respondWithFilteredResult(_0x5dc86,_0xb2312a))[_0x5e31('0x55')](handleError(_0x5dc86,null));};exports[_0x5e31('0x56')]=function(_0x572d6b,_0x40dae1){var _0x1cbe4d={'raw':!![],'where':{'id':_0x572d6b[_0x5e31('0x57')]['id']}},_0x9296b8={};_0x9296b8[_0x5e31('0x3d')]=_[_0x5e31('0x3f')](db[_0x5e31('0x51')][_0x5e31('0x3b')]);_0x9296b8['query']=_[_0x5e31('0x3f')](_0x572d6b[_0x5e31('0x3e')]);_0x9296b8['filters']=_[_0x5e31('0x41')](_0x9296b8[_0x5e31('0x3d')],_0x9296b8[_0x5e31('0x3e')]);_0x1cbe4d[_0x5e31('0x42')]=_[_0x5e31('0x41')](_0x9296b8['model'],qs[_0x5e31('0x43')](_0x572d6b[_0x5e31('0x3e')][_0x5e31('0x43')]));_0x1cbe4d[_0x5e31('0x42')]=_0x1cbe4d[_0x5e31('0x42')]['length']?_0x1cbe4d[_0x5e31('0x42')]:_0x9296b8[_0x5e31('0x3d')];if(_0x572d6b['query'][_0x5e31('0x52')]){_0x1cbe4d[_0x5e31('0x58')]=[{'all':!![]}];}_0x1cbe4d=_[_0x5e31('0x4c')]({},_0x1cbe4d,_0x572d6b['options']);return db['ChatMessage'][_0x5e31('0x59')](_0x1cbe4d)['then'](handleEntityNotFound(_0x40dae1,null))[_0x5e31('0x23')](respondWithResult(_0x40dae1,null))[_0x5e31('0x55')](handleError(_0x40dae1,null));};exports[_0x5e31('0x5a')]=function(_0x5a2aae,_0xb2965e){return db[_0x5e31('0x51')][_0x5e31('0x5a')](_0x5a2aae[_0x5e31('0x5b')],{})[_0x5e31('0x23')](respondWithResult(_0xb2965e,0xc9))['catch'](handleError(_0xb2965e,null));};exports[_0x5e31('0x5c')]=function(_0x1bef6a,_0x438693){if(_0x1bef6a[_0x5e31('0x5b')]['id']){delete _0x1bef6a[_0x5e31('0x5b')]['id'];}return db[_0x5e31('0x51')]['find']({'where':{'id':_0x1bef6a[_0x5e31('0x57')]['id']}})[_0x5e31('0x23')](handleEntityNotFound(_0x438693,null))['then'](saveUpdates(_0x1bef6a[_0x5e31('0x5b')],null))[_0x5e31('0x23')](respondWithResult(_0x438693,null))[_0x5e31('0x55')](handleError(_0x438693,null));};exports[_0x5e31('0x34')]=function(_0x58e61b,_0x7c6664){return db[_0x5e31('0x51')][_0x5e31('0x59')]({'where':{'id':_0x58e61b['params']['id']}})['then'](handleEntityNotFound(_0x7c6664,null))[_0x5e31('0x23')](removeEntity(_0x7c6664,null))['catch'](handleError(_0x7c6664,null));};exports[_0x5e31('0x5d')]=function(_0x28e72e,_0x4505e3){return db[_0x5e31('0x51')][_0x5e31('0x5d')]()['then'](respondWithResult(_0x4505e3,null))[_0x5e31('0x55')](handleError(_0x4505e3,null));};var interaction_log=require(_0x5e31('0x11'))(_0x5e31('0x5e'));exports[_0x5e31('0x5f')]=function(_0x3f888c,_0x5a9e85,_0x498459){var _0x562fa3={'channel':_0x5e31('0x60')};if(_0x3f888c[_0x5e31('0x5b')]['id']){delete _0x3f888c[_0x5e31('0x5b')]['id'];}_0x3f888c[_0x5e31('0x5b')][_0x5e31('0x61')]=!![];_0x3f888c[_0x5e31('0x5b')][_0x5e31('0x62')]=moment()[_0x5e31('0x63')](_0x5e31('0x64'));_0x3f888c['body'][_0x5e31('0x65')]=_0x3f888c[_0x5e31('0x5b')][_0x5e31('0x65')]||_0x3f888c[_0x5e31('0x66')]['id'];return db[_0x5e31('0x51')][_0x5e31('0x59')]({'where':{'id':_0x3f888c[_0x5e31('0x57')]['id'],'UserId':null},'include':[{'model':db['CmContact'],'as':_0x5e31('0x67')}]})[_0x5e31('0x23')](handleEntityNotFound(_0x5a9e85,null))['then'](saveUpdates(_0x3f888c[_0x5e31('0x5b')],null))[_0x5e31('0x23')](function(_0x3fa688){if(_0x3fa688){_0x562fa3[_0x5e31('0x29')]=_0x3fa688[_0x5e31('0x68')]({'plain':!![]});return db[_0x5e31('0x69')][_0x5e31('0x59')]({'where':{'id':_0x3fa688[_0x5e31('0x6a')]}});}return null;})[_0x5e31('0x23')](handleEntityNotFound(_0x5a9e85,null))[_0x5e31('0x23')](function(_0x1bb845){if(_0x1bb845){return _0x1bb845[_0x5e31('0x5c')]({'UserId':_0x3f888c[_0x5e31('0x5b')][_0x5e31('0x65')],'read1stAt':_[_0x5e31('0x6b')](_0x1bb845[_0x5e31('0x6c')])?moment()[_0x5e31('0x63')]('YYYY-MM-DD\x20HH:mm:ss'):undefined});}return null;})[_0x5e31('0x23')](function(_0x4d7f9d){if(_0x4d7f9d){_0x562fa3[_0x5e31('0x6d')]=_0x4d7f9d[_0x5e31('0x68')]({'plain':!![]});interaction_log[_0x5e31('0x24')](_0x5e31('0x6e'),_0x3f888c['user']['id'],_0x3f888c[_0x5e31('0x66')][_0x5e31('0x37')],_0x3f888c['user'][_0x5e31('0x6f')],_0x562fa3[_0x5e31('0x6d')]['id'],_0x3f888c[_0x5e31('0x5b')]?JSON[_0x5e31('0x70')](_0x3f888c[_0x5e31('0x5b')]):_0x5e31('0x71'));return respondWithRpcPromise(_0x5e31('0x72'),_0x5e31('0x73'),_0x562fa3);}return null;})[_0x5e31('0x23')](function(_0x33761b){if(_0x33761b){if(_0x3f888c['body'][_0x5e31('0x74')]){_0x562fa3[_0x5e31('0x29')]['interface']=util['format'](_0x5e31('0x75'),_0x3f888c[_0x5e31('0x66')][_0x5e31('0x37')]);_0x562fa3[_0x5e31('0x29')]['channel']=_0x562fa3['channel'];_0x562fa3[_0x5e31('0x29')][_0x5e31('0x76')]=_0x5e31('0x5f');return respondWithRpcPromise(_0x5e31('0x77'),_0x5e31('0x77'),{'event':_0x5e31('0x78'),'message':_[_0x5e31('0x4c')](_0x562fa3[_0x5e31('0x29')],JSON[_0x5e31('0x79')](_0x562fa3[_0x5e31('0x6d')][_0x5e31('0x7a')]))},client9002)[_0x5e31('0x23')](function(){return _0x562fa3;});}return _0x562fa3;}return null;})[_0x5e31('0x23')](respondWithResult(_0x5a9e85,null))[_0x5e31('0x55')](handleError(_0x5a9e85,null));};var interaction_log=require('../../config/logger')(_0x5e31('0x5e'));exports['reject']=function(_0x44121d,_0x1b1e76,_0x14db57){var _0x47cabc={'agent':{},'channel':_0x5e31('0x60')};if(_0x44121d['body']['id']){delete _0x44121d[_0x5e31('0x5b')]['id'];}_0x44121d[_0x5e31('0x5b')][_0x5e31('0x65')]=_0x44121d[_0x5e31('0x5b')]['UserId']||_0x44121d[_0x5e31('0x66')]['id'];_0x47cabc[_0x5e31('0x7b')]['id']=_0x44121d[_0x5e31('0x5b')]['UserId'];return db[_0x5e31('0x51')][_0x5e31('0x59')]({'where':{'id':_0x44121d['params']['id'],'UserId':null}})[_0x5e31('0x23')](handleEntityNotFound(_0x1b1e76,null))[_0x5e31('0x23')](function(_0x33c142){if(_0x33c142){_0x47cabc[_0x5e31('0x29')]=_0x33c142[_0x5e31('0x68')]({'plain':!![]});return db[_0x5e31('0x69')][_0x5e31('0x59')]({'where':{'id':_0x33c142[_0x5e31('0x6a')]}});}return null;})[_0x5e31('0x23')](handleEntityNotFound(_0x1b1e76,null))[_0x5e31('0x23')](function(_0x2f758e){if(_0x2f758e){_0x47cabc['interaction']=_0x2f758e[_0x5e31('0x68')]({'plain':!![]});interaction_log[_0x5e31('0x24')]('[CHATMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s',_0x44121d[_0x5e31('0x66')]['id'],_0x44121d[_0x5e31('0x66')][_0x5e31('0x37')],_0x44121d[_0x5e31('0x66')][_0x5e31('0x6f')],_0x47cabc[_0x5e31('0x6d')]['id'],_0x44121d['body']?JSON[_0x5e31('0x70')](_0x44121d[_0x5e31('0x5b')]):_0x5e31('0x71'));return respondWithRpcPromise(_0x5e31('0x7c'),_0x5e31('0x7d'),_0x47cabc);}return null;})[_0x5e31('0x23')](function(_0x456b55){if(_0x456b55){_0x456b55[_0x5e31('0x29')][_0x5e31('0x7e')]=util[_0x5e31('0x63')](_0x5e31('0x75'),_0x44121d[_0x5e31('0x66')][_0x5e31('0x37')]);_0x456b55[_0x5e31('0x29')][_0x5e31('0x7f')]=_0x47cabc[_0x5e31('0x7f')];_0x456b55[_0x5e31('0x29')][_0x5e31('0x76')]='reject';respondWithRpcPromise(_0x5e31('0x77'),'EventManager',{'event':_0x5e31('0x80'),'message':_0x456b55[_0x5e31('0x29')]},client9002);return _0x47cabc;}return null;})[_0x5e31('0x23')](respondWithResult(_0x1b1e76,null))[_0x5e31('0x55')](handleError(_0x1b1e76,null));};