62aa16b408bf32c059eb7c89fdf6328213df2e51
[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 _0xf3e9=['where','merge','filter','options','includeAll','include','findAll','rows','catch','show','params','length','find','update','body','describe','get','messages','lastMessageAt','createdAt','lastMessage','format','YYYY-MM-DD\x20HH:mm:ss','getUsers','User','agent','user','fullname','internal','online','lastLoginAt','allowmessenger','-online','VoiceQueues','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','userProfileId','autoAssociation','isEmpty','resourceId','push','FromId','ToId','read','-createdAt','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','to-csv','fs-extra','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/parsers/advancedSearch','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','defaults','redis','localhost','socket.io-emitter','./chatInternalMessage.socket','register','sendStatus','status','end','json','undefined','limit','count','offset','set','Content-Range','apply','reject','then','destroy','error','stack','name','index','map','ChatInternalMessage','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','nolimit','order','sort','pick'];(function(_0xb18819,_0x5388c7){var _0x789a0c=function(_0x22a366){while(--_0x22a366){_0xb18819['push'](_0xb18819['shift']());}};_0x789a0c(++_0x5388c7);}(_0xf3e9,0x109));var _0x9f3e=function(_0x564bf1,_0x3da7db){_0x564bf1=_0x564bf1-0x0;var _0x2251cf=_0xf3e9[_0x564bf1];return _0x2251cf;};'use strict';var emlformat=require(_0x9f3e('0x0'));var rimraf=require(_0x9f3e('0x1'));var zipdir=require(_0x9f3e('0x2'));var jsonpatch=require(_0x9f3e('0x3'));var rp=require(_0x9f3e('0x4'));var moment=require(_0x9f3e('0x5'));var BPromise=require(_0x9f3e('0x6'));var Mustache=require(_0x9f3e('0x7'));var util=require('util');var path=require(_0x9f3e('0x8'));var sox=require(_0x9f3e('0x9'));var csv=require(_0x9f3e('0xa'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x9f3e('0xb'));var _=require('lodash');var squel=require(_0x9f3e('0xc'));var crypto=require(_0x9f3e('0xd'));var jsforce=require(_0x9f3e('0xe'));var deskjs=require(_0x9f3e('0xf'));var toCsv=require(_0x9f3e('0xa'));var querystring=require(_0x9f3e('0x10'));var Papa=require('papaparse');var Redis=require(_0x9f3e('0x11'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x9f3e('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x9f3e('0x13'));var utils=require(_0x9f3e('0x14'));var config=require(_0x9f3e('0x15'));var licenseUtil=require(_0x9f3e('0x16'));var db=require(_0x9f3e('0x17'))['db'];config['redis']=_[_0x9f3e('0x18')](config[_0x9f3e('0x19')],{'host':_0x9f3e('0x1a'),'port':0x18eb});var socket=require(_0x9f3e('0x1b'))(new Redis(config[_0x9f3e('0x19')]));require(_0x9f3e('0x1c'))[_0x9f3e('0x1d')](socket);function respondWithStatusCode(_0x34649e,_0x32dfaf){_0x32dfaf=_0x32dfaf||0xcc;return function(_0x5cac40){if(_0x5cac40){return _0x34649e[_0x9f3e('0x1e')](_0x32dfaf);}return _0x34649e[_0x9f3e('0x1f')](_0x32dfaf)[_0x9f3e('0x20')]();};}function respondWithResult(_0x174641,_0xe1b0aa){_0xe1b0aa=_0xe1b0aa||0xc8;return function(_0x1da6c5){if(_0x1da6c5){return _0x174641[_0x9f3e('0x1f')](_0xe1b0aa)[_0x9f3e('0x21')](_0x1da6c5);}};}function respondWithFilteredResult(_0x262c8f,_0x394cab){return function(_0x773d56){if(_0x773d56){var _0x4f5b01=typeof _0x394cab['offset']===_0x9f3e('0x22')&&typeof _0x394cab[_0x9f3e('0x23')]===_0x9f3e('0x22');var _0x5cf5b1=_0x773d56[_0x9f3e('0x24')];var _0x30f1d6=_0x4f5b01?0x0:_0x394cab['offset'];var _0x140b04=_0x4f5b01?_0x773d56[_0x9f3e('0x24')]:_0x394cab[_0x9f3e('0x25')]+_0x394cab[_0x9f3e('0x23')];var _0x403f3e;if(_0x140b04>=_0x5cf5b1){_0x140b04=_0x5cf5b1;_0x403f3e=0xc8;}else{_0x403f3e=0xce;}_0x262c8f[_0x9f3e('0x1f')](_0x403f3e);return _0x262c8f[_0x9f3e('0x26')](_0x9f3e('0x27'),_0x30f1d6+'-'+_0x140b04+'/'+_0x5cf5b1)[_0x9f3e('0x21')](_0x773d56);}return null;};}function patchUpdates(_0x46e83f){return function(_0x2a9f31){try{jsonpatch[_0x9f3e('0x28')](_0x2a9f31,_0x46e83f,!![]);}catch(_0x209d11){return BPromise[_0x9f3e('0x29')](_0x209d11);}return _0x2a9f31['save']();};}function saveUpdates(_0xb0e6a4,_0x432d8e){return function(_0x176c54){if(_0x176c54){return _0x176c54['update'](_0xb0e6a4)[_0x9f3e('0x2a')](function(_0x39da10){return _0x39da10;});}return null;};}function removeEntity(_0xe38866,_0x3e7a28){return function(_0x3824f3){if(_0x3824f3){return _0x3824f3[_0x9f3e('0x2b')]()[_0x9f3e('0x2a')](function(){_0xe38866[_0x9f3e('0x1f')](0xcc)[_0x9f3e('0x20')]();});}};}function handleEntityNotFound(_0x40ac8a,_0xeb132e){return function(_0x292a34){if(!_0x292a34){_0x40ac8a[_0x9f3e('0x1e')](0x194);}return _0x292a34;};}function handleError(_0x7a7953,_0x519f95){_0x519f95=_0x519f95||0x1f4;return function(_0x57e7f8){logger[_0x9f3e('0x2c')](_0x57e7f8[_0x9f3e('0x2d')]);if(_0x57e7f8[_0x9f3e('0x2e')]){delete _0x57e7f8[_0x9f3e('0x2e')];}_0x7a7953[_0x9f3e('0x1f')](_0x519f95)['send'](_0x57e7f8);};}exports[_0x9f3e('0x2f')]=function(_0x11b274,_0x5c0f37){var _0x8e3fb3={},_0x4edd7c={},_0x43adb6={'count':0x0,'rows':[]};var _0x5879e9=_[_0x9f3e('0x30')](db[_0x9f3e('0x31')][_0x9f3e('0x32')],function(_0x7283af){return{'name':_0x7283af[_0x9f3e('0x33')],'type':_0x7283af[_0x9f3e('0x34')][_0x9f3e('0x35')]};});_0x4edd7c[_0x9f3e('0x36')]=_[_0x9f3e('0x30')](_0x5879e9,_0x9f3e('0x2e'));_0x4edd7c[_0x9f3e('0x37')]=_[_0x9f3e('0x38')](_0x11b274[_0x9f3e('0x37')]);_0x4edd7c[_0x9f3e('0x39')]=_[_0x9f3e('0x3a')](_0x4edd7c[_0x9f3e('0x36')],_0x4edd7c[_0x9f3e('0x37')]);_0x8e3fb3[_0x9f3e('0x3b')]=_[_0x9f3e('0x3a')](_0x4edd7c[_0x9f3e('0x36')],qs[_0x9f3e('0x3c')](_0x11b274[_0x9f3e('0x37')][_0x9f3e('0x3c')]));_0x8e3fb3[_0x9f3e('0x3b')]=_0x8e3fb3['attributes']['length']?_0x8e3fb3[_0x9f3e('0x3b')]:_0x4edd7c[_0x9f3e('0x36')];if(!_0x11b274[_0x9f3e('0x37')]['hasOwnProperty'](_0x9f3e('0x3d'))){_0x8e3fb3[_0x9f3e('0x23')]=qs['limit'](_0x11b274[_0x9f3e('0x37')][_0x9f3e('0x23')]);_0x8e3fb3[_0x9f3e('0x25')]=qs[_0x9f3e('0x25')](_0x11b274[_0x9f3e('0x37')][_0x9f3e('0x25')]);}_0x8e3fb3[_0x9f3e('0x3e')]=qs[_0x9f3e('0x3f')](_0x11b274[_0x9f3e('0x37')]['sort']);_0x8e3fb3['where']=qs['filters'](_[_0x9f3e('0x40')](_0x11b274[_0x9f3e('0x37')],_0x4edd7c['filters']),_0x5879e9);if(_0x11b274[_0x9f3e('0x37')]['filter']){_0x8e3fb3[_0x9f3e('0x41')]=_[_0x9f3e('0x42')](_0x8e3fb3['where'],{'$or':_[_0x9f3e('0x30')](_0x5879e9,function(_0x2fcdef){if(_0x2fcdef[_0x9f3e('0x34')]!=='VIRTUAL'){var _0x15154d={};_0x15154d[_0x2fcdef[_0x9f3e('0x2e')]]={'$like':'%'+_0x11b274[_0x9f3e('0x37')][_0x9f3e('0x43')]+'%'};return _0x15154d;}})});}_0x8e3fb3=_['merge']({},_0x8e3fb3,_0x11b274[_0x9f3e('0x44')]);var _0xf915aa={'where':_0x8e3fb3[_0x9f3e('0x41')]};return db[_0x9f3e('0x31')][_0x9f3e('0x24')](_0xf915aa)[_0x9f3e('0x2a')](function(_0x53b81a){_0x43adb6['count']=_0x53b81a;if(_0x11b274[_0x9f3e('0x37')][_0x9f3e('0x45')]){_0x8e3fb3[_0x9f3e('0x46')]=[{'all':!![]}];}return db[_0x9f3e('0x31')][_0x9f3e('0x47')](_0x8e3fb3);})[_0x9f3e('0x2a')](function(_0x53288c){_0x43adb6[_0x9f3e('0x48')]=_0x53288c;return _0x43adb6;})[_0x9f3e('0x2a')](respondWithFilteredResult(_0x5c0f37,_0x8e3fb3))[_0x9f3e('0x49')](handleError(_0x5c0f37,null));};exports[_0x9f3e('0x4a')]=function(_0x706d4c,_0x10de19){var _0xaec895={'raw':!![],'where':{'id':_0x706d4c[_0x9f3e('0x4b')]['id']}},_0x1f65ce={};_0x1f65ce['model']=_['keys'](db[_0x9f3e('0x31')]['rawAttributes']);_0x1f65ce['query']=_[_0x9f3e('0x38')](_0x706d4c['query']);_0x1f65ce[_0x9f3e('0x39')]=_[_0x9f3e('0x3a')](_0x1f65ce[_0x9f3e('0x36')],_0x1f65ce[_0x9f3e('0x37')]);_0xaec895[_0x9f3e('0x3b')]=_[_0x9f3e('0x3a')](_0x1f65ce[_0x9f3e('0x36')],qs[_0x9f3e('0x3c')](_0x706d4c[_0x9f3e('0x37')][_0x9f3e('0x3c')]));_0xaec895[_0x9f3e('0x3b')]=_0xaec895[_0x9f3e('0x3b')][_0x9f3e('0x4c')]?_0xaec895['attributes']:_0x1f65ce[_0x9f3e('0x36')];if(_0x706d4c['query'][_0x9f3e('0x45')]){_0xaec895['include']=[{'all':!![]}];}_0xaec895=_[_0x9f3e('0x42')]({},_0xaec895,_0x706d4c[_0x9f3e('0x44')]);return db[_0x9f3e('0x31')][_0x9f3e('0x4d')](_0xaec895)['then'](handleEntityNotFound(_0x10de19,null))['then'](respondWithResult(_0x10de19,null))[_0x9f3e('0x49')](handleError(_0x10de19,null));};exports['create']=function(_0x2d4183,_0x1a7eca){return db[_0x9f3e('0x31')]['create'](_0x2d4183['body'],{})[_0x9f3e('0x2a')](respondWithResult(_0x1a7eca,0xc9))[_0x9f3e('0x49')](handleError(_0x1a7eca,null));};exports[_0x9f3e('0x4e')]=function(_0x6b68ac,_0xc6c9bf){if(_0x6b68ac[_0x9f3e('0x4f')]['id']){delete _0x6b68ac['body']['id'];}return db['ChatInternalMessage']['find']({'where':{'id':_0x6b68ac[_0x9f3e('0x4b')]['id']}})[_0x9f3e('0x2a')](handleEntityNotFound(_0xc6c9bf,null))[_0x9f3e('0x2a')](saveUpdates(_0x6b68ac['body'],null))[_0x9f3e('0x2a')](respondWithResult(_0xc6c9bf,null))['catch'](handleError(_0xc6c9bf,null));};exports[_0x9f3e('0x2b')]=function(_0x306985,_0x94a5b0){return db[_0x9f3e('0x31')]['find']({'where':{'id':_0x306985[_0x9f3e('0x4b')]['id']}})[_0x9f3e('0x2a')](handleEntityNotFound(_0x94a5b0,null))['then'](removeEntity(_0x94a5b0,null))[_0x9f3e('0x49')](handleError(_0x94a5b0,null));};exports['describe']=function(_0x43ba86,_0x57ae14){return db[_0x9f3e('0x31')][_0x9f3e('0x50')]()['then'](respondWithResult(_0x57ae14,null))['catch'](handleError(_0x57ae14,null));};function wrapUser(_0x34157e){return function(_0x2b8ee8){var _0x5b8433=_0x34157e[_0x9f3e('0x51')]({'plain':!![]});_0x5b8433[_0x9f3e('0x52')]=[];if(_0x2b8ee8){_0x5b8433[_0x9f3e('0x53')]=_0x2b8ee8[_0x9f3e('0x54')];_0x5b8433[_0x9f3e('0x55')]=_0x2b8ee8;}else{_0x5b8433[_0x9f3e('0x53')]=moment(0x0)[_0x9f3e('0x56')](_0x9f3e('0x57'));_0x5b8433[_0x9f3e('0x55')]={};}return _0x5b8433;};}exports[_0x9f3e('0x58')]=function(_0x2a42dd,_0x1812b8,_0x5a659b){var _0x372fb5=[];return db[_0x9f3e('0x59')]['findAll']({'where':{'role':[_0x9f3e('0x5a'),'admin',_0x9f3e('0x5b')]},'attributes':['id',_0x9f3e('0x5c'),'name','role','userpic',_0x9f3e('0x5d'),_0x9f3e('0x5e'),_0x9f3e('0x5f'),_0x9f3e('0x60'),'showWebBar'],'order':qs[_0x9f3e('0x3f')](_0x9f3e('0x61')),'include':[{'model':db['VoiceQueue'],'as':_0x9f3e('0x62'),'attributes':['id','name',_0x9f3e('0x34')],'through':{'attributes':[]}}]})[_0x9f3e('0x2a')](function(_0x74788e){if(_0x74788e){var _0x2ba1b0=_0x2a42dd[_0x9f3e('0x5b')][_0x9f3e('0x51')]({'plain':!![]});if(!_0x2ba1b0)throw new Error(_0x9f3e('0x63'));if(_0x2ba1b0[_0x9f3e('0x64')]==='user'){return db['UserProfileSection'][_0x9f3e('0x4d')]({'where':{'name':'Agents','userProfileId':_0x2ba1b0[_0x9f3e('0x65')]},'raw':!![]})[_0x9f3e('0x2a')](function(_0x22ce86){if(_0x22ce86){if(_0x22ce86[_0x9f3e('0x66')]===0x0){return db['UserProfileResource'][_0x9f3e('0x47')]({'where':{'sectionId':_0x22ce86['id']},'raw':!![]})[_0x9f3e('0x2a')](function(_0x2deedc){var _0x51cd85=[];if(_[_0x9f3e('0x67')](_0x2deedc)){_0x51cd85=_[_0x9f3e('0x43')](_0x74788e,function(_0xf715b7){if(_0xf715b7[_0x9f3e('0x64')]!==_0x9f3e('0x5a')){return _0xf715b7;}});return _0x51cd85;}else{for(var _0x190373=0x0;_0x190373<_0x74788e[_0x9f3e('0x4c')];_0x190373++){var _0x528b52=_0x74788e[_0x190373];if(_0x528b52[_0x9f3e('0x64')]===_0x9f3e('0x5a')){var _0x23b6f9=_[_0x9f3e('0x4d')](_0x2deedc,function(_0x2f3a70){return _0x2f3a70[_0x9f3e('0x68')]===_0x528b52['id'];});if(_0x23b6f9)_0x51cd85['push'](_0x528b52);}else{_0x51cd85[_0x9f3e('0x69')](_0x528b52);}}return _0x51cd85;}});}else{return _0x74788e;}}else{var _0x231656=_['filter'](_0x74788e,function(_0x586686){if(_0x586686[_0x9f3e('0x64')]!==_0x9f3e('0x5a')){return _0x586686;}});return _0x231656;}});}else{return _0x74788e;}}})[_0x9f3e('0x2a')](function(_0x1ab3e6){var _0x49dbe9=[];if(_0x1ab3e6){_0x372fb5=_0x1ab3e6;for(var _0xa172de=0x0;_0xa172de<_0x1ab3e6[_0x9f3e('0x4c')];_0xa172de+=0x1){_0x372fb5[_0xa172de][_0x9f3e('0x52')]=[];_0x49dbe9[_0x9f3e('0x69')](db[_0x9f3e('0x31')]['find']({'where':{'FromId':[_0x2a42dd[_0x9f3e('0x5b')]['id'],_0x1ab3e6[_0xa172de]['id']],'ToId':[_0x2a42dd[_0x9f3e('0x5b')]['id'],_0x1ab3e6[_0xa172de]['id']],'ChatGroupId':null},'attributes':['id',_0x9f3e('0x54'),_0x9f3e('0x6a'),_0x9f3e('0x6b'),_0x9f3e('0x6c'),_0x9f3e('0x4f')],'order':qs[_0x9f3e('0x3f')](_0x9f3e('0x6d')),'limit':0x1,'offset':0x0,'raw':!![]})[_0x9f3e('0x2a')](wrapUser(_0x1ab3e6[_0xa172de])));}return BPromise['all'](_0x49dbe9);}return[];})[_0x9f3e('0x2a')](function(_0x404a68){return{'rows':_0x404a68,'count':_0x404a68[_0x9f3e('0x4c')]};})[_0x9f3e('0x2a')](respondWithResult(_0x1812b8,null))['catch'](handleError(_0x1812b8,null));};