Built motion from commit 3c2ce842.|2.6.31
[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 _0x6126=['intersection','attributes','fields','hasOwnProperty','sort','where','filters','pick','filter','merge','VIRTUAL','options','includeAll','include','rows','catch','create','body','update','find','params','destroy','describe','messages','lastMessageAt','createdAt','lastMessage','YYYY-MM-DD\x20HH:mm:ss','getUsers','User','admin','user','fullname','role','userpic','internal','lastLoginAt','allowmessenger','showWebBar','-online','VoiceQueues','get','Agents','autoAssociation','UserProfileResource','findAll','isEmpty','agent','length','push','FromId','ToId','read','-createdAt','all','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','crypto','jsforce','desk.js','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/utils','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./chatInternalMessage.socket','status','end','offset','undefined','limit','count','set','Content-Range','apply','reject','save','then','sendStatus','error','stack','send','index','map','ChatInternalMessage','rawAttributes','fieldName','type','key','model','name','query','keys'];(function(_0x888381,_0xfc8d0e){var _0x6037c6=function(_0x33d719){while(--_0x33d719){_0x888381['push'](_0x888381['shift']());}};_0x6037c6(++_0xfc8d0e);}(_0x6126,0xa7));var _0x6612=function(_0x222b3f,_0x133be7){_0x222b3f=_0x222b3f-0x0;var _0x20b57a=_0x6126[_0x222b3f];return _0x20b57a;};'use strict';var emlformat=require(_0x6612('0x0'));var rimraf=require(_0x6612('0x1'));var zipdir=require(_0x6612('0x2'));var jsonpatch=require(_0x6612('0x3'));var rp=require(_0x6612('0x4'));var moment=require(_0x6612('0x5'));var BPromise=require(_0x6612('0x6'));var Mustache=require(_0x6612('0x7'));var util=require(_0x6612('0x8'));var path=require(_0x6612('0x9'));var sox=require(_0x6612('0xa'));var csv=require(_0x6612('0xb'));var ejs=require(_0x6612('0xc'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x6612('0xd'));var squel=require('squel');var crypto=require(_0x6612('0xe'));var jsforce=require(_0x6612('0xf'));var deskjs=require(_0x6612('0x10'));var toCsv=require(_0x6612('0xb'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x6612('0x11'));var authService=require(_0x6612('0x12'));var qs=require(_0x6612('0x13'));var as=require(_0x6612('0x14'));var hardwareService=require(_0x6612('0x15'));var logger=require('../../config/logger')('api');var utils=require(_0x6612('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0x6612('0x17'));var db=require(_0x6612('0x18'))['db'];config[_0x6612('0x19')]=_[_0x6612('0x1a')](config[_0x6612('0x19')],{'host':_0x6612('0x1b'),'port':0x18eb});var socket=require(_0x6612('0x1c'))(new Redis(config[_0x6612('0x19')]));require(_0x6612('0x1d'))['register'](socket);function respondWithStatusCode(_0x7fd4b2,_0x351c5f){_0x351c5f=_0x351c5f||0xcc;return function(_0x7009c2){if(_0x7009c2){return _0x7fd4b2['sendStatus'](_0x351c5f);}return _0x7fd4b2[_0x6612('0x1e')](_0x351c5f)[_0x6612('0x1f')]();};}function respondWithResult(_0x83a1dd,_0x19fb13){_0x19fb13=_0x19fb13||0xc8;return function(_0x39a4cc){if(_0x39a4cc){return _0x83a1dd[_0x6612('0x1e')](_0x19fb13)['json'](_0x39a4cc);}};}function respondWithFilteredResult(_0x1ee491,_0x4cfcd8){return function(_0x52205f){if(_0x52205f){var _0x1a4abf=typeof _0x4cfcd8[_0x6612('0x20')]===_0x6612('0x21')&&typeof _0x4cfcd8[_0x6612('0x22')]===_0x6612('0x21');var _0x159502=_0x52205f[_0x6612('0x23')];var _0x1db0fe=_0x1a4abf?0x0:_0x4cfcd8['offset'];var _0x228d50=_0x1a4abf?_0x52205f[_0x6612('0x23')]:_0x4cfcd8[_0x6612('0x20')]+_0x4cfcd8[_0x6612('0x22')];var _0x8012e0;if(_0x228d50>=_0x159502){_0x228d50=_0x159502;_0x8012e0=0xc8;}else{_0x8012e0=0xce;}_0x1ee491[_0x6612('0x1e')](_0x8012e0);return _0x1ee491[_0x6612('0x24')](_0x6612('0x25'),_0x1db0fe+'-'+_0x228d50+'/'+_0x159502)['json'](_0x52205f);}return null;};}function patchUpdates(_0x264105){return function(_0x2d6c51){try{jsonpatch[_0x6612('0x26')](_0x2d6c51,_0x264105,!![]);}catch(_0xb1c303){return BPromise[_0x6612('0x27')](_0xb1c303);}return _0x2d6c51[_0x6612('0x28')]();};}function saveUpdates(_0x2ca239,_0x510a3d){return function(_0x1f0b1a){if(_0x1f0b1a){return _0x1f0b1a['update'](_0x2ca239)[_0x6612('0x29')](function(_0xbcdd88){return _0xbcdd88;});}return null;};}function removeEntity(_0x1427fc,_0x55764e){return function(_0xf510e6){if(_0xf510e6){return _0xf510e6['destroy']()[_0x6612('0x29')](function(){_0x1427fc['status'](0xcc)[_0x6612('0x1f')]();});}};}function handleEntityNotFound(_0x43b628,_0x30e899){return function(_0x140605){if(!_0x140605){_0x43b628[_0x6612('0x2a')](0x194);}return _0x140605;};}function handleError(_0x1be189,_0x382e1a){_0x382e1a=_0x382e1a||0x1f4;return function(_0x3b5b57){logger[_0x6612('0x2b')](_0x3b5b57[_0x6612('0x2c')]);if(_0x3b5b57['name']){delete _0x3b5b57['name'];}_0x1be189['status'](_0x382e1a)[_0x6612('0x2d')](_0x3b5b57);};}exports[_0x6612('0x2e')]=function(_0x5b6412,_0x58ac8f){var _0x26be8a={},_0x12f9b6={},_0x59fd69={'count':0x0,'rows':[]};var _0x592e68=_[_0x6612('0x2f')](db[_0x6612('0x30')][_0x6612('0x31')],function(_0x16f3e2){return{'name':_0x16f3e2[_0x6612('0x32')],'type':_0x16f3e2[_0x6612('0x33')][_0x6612('0x34')]};});_0x12f9b6[_0x6612('0x35')]=_['map'](_0x592e68,_0x6612('0x36'));_0x12f9b6[_0x6612('0x37')]=_[_0x6612('0x38')](_0x5b6412[_0x6612('0x37')]);_0x12f9b6['filters']=_[_0x6612('0x39')](_0x12f9b6[_0x6612('0x35')],_0x12f9b6[_0x6612('0x37')]);_0x26be8a[_0x6612('0x3a')]=_['intersection'](_0x12f9b6[_0x6612('0x35')],qs[_0x6612('0x3b')](_0x5b6412[_0x6612('0x37')][_0x6612('0x3b')]));_0x26be8a[_0x6612('0x3a')]=_0x26be8a[_0x6612('0x3a')]['length']?_0x26be8a[_0x6612('0x3a')]:_0x12f9b6[_0x6612('0x35')];if(!_0x5b6412['query'][_0x6612('0x3c')]('nolimit')){_0x26be8a['limit']=qs['limit'](_0x5b6412[_0x6612('0x37')][_0x6612('0x22')]);_0x26be8a['offset']=qs[_0x6612('0x20')](_0x5b6412[_0x6612('0x37')][_0x6612('0x20')]);}_0x26be8a['order']=qs[_0x6612('0x3d')](_0x5b6412[_0x6612('0x37')][_0x6612('0x3d')]);_0x26be8a[_0x6612('0x3e')]=qs[_0x6612('0x3f')](_[_0x6612('0x40')](_0x5b6412['query'],_0x12f9b6[_0x6612('0x3f')]),_0x592e68);if(_0x5b6412[_0x6612('0x37')][_0x6612('0x41')]){_0x26be8a['where']=_[_0x6612('0x42')](_0x26be8a[_0x6612('0x3e')],{'$or':_['map'](_0x592e68,function(_0x1f45e9){if(_0x1f45e9[_0x6612('0x33')]!==_0x6612('0x43')){var _0x5c83b4={};_0x5c83b4[_0x1f45e9[_0x6612('0x36')]]={'$like':'%'+_0x5b6412['query'][_0x6612('0x41')]+'%'};return _0x5c83b4;}})});}_0x26be8a=_[_0x6612('0x42')]({},_0x26be8a,_0x5b6412[_0x6612('0x44')]);var _0x1b5965={'where':_0x26be8a[_0x6612('0x3e')]};return db[_0x6612('0x30')][_0x6612('0x23')](_0x1b5965)[_0x6612('0x29')](function(_0x49616f){_0x59fd69[_0x6612('0x23')]=_0x49616f;if(_0x5b6412[_0x6612('0x37')][_0x6612('0x45')]){_0x26be8a[_0x6612('0x46')]=[{'all':!![]}];}return db[_0x6612('0x30')]['findAll'](_0x26be8a);})['then'](function(_0x27bc36){_0x59fd69[_0x6612('0x47')]=_0x27bc36;return _0x59fd69;})['then'](respondWithFilteredResult(_0x58ac8f,_0x26be8a))[_0x6612('0x48')](handleError(_0x58ac8f,null));};exports['show']=function(_0x2e6afc,_0x4b6dba){var _0x21bcae={'raw':!![],'where':{'id':_0x2e6afc['params']['id']}},_0x14c64c={};_0x14c64c['model']=_[_0x6612('0x38')](db[_0x6612('0x30')]['rawAttributes']);_0x14c64c['query']=_[_0x6612('0x38')](_0x2e6afc[_0x6612('0x37')]);_0x14c64c[_0x6612('0x3f')]=_[_0x6612('0x39')](_0x14c64c['model'],_0x14c64c['query']);_0x21bcae[_0x6612('0x3a')]=_['intersection'](_0x14c64c[_0x6612('0x35')],qs[_0x6612('0x3b')](_0x2e6afc[_0x6612('0x37')][_0x6612('0x3b')]));_0x21bcae[_0x6612('0x3a')]=_0x21bcae[_0x6612('0x3a')]['length']?_0x21bcae[_0x6612('0x3a')]:_0x14c64c[_0x6612('0x35')];if(_0x2e6afc[_0x6612('0x37')]['includeAll']){_0x21bcae[_0x6612('0x46')]=[{'all':!![]}];}_0x21bcae=_[_0x6612('0x42')]({},_0x21bcae,_0x2e6afc[_0x6612('0x44')]);return db['ChatInternalMessage']['find'](_0x21bcae)['then'](handleEntityNotFound(_0x4b6dba,null))['then'](respondWithResult(_0x4b6dba,null))[_0x6612('0x48')](handleError(_0x4b6dba,null));};exports[_0x6612('0x49')]=function(_0x5b46f4,_0x48113b){return db['ChatInternalMessage'][_0x6612('0x49')](_0x5b46f4[_0x6612('0x4a')],{})[_0x6612('0x29')](respondWithResult(_0x48113b,0xc9))[_0x6612('0x48')](handleError(_0x48113b,null));};exports[_0x6612('0x4b')]=function(_0xcd6f81,_0x507006){if(_0xcd6f81['body']['id']){delete _0xcd6f81['body']['id'];}return db['ChatInternalMessage'][_0x6612('0x4c')]({'where':{'id':_0xcd6f81[_0x6612('0x4d')]['id']}})[_0x6612('0x29')](handleEntityNotFound(_0x507006,null))[_0x6612('0x29')](saveUpdates(_0xcd6f81[_0x6612('0x4a')],null))['then'](respondWithResult(_0x507006,null))[_0x6612('0x48')](handleError(_0x507006,null));};exports[_0x6612('0x4e')]=function(_0x5757a9,_0xf962cd){return db[_0x6612('0x30')]['find']({'where':{'id':_0x5757a9[_0x6612('0x4d')]['id']}})[_0x6612('0x29')](handleEntityNotFound(_0xf962cd,null))[_0x6612('0x29')](removeEntity(_0xf962cd,null))[_0x6612('0x48')](handleError(_0xf962cd,null));};exports[_0x6612('0x4f')]=function(_0x1f6fdf,_0x1058a6){return db[_0x6612('0x30')]['describe']()[_0x6612('0x29')](respondWithResult(_0x1058a6,null))['catch'](handleError(_0x1058a6,null));};function wrapUser(_0x4d25d8){return function(_0x1b4b1a){var _0x247d7b=_0x4d25d8['get']({'plain':!![]});_0x247d7b[_0x6612('0x50')]=[];if(_0x1b4b1a){_0x247d7b[_0x6612('0x51')]=_0x1b4b1a[_0x6612('0x52')];_0x247d7b[_0x6612('0x53')]=_0x1b4b1a;}else{_0x247d7b[_0x6612('0x51')]=moment(0x0)['format'](_0x6612('0x54'));_0x247d7b['lastMessage']={};}return _0x247d7b;};}exports[_0x6612('0x55')]=function(_0x20d7a2,_0x434859,_0x2b574c){var _0x1b0090=[];return db[_0x6612('0x56')]['findAll']({'where':{'role':['agent',_0x6612('0x57'),_0x6612('0x58')]},'attributes':['id',_0x6612('0x59'),_0x6612('0x36'),_0x6612('0x5a'),_0x6612('0x5b'),_0x6612('0x5c'),'online',_0x6612('0x5d'),_0x6612('0x5e'),_0x6612('0x5f')],'order':qs[_0x6612('0x3d')](_0x6612('0x60')),'include':[{'model':db['VoiceQueue'],'as':_0x6612('0x61'),'attributes':['id','name',_0x6612('0x33')],'through':{'attributes':[]}}]})[_0x6612('0x29')](function(_0x1b7dea){if(_0x1b7dea){var _0x77bb7a=_0x20d7a2['user'][_0x6612('0x62')]({'plain':!![]});if(!_0x77bb7a)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x77bb7a[_0x6612('0x5a')]==='user'){return db['UserProfileSection'][_0x6612('0x4c')]({'where':{'name':_0x6612('0x63'),'userProfileId':_0x77bb7a['userProfileId']},'raw':!![]})[_0x6612('0x29')](function(_0x41fe27){if(_0x41fe27){if(_0x41fe27[_0x6612('0x64')]===0x0){return db[_0x6612('0x65')][_0x6612('0x66')]({'where':{'sectionId':_0x41fe27['id']},'raw':!![]})[_0x6612('0x29')](function(_0x51e444){var _0x380e2a=[];if(_[_0x6612('0x67')](_0x51e444)){_0x380e2a=_[_0x6612('0x41')](_0x1b7dea,function(_0x59c2a9){if(_0x59c2a9[_0x6612('0x5a')]!==_0x6612('0x68')){return _0x59c2a9;}});return _0x380e2a;}else{for(var _0x35867c=0x0;_0x35867c<_0x1b7dea[_0x6612('0x69')];_0x35867c++){var _0x11d0e6=_0x1b7dea[_0x35867c];if(_0x11d0e6[_0x6612('0x5a')]===_0x6612('0x68')){var _0x4b0a5d=_[_0x6612('0x4c')](_0x51e444,function(_0x58ff1e){return _0x58ff1e['resourceId']===_0x11d0e6['id'];});if(_0x4b0a5d)_0x380e2a[_0x6612('0x6a')](_0x11d0e6);}else{_0x380e2a[_0x6612('0x6a')](_0x11d0e6);}}return _0x380e2a;}});}else{return _0x1b7dea;}}else{var _0x26f735=_[_0x6612('0x41')](_0x1b7dea,function(_0x1690cd){if(_0x1690cd['role']!=='agent'){return _0x1690cd;}});return _0x26f735;}});}else{return _0x1b7dea;}}})[_0x6612('0x29')](function(_0xc88a55){var _0x38cda2=[];if(_0xc88a55){_0x1b0090=_0xc88a55;for(var _0x2d7c46=0x0;_0x2d7c46<_0xc88a55[_0x6612('0x69')];_0x2d7c46+=0x1){_0x1b0090[_0x2d7c46]['messages']=[];_0x38cda2['push'](db[_0x6612('0x30')][_0x6612('0x4c')]({'where':{'FromId':[_0x20d7a2['user']['id'],_0xc88a55[_0x2d7c46]['id']],'ToId':[_0x20d7a2[_0x6612('0x58')]['id'],_0xc88a55[_0x2d7c46]['id']],'ChatGroupId':null},'attributes':['id',_0x6612('0x52'),_0x6612('0x6b'),_0x6612('0x6c'),_0x6612('0x6d'),_0x6612('0x4a')],'order':qs[_0x6612('0x3d')](_0x6612('0x6e')),'limit':0x1,'offset':0x0,'raw':!![]})[_0x6612('0x29')](wrapUser(_0xc88a55[_0x2d7c46])));}return BPromise[_0x6612('0x6f')](_0x38cda2);}return[];})[_0x6612('0x29')](function(_0x244f6e){return{'rows':_0x244f6e,'count':_0x244f6e[_0x6612('0x69')]};})[_0x6612('0x29')](respondWithResult(_0x434859,null))[_0x6612('0x48')](handleError(_0x434859,null));};