9e83284400115fc7f36a8f7796cafb4c2da68919
[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 _0x7bfb=['mustache','util','path','to-csv','ejs','fs-extra','lodash','squel','crypto','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','redis','defaults','socket.io-emitter','./chatInternalMessage.socket','register','sendStatus','status','end','offset','undefined','limit','count','set','Content-Range','json','reject','save','then','error','stack','name','send','index','map','ChatInternalMessage','rawAttributes','fieldName','type','key','query','keys','filters','intersection','model','attributes','fields','length','nolimit','where','pick','merge','VIRTUAL','filter','options','includeAll','include','findAll','catch','show','params','find','create','body','update','destroy','describe','get','messages','lastMessageAt','createdAt','lastMessage','format','YYYY-MM-DD\x20HH:mm:ss','getUsers','User','admin','user','fullname','role','userpic','online','lastLoginAt','sort','-online','VoiceQueue','VoiceQueues','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','Agents','userProfileId','autoAssociation','UserProfileResource','isEmpty','agent','resourceId','push','FromId','-createdAt','all','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird'];(function(_0x2bc6a2,_0x44e6ea){var _0x50f1ce=function(_0x2d3e20){while(--_0x2d3e20){_0x2bc6a2['push'](_0x2bc6a2['shift']());}};_0x50f1ce(++_0x44e6ea);}(_0x7bfb,0x14f));var _0xb7bf=function(_0x1626ac,_0x517818){_0x1626ac=_0x1626ac-0x0;var _0x3753ef=_0x7bfb[_0x1626ac];return _0x3753ef;};'use strict';var emlformat=require(_0xb7bf('0x0'));var rimraf=require(_0xb7bf('0x1'));var zipdir=require(_0xb7bf('0x2'));var jsonpatch=require(_0xb7bf('0x3'));var rp=require(_0xb7bf('0x4'));var moment=require(_0xb7bf('0x5'));var BPromise=require(_0xb7bf('0x6'));var Mustache=require(_0xb7bf('0x7'));var util=require(_0xb7bf('0x8'));var path=require(_0xb7bf('0x9'));var sox=require('sox');var csv=require(_0xb7bf('0xa'));var ejs=require(_0xb7bf('0xb'));var fs=require('fs');var fs_extra=require(_0xb7bf('0xc'));var _=require(_0xb7bf('0xd'));var squel=require(_0xb7bf('0xe'));var crypto=require(_0xb7bf('0xf'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0xb7bf('0xa'));var querystring=require(_0xb7bf('0x10'));var Papa=require(_0xb7bf('0x11'));var Redis=require(_0xb7bf('0x12'));var authService=require('../../components/auth/service');var qs=require(_0xb7bf('0x13'));var as=require(_0xb7bf('0x14'));var hardwareService=require(_0xb7bf('0x15'));var logger=require(_0xb7bf('0x16'))(_0xb7bf('0x17'));var utils=require(_0xb7bf('0x18'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];config[_0xb7bf('0x19')]=_[_0xb7bf('0x1a')](config[_0xb7bf('0x19')],{'host':'localhost','port':0x18eb});var socket=require(_0xb7bf('0x1b'))(new Redis(config[_0xb7bf('0x19')]));require(_0xb7bf('0x1c'))[_0xb7bf('0x1d')](socket);function respondWithStatusCode(_0x4e52c1,_0x3d657c){_0x3d657c=_0x3d657c||0xcc;return function(_0x55e6fd){if(_0x55e6fd){return _0x4e52c1[_0xb7bf('0x1e')](_0x3d657c);}return _0x4e52c1[_0xb7bf('0x1f')](_0x3d657c)[_0xb7bf('0x20')]();};}function respondWithResult(_0x245afb,_0x3a4f92){_0x3a4f92=_0x3a4f92||0xc8;return function(_0x322a2d){if(_0x322a2d){return _0x245afb[_0xb7bf('0x1f')](_0x3a4f92)['json'](_0x322a2d);}};}function respondWithFilteredResult(_0x288bc9,_0x30f127){return function(_0x343fa5){if(_0x343fa5){var _0x3cac10=typeof _0x30f127[_0xb7bf('0x21')]===_0xb7bf('0x22')&&typeof _0x30f127[_0xb7bf('0x23')]==='undefined';var _0x237cdd=_0x343fa5[_0xb7bf('0x24')];var _0x1374e6=_0x3cac10?0x0:_0x30f127[_0xb7bf('0x21')];var _0x348bc9=_0x3cac10?_0x343fa5[_0xb7bf('0x24')]:_0x30f127[_0xb7bf('0x21')]+_0x30f127['limit'];var _0xfacdf;if(_0x348bc9>=_0x237cdd){_0x348bc9=_0x237cdd;_0xfacdf=0xc8;}else{_0xfacdf=0xce;}_0x288bc9[_0xb7bf('0x1f')](_0xfacdf);return _0x288bc9[_0xb7bf('0x25')](_0xb7bf('0x26'),_0x1374e6+'-'+_0x348bc9+'/'+_0x237cdd)[_0xb7bf('0x27')](_0x343fa5);}return null;};}function patchUpdates(_0x29960b){return function(_0x24c3fb){try{jsonpatch['apply'](_0x24c3fb,_0x29960b,!![]);}catch(_0x14966e){return BPromise[_0xb7bf('0x28')](_0x14966e);}return _0x24c3fb[_0xb7bf('0x29')]();};}function saveUpdates(_0x3a760e,_0x4d0d10){return function(_0xd0da3b){if(_0xd0da3b){return _0xd0da3b['update'](_0x3a760e)[_0xb7bf('0x2a')](function(_0xbb2029){return _0xbb2029;});}return null;};}function removeEntity(_0x38a854,_0x2df666){return function(_0x21df6a){if(_0x21df6a){return _0x21df6a['destroy']()[_0xb7bf('0x2a')](function(){_0x38a854['status'](0xcc)[_0xb7bf('0x20')]();});}};}function handleEntityNotFound(_0x33987f,_0x39c701){return function(_0x1b3f82){if(!_0x1b3f82){_0x33987f[_0xb7bf('0x1e')](0x194);}return _0x1b3f82;};}function handleError(_0x460a07,_0x49ce43){_0x49ce43=_0x49ce43||0x1f4;return function(_0x22f915){logger[_0xb7bf('0x2b')](_0x22f915[_0xb7bf('0x2c')]);if(_0x22f915[_0xb7bf('0x2d')]){delete _0x22f915[_0xb7bf('0x2d')];}_0x460a07[_0xb7bf('0x1f')](_0x49ce43)[_0xb7bf('0x2e')](_0x22f915);};}exports[_0xb7bf('0x2f')]=function(_0x30acfe,_0x39fdcb){var _0x10f789={},_0x12dc21={},_0x44dd83={'count':0x0,'rows':[]};var _0x5f0f1e=_[_0xb7bf('0x30')](db[_0xb7bf('0x31')][_0xb7bf('0x32')],function(_0x3b2e75){return{'name':_0x3b2e75[_0xb7bf('0x33')],'type':_0x3b2e75[_0xb7bf('0x34')][_0xb7bf('0x35')]};});_0x12dc21['model']=_['map'](_0x5f0f1e,'name');_0x12dc21[_0xb7bf('0x36')]=_[_0xb7bf('0x37')](_0x30acfe[_0xb7bf('0x36')]);_0x12dc21[_0xb7bf('0x38')]=_[_0xb7bf('0x39')](_0x12dc21[_0xb7bf('0x3a')],_0x12dc21['query']);_0x10f789[_0xb7bf('0x3b')]=_[_0xb7bf('0x39')](_0x12dc21[_0xb7bf('0x3a')],qs[_0xb7bf('0x3c')](_0x30acfe['query']['fields']));_0x10f789[_0xb7bf('0x3b')]=_0x10f789[_0xb7bf('0x3b')][_0xb7bf('0x3d')]?_0x10f789['attributes']:_0x12dc21[_0xb7bf('0x3a')];if(!_0x30acfe[_0xb7bf('0x36')]['hasOwnProperty'](_0xb7bf('0x3e'))){_0x10f789[_0xb7bf('0x23')]=qs['limit'](_0x30acfe['query'][_0xb7bf('0x23')]);_0x10f789[_0xb7bf('0x21')]=qs['offset'](_0x30acfe[_0xb7bf('0x36')]['offset']);}_0x10f789['order']=qs['sort'](_0x30acfe[_0xb7bf('0x36')]['sort']);_0x10f789[_0xb7bf('0x3f')]=qs[_0xb7bf('0x38')](_[_0xb7bf('0x40')](_0x30acfe['query'],_0x12dc21[_0xb7bf('0x38')]),_0x5f0f1e);if(_0x30acfe[_0xb7bf('0x36')]['filter']){_0x10f789['where']=_[_0xb7bf('0x41')](_0x10f789[_0xb7bf('0x3f')],{'$or':_[_0xb7bf('0x30')](_0x5f0f1e,function(_0x4355ed){if(_0x4355ed[_0xb7bf('0x34')]!==_0xb7bf('0x42')){var _0x3913c4={};_0x3913c4[_0x4355ed[_0xb7bf('0x2d')]]={'$like':'%'+_0x30acfe[_0xb7bf('0x36')][_0xb7bf('0x43')]+'%'};return _0x3913c4;}})});}_0x10f789=_[_0xb7bf('0x41')]({},_0x10f789,_0x30acfe[_0xb7bf('0x44')]);var _0x10844a={'where':_0x10f789['where']};return db[_0xb7bf('0x31')][_0xb7bf('0x24')](_0x10844a)[_0xb7bf('0x2a')](function(_0x380b96){_0x44dd83['count']=_0x380b96;if(_0x30acfe[_0xb7bf('0x36')][_0xb7bf('0x45')]){_0x10f789[_0xb7bf('0x46')]=[{'all':!![]}];}return db['ChatInternalMessage'][_0xb7bf('0x47')](_0x10f789);})[_0xb7bf('0x2a')](function(_0x1925e1){_0x44dd83['rows']=_0x1925e1;return _0x44dd83;})[_0xb7bf('0x2a')](respondWithFilteredResult(_0x39fdcb,_0x10f789))[_0xb7bf('0x48')](handleError(_0x39fdcb,null));};exports[_0xb7bf('0x49')]=function(_0xb04974,_0x2d60e6){var _0x56c6ed={'raw':!![],'where':{'id':_0xb04974[_0xb7bf('0x4a')]['id']}},_0x1a8a62={};_0x1a8a62['model']=_[_0xb7bf('0x37')](db['ChatInternalMessage'][_0xb7bf('0x32')]);_0x1a8a62[_0xb7bf('0x36')]=_[_0xb7bf('0x37')](_0xb04974[_0xb7bf('0x36')]);_0x1a8a62[_0xb7bf('0x38')]=_[_0xb7bf('0x39')](_0x1a8a62['model'],_0x1a8a62[_0xb7bf('0x36')]);_0x56c6ed[_0xb7bf('0x3b')]=_['intersection'](_0x1a8a62['model'],qs[_0xb7bf('0x3c')](_0xb04974[_0xb7bf('0x36')][_0xb7bf('0x3c')]));_0x56c6ed[_0xb7bf('0x3b')]=_0x56c6ed[_0xb7bf('0x3b')][_0xb7bf('0x3d')]?_0x56c6ed[_0xb7bf('0x3b')]:_0x1a8a62[_0xb7bf('0x3a')];if(_0xb04974['query'][_0xb7bf('0x45')]){_0x56c6ed[_0xb7bf('0x46')]=[{'all':!![]}];}_0x56c6ed=_[_0xb7bf('0x41')]({},_0x56c6ed,_0xb04974[_0xb7bf('0x44')]);return db[_0xb7bf('0x31')][_0xb7bf('0x4b')](_0x56c6ed)[_0xb7bf('0x2a')](handleEntityNotFound(_0x2d60e6,null))[_0xb7bf('0x2a')](respondWithResult(_0x2d60e6,null))['catch'](handleError(_0x2d60e6,null));};exports[_0xb7bf('0x4c')]=function(_0x40ec7f,_0x1b95cf){return db[_0xb7bf('0x31')][_0xb7bf('0x4c')](_0x40ec7f[_0xb7bf('0x4d')],{})[_0xb7bf('0x2a')](respondWithResult(_0x1b95cf,0xc9))[_0xb7bf('0x48')](handleError(_0x1b95cf,null));};exports[_0xb7bf('0x4e')]=function(_0x5af5d9,_0x2e85e8){if(_0x5af5d9['body']['id']){delete _0x5af5d9[_0xb7bf('0x4d')]['id'];}return db[_0xb7bf('0x31')]['find']({'where':{'id':_0x5af5d9['params']['id']}})[_0xb7bf('0x2a')](handleEntityNotFound(_0x2e85e8,null))[_0xb7bf('0x2a')](saveUpdates(_0x5af5d9['body'],null))[_0xb7bf('0x2a')](respondWithResult(_0x2e85e8,null))[_0xb7bf('0x48')](handleError(_0x2e85e8,null));};exports[_0xb7bf('0x4f')]=function(_0x5cb4e6,_0x5839f0){return db['ChatInternalMessage'][_0xb7bf('0x4b')]({'where':{'id':_0x5cb4e6['params']['id']}})[_0xb7bf('0x2a')](handleEntityNotFound(_0x5839f0,null))[_0xb7bf('0x2a')](removeEntity(_0x5839f0,null))[_0xb7bf('0x48')](handleError(_0x5839f0,null));};exports['describe']=function(_0x3670fb,_0x17e82c){return db[_0xb7bf('0x31')][_0xb7bf('0x50')]()[_0xb7bf('0x2a')](respondWithResult(_0x17e82c,null))[_0xb7bf('0x48')](handleError(_0x17e82c,null));};function wrapUser(_0x525c32){return function(_0x31e4ab){var _0x40b30a=_0x525c32[_0xb7bf('0x51')]({'plain':!![]});_0x40b30a[_0xb7bf('0x52')]=[];if(_0x31e4ab){_0x40b30a[_0xb7bf('0x53')]=_0x31e4ab[_0xb7bf('0x54')];_0x40b30a[_0xb7bf('0x55')]=_0x31e4ab;}else{_0x40b30a[_0xb7bf('0x53')]=moment(0x0)[_0xb7bf('0x56')](_0xb7bf('0x57'));_0x40b30a[_0xb7bf('0x55')]={};}return _0x40b30a;};}exports[_0xb7bf('0x58')]=function(_0x27510c,_0x5d0ebb,_0x3eee4e){var _0x5d64bf=[];return db[_0xb7bf('0x59')]['findAll']({'where':{'role':['agent',_0xb7bf('0x5a'),_0xb7bf('0x5b')]},'attributes':['id',_0xb7bf('0x5c'),_0xb7bf('0x2d'),_0xb7bf('0x5d'),_0xb7bf('0x5e'),'internal',_0xb7bf('0x5f'),_0xb7bf('0x60'),'allowmessenger','showWebBar'],'order':qs[_0xb7bf('0x61')](_0xb7bf('0x62')),'include':[{'model':db[_0xb7bf('0x63')],'as':_0xb7bf('0x64'),'attributes':['id',_0xb7bf('0x2d'),_0xb7bf('0x34')],'through':{'attributes':[]}}]})[_0xb7bf('0x2a')](function(_0x4d548c){if(_0x4d548c){var _0x426203=_0x27510c['user'][_0xb7bf('0x51')]({'plain':!![]});if(!_0x426203)throw new Error(_0xb7bf('0x65'));if(_0x426203[_0xb7bf('0x5d')]==='user'){return db[_0xb7bf('0x66')][_0xb7bf('0x4b')]({'where':{'name':_0xb7bf('0x67'),'userProfileId':_0x426203[_0xb7bf('0x68')]},'raw':!![]})[_0xb7bf('0x2a')](function(_0xcd2d89){if(_0xcd2d89){if(_0xcd2d89[_0xb7bf('0x69')]===0x0){return db[_0xb7bf('0x6a')][_0xb7bf('0x47')]({'where':{'sectionId':_0xcd2d89['id']},'raw':!![]})['then'](function(_0x2bc35f){var _0x206cd9=[];if(_[_0xb7bf('0x6b')](_0x2bc35f)){_0x206cd9=_[_0xb7bf('0x43')](_0x4d548c,function(_0x265b26){if(_0x265b26[_0xb7bf('0x5d')]!=='agent'){return _0x265b26;}});return _0x206cd9;}else{for(var _0x481453=0x0;_0x481453<_0x4d548c[_0xb7bf('0x3d')];_0x481453++){var _0x2d9a72=_0x4d548c[_0x481453];if(_0x2d9a72['role']===_0xb7bf('0x6c')){var _0x655003=_[_0xb7bf('0x4b')](_0x2bc35f,function(_0x108caa){return _0x108caa[_0xb7bf('0x6d')]===_0x2d9a72['id'];});if(_0x655003)_0x206cd9[_0xb7bf('0x6e')](_0x2d9a72);}else{_0x206cd9['push'](_0x2d9a72);}}return _0x206cd9;}});}else{return _0x4d548c;}}else{var _0x59d2ad=_['filter'](_0x4d548c,function(_0x25d14a){if(_0x25d14a[_0xb7bf('0x5d')]!==_0xb7bf('0x6c')){return _0x25d14a;}});return _0x59d2ad;}});}else{return _0x4d548c;}}})['then'](function(_0x38059c){var _0x4c82e8=[];if(_0x38059c){_0x5d64bf=_0x38059c;for(var _0x13ac77=0x0;_0x13ac77<_0x38059c['length'];_0x13ac77+=0x1){_0x5d64bf[_0x13ac77]['messages']=[];_0x4c82e8[_0xb7bf('0x6e')](db['ChatInternalMessage'][_0xb7bf('0x4b')]({'where':{'FromId':[_0x27510c[_0xb7bf('0x5b')]['id'],_0x38059c[_0x13ac77]['id']],'ToId':[_0x27510c['user']['id'],_0x38059c[_0x13ac77]['id']],'ChatGroupId':null},'attributes':['id',_0xb7bf('0x54'),_0xb7bf('0x6f'),'ToId','read',_0xb7bf('0x4d')],'order':qs['sort'](_0xb7bf('0x70')),'limit':0x1,'offset':0x0,'raw':!![]})[_0xb7bf('0x2a')](wrapUser(_0x38059c[_0x13ac77])));}return BPromise[_0xb7bf('0x71')](_0x4c82e8);}return[];})['then'](function(_0x2f72a0){return{'rows':_0x2f72a0,'count':_0x2f72a0[_0xb7bf('0x3d')]};})['then'](respondWithResult(_0x5d0ebb,null))[_0xb7bf('0x48')](handleError(_0x5d0ebb,null));};