Built motion from commit 87cd5f02.|2.5.48
[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 _0xa509=['status','end','json','undefined','limit','count','offset','set','Content-Range','reject','save','update','destroy','then','stack','name','map','ChatInternalMessage','rawAttributes','fieldName','type','key','model','query','intersection','attributes','length','hasOwnProperty','nolimit','order','sort','filters','pick','filter','where','merge','VIRTUAL','options','includeAll','include','catch','show','params','keys','find','create','body','describe','get','messages','lastMessageAt','createdAt','YYYY-MM-DD\x20HH:mm:ss','lastMessage','User','agent','admin','user','role','internal','online','lastLoginAt','allowmessenger','showWebBar','-online','VoiceQueue','VoiceQueues','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','Agents','findAll','isEmpty','FromId','read','-createdAt','all','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','to-csv','fs-extra','squel','crypto','jsforce','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/environment','../../mysqldb','redis','defaults','localhost','socket.io-emitter','register','sendStatus'];(function(_0x7fc0a1,_0x13bf61){var _0x3bd86c=function(_0x4bcedb){while(--_0x4bcedb){_0x7fc0a1['push'](_0x7fc0a1['shift']());}};_0x3bd86c(++_0x13bf61);}(_0xa509,0x116));var _0x9a50=function(_0x122ef9,_0x451d2a){_0x122ef9=_0x122ef9-0x0;var _0x42fba0=_0xa509[_0x122ef9];return _0x42fba0;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x9a50('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0x9a50('0x1'));var rp=require(_0x9a50('0x2'));var moment=require(_0x9a50('0x3'));var BPromise=require(_0x9a50('0x4'));var Mustache=require(_0x9a50('0x5'));var util=require('util');var path=require(_0x9a50('0x6'));var sox=require(_0x9a50('0x7'));var csv=require(_0x9a50('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x9a50('0x9'));var _=require('lodash');var squel=require(_0x9a50('0xa'));var crypto=require(_0x9a50('0xb'));var jsforce=require(_0x9a50('0xc'));var deskjs=require('desk.js');var toCsv=require(_0x9a50('0x8'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x9a50('0xd'));var authService=require(_0x9a50('0xe'));var qs=require('../../components/parsers/qs');var as=require(_0x9a50('0xf'));var hardwareService=require(_0x9a50('0x10'));var logger=require('../../config/logger')('api');var utils=require('../../config/utils');var config=require(_0x9a50('0x11'));var licenseUtil=require('../../config/license/util');var db=require(_0x9a50('0x12'))['db'];config[_0x9a50('0x13')]=_[_0x9a50('0x14')](config[_0x9a50('0x13')],{'host':_0x9a50('0x15'),'port':0x18eb});var socket=require(_0x9a50('0x16'))(new Redis(config[_0x9a50('0x13')]));require('./chatInternalMessage.socket')[_0x9a50('0x17')](socket);function respondWithStatusCode(_0x207d54,_0x3b9296){_0x3b9296=_0x3b9296||0xcc;return function(_0x20b45a){if(_0x20b45a){return _0x207d54[_0x9a50('0x18')](_0x3b9296);}return _0x207d54[_0x9a50('0x19')](_0x3b9296)[_0x9a50('0x1a')]();};}function respondWithResult(_0x48c6c2,_0xa66224){_0xa66224=_0xa66224||0xc8;return function(_0x613c4a){if(_0x613c4a){return _0x48c6c2[_0x9a50('0x19')](_0xa66224)[_0x9a50('0x1b')](_0x613c4a);}};}function respondWithFilteredResult(_0x23d6ff,_0x41f7d3){return function(_0xa03300){if(_0xa03300){var _0x2e5008=typeof _0x41f7d3['offset']===_0x9a50('0x1c')&&typeof _0x41f7d3[_0x9a50('0x1d')]==='undefined';var _0xce905b=_0xa03300[_0x9a50('0x1e')];var _0x30ba85=_0x2e5008?0x0:_0x41f7d3[_0x9a50('0x1f')];var _0x4d3470=_0x2e5008?_0xa03300[_0x9a50('0x1e')]:_0x41f7d3[_0x9a50('0x1f')]+_0x41f7d3[_0x9a50('0x1d')];var _0x1728f8;if(_0x4d3470>=_0xce905b){_0x4d3470=_0xce905b;_0x1728f8=0xc8;}else{_0x1728f8=0xce;}_0x23d6ff[_0x9a50('0x19')](_0x1728f8);return _0x23d6ff[_0x9a50('0x20')](_0x9a50('0x21'),_0x30ba85+'-'+_0x4d3470+'/'+_0xce905b)[_0x9a50('0x1b')](_0xa03300);}return null;};}function patchUpdates(_0x5be54c){return function(_0x3a77f6){try{jsonpatch['apply'](_0x3a77f6,_0x5be54c,!![]);}catch(_0x1000de){return BPromise[_0x9a50('0x22')](_0x1000de);}return _0x3a77f6[_0x9a50('0x23')]();};}function saveUpdates(_0x1f6b12,_0x1adac1){return function(_0x3e862a){if(_0x3e862a){return _0x3e862a[_0x9a50('0x24')](_0x1f6b12)['then'](function(_0x14e5cb){return _0x14e5cb;});}return null;};}function removeEntity(_0x12d309,_0x44eb37){return function(_0x4deed7){if(_0x4deed7){return _0x4deed7[_0x9a50('0x25')]()[_0x9a50('0x26')](function(){_0x12d309[_0x9a50('0x19')](0xcc)[_0x9a50('0x1a')]();});}};}function handleEntityNotFound(_0x4960ae,_0xd69d8f){return function(_0x5039f8){if(!_0x5039f8){_0x4960ae[_0x9a50('0x18')](0x194);}return _0x5039f8;};}function handleError(_0x2419d0,_0x1ec380){_0x1ec380=_0x1ec380||0x1f4;return function(_0x43e54e){logger['error'](_0x43e54e[_0x9a50('0x27')]);if(_0x43e54e[_0x9a50('0x28')]){delete _0x43e54e[_0x9a50('0x28')];}_0x2419d0[_0x9a50('0x19')](_0x1ec380)['send'](_0x43e54e);};}exports['index']=function(_0x2d225e,_0x26406d){var _0x5e8a0e={},_0x59af66={},_0x2d6781={'count':0x0,'rows':[]};var _0xfdb065=_[_0x9a50('0x29')](db[_0x9a50('0x2a')][_0x9a50('0x2b')],function(_0x541a46){return{'name':_0x541a46[_0x9a50('0x2c')],'type':_0x541a46[_0x9a50('0x2d')][_0x9a50('0x2e')]};});_0x59af66[_0x9a50('0x2f')]=_[_0x9a50('0x29')](_0xfdb065,_0x9a50('0x28'));_0x59af66[_0x9a50('0x30')]=_['keys'](_0x2d225e[_0x9a50('0x30')]);_0x59af66['filters']=_[_0x9a50('0x31')](_0x59af66[_0x9a50('0x2f')],_0x59af66[_0x9a50('0x30')]);_0x5e8a0e[_0x9a50('0x32')]=_[_0x9a50('0x31')](_0x59af66[_0x9a50('0x2f')],qs['fields'](_0x2d225e['query']['fields']));_0x5e8a0e[_0x9a50('0x32')]=_0x5e8a0e[_0x9a50('0x32')][_0x9a50('0x33')]?_0x5e8a0e[_0x9a50('0x32')]:_0x59af66[_0x9a50('0x2f')];if(!_0x2d225e[_0x9a50('0x30')][_0x9a50('0x34')](_0x9a50('0x35'))){_0x5e8a0e['limit']=qs['limit'](_0x2d225e[_0x9a50('0x30')][_0x9a50('0x1d')]);_0x5e8a0e[_0x9a50('0x1f')]=qs[_0x9a50('0x1f')](_0x2d225e[_0x9a50('0x30')][_0x9a50('0x1f')]);}_0x5e8a0e[_0x9a50('0x36')]=qs[_0x9a50('0x37')](_0x2d225e[_0x9a50('0x30')][_0x9a50('0x37')]);_0x5e8a0e['where']=qs[_0x9a50('0x38')](_[_0x9a50('0x39')](_0x2d225e[_0x9a50('0x30')],_0x59af66['filters']),_0xfdb065);if(_0x2d225e[_0x9a50('0x30')][_0x9a50('0x3a')]){_0x5e8a0e[_0x9a50('0x3b')]=_[_0x9a50('0x3c')](_0x5e8a0e[_0x9a50('0x3b')],{'$or':_[_0x9a50('0x29')](_0xfdb065,function(_0x3ba49b){if(_0x3ba49b[_0x9a50('0x2d')]!==_0x9a50('0x3d')){var _0x5c9d14={};_0x5c9d14[_0x3ba49b[_0x9a50('0x28')]]={'$like':'%'+_0x2d225e[_0x9a50('0x30')][_0x9a50('0x3a')]+'%'};return _0x5c9d14;}})});}_0x5e8a0e=_[_0x9a50('0x3c')]({},_0x5e8a0e,_0x2d225e[_0x9a50('0x3e')]);var _0x15c037={'where':_0x5e8a0e[_0x9a50('0x3b')]};return db[_0x9a50('0x2a')][_0x9a50('0x1e')](_0x15c037)[_0x9a50('0x26')](function(_0x5a7f70){_0x2d6781[_0x9a50('0x1e')]=_0x5a7f70;if(_0x2d225e[_0x9a50('0x30')][_0x9a50('0x3f')]){_0x5e8a0e[_0x9a50('0x40')]=[{'all':!![]}];}return db[_0x9a50('0x2a')]['findAll'](_0x5e8a0e);})[_0x9a50('0x26')](function(_0x79b52f){_0x2d6781['rows']=_0x79b52f;return _0x2d6781;})[_0x9a50('0x26')](respondWithFilteredResult(_0x26406d,_0x5e8a0e))[_0x9a50('0x41')](handleError(_0x26406d,null));};exports[_0x9a50('0x42')]=function(_0x31b118,_0x396699){var _0x338714={'raw':!![],'where':{'id':_0x31b118[_0x9a50('0x43')]['id']}},_0x21d473={};_0x21d473['model']=_[_0x9a50('0x44')](db['ChatInternalMessage'][_0x9a50('0x2b')]);_0x21d473[_0x9a50('0x30')]=_['keys'](_0x31b118[_0x9a50('0x30')]);_0x21d473[_0x9a50('0x38')]=_[_0x9a50('0x31')](_0x21d473[_0x9a50('0x2f')],_0x21d473[_0x9a50('0x30')]);_0x338714[_0x9a50('0x32')]=_[_0x9a50('0x31')](_0x21d473['model'],qs['fields'](_0x31b118[_0x9a50('0x30')]['fields']));_0x338714[_0x9a50('0x32')]=_0x338714[_0x9a50('0x32')][_0x9a50('0x33')]?_0x338714['attributes']:_0x21d473['model'];if(_0x31b118[_0x9a50('0x30')][_0x9a50('0x3f')]){_0x338714[_0x9a50('0x40')]=[{'all':!![]}];}_0x338714=_[_0x9a50('0x3c')]({},_0x338714,_0x31b118['options']);return db[_0x9a50('0x2a')][_0x9a50('0x45')](_0x338714)[_0x9a50('0x26')](handleEntityNotFound(_0x396699,null))[_0x9a50('0x26')](respondWithResult(_0x396699,null))[_0x9a50('0x41')](handleError(_0x396699,null));};exports[_0x9a50('0x46')]=function(_0x4786bd,_0x14e728){return db[_0x9a50('0x2a')][_0x9a50('0x46')](_0x4786bd[_0x9a50('0x47')],{})[_0x9a50('0x26')](respondWithResult(_0x14e728,0xc9))['catch'](handleError(_0x14e728,null));};exports[_0x9a50('0x24')]=function(_0x3fac26,_0x5dd5b1){if(_0x3fac26[_0x9a50('0x47')]['id']){delete _0x3fac26[_0x9a50('0x47')]['id'];}return db[_0x9a50('0x2a')][_0x9a50('0x45')]({'where':{'id':_0x3fac26['params']['id']}})[_0x9a50('0x26')](handleEntityNotFound(_0x5dd5b1,null))[_0x9a50('0x26')](saveUpdates(_0x3fac26[_0x9a50('0x47')],null))['then'](respondWithResult(_0x5dd5b1,null))[_0x9a50('0x41')](handleError(_0x5dd5b1,null));};exports['destroy']=function(_0x24f957,_0x51c6ed){return db['ChatInternalMessage']['find']({'where':{'id':_0x24f957[_0x9a50('0x43')]['id']}})[_0x9a50('0x26')](handleEntityNotFound(_0x51c6ed,null))[_0x9a50('0x26')](removeEntity(_0x51c6ed,null))['catch'](handleError(_0x51c6ed,null));};exports[_0x9a50('0x48')]=function(_0x248fb8,_0x455217){return db['ChatInternalMessage'][_0x9a50('0x48')]()[_0x9a50('0x26')](respondWithResult(_0x455217,null))[_0x9a50('0x41')](handleError(_0x455217,null));};function wrapUser(_0x396d5b){return function(_0x23f694){var _0x8cb97a=_0x396d5b[_0x9a50('0x49')]({'plain':!![]});_0x8cb97a[_0x9a50('0x4a')]=[];if(_0x23f694){_0x8cb97a[_0x9a50('0x4b')]=_0x23f694[_0x9a50('0x4c')];_0x8cb97a['lastMessage']=_0x23f694;}else{_0x8cb97a[_0x9a50('0x4b')]=moment(0x0)['format'](_0x9a50('0x4d'));_0x8cb97a[_0x9a50('0x4e')]={};}return _0x8cb97a;};}exports['getUsers']=function(_0x26c53b,_0x3a430d,_0x10126a){var _0x4fbc16=[];return db[_0x9a50('0x4f')]['findAll']({'where':{'role':[_0x9a50('0x50'),_0x9a50('0x51'),_0x9a50('0x52')]},'attributes':['id','fullname',_0x9a50('0x28'),_0x9a50('0x53'),'userpic',_0x9a50('0x54'),_0x9a50('0x55'),_0x9a50('0x56'),_0x9a50('0x57'),_0x9a50('0x58')],'order':qs['sort'](_0x9a50('0x59')),'include':[{'model':db[_0x9a50('0x5a')],'as':_0x9a50('0x5b'),'attributes':['id',_0x9a50('0x28'),_0x9a50('0x2d')],'through':{'attributes':[]}}]})[_0x9a50('0x26')](function(_0x27919a){if(_0x27919a){var _0x486a3e=_0x26c53b[_0x9a50('0x52')][_0x9a50('0x49')]({'plain':!![]});if(!_0x486a3e)throw new Error(_0x9a50('0x5c'));if(_0x486a3e[_0x9a50('0x53')]==='user'){return db[_0x9a50('0x5d')][_0x9a50('0x45')]({'where':{'name':_0x9a50('0x5e'),'userProfileId':_0x486a3e['userProfileId']},'raw':!![]})['then'](function(_0x195796){if(_0x195796){if(_0x195796['autoAssociation']===0x0){return db['UserProfileResource'][_0x9a50('0x5f')]({'where':{'sectionId':_0x195796['id']},'raw':!![]})[_0x9a50('0x26')](function(_0x3001c9){var _0x987932=[];if(_[_0x9a50('0x60')](_0x3001c9)){_0x987932=_[_0x9a50('0x3a')](_0x27919a,function(_0x5d330e){if(_0x5d330e[_0x9a50('0x53')]!==_0x9a50('0x50')){return _0x5d330e;}});return _0x987932;}else{for(var _0x5b1beb=0x0;_0x5b1beb<_0x27919a['length'];_0x5b1beb++){var _0x5be8dd=_0x27919a[_0x5b1beb];if(_0x5be8dd[_0x9a50('0x53')]===_0x9a50('0x50')){var _0x1367a4=_['find'](_0x3001c9,function(_0x25be90){return _0x25be90['resourceId']===_0x5be8dd['id'];});if(_0x1367a4)_0x987932['push'](_0x5be8dd);}else{_0x987932['push'](_0x5be8dd);}}return _0x987932;}});}else{return _0x27919a;}}else{var _0x5e4c7e=_[_0x9a50('0x3a')](_0x27919a,function(_0x3172d8){if(_0x3172d8[_0x9a50('0x53')]!==_0x9a50('0x50')){return _0x3172d8;}});return _0x5e4c7e;}});}else{return _0x27919a;}}})[_0x9a50('0x26')](function(_0x4866e7){var _0x17c0a8=[];if(_0x4866e7){_0x4fbc16=_0x4866e7;for(var _0x70f6f1=0x0;_0x70f6f1<_0x4866e7[_0x9a50('0x33')];_0x70f6f1+=0x1){_0x4fbc16[_0x70f6f1][_0x9a50('0x4a')]=[];_0x17c0a8['push'](db[_0x9a50('0x2a')][_0x9a50('0x45')]({'where':{'FromId':[_0x26c53b['user']['id'],_0x4866e7[_0x70f6f1]['id']],'ToId':[_0x26c53b['user']['id'],_0x4866e7[_0x70f6f1]['id']],'ChatGroupId':null},'attributes':['id',_0x9a50('0x4c'),_0x9a50('0x61'),'ToId',_0x9a50('0x62'),_0x9a50('0x47')],'order':qs['sort'](_0x9a50('0x63')),'limit':0x1,'offset':0x0,'raw':!![]})['then'](wrapUser(_0x4866e7[_0x70f6f1])));}return BPromise[_0x9a50('0x64')](_0x17c0a8);}return[];})['then'](function(_0x3fea2f){return{'rows':_0x3fea2f,'count':_0x3fea2f[_0x9a50('0x33')]};})[_0x9a50('0x26')](respondWithResult(_0x3a430d,null))[_0x9a50('0x41')](handleError(_0x3a430d,null));};