169439fad419a7d6b9c6f27045c5822e7ae6ee18
[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 _0x2b88=['socket.io-emitter','./chatInternalMessage.socket','register','sendStatus','status','end','count','offset','limit','set','json','apply','reject','save','update','destroy','then','name','index','ChatInternalMessage','fieldName','type','map','query','keys','filters','intersection','attributes','model','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','findAll','show','params','rawAttributes','include','find','catch','create','body','describe','lastMessageAt','lastMessage','format','YYYY-MM-DD\x20HH:mm:ss','getUsers','agent','admin','user','fullname','role','userpic','internal','online','lastLoginAt','allowmessenger','VoiceQueue','VoiceQueues','get','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','isEmpty','push','messages','createdAt','FromId','ToId','read','-createdAt','all','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','../../components/auth/service','../../components/parsers/qs','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','defaults','redis','localhost'];(function(_0x453ca1,_0x8509a6){var _0x2cc123=function(_0x11779f){while(--_0x11779f){_0x453ca1['push'](_0x453ca1['shift']());}};_0x2cc123(++_0x8509a6);}(_0x2b88,0xc1));var _0x82b8=function(_0x4a4922,_0x82cb8f){_0x4a4922=_0x4a4922-0x0;var _0x55a8c6=_0x2b88[_0x4a4922];return _0x55a8c6;};'use strict';var pdf=require(_0x82b8('0x0'));var emlformat=require(_0x82b8('0x1'));var rimraf=require(_0x82b8('0x2'));var zipdir=require(_0x82b8('0x3'));var jsonpatch=require(_0x82b8('0x4'));var rp=require(_0x82b8('0x5'));var moment=require(_0x82b8('0x6'));var BPromise=require(_0x82b8('0x7'));var Mustache=require('mustache');var util=require(_0x82b8('0x8'));var path=require(_0x82b8('0x9'));var sox=require(_0x82b8('0xa'));var csv=require(_0x82b8('0xb'));var ejs=require(_0x82b8('0xc'));var fs=require('fs');var _=require(_0x82b8('0xd'));var squel=require(_0x82b8('0xe'));var crypto=require(_0x82b8('0xf'));var jsforce=require(_0x82b8('0x10'));var deskjs=require(_0x82b8('0x11'));var toCsv=require(_0x82b8('0xb'));var querystring=require(_0x82b8('0x12'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x82b8('0x13'));var qs=require(_0x82b8('0x14'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x82b8('0x15'));var utils=require(_0x82b8('0x16'));var config=require(_0x82b8('0x17'));var licenseUtil=require(_0x82b8('0x18'));var db=require(_0x82b8('0x19'))['db'];config['redis']=_[_0x82b8('0x1a')](config[_0x82b8('0x1b')],{'host':_0x82b8('0x1c'),'port':0x18eb});var socket=require(_0x82b8('0x1d'))(new Redis(config[_0x82b8('0x1b')]));require(_0x82b8('0x1e'))[_0x82b8('0x1f')](socket);function respondWithStatusCode(_0x37464a,_0xf46f2e){_0xf46f2e=_0xf46f2e||0xcc;return function(_0x2c6131){if(_0x2c6131){return _0x37464a[_0x82b8('0x20')](_0xf46f2e);}return _0x37464a[_0x82b8('0x21')](_0xf46f2e)[_0x82b8('0x22')]();};}function respondWithResult(_0x3851d5,_0x2c8613){_0x2c8613=_0x2c8613||0xc8;return function(_0x2060c6){if(_0x2060c6){return _0x3851d5[_0x82b8('0x21')](_0x2c8613)['json'](_0x2060c6);}};}function respondWithFilteredResult(_0x505b41,_0x359a9e){return function(_0x3f9021){if(_0x3f9021){var _0x5743fd=_0x3f9021[_0x82b8('0x23')],_0x3e5b4b=_0x359a9e[_0x82b8('0x24')],_0x370a20=_0x359a9e['offset']+_0x359a9e[_0x82b8('0x25')],_0x26abb0;if(_0x370a20>=_0x5743fd){_0x370a20=_0x5743fd;_0x26abb0=0xc8;}else{_0x26abb0=0xce;}_0x505b41[_0x82b8('0x21')](_0x26abb0);return _0x505b41[_0x82b8('0x26')]('Content-Range',_0x3e5b4b+'-'+_0x370a20+'/'+_0x5743fd)[_0x82b8('0x27')](_0x3f9021);}return null;};}function patchUpdates(_0x378e92){return function(_0x4dc025){try{jsonpatch[_0x82b8('0x28')](_0x4dc025,_0x378e92,!![]);}catch(_0x2ff0be){return BPromise[_0x82b8('0x29')](_0x2ff0be);}return _0x4dc025[_0x82b8('0x2a')]();};}function saveUpdates(_0xb03527,_0x12aa1d){return function(_0x3fbca9){if(_0x3fbca9){return _0x3fbca9[_0x82b8('0x2b')](_0xb03527)['then'](function(_0x228ff6){return _0x228ff6;});}return null;};}function removeEntity(_0x235c7a,_0x3c338c){return function(_0x1c4fc9){if(_0x1c4fc9){return _0x1c4fc9[_0x82b8('0x2c')]()[_0x82b8('0x2d')](function(){_0x235c7a['status'](0xcc)[_0x82b8('0x22')]();});}};}function handleEntityNotFound(_0x33c817,_0x389eeb){return function(_0x192661){if(!_0x192661){_0x33c817[_0x82b8('0x20')](0x194);}return _0x192661;};}function handleError(_0x5ed243,_0x90aa6d){_0x90aa6d=_0x90aa6d||0x1f4;return function(_0x5d4c0a){logger['error'](_0x5d4c0a['stack']);if(_0x5d4c0a['name']){delete _0x5d4c0a[_0x82b8('0x2e')];}_0x5ed243['status'](_0x90aa6d)['send'](_0x5d4c0a);};}exports[_0x82b8('0x2f')]=function(_0x4d4a4d,_0xe041e9){var _0x5f020d={},_0x5aaa97={},_0x2b944c={'count':0x0,'rows':[]};var _0x44a418=_['map'](db[_0x82b8('0x30')]['rawAttributes'],function(_0xf74d61){return{'name':_0xf74d61[_0x82b8('0x31')],'type':_0xf74d61[_0x82b8('0x32')]['key']};});_0x5aaa97['model']=_[_0x82b8('0x33')](_0x44a418,_0x82b8('0x2e'));_0x5aaa97[_0x82b8('0x34')]=_[_0x82b8('0x35')](_0x4d4a4d[_0x82b8('0x34')]);_0x5aaa97[_0x82b8('0x36')]=_[_0x82b8('0x37')](_0x5aaa97['model'],_0x5aaa97[_0x82b8('0x34')]);_0x5f020d[_0x82b8('0x38')]=_[_0x82b8('0x37')](_0x5aaa97[_0x82b8('0x39')],qs[_0x82b8('0x3a')](_0x4d4a4d[_0x82b8('0x34')][_0x82b8('0x3a')]));_0x5f020d[_0x82b8('0x38')]=_0x5f020d[_0x82b8('0x38')][_0x82b8('0x3b')]?_0x5f020d[_0x82b8('0x38')]:_0x5aaa97['model'];if(!_0x4d4a4d['query'][_0x82b8('0x3c')](_0x82b8('0x3d'))){_0x5f020d[_0x82b8('0x25')]=qs[_0x82b8('0x25')](_0x4d4a4d['query'][_0x82b8('0x25')]);_0x5f020d[_0x82b8('0x24')]=qs['offset'](_0x4d4a4d['query'][_0x82b8('0x24')]);}_0x5f020d[_0x82b8('0x3e')]=qs[_0x82b8('0x3f')](_0x4d4a4d[_0x82b8('0x34')][_0x82b8('0x3f')]);_0x5f020d[_0x82b8('0x40')]=qs[_0x82b8('0x36')](_[_0x82b8('0x41')](_0x4d4a4d['query'],_0x5aaa97[_0x82b8('0x36')]),_0x44a418);if(_0x4d4a4d[_0x82b8('0x34')][_0x82b8('0x42')]){_0x5f020d[_0x82b8('0x40')]=_[_0x82b8('0x43')](_0x5f020d[_0x82b8('0x40')],{'$or':_[_0x82b8('0x33')](_0x44a418,function(_0x202b94){if(_0x202b94[_0x82b8('0x32')]!==_0x82b8('0x44')){var _0x5c4bdc={};_0x5c4bdc[_0x202b94[_0x82b8('0x2e')]]={'$like':'%'+_0x4d4a4d[_0x82b8('0x34')][_0x82b8('0x42')]+'%'};return _0x5c4bdc;}})});}_0x5f020d=_[_0x82b8('0x43')]({},_0x5f020d,_0x4d4a4d[_0x82b8('0x45')]);var _0x49376c={'where':_0x5f020d[_0x82b8('0x40')]};return db[_0x82b8('0x30')][_0x82b8('0x23')](_0x49376c)[_0x82b8('0x2d')](function(_0x838f74){_0x2b944c[_0x82b8('0x23')]=_0x838f74;if(_0x4d4a4d[_0x82b8('0x34')]['includeAll']){_0x5f020d['include']=[{'all':!![]}];}return db[_0x82b8('0x30')][_0x82b8('0x46')](_0x5f020d);})[_0x82b8('0x2d')](function(_0xea9808){_0x2b944c['rows']=_0xea9808;return _0x2b944c;})[_0x82b8('0x2d')](respondWithFilteredResult(_0xe041e9,_0x5f020d))['catch'](handleError(_0xe041e9,null));};exports[_0x82b8('0x47')]=function(_0x3e81b0,_0x297bde){var _0xd2556e={'raw':!![],'where':{'id':_0x3e81b0[_0x82b8('0x48')]['id']}},_0x5620cc={};_0x5620cc['model']=_['keys'](db[_0x82b8('0x30')][_0x82b8('0x49')]);_0x5620cc['query']=_[_0x82b8('0x35')](_0x3e81b0[_0x82b8('0x34')]);_0x5620cc[_0x82b8('0x36')]=_['intersection'](_0x5620cc[_0x82b8('0x39')],_0x5620cc[_0x82b8('0x34')]);_0xd2556e[_0x82b8('0x38')]=_[_0x82b8('0x37')](_0x5620cc[_0x82b8('0x39')],qs[_0x82b8('0x3a')](_0x3e81b0[_0x82b8('0x34')][_0x82b8('0x3a')]));_0xd2556e['attributes']=_0xd2556e[_0x82b8('0x38')][_0x82b8('0x3b')]?_0xd2556e[_0x82b8('0x38')]:_0x5620cc[_0x82b8('0x39')];if(_0x3e81b0[_0x82b8('0x34')]['includeAll']){_0xd2556e[_0x82b8('0x4a')]=[{'all':!![]}];}_0xd2556e=_[_0x82b8('0x43')]({},_0xd2556e,_0x3e81b0[_0x82b8('0x45')]);return db[_0x82b8('0x30')][_0x82b8('0x4b')](_0xd2556e)[_0x82b8('0x2d')](handleEntityNotFound(_0x297bde,null))[_0x82b8('0x2d')](respondWithResult(_0x297bde,null))[_0x82b8('0x4c')](handleError(_0x297bde,null));};exports[_0x82b8('0x4d')]=function(_0x262f40,_0x27e4fa){return db[_0x82b8('0x30')][_0x82b8('0x4d')](_0x262f40[_0x82b8('0x4e')],{})['then'](respondWithResult(_0x27e4fa,0xc9))[_0x82b8('0x4c')](handleError(_0x27e4fa,null));};exports[_0x82b8('0x2b')]=function(_0x25b5d9,_0x6d7acd){if(_0x25b5d9['body']['id']){delete _0x25b5d9[_0x82b8('0x4e')]['id'];}return db[_0x82b8('0x30')][_0x82b8('0x4b')]({'where':{'id':_0x25b5d9['params']['id']}})[_0x82b8('0x2d')](handleEntityNotFound(_0x6d7acd,null))[_0x82b8('0x2d')](saveUpdates(_0x25b5d9['body'],null))[_0x82b8('0x2d')](respondWithResult(_0x6d7acd,null))[_0x82b8('0x4c')](handleError(_0x6d7acd,null));};exports[_0x82b8('0x2c')]=function(_0x1fcc73,_0x1f6fef){return db[_0x82b8('0x30')][_0x82b8('0x4b')]({'where':{'id':_0x1fcc73[_0x82b8('0x48')]['id']}})[_0x82b8('0x2d')](handleEntityNotFound(_0x1f6fef,null))['then'](removeEntity(_0x1f6fef,null))['catch'](handleError(_0x1f6fef,null));};exports[_0x82b8('0x4f')]=function(_0x24b8f5,_0x3bab4c){return db[_0x82b8('0x30')]['describe']()[_0x82b8('0x2d')](respondWithResult(_0x3bab4c,null))[_0x82b8('0x4c')](handleError(_0x3bab4c,null));};function wrapUser(_0x3f7b3d){return function(_0x20301e){var _0x45b382=_0x3f7b3d['get']({'plain':!![]});_0x45b382['messages']=[];if(_0x20301e){_0x45b382[_0x82b8('0x50')]=_0x20301e['createdAt'];_0x45b382[_0x82b8('0x51')]=_0x20301e;}else{_0x45b382[_0x82b8('0x50')]=moment(0x0)[_0x82b8('0x52')](_0x82b8('0x53'));_0x45b382['lastMessage']={};}return _0x45b382;};}exports[_0x82b8('0x54')]=function(_0x21a0cc,_0x498a3c,_0x2fecab){var _0xe290cc=[];return db['User'][_0x82b8('0x46')]({'where':{'role':[_0x82b8('0x55'),_0x82b8('0x56'),_0x82b8('0x57')]},'attributes':['id',_0x82b8('0x58'),'name',_0x82b8('0x59'),_0x82b8('0x5a'),_0x82b8('0x5b'),_0x82b8('0x5c'),_0x82b8('0x5d'),_0x82b8('0x5e'),'showWebBar'],'order':qs[_0x82b8('0x3f')]('-online'),'include':[{'model':db[_0x82b8('0x5f')],'as':_0x82b8('0x60'),'attributes':['id',_0x82b8('0x2e'),_0x82b8('0x32')],'through':{'attributes':[]}}]})[_0x82b8('0x2d')](function(_0x3c0384){if(_0x3c0384){var _0x238db2=_0x21a0cc[_0x82b8('0x57')][_0x82b8('0x61')]({'plain':!![]});if(!_0x238db2)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x238db2[_0x82b8('0x59')]===_0x82b8('0x57')){return db[_0x82b8('0x62')][_0x82b8('0x4b')]({'where':{'name':'Agents','userProfileId':_0x238db2[_0x82b8('0x63')]},'raw':!![]})[_0x82b8('0x2d')](function(_0x7ce51a){if(_0x7ce51a){if(_0x7ce51a[_0x82b8('0x64')]===0x0){return db[_0x82b8('0x65')][_0x82b8('0x46')]({'where':{'sectionId':_0x7ce51a['id']},'raw':!![]})['then'](function(_0x8e94ec){var _0x394097=[];if(_[_0x82b8('0x66')](_0x8e94ec)){_0x394097=_[_0x82b8('0x42')](_0x3c0384,function(_0x446142){if(_0x446142[_0x82b8('0x59')]!==_0x82b8('0x55')){return _0x446142;}});return _0x394097;}else{for(var _0x35adfb=0x0;_0x35adfb<_0x3c0384[_0x82b8('0x3b')];_0x35adfb++){var _0xea5108=_0x3c0384[_0x35adfb];if(_0xea5108[_0x82b8('0x59')]===_0x82b8('0x55')){var _0x29be5e=_[_0x82b8('0x4b')](_0x8e94ec,function(_0xf46e){return _0xf46e['resourceId']===_0xea5108['id'];});if(_0x29be5e)_0x394097[_0x82b8('0x67')](_0xea5108);}else{_0x394097[_0x82b8('0x67')](_0xea5108);}}return _0x394097;}});}else{return _0x3c0384;}}else{var _0x34836d=_[_0x82b8('0x42')](_0x3c0384,function(_0x94aef4){if(_0x94aef4['role']!==_0x82b8('0x55')){return _0x94aef4;}});return _0x34836d;}});}else{return _0x3c0384;}}})[_0x82b8('0x2d')](function(_0x392a45){var _0x369372=[];if(_0x392a45){_0xe290cc=_0x392a45;for(var _0x1a3da3=0x0;_0x1a3da3<_0x392a45[_0x82b8('0x3b')];_0x1a3da3+=0x1){_0xe290cc[_0x1a3da3][_0x82b8('0x68')]=[];_0x369372[_0x82b8('0x67')](db[_0x82b8('0x30')][_0x82b8('0x4b')]({'where':{'FromId':[_0x21a0cc[_0x82b8('0x57')]['id'],_0x392a45[_0x1a3da3]['id']],'ToId':[_0x21a0cc[_0x82b8('0x57')]['id'],_0x392a45[_0x1a3da3]['id']],'ChatGroupId':null},'attributes':['id',_0x82b8('0x69'),_0x82b8('0x6a'),_0x82b8('0x6b'),_0x82b8('0x6c'),_0x82b8('0x4e')],'order':qs[_0x82b8('0x3f')](_0x82b8('0x6d')),'limit':0x1,'offset':0x0,'raw':!![]})[_0x82b8('0x2d')](wrapUser(_0x392a45[_0x1a3da3])));}return BPromise[_0x82b8('0x6e')](_0x369372);}return[];})[_0x82b8('0x2d')](function(_0x3b2b6f){return{'rows':_0x3b2b6f,'count':_0x3b2b6f['length']};})[_0x82b8('0x2d')](respondWithResult(_0x498a3c,null))[_0x82b8('0x4c')](handleError(_0x498a3c,null));};