586f5d6a8ee7533cb465abd01c37c82516602f3c
[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 _0xcd3a=['querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','redis','defaults','localhost','socket.io-emitter','./chatInternalMessage.socket','sendStatus','status','end','offset','undefined','limit','count','json','apply','reject','update','then','error','stack','name','map','rawAttributes','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','pick','merge','VIRTUAL','filter','options','includeAll','include','ChatInternalMessage','findAll','rows','show','params','find','catch','create','body','destroy','describe','get','messages','lastMessageAt','createdAt','lastMessage','YYYY-MM-DD\x20HH:mm:ss','getUsers','User','fullname','role','userpic','internal','online','lastLoginAt','allowmessenger','showWebBar','-online','VoiceQueue','type','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','Agents','autoAssociation','agent','resourceId','push','read','-createdAt','all','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','path','sox','to-csv','ejs','fs-extra','squel','jsforce','desk.js'];(function(_0x5d8018,_0x588592){var _0x151ac4=function(_0x548679){while(--_0x548679){_0x5d8018['push'](_0x5d8018['shift']());}};_0x151ac4(++_0x588592);}(_0xcd3a,0xc8));var _0xacd3=function(_0x3a14ce,_0x32d2a9){_0x3a14ce=_0x3a14ce-0x0;var _0x3f52f3=_0xcd3a[_0x3a14ce];return _0x3f52f3;};'use strict';var emlformat=require(_0xacd3('0x0'));var rimraf=require(_0xacd3('0x1'));var zipdir=require(_0xacd3('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xacd3('0x3'));var moment=require(_0xacd3('0x4'));var BPromise=require(_0xacd3('0x5'));var Mustache=require('mustache');var util=require('util');var path=require(_0xacd3('0x6'));var sox=require(_0xacd3('0x7'));var csv=require(_0xacd3('0x8'));var ejs=require(_0xacd3('0x9'));var fs=require('fs');var fs_extra=require(_0xacd3('0xa'));var _=require('lodash');var squel=require(_0xacd3('0xb'));var crypto=require('crypto');var jsforce=require(_0xacd3('0xc'));var deskjs=require(_0xacd3('0xd'));var toCsv=require(_0xacd3('0x8'));var querystring=require(_0xacd3('0xe'));var Papa=require(_0xacd3('0xf'));var Redis=require(_0xacd3('0x10'));var authService=require(_0xacd3('0x11'));var qs=require(_0xacd3('0x12'));var as=require(_0xacd3('0x13'));var hardwareService=require(_0xacd3('0x14'));var logger=require(_0xacd3('0x15'))('api');var utils=require(_0xacd3('0x16'));var config=require(_0xacd3('0x17'));var licenseUtil=require(_0xacd3('0x18'));var db=require('../../mysqldb')['db'];config[_0xacd3('0x19')]=_[_0xacd3('0x1a')](config[_0xacd3('0x19')],{'host':_0xacd3('0x1b'),'port':0x18eb});var socket=require(_0xacd3('0x1c'))(new Redis(config[_0xacd3('0x19')]));require(_0xacd3('0x1d'))['register'](socket);function respondWithStatusCode(_0x17706b,_0x51b1aa){_0x51b1aa=_0x51b1aa||0xcc;return function(_0x4daf95){if(_0x4daf95){return _0x17706b[_0xacd3('0x1e')](_0x51b1aa);}return _0x17706b[_0xacd3('0x1f')](_0x51b1aa)[_0xacd3('0x20')]();};}function respondWithResult(_0x446ad4,_0x3889b5){_0x3889b5=_0x3889b5||0xc8;return function(_0x3f3e88){if(_0x3f3e88){return _0x446ad4[_0xacd3('0x1f')](_0x3889b5)['json'](_0x3f3e88);}};}function respondWithFilteredResult(_0x310a57,_0x2ccc5b){return function(_0x4e1ebb){if(_0x4e1ebb){var _0x3fa3a2=typeof _0x2ccc5b[_0xacd3('0x21')]===_0xacd3('0x22')&&typeof _0x2ccc5b[_0xacd3('0x23')]===_0xacd3('0x22');var _0x149ccf=_0x4e1ebb[_0xacd3('0x24')];var _0x5ab224=_0x3fa3a2?0x0:_0x2ccc5b['offset'];var _0x2a0c04=_0x3fa3a2?_0x4e1ebb[_0xacd3('0x24')]:_0x2ccc5b['offset']+_0x2ccc5b['limit'];var _0x5f2b14;if(_0x2a0c04>=_0x149ccf){_0x2a0c04=_0x149ccf;_0x5f2b14=0xc8;}else{_0x5f2b14=0xce;}_0x310a57[_0xacd3('0x1f')](_0x5f2b14);return _0x310a57['set']('Content-Range',_0x5ab224+'-'+_0x2a0c04+'/'+_0x149ccf)[_0xacd3('0x25')](_0x4e1ebb);}return null;};}function patchUpdates(_0x56e454){return function(_0x58adb4){try{jsonpatch[_0xacd3('0x26')](_0x58adb4,_0x56e454,!![]);}catch(_0x39fe19){return BPromise[_0xacd3('0x27')](_0x39fe19);}return _0x58adb4['save']();};}function saveUpdates(_0x467fc8,_0x41d07b){return function(_0x42856d){if(_0x42856d){return _0x42856d[_0xacd3('0x28')](_0x467fc8)[_0xacd3('0x29')](function(_0x4e972b){return _0x4e972b;});}return null;};}function removeEntity(_0x5455ed,_0x23e728){return function(_0x59bd58){if(_0x59bd58){return _0x59bd58['destroy']()[_0xacd3('0x29')](function(){_0x5455ed[_0xacd3('0x1f')](0xcc)['end']();});}};}function handleEntityNotFound(_0x1d359c,_0x415cc9){return function(_0x3e2333){if(!_0x3e2333){_0x1d359c[_0xacd3('0x1e')](0x194);}return _0x3e2333;};}function handleError(_0x24ce03,_0x5c5b5f){_0x5c5b5f=_0x5c5b5f||0x1f4;return function(_0x32ab38){logger[_0xacd3('0x2a')](_0x32ab38[_0xacd3('0x2b')]);if(_0x32ab38[_0xacd3('0x2c')]){delete _0x32ab38[_0xacd3('0x2c')];}_0x24ce03[_0xacd3('0x1f')](_0x5c5b5f)['send'](_0x32ab38);};}exports['index']=function(_0x5a1033,_0x154322){var _0x49b4c7={},_0x545aa0={},_0x490753={'count':0x0,'rows':[]};var _0x578694=_[_0xacd3('0x2d')](db['ChatInternalMessage'][_0xacd3('0x2e')],function(_0x252c86){return{'name':_0x252c86['fieldName'],'type':_0x252c86['type'][_0xacd3('0x2f')]};});_0x545aa0[_0xacd3('0x30')]=_[_0xacd3('0x2d')](_0x578694,_0xacd3('0x2c'));_0x545aa0[_0xacd3('0x31')]=_[_0xacd3('0x32')](_0x5a1033[_0xacd3('0x31')]);_0x545aa0[_0xacd3('0x33')]=_[_0xacd3('0x34')](_0x545aa0['model'],_0x545aa0[_0xacd3('0x31')]);_0x49b4c7[_0xacd3('0x35')]=_[_0xacd3('0x34')](_0x545aa0[_0xacd3('0x30')],qs['fields'](_0x5a1033[_0xacd3('0x31')][_0xacd3('0x36')]));_0x49b4c7['attributes']=_0x49b4c7[_0xacd3('0x35')][_0xacd3('0x37')]?_0x49b4c7[_0xacd3('0x35')]:_0x545aa0[_0xacd3('0x30')];if(!_0x5a1033[_0xacd3('0x31')][_0xacd3('0x38')](_0xacd3('0x39'))){_0x49b4c7[_0xacd3('0x23')]=qs[_0xacd3('0x23')](_0x5a1033[_0xacd3('0x31')][_0xacd3('0x23')]);_0x49b4c7[_0xacd3('0x21')]=qs['offset'](_0x5a1033['query'][_0xacd3('0x21')]);}_0x49b4c7['order']=qs[_0xacd3('0x3a')](_0x5a1033[_0xacd3('0x31')]['sort']);_0x49b4c7[_0xacd3('0x3b')]=qs[_0xacd3('0x33')](_[_0xacd3('0x3c')](_0x5a1033[_0xacd3('0x31')],_0x545aa0['filters']),_0x578694);if(_0x5a1033[_0xacd3('0x31')]['filter']){_0x49b4c7['where']=_[_0xacd3('0x3d')](_0x49b4c7[_0xacd3('0x3b')],{'$or':_[_0xacd3('0x2d')](_0x578694,function(_0x58486b){if(_0x58486b['type']!==_0xacd3('0x3e')){var _0x58b078={};_0x58b078[_0x58486b[_0xacd3('0x2c')]]={'$like':'%'+_0x5a1033[_0xacd3('0x31')][_0xacd3('0x3f')]+'%'};return _0x58b078;}})});}_0x49b4c7=_[_0xacd3('0x3d')]({},_0x49b4c7,_0x5a1033[_0xacd3('0x40')]);var _0x28f3ed={'where':_0x49b4c7[_0xacd3('0x3b')]};return db['ChatInternalMessage'][_0xacd3('0x24')](_0x28f3ed)[_0xacd3('0x29')](function(_0x3b578c){_0x490753[_0xacd3('0x24')]=_0x3b578c;if(_0x5a1033['query'][_0xacd3('0x41')]){_0x49b4c7[_0xacd3('0x42')]=[{'all':!![]}];}return db[_0xacd3('0x43')][_0xacd3('0x44')](_0x49b4c7);})[_0xacd3('0x29')](function(_0x1a2f82){_0x490753[_0xacd3('0x45')]=_0x1a2f82;return _0x490753;})[_0xacd3('0x29')](respondWithFilteredResult(_0x154322,_0x49b4c7))['catch'](handleError(_0x154322,null));};exports[_0xacd3('0x46')]=function(_0xc329f0,_0x32c8d5){var _0x2583c5={'raw':!![],'where':{'id':_0xc329f0[_0xacd3('0x47')]['id']}},_0x1ca9df={};_0x1ca9df[_0xacd3('0x30')]=_['keys'](db[_0xacd3('0x43')][_0xacd3('0x2e')]);_0x1ca9df[_0xacd3('0x31')]=_['keys'](_0xc329f0[_0xacd3('0x31')]);_0x1ca9df[_0xacd3('0x33')]=_['intersection'](_0x1ca9df[_0xacd3('0x30')],_0x1ca9df[_0xacd3('0x31')]);_0x2583c5['attributes']=_[_0xacd3('0x34')](_0x1ca9df[_0xacd3('0x30')],qs[_0xacd3('0x36')](_0xc329f0[_0xacd3('0x31')][_0xacd3('0x36')]));_0x2583c5['attributes']=_0x2583c5['attributes'][_0xacd3('0x37')]?_0x2583c5['attributes']:_0x1ca9df[_0xacd3('0x30')];if(_0xc329f0['query'][_0xacd3('0x41')]){_0x2583c5['include']=[{'all':!![]}];}_0x2583c5=_[_0xacd3('0x3d')]({},_0x2583c5,_0xc329f0['options']);return db[_0xacd3('0x43')][_0xacd3('0x48')](_0x2583c5)[_0xacd3('0x29')](handleEntityNotFound(_0x32c8d5,null))[_0xacd3('0x29')](respondWithResult(_0x32c8d5,null))[_0xacd3('0x49')](handleError(_0x32c8d5,null));};exports[_0xacd3('0x4a')]=function(_0x329c12,_0x52d641){return db[_0xacd3('0x43')]['create'](_0x329c12[_0xacd3('0x4b')],{})[_0xacd3('0x29')](respondWithResult(_0x52d641,0xc9))[_0xacd3('0x49')](handleError(_0x52d641,null));};exports[_0xacd3('0x28')]=function(_0x1e222a,_0x394a90){if(_0x1e222a[_0xacd3('0x4b')]['id']){delete _0x1e222a['body']['id'];}return db[_0xacd3('0x43')][_0xacd3('0x48')]({'where':{'id':_0x1e222a[_0xacd3('0x47')]['id']}})['then'](handleEntityNotFound(_0x394a90,null))['then'](saveUpdates(_0x1e222a['body'],null))[_0xacd3('0x29')](respondWithResult(_0x394a90,null))[_0xacd3('0x49')](handleError(_0x394a90,null));};exports[_0xacd3('0x4c')]=function(_0x3754e1,_0x2e0a7e){return db['ChatInternalMessage'][_0xacd3('0x48')]({'where':{'id':_0x3754e1['params']['id']}})[_0xacd3('0x29')](handleEntityNotFound(_0x2e0a7e,null))[_0xacd3('0x29')](removeEntity(_0x2e0a7e,null))[_0xacd3('0x49')](handleError(_0x2e0a7e,null));};exports['describe']=function(_0x58e527,_0x3d04dd){return db['ChatInternalMessage'][_0xacd3('0x4d')]()[_0xacd3('0x29')](respondWithResult(_0x3d04dd,null))['catch'](handleError(_0x3d04dd,null));};function wrapUser(_0xeb4ce6){return function(_0x5a0b3c){var _0x3b0d5a=_0xeb4ce6[_0xacd3('0x4e')]({'plain':!![]});_0x3b0d5a[_0xacd3('0x4f')]=[];if(_0x5a0b3c){_0x3b0d5a[_0xacd3('0x50')]=_0x5a0b3c[_0xacd3('0x51')];_0x3b0d5a[_0xacd3('0x52')]=_0x5a0b3c;}else{_0x3b0d5a[_0xacd3('0x50')]=moment(0x0)['format'](_0xacd3('0x53'));_0x3b0d5a['lastMessage']={};}return _0x3b0d5a;};}exports[_0xacd3('0x54')]=function(_0x36c70d,_0x5cfaa3,_0x56b232){var _0x5f0920=[];return db[_0xacd3('0x55')][_0xacd3('0x44')]({'where':{'role':['agent','admin','user']},'attributes':['id',_0xacd3('0x56'),_0xacd3('0x2c'),_0xacd3('0x57'),_0xacd3('0x58'),_0xacd3('0x59'),_0xacd3('0x5a'),_0xacd3('0x5b'),_0xacd3('0x5c'),_0xacd3('0x5d')],'order':qs[_0xacd3('0x3a')](_0xacd3('0x5e')),'include':[{'model':db[_0xacd3('0x5f')],'as':'VoiceQueues','attributes':['id','name',_0xacd3('0x60')],'through':{'attributes':[]}}]})[_0xacd3('0x29')](function(_0x24a9fa){if(_0x24a9fa){var _0x54d616=_0x36c70d[_0xacd3('0x61')][_0xacd3('0x4e')]({'plain':!![]});if(!_0x54d616)throw new Error(_0xacd3('0x62'));if(_0x54d616['role']===_0xacd3('0x61')){return db['UserProfileSection'][_0xacd3('0x48')]({'where':{'name':_0xacd3('0x63'),'userProfileId':_0x54d616['userProfileId']},'raw':!![]})[_0xacd3('0x29')](function(_0x43e6c5){if(_0x43e6c5){if(_0x43e6c5[_0xacd3('0x64')]===0x0){return db['UserProfileResource'][_0xacd3('0x44')]({'where':{'sectionId':_0x43e6c5['id']},'raw':!![]})[_0xacd3('0x29')](function(_0x556a03){var _0x1ef156=[];if(_['isEmpty'](_0x556a03)){_0x1ef156=_[_0xacd3('0x3f')](_0x24a9fa,function(_0xda9671){if(_0xda9671['role']!==_0xacd3('0x65')){return _0xda9671;}});return _0x1ef156;}else{for(var _0x26c8c7=0x0;_0x26c8c7<_0x24a9fa['length'];_0x26c8c7++){var _0x31c04c=_0x24a9fa[_0x26c8c7];if(_0x31c04c['role']===_0xacd3('0x65')){var _0x53bb07=_[_0xacd3('0x48')](_0x556a03,function(_0x3a9a15){return _0x3a9a15[_0xacd3('0x66')]===_0x31c04c['id'];});if(_0x53bb07)_0x1ef156[_0xacd3('0x67')](_0x31c04c);}else{_0x1ef156[_0xacd3('0x67')](_0x31c04c);}}return _0x1ef156;}});}else{return _0x24a9fa;}}else{var _0x594188=_[_0xacd3('0x3f')](_0x24a9fa,function(_0x4e7244){if(_0x4e7244[_0xacd3('0x57')]!==_0xacd3('0x65')){return _0x4e7244;}});return _0x594188;}});}else{return _0x24a9fa;}}})['then'](function(_0x46eea2){var _0x792a28=[];if(_0x46eea2){_0x5f0920=_0x46eea2;for(var _0x1ec066=0x0;_0x1ec066<_0x46eea2[_0xacd3('0x37')];_0x1ec066+=0x1){_0x5f0920[_0x1ec066]['messages']=[];_0x792a28['push'](db[_0xacd3('0x43')]['find']({'where':{'FromId':[_0x36c70d[_0xacd3('0x61')]['id'],_0x46eea2[_0x1ec066]['id']],'ToId':[_0x36c70d[_0xacd3('0x61')]['id'],_0x46eea2[_0x1ec066]['id']],'ChatGroupId':null},'attributes':['id',_0xacd3('0x51'),'FromId','ToId',_0xacd3('0x68'),_0xacd3('0x4b')],'order':qs[_0xacd3('0x3a')](_0xacd3('0x69')),'limit':0x1,'offset':0x0,'raw':!![]})['then'](wrapUser(_0x46eea2[_0x1ec066])));}return BPromise[_0xacd3('0x6a')](_0x792a28);}return[];})[_0xacd3('0x29')](function(_0xd866cd){return{'rows':_0xd866cd,'count':_0xd866cd[_0xacd3('0x37')]};})[_0xacd3('0x29')](respondWithResult(_0x5cfaa3,null))[_0xacd3('0x49')](handleError(_0x5cfaa3,null));};