Built motion from commit (unavailable).|2.5.7
[motion2.git] / server / api / chatInternalMessage / chatInternalMessage.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 _0x9d6a=['querystring','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','api','../../config/utils','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','sendStatus','end','status','count','offset','set','json','apply','reject','update','then','destroy','error','stack','name','send','index','map','ChatInternalMessage','rawAttributes','fieldName','type','key','model','keys','query','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','limit','order','sort','pick','where','VIRTUAL','merge','options','includeAll','rows','catch','show','params','include','find','create','body','describe','get','messages','lastMessageAt','createdAt','lastMessage','format','YYYY-MM-DD\x20HH:mm:ss','getUsers','agent','user','role','userpic','internal','lastLoginAt','allowmessenger','showWebBar','-online','VoiceQueue','UserProfileSection','Agents','userProfileId','autoAssociation','UserProfileResource','findAll','isEmpty','filter','resourceId','push','FromId','ToId','-createdAt','html-pdf','eml-format','rimraf','request-promise','moment','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js'];(function(_0x7033ad,_0x4f191a){var _0x4117fb=function(_0x537976){while(--_0x537976){_0x7033ad['push'](_0x7033ad['shift']());}};_0x4117fb(++_0x4f191a);}(_0x9d6a,0x1a2));var _0xa9d6=function(_0x399a52,_0xda78fc){_0x399a52=_0x399a52-0x0;var _0x32e3da=_0x9d6a[_0x399a52];return _0x32e3da;};'use strict';var pdf=require(_0xa9d6('0x0'));var emlformat=require(_0xa9d6('0x1'));var rimraf=require(_0xa9d6('0x2'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0xa9d6('0x3'));var moment=require(_0xa9d6('0x4'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require('util');var path=require(_0xa9d6('0x5'));var sox=require(_0xa9d6('0x6'));var csv=require(_0xa9d6('0x7'));var ejs=require(_0xa9d6('0x8'));var fs=require('fs');var _=require(_0xa9d6('0x9'));var squel=require(_0xa9d6('0xa'));var crypto=require(_0xa9d6('0xb'));var jsforce=require(_0xa9d6('0xc'));var deskjs=require(_0xa9d6('0xd'));var toCsv=require(_0xa9d6('0x7'));var querystring=require(_0xa9d6('0xe'));var Papa=require('papaparse');var Redis=require(_0xa9d6('0xf'));var authService=require(_0xa9d6('0x10'));var qs=require('../../components/parsers/qs');var as=require(_0xa9d6('0x11'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0xa9d6('0x12'));var utils=require(_0xa9d6('0x13'));var config=require('../../config/environment');var licenseUtil=require(_0xa9d6('0x14'));var db=require(_0xa9d6('0x15'))['db'];config[_0xa9d6('0x16')]=_[_0xa9d6('0x17')](config[_0xa9d6('0x16')],{'host':_0xa9d6('0x18'),'port':0x18eb});var socket=require(_0xa9d6('0x19'))(new Redis(config[_0xa9d6('0x16')]));require('./chatInternalMessage.socket')['register'](socket);function respondWithStatusCode(_0x86e05c,_0x52ba80){_0x52ba80=_0x52ba80||0xcc;return function(_0x51d6bc){if(_0x51d6bc){return _0x86e05c[_0xa9d6('0x1a')](_0x52ba80);}return _0x86e05c['status'](_0x52ba80)[_0xa9d6('0x1b')]();};}function respondWithResult(_0xacd334,_0xae3c60){_0xae3c60=_0xae3c60||0xc8;return function(_0x239f93){if(_0x239f93){return _0xacd334[_0xa9d6('0x1c')](_0xae3c60)['json'](_0x239f93);}};}function respondWithFilteredResult(_0x50c7f2,_0x5c0890){return function(_0x5e93a2){if(_0x5e93a2){var _0x1845bc=_0x5e93a2[_0xa9d6('0x1d')],_0x45857e=_0x5c0890[_0xa9d6('0x1e')],_0x2a1aa6=_0x5c0890[_0xa9d6('0x1e')]+_0x5c0890['limit'],_0xe7854b;if(_0x2a1aa6>=_0x1845bc){_0x2a1aa6=_0x1845bc;_0xe7854b=0xc8;}else{_0xe7854b=0xce;}_0x50c7f2[_0xa9d6('0x1c')](_0xe7854b);return _0x50c7f2[_0xa9d6('0x1f')]('Content-Range',_0x45857e+'-'+_0x2a1aa6+'/'+_0x1845bc)[_0xa9d6('0x20')](_0x5e93a2);}return null;};}function patchUpdates(_0x52e68f){return function(_0x323f30){try{jsonpatch[_0xa9d6('0x21')](_0x323f30,_0x52e68f,!![]);}catch(_0x5490a7){return BPromise[_0xa9d6('0x22')](_0x5490a7);}return _0x323f30['save']();};}function saveUpdates(_0x3e3a07,_0x1e484b){return function(_0x48274a){if(_0x48274a){return _0x48274a[_0xa9d6('0x23')](_0x3e3a07)[_0xa9d6('0x24')](function(_0x40c677){return _0x40c677;});}return null;};}function removeEntity(_0x352033,_0x5a74ea){return function(_0x10f945){if(_0x10f945){return _0x10f945[_0xa9d6('0x25')]()[_0xa9d6('0x24')](function(){_0x352033['status'](0xcc)[_0xa9d6('0x1b')]();});}};}function handleEntityNotFound(_0x34f3ea,_0x40300a){return function(_0x163c54){if(!_0x163c54){_0x34f3ea['sendStatus'](0x194);}return _0x163c54;};}function handleError(_0x53c422,_0x402367){_0x402367=_0x402367||0x1f4;return function(_0xc86062){logger[_0xa9d6('0x26')](_0xc86062[_0xa9d6('0x27')]);if(_0xc86062['name']){delete _0xc86062[_0xa9d6('0x28')];}_0x53c422[_0xa9d6('0x1c')](_0x402367)[_0xa9d6('0x29')](_0xc86062);};}exports[_0xa9d6('0x2a')]=function(_0x24bc98,_0x4bcba7){var _0x35bef9={},_0x26fd50={},_0x473216={'count':0x0,'rows':[]};var _0x7c9bf7=_[_0xa9d6('0x2b')](db[_0xa9d6('0x2c')][_0xa9d6('0x2d')],function(_0x356d39){return{'name':_0x356d39[_0xa9d6('0x2e')],'type':_0x356d39[_0xa9d6('0x2f')][_0xa9d6('0x30')]};});_0x26fd50[_0xa9d6('0x31')]=_[_0xa9d6('0x2b')](_0x7c9bf7,_0xa9d6('0x28'));_0x26fd50['query']=_[_0xa9d6('0x32')](_0x24bc98[_0xa9d6('0x33')]);_0x26fd50[_0xa9d6('0x34')]=_[_0xa9d6('0x35')](_0x26fd50[_0xa9d6('0x31')],_0x26fd50[_0xa9d6('0x33')]);_0x35bef9['attributes']=_[_0xa9d6('0x35')](_0x26fd50[_0xa9d6('0x31')],qs[_0xa9d6('0x36')](_0x24bc98[_0xa9d6('0x33')][_0xa9d6('0x36')]));_0x35bef9['attributes']=_0x35bef9[_0xa9d6('0x37')][_0xa9d6('0x38')]?_0x35bef9[_0xa9d6('0x37')]:_0x26fd50[_0xa9d6('0x31')];if(!_0x24bc98[_0xa9d6('0x33')][_0xa9d6('0x39')](_0xa9d6('0x3a'))){_0x35bef9[_0xa9d6('0x3b')]=qs[_0xa9d6('0x3b')](_0x24bc98[_0xa9d6('0x33')][_0xa9d6('0x3b')]);_0x35bef9[_0xa9d6('0x1e')]=qs[_0xa9d6('0x1e')](_0x24bc98[_0xa9d6('0x33')]['offset']);}_0x35bef9[_0xa9d6('0x3c')]=qs[_0xa9d6('0x3d')](_0x24bc98['query']['sort']);_0x35bef9['where']=qs[_0xa9d6('0x34')](_[_0xa9d6('0x3e')](_0x24bc98['query'],_0x26fd50[_0xa9d6('0x34')]),_0x7c9bf7);if(_0x24bc98[_0xa9d6('0x33')]['filter']){_0x35bef9[_0xa9d6('0x3f')]=_['merge'](_0x35bef9['where'],{'$or':_[_0xa9d6('0x2b')](_0x7c9bf7,function(_0x1f5ff4){if(_0x1f5ff4[_0xa9d6('0x2f')]!==_0xa9d6('0x40')){var _0x2b4cc3={};_0x2b4cc3[_0x1f5ff4['name']]={'$like':'%'+_0x24bc98[_0xa9d6('0x33')]['filter']+'%'};return _0x2b4cc3;}})});}_0x35bef9=_[_0xa9d6('0x41')]({},_0x35bef9,_0x24bc98[_0xa9d6('0x42')]);var _0x9f45e4={'where':_0x35bef9[_0xa9d6('0x3f')]};return db[_0xa9d6('0x2c')][_0xa9d6('0x1d')](_0x9f45e4)['then'](function(_0x225771){_0x473216[_0xa9d6('0x1d')]=_0x225771;if(_0x24bc98[_0xa9d6('0x33')][_0xa9d6('0x43')]){_0x35bef9['include']=[{'all':!![]}];}return db[_0xa9d6('0x2c')]['findAll'](_0x35bef9);})[_0xa9d6('0x24')](function(_0x54d704){_0x473216[_0xa9d6('0x44')]=_0x54d704;return _0x473216;})[_0xa9d6('0x24')](respondWithFilteredResult(_0x4bcba7,_0x35bef9))[_0xa9d6('0x45')](handleError(_0x4bcba7,null));};exports[_0xa9d6('0x46')]=function(_0x583cce,_0x5726f6){var _0x8dd991={'raw':!![],'where':{'id':_0x583cce[_0xa9d6('0x47')]['id']}},_0x4fcf87={};_0x4fcf87[_0xa9d6('0x31')]=_['keys'](db[_0xa9d6('0x2c')][_0xa9d6('0x2d')]);_0x4fcf87[_0xa9d6('0x33')]=_['keys'](_0x583cce[_0xa9d6('0x33')]);_0x4fcf87[_0xa9d6('0x34')]=_[_0xa9d6('0x35')](_0x4fcf87[_0xa9d6('0x31')],_0x4fcf87[_0xa9d6('0x33')]);_0x8dd991[_0xa9d6('0x37')]=_[_0xa9d6('0x35')](_0x4fcf87['model'],qs[_0xa9d6('0x36')](_0x583cce[_0xa9d6('0x33')]['fields']));_0x8dd991[_0xa9d6('0x37')]=_0x8dd991['attributes']['length']?_0x8dd991[_0xa9d6('0x37')]:_0x4fcf87[_0xa9d6('0x31')];if(_0x583cce[_0xa9d6('0x33')][_0xa9d6('0x43')]){_0x8dd991[_0xa9d6('0x48')]=[{'all':!![]}];}_0x8dd991=_[_0xa9d6('0x41')]({},_0x8dd991,_0x583cce[_0xa9d6('0x42')]);return db['ChatInternalMessage'][_0xa9d6('0x49')](_0x8dd991)[_0xa9d6('0x24')](handleEntityNotFound(_0x5726f6,null))[_0xa9d6('0x24')](respondWithResult(_0x5726f6,null))[_0xa9d6('0x45')](handleError(_0x5726f6,null));};exports['create']=function(_0x535efa,_0x279e70){return db['ChatInternalMessage'][_0xa9d6('0x4a')](_0x535efa[_0xa9d6('0x4b')],{})[_0xa9d6('0x24')](respondWithResult(_0x279e70,0xc9))[_0xa9d6('0x45')](handleError(_0x279e70,null));};exports['update']=function(_0x64c4a3,_0x337977){if(_0x64c4a3[_0xa9d6('0x4b')]['id']){delete _0x64c4a3['body']['id'];}return db[_0xa9d6('0x2c')]['find']({'where':{'id':_0x64c4a3['params']['id']}})['then'](handleEntityNotFound(_0x337977,null))[_0xa9d6('0x24')](saveUpdates(_0x64c4a3[_0xa9d6('0x4b')],null))[_0xa9d6('0x24')](respondWithResult(_0x337977,null))['catch'](handleError(_0x337977,null));};exports['destroy']=function(_0x487530,_0xe8712b){return db[_0xa9d6('0x2c')][_0xa9d6('0x49')]({'where':{'id':_0x487530[_0xa9d6('0x47')]['id']}})[_0xa9d6('0x24')](handleEntityNotFound(_0xe8712b,null))['then'](removeEntity(_0xe8712b,null))['catch'](handleError(_0xe8712b,null));};exports[_0xa9d6('0x4c')]=function(_0x5bf117,_0x144deb){return db[_0xa9d6('0x2c')][_0xa9d6('0x4c')]()[_0xa9d6('0x24')](respondWithResult(_0x144deb,null))[_0xa9d6('0x45')](handleError(_0x144deb,null));};function wrapUser(_0x2db91d){return function(_0x51959d){var _0x3c525f=_0x2db91d[_0xa9d6('0x4d')]({'plain':!![]});_0x3c525f[_0xa9d6('0x4e')]=[];if(_0x51959d){_0x3c525f[_0xa9d6('0x4f')]=_0x51959d[_0xa9d6('0x50')];_0x3c525f[_0xa9d6('0x51')]=_0x51959d;}else{_0x3c525f[_0xa9d6('0x4f')]=moment(0x0)[_0xa9d6('0x52')](_0xa9d6('0x53'));_0x3c525f[_0xa9d6('0x51')]={};}return _0x3c525f;};}exports[_0xa9d6('0x54')]=function(_0x58e352,_0x3d8359,_0x32fdd6){var _0x115c95=[];return db['User']['findAll']({'where':{'role':[_0xa9d6('0x55'),'admin',_0xa9d6('0x56')]},'attributes':['id','fullname',_0xa9d6('0x28'),_0xa9d6('0x57'),_0xa9d6('0x58'),_0xa9d6('0x59'),'online',_0xa9d6('0x5a'),_0xa9d6('0x5b'),_0xa9d6('0x5c')],'order':qs[_0xa9d6('0x3d')](_0xa9d6('0x5d')),'include':[{'model':db[_0xa9d6('0x5e')],'as':'VoiceQueues','attributes':['id','name',_0xa9d6('0x2f')],'through':{'attributes':[]}}]})[_0xa9d6('0x24')](function(_0x6e4d53){if(_0x6e4d53){var _0xa85619=_0x58e352['user'][_0xa9d6('0x4d')]({'plain':!![]});if(!_0xa85619)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0xa85619[_0xa9d6('0x57')]==='user'){return db[_0xa9d6('0x5f')]['find']({'where':{'name':_0xa9d6('0x60'),'userProfileId':_0xa85619[_0xa9d6('0x61')]},'raw':!![]})[_0xa9d6('0x24')](function(_0x1289dc){if(_0x1289dc){if(_0x1289dc[_0xa9d6('0x62')]===0x0){return db[_0xa9d6('0x63')][_0xa9d6('0x64')]({'where':{'sectionId':_0x1289dc['id']},'raw':!![]})[_0xa9d6('0x24')](function(_0x1d1cf9){var _0x382bc5=[];if(_[_0xa9d6('0x65')](_0x1d1cf9)){_0x382bc5=_[_0xa9d6('0x66')](_0x6e4d53,function(_0x7024dd){if(_0x7024dd[_0xa9d6('0x57')]!==_0xa9d6('0x55')){return _0x7024dd;}});return _0x382bc5;}else{for(var _0x1ca4bd=0x0;_0x1ca4bd<_0x6e4d53[_0xa9d6('0x38')];_0x1ca4bd++){var _0x125423=_0x6e4d53[_0x1ca4bd];if(_0x125423[_0xa9d6('0x57')]==='agent'){var _0xb65907=_[_0xa9d6('0x49')](_0x1d1cf9,function(_0x5e9e00){return _0x5e9e00[_0xa9d6('0x67')]===_0x125423['id'];});if(_0xb65907)_0x382bc5[_0xa9d6('0x68')](_0x125423);}else{_0x382bc5[_0xa9d6('0x68')](_0x125423);}}return _0x382bc5;}});}else{return _0x6e4d53;}}else{var _0x311761=_[_0xa9d6('0x66')](_0x6e4d53,function(_0x4d3a22){if(_0x4d3a22['role']!==_0xa9d6('0x55')){return _0x4d3a22;}});return _0x311761;}});}else{return _0x6e4d53;}}})[_0xa9d6('0x24')](function(_0x2bc4df){var _0x1a9750=[];if(_0x2bc4df){_0x115c95=_0x2bc4df;for(var _0x132427=0x0;_0x132427<_0x2bc4df[_0xa9d6('0x38')];_0x132427+=0x1){_0x115c95[_0x132427][_0xa9d6('0x4e')]=[];_0x1a9750[_0xa9d6('0x68')](db[_0xa9d6('0x2c')]['find']({'where':{'FromId':[_0x58e352[_0xa9d6('0x56')]['id'],_0x2bc4df[_0x132427]['id']],'ToId':[_0x58e352[_0xa9d6('0x56')]['id'],_0x2bc4df[_0x132427]['id']],'ChatGroupId':null},'attributes':['id',_0xa9d6('0x50'),_0xa9d6('0x69'),_0xa9d6('0x6a'),'read',_0xa9d6('0x4b')],'order':qs[_0xa9d6('0x3d')](_0xa9d6('0x6b')),'limit':0x1,'offset':0x0,'raw':!![]})[_0xa9d6('0x24')](wrapUser(_0x2bc4df[_0x132427])));}return BPromise['all'](_0x1a9750);}return[];})[_0xa9d6('0x24')](function(_0x11ab4c){return{'rows':_0x11ab4c,'count':_0x11ab4c[_0xa9d6('0x38')]};})['then'](respondWithResult(_0x3d8359,null))[_0xa9d6('0x45')](handleError(_0x3d8359,null));};