Built motion from commit 9d1906d1.|2.5.40
[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 _0x03ff=['../../mysqldb','localhost','redis','register','sendStatus','status','end','json','offset','undefined','count','set','Content-Range','apply','reject','update','error','name','index','map','ChatInternalMessage','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','limit','order','sort','where','pick','filter','merge','VIRTUAL','options','include','then','rows','catch','show','params','create','body','find','destroy','describe','get','lastMessageAt','createdAt','format','YYYY-MM-DD\x20HH:mm:ss','lastMessage','User','user','role','internal','online','lastLoginAt','showWebBar','-online','VoiceQueue','VoiceQueues','Agents','autoAssociation','UserProfileResource','findAll','isEmpty','agent','resourceId','push','messages','FromId','ToId','read','-createdAt','zip-dir','request-promise','moment','bluebird','util','to-csv','ejs','fs-extra','lodash','squel','jsforce','querystring','papaparse','ioredis','../../config/license/hardware','../../config/logger','../../config/utils','../../config/license/util'];(function(_0x2791b8,_0x34a496){var _0x4be4f5=function(_0x1ad69f){while(--_0x1ad69f){_0x2791b8['push'](_0x2791b8['shift']());}};_0x4be4f5(++_0x34a496);}(_0x03ff,0xba));var _0xf03f=function(_0x46aff0,_0x122890){_0x46aff0=_0x46aff0-0x0;var _0x9d78cf=_0x03ff[_0x46aff0];return _0x9d78cf;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0xf03f('0x0'));var jsonpatch=require('fast-json-patch');var rp=require(_0xf03f('0x1'));var moment=require(_0xf03f('0x2'));var BPromise=require(_0xf03f('0x3'));var Mustache=require('mustache');var util=require(_0xf03f('0x4'));var path=require('path');var sox=require('sox');var csv=require(_0xf03f('0x5'));var ejs=require(_0xf03f('0x6'));var fs=require('fs');var fs_extra=require(_0xf03f('0x7'));var _=require(_0xf03f('0x8'));var squel=require(_0xf03f('0x9'));var crypto=require('crypto');var jsforce=require(_0xf03f('0xa'));var deskjs=require('desk.js');var toCsv=require(_0xf03f('0x5'));var querystring=require(_0xf03f('0xb'));var Papa=require(_0xf03f('0xc'));var Redis=require(_0xf03f('0xd'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xf03f('0xe'));var logger=require(_0xf03f('0xf'))('api');var utils=require(_0xf03f('0x10'));var config=require('../../config/environment');var licenseUtil=require(_0xf03f('0x11'));var db=require(_0xf03f('0x12'))['db'];config['redis']=_['defaults'](config['redis'],{'host':_0xf03f('0x13'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xf03f('0x14')]));require('./chatInternalMessage.socket')[_0xf03f('0x15')](socket);function respondWithStatusCode(_0xe7c0e5,_0x210ee5){_0x210ee5=_0x210ee5||0xcc;return function(_0x43f6d0){if(_0x43f6d0){return _0xe7c0e5[_0xf03f('0x16')](_0x210ee5);}return _0xe7c0e5[_0xf03f('0x17')](_0x210ee5)[_0xf03f('0x18')]();};}function respondWithResult(_0x41ba4b,_0x314773){_0x314773=_0x314773||0xc8;return function(_0x5cc5e9){if(_0x5cc5e9){return _0x41ba4b[_0xf03f('0x17')](_0x314773)[_0xf03f('0x19')](_0x5cc5e9);}};}function respondWithFilteredResult(_0x20bd1e,_0x424d78){return function(_0x390685){if(_0x390685){var _0x120a66=typeof _0x424d78[_0xf03f('0x1a')]===_0xf03f('0x1b')&&typeof _0x424d78['limit']===_0xf03f('0x1b');var _0x394a7f=_0x390685[_0xf03f('0x1c')];var _0x45a149=_0x120a66?0x0:_0x424d78[_0xf03f('0x1a')];var _0x53db5f=_0x120a66?_0x390685['count']:_0x424d78[_0xf03f('0x1a')]+_0x424d78['limit'];var _0x39f4e2;if(_0x53db5f>=_0x394a7f){_0x53db5f=_0x394a7f;_0x39f4e2=0xc8;}else{_0x39f4e2=0xce;}_0x20bd1e[_0xf03f('0x17')](_0x39f4e2);return _0x20bd1e[_0xf03f('0x1d')](_0xf03f('0x1e'),_0x45a149+'-'+_0x53db5f+'/'+_0x394a7f)['json'](_0x390685);}return null;};}function patchUpdates(_0xf25f9a){return function(_0x556deb){try{jsonpatch[_0xf03f('0x1f')](_0x556deb,_0xf25f9a,!![]);}catch(_0x448847){return BPromise[_0xf03f('0x20')](_0x448847);}return _0x556deb['save']();};}function saveUpdates(_0x399985,_0x562425){return function(_0x32ddaa){if(_0x32ddaa){return _0x32ddaa[_0xf03f('0x21')](_0x399985)['then'](function(_0x3fdc50){return _0x3fdc50;});}return null;};}function removeEntity(_0x2466e3,_0x75a7e4){return function(_0x1002f6){if(_0x1002f6){return _0x1002f6['destroy']()['then'](function(){_0x2466e3[_0xf03f('0x17')](0xcc)[_0xf03f('0x18')]();});}};}function handleEntityNotFound(_0x1b82cd,_0x3bc4e4){return function(_0x3768d0){if(!_0x3768d0){_0x1b82cd[_0xf03f('0x16')](0x194);}return _0x3768d0;};}function handleError(_0x2751ea,_0x2caf71){_0x2caf71=_0x2caf71||0x1f4;return function(_0x50f490){logger[_0xf03f('0x22')](_0x50f490['stack']);if(_0x50f490[_0xf03f('0x23')]){delete _0x50f490[_0xf03f('0x23')];}_0x2751ea[_0xf03f('0x17')](_0x2caf71)['send'](_0x50f490);};}exports[_0xf03f('0x24')]=function(_0x3f0ff9,_0x1d7ea4){var _0x41ac97={},_0x542aeb={},_0x5edb18={'count':0x0,'rows':[]};var _0x45ed6a=_[_0xf03f('0x25')](db[_0xf03f('0x26')][_0xf03f('0x27')],function(_0xa68b2a){return{'name':_0xa68b2a[_0xf03f('0x28')],'type':_0xa68b2a[_0xf03f('0x29')][_0xf03f('0x2a')]};});_0x542aeb[_0xf03f('0x2b')]=_['map'](_0x45ed6a,_0xf03f('0x23'));_0x542aeb[_0xf03f('0x2c')]=_[_0xf03f('0x2d')](_0x3f0ff9[_0xf03f('0x2c')]);_0x542aeb[_0xf03f('0x2e')]=_[_0xf03f('0x2f')](_0x542aeb[_0xf03f('0x2b')],_0x542aeb['query']);_0x41ac97[_0xf03f('0x30')]=_[_0xf03f('0x2f')](_0x542aeb['model'],qs[_0xf03f('0x31')](_0x3f0ff9[_0xf03f('0x2c')][_0xf03f('0x31')]));_0x41ac97[_0xf03f('0x30')]=_0x41ac97[_0xf03f('0x30')][_0xf03f('0x32')]?_0x41ac97[_0xf03f('0x30')]:_0x542aeb[_0xf03f('0x2b')];if(!_0x3f0ff9[_0xf03f('0x2c')][_0xf03f('0x33')](_0xf03f('0x34'))){_0x41ac97[_0xf03f('0x35')]=qs[_0xf03f('0x35')](_0x3f0ff9[_0xf03f('0x2c')][_0xf03f('0x35')]);_0x41ac97['offset']=qs['offset'](_0x3f0ff9['query'][_0xf03f('0x1a')]);}_0x41ac97[_0xf03f('0x36')]=qs[_0xf03f('0x37')](_0x3f0ff9[_0xf03f('0x2c')][_0xf03f('0x37')]);_0x41ac97[_0xf03f('0x38')]=qs['filters'](_[_0xf03f('0x39')](_0x3f0ff9[_0xf03f('0x2c')],_0x542aeb[_0xf03f('0x2e')]),_0x45ed6a);if(_0x3f0ff9[_0xf03f('0x2c')][_0xf03f('0x3a')]){_0x41ac97[_0xf03f('0x38')]=_[_0xf03f('0x3b')](_0x41ac97[_0xf03f('0x38')],{'$or':_[_0xf03f('0x25')](_0x45ed6a,function(_0x54cd0b){if(_0x54cd0b[_0xf03f('0x29')]!==_0xf03f('0x3c')){var _0x239c7d={};_0x239c7d[_0x54cd0b[_0xf03f('0x23')]]={'$like':'%'+_0x3f0ff9[_0xf03f('0x2c')][_0xf03f('0x3a')]+'%'};return _0x239c7d;}})});}_0x41ac97=_['merge']({},_0x41ac97,_0x3f0ff9[_0xf03f('0x3d')]);var _0x39be61={'where':_0x41ac97[_0xf03f('0x38')]};return db[_0xf03f('0x26')]['count'](_0x39be61)['then'](function(_0x3509a5){_0x5edb18[_0xf03f('0x1c')]=_0x3509a5;if(_0x3f0ff9[_0xf03f('0x2c')]['includeAll']){_0x41ac97[_0xf03f('0x3e')]=[{'all':!![]}];}return db[_0xf03f('0x26')]['findAll'](_0x41ac97);})[_0xf03f('0x3f')](function(_0xbaf4cf){_0x5edb18[_0xf03f('0x40')]=_0xbaf4cf;return _0x5edb18;})[_0xf03f('0x3f')](respondWithFilteredResult(_0x1d7ea4,_0x41ac97))[_0xf03f('0x41')](handleError(_0x1d7ea4,null));};exports[_0xf03f('0x42')]=function(_0x475b2e,_0x362777){var _0x2f9e85={'raw':!![],'where':{'id':_0x475b2e[_0xf03f('0x43')]['id']}},_0x3216cb={};_0x3216cb['model']=_[_0xf03f('0x2d')](db[_0xf03f('0x26')]['rawAttributes']);_0x3216cb[_0xf03f('0x2c')]=_[_0xf03f('0x2d')](_0x475b2e['query']);_0x3216cb[_0xf03f('0x2e')]=_[_0xf03f('0x2f')](_0x3216cb[_0xf03f('0x2b')],_0x3216cb[_0xf03f('0x2c')]);_0x2f9e85[_0xf03f('0x30')]=_[_0xf03f('0x2f')](_0x3216cb['model'],qs['fields'](_0x475b2e[_0xf03f('0x2c')][_0xf03f('0x31')]));_0x2f9e85[_0xf03f('0x30')]=_0x2f9e85[_0xf03f('0x30')][_0xf03f('0x32')]?_0x2f9e85['attributes']:_0x3216cb[_0xf03f('0x2b')];if(_0x475b2e['query']['includeAll']){_0x2f9e85[_0xf03f('0x3e')]=[{'all':!![]}];}_0x2f9e85=_[_0xf03f('0x3b')]({},_0x2f9e85,_0x475b2e['options']);return db[_0xf03f('0x26')]['find'](_0x2f9e85)[_0xf03f('0x3f')](handleEntityNotFound(_0x362777,null))[_0xf03f('0x3f')](respondWithResult(_0x362777,null))[_0xf03f('0x41')](handleError(_0x362777,null));};exports[_0xf03f('0x44')]=function(_0x259453,_0x4375c6){return db[_0xf03f('0x26')][_0xf03f('0x44')](_0x259453[_0xf03f('0x45')],{})['then'](respondWithResult(_0x4375c6,0xc9))[_0xf03f('0x41')](handleError(_0x4375c6,null));};exports[_0xf03f('0x21')]=function(_0x53bd91,_0x481cd6){if(_0x53bd91[_0xf03f('0x45')]['id']){delete _0x53bd91[_0xf03f('0x45')]['id'];}return db[_0xf03f('0x26')][_0xf03f('0x46')]({'where':{'id':_0x53bd91['params']['id']}})[_0xf03f('0x3f')](handleEntityNotFound(_0x481cd6,null))['then'](saveUpdates(_0x53bd91[_0xf03f('0x45')],null))[_0xf03f('0x3f')](respondWithResult(_0x481cd6,null))['catch'](handleError(_0x481cd6,null));};exports[_0xf03f('0x47')]=function(_0x1c7413,_0x15ed9e){return db[_0xf03f('0x26')][_0xf03f('0x46')]({'where':{'id':_0x1c7413[_0xf03f('0x43')]['id']}})[_0xf03f('0x3f')](handleEntityNotFound(_0x15ed9e,null))[_0xf03f('0x3f')](removeEntity(_0x15ed9e,null))['catch'](handleError(_0x15ed9e,null));};exports[_0xf03f('0x48')]=function(_0x1e43e8,_0x4568b5){return db[_0xf03f('0x26')][_0xf03f('0x48')]()[_0xf03f('0x3f')](respondWithResult(_0x4568b5,null))[_0xf03f('0x41')](handleError(_0x4568b5,null));};function wrapUser(_0x3d2e43){return function(_0x1a2191){var _0x373ff6=_0x3d2e43[_0xf03f('0x49')]({'plain':!![]});_0x373ff6['messages']=[];if(_0x1a2191){_0x373ff6[_0xf03f('0x4a')]=_0x1a2191[_0xf03f('0x4b')];_0x373ff6['lastMessage']=_0x1a2191;}else{_0x373ff6[_0xf03f('0x4a')]=moment(0x0)[_0xf03f('0x4c')](_0xf03f('0x4d'));_0x373ff6[_0xf03f('0x4e')]={};}return _0x373ff6;};}exports['getUsers']=function(_0x4cbcb1,_0x511e48,_0x53a363){var _0x2a561e=[];return db[_0xf03f('0x4f')]['findAll']({'where':{'role':['agent','admin',_0xf03f('0x50')]},'attributes':['id','fullname',_0xf03f('0x23'),_0xf03f('0x51'),'userpic',_0xf03f('0x52'),_0xf03f('0x53'),_0xf03f('0x54'),'allowmessenger',_0xf03f('0x55')],'order':qs[_0xf03f('0x37')](_0xf03f('0x56')),'include':[{'model':db[_0xf03f('0x57')],'as':_0xf03f('0x58'),'attributes':['id',_0xf03f('0x23'),'type'],'through':{'attributes':[]}}]})[_0xf03f('0x3f')](function(_0xd93244){if(_0xd93244){var _0x3f860d=_0x4cbcb1['user']['get']({'plain':!![]});if(!_0x3f860d)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x3f860d[_0xf03f('0x51')]===_0xf03f('0x50')){return db['UserProfileSection'][_0xf03f('0x46')]({'where':{'name':_0xf03f('0x59'),'userProfileId':_0x3f860d['userProfileId']},'raw':!![]})[_0xf03f('0x3f')](function(_0x3d27b3){if(_0x3d27b3){if(_0x3d27b3[_0xf03f('0x5a')]===0x0){return db[_0xf03f('0x5b')][_0xf03f('0x5c')]({'where':{'sectionId':_0x3d27b3['id']},'raw':!![]})[_0xf03f('0x3f')](function(_0x1cf05d){var _0x450911=[];if(_[_0xf03f('0x5d')](_0x1cf05d)){_0x450911=_[_0xf03f('0x3a')](_0xd93244,function(_0x2679af){if(_0x2679af['role']!==_0xf03f('0x5e')){return _0x2679af;}});return _0x450911;}else{for(var _0x2a4878=0x0;_0x2a4878<_0xd93244[_0xf03f('0x32')];_0x2a4878++){var _0x54aa1f=_0xd93244[_0x2a4878];if(_0x54aa1f[_0xf03f('0x51')]===_0xf03f('0x5e')){var _0x3f806f=_[_0xf03f('0x46')](_0x1cf05d,function(_0x2adb5b){return _0x2adb5b[_0xf03f('0x5f')]===_0x54aa1f['id'];});if(_0x3f806f)_0x450911[_0xf03f('0x60')](_0x54aa1f);}else{_0x450911[_0xf03f('0x60')](_0x54aa1f);}}return _0x450911;}});}else{return _0xd93244;}}else{var _0x29dfff=_[_0xf03f('0x3a')](_0xd93244,function(_0x5e4875){if(_0x5e4875[_0xf03f('0x51')]!==_0xf03f('0x5e')){return _0x5e4875;}});return _0x29dfff;}});}else{return _0xd93244;}}})[_0xf03f('0x3f')](function(_0x353ee5){var _0x5ad73e=[];if(_0x353ee5){_0x2a561e=_0x353ee5;for(var _0x2830fe=0x0;_0x2830fe<_0x353ee5[_0xf03f('0x32')];_0x2830fe+=0x1){_0x2a561e[_0x2830fe][_0xf03f('0x61')]=[];_0x5ad73e[_0xf03f('0x60')](db['ChatInternalMessage'][_0xf03f('0x46')]({'where':{'FromId':[_0x4cbcb1[_0xf03f('0x50')]['id'],_0x353ee5[_0x2830fe]['id']],'ToId':[_0x4cbcb1[_0xf03f('0x50')]['id'],_0x353ee5[_0x2830fe]['id']],'ChatGroupId':null},'attributes':['id',_0xf03f('0x4b'),_0xf03f('0x62'),_0xf03f('0x63'),_0xf03f('0x64'),'body'],'order':qs['sort'](_0xf03f('0x65')),'limit':0x1,'offset':0x0,'raw':!![]})[_0xf03f('0x3f')](wrapUser(_0x353ee5[_0x2830fe])));}return BPromise['all'](_0x5ad73e);}return[];})[_0xf03f('0x3f')](function(_0x329270){return{'rows':_0x329270,'count':_0x329270['length']};})[_0xf03f('0x3f')](respondWithResult(_0x511e48,null))['catch'](handleError(_0x511e48,null));};