b8605dff492020df5ecadc3fc14bcbc449416f51
[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 _0x3b71=['./chatInternalMessage.socket','sendStatus','end','status','json','offset','undefined','limit','count','set','apply','reject','save','update','then','destroy','stack','send','index','map','ChatInternalMessage','fieldName','type','model','name','query','keys','filters','intersection','attributes','fields','length','sort','where','merge','filter','options','includeAll','findAll','catch','show','params','rawAttributes','include','create','body','find','messages','lastMessageAt','createdAt','lastMessage','format','getUsers','User','agent','admin','user','fullname','role','userpic','internal','online','lastLoginAt','allowmessenger','showWebBar','-online','VoiceQueues','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','Agents','userProfileId','UserProfileResource','isEmpty','resourceId','push','FromId','ToId','read','-createdAt','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','to-csv','fs-extra','lodash','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','api','../../config/utils','../../config/license/util','defaults','redis','socket.io-emitter'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x3b71,0x181));var _0x13b7=function(_0x4949e2,_0x1bf3be){_0x4949e2=_0x4949e2-0x0;var _0x1e45d8=_0x3b71[_0x4949e2];return _0x1e45d8;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x13b7('0x0'));var zipdir=require(_0x13b7('0x1'));var jsonpatch=require(_0x13b7('0x2'));var rp=require(_0x13b7('0x3'));var moment=require(_0x13b7('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x13b7('0x5'));var util=require(_0x13b7('0x6'));var path=require('path');var sox=require('sox');var csv=require(_0x13b7('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x13b7('0x8'));var _=require(_0x13b7('0x9'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x13b7('0xa'));var deskjs=require(_0x13b7('0xb'));var toCsv=require(_0x13b7('0x7'));var querystring=require(_0x13b7('0xc'));var Papa=require(_0x13b7('0xd'));var Redis=require('ioredis');var authService=require(_0x13b7('0xe'));var qs=require(_0x13b7('0xf'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x13b7('0x10'));var logger=require('../../config/logger')(_0x13b7('0x11'));var utils=require(_0x13b7('0x12'));var config=require('../../config/environment');var licenseUtil=require(_0x13b7('0x13'));var db=require('../../mysqldb')['db'];config['redis']=_[_0x13b7('0x14')](config[_0x13b7('0x15')],{'host':'localhost','port':0x18eb});var socket=require(_0x13b7('0x16'))(new Redis(config[_0x13b7('0x15')]));require(_0x13b7('0x17'))['register'](socket);function respondWithStatusCode(_0x26fa4b,_0x2822b9){_0x2822b9=_0x2822b9||0xcc;return function(_0x4f93fd){if(_0x4f93fd){return _0x26fa4b[_0x13b7('0x18')](_0x2822b9);}return _0x26fa4b['status'](_0x2822b9)[_0x13b7('0x19')]();};}function respondWithResult(_0x2d9f9f,_0x1f51c3){_0x1f51c3=_0x1f51c3||0xc8;return function(_0x84f408){if(_0x84f408){return _0x2d9f9f[_0x13b7('0x1a')](_0x1f51c3)[_0x13b7('0x1b')](_0x84f408);}};}function respondWithFilteredResult(_0xd4144a,_0x3c4cba){return function(_0x3dc345){if(_0x3dc345){var _0x3fb14c=typeof _0x3c4cba[_0x13b7('0x1c')]===_0x13b7('0x1d')&&typeof _0x3c4cba[_0x13b7('0x1e')]==='undefined';var _0xec09d9=_0x3dc345[_0x13b7('0x1f')];var _0x2e4f15=_0x3fb14c?0x0:_0x3c4cba[_0x13b7('0x1c')];var _0x346bc0=_0x3fb14c?_0x3dc345[_0x13b7('0x1f')]:_0x3c4cba['offset']+_0x3c4cba[_0x13b7('0x1e')];var _0x4b1b73;if(_0x346bc0>=_0xec09d9){_0x346bc0=_0xec09d9;_0x4b1b73=0xc8;}else{_0x4b1b73=0xce;}_0xd4144a[_0x13b7('0x1a')](_0x4b1b73);return _0xd4144a[_0x13b7('0x20')]('Content-Range',_0x2e4f15+'-'+_0x346bc0+'/'+_0xec09d9)[_0x13b7('0x1b')](_0x3dc345);}return null;};}function patchUpdates(_0xff9324){return function(_0x13246b){try{jsonpatch[_0x13b7('0x21')](_0x13246b,_0xff9324,!![]);}catch(_0x2a85a5){return BPromise[_0x13b7('0x22')](_0x2a85a5);}return _0x13246b[_0x13b7('0x23')]();};}function saveUpdates(_0x21d474,_0x3ac2e1){return function(_0x55144b){if(_0x55144b){return _0x55144b[_0x13b7('0x24')](_0x21d474)[_0x13b7('0x25')](function(_0x21e8a1){return _0x21e8a1;});}return null;};}function removeEntity(_0x584f76,_0x2cfc5c){return function(_0x265b61){if(_0x265b61){return _0x265b61[_0x13b7('0x26')]()[_0x13b7('0x25')](function(){_0x584f76[_0x13b7('0x1a')](0xcc)[_0x13b7('0x19')]();});}};}function handleEntityNotFound(_0x231cee,_0xa51bd1){return function(_0x21ece9){if(!_0x21ece9){_0x231cee[_0x13b7('0x18')](0x194);}return _0x21ece9;};}function handleError(_0x5e4723,_0x366b47){_0x366b47=_0x366b47||0x1f4;return function(_0x1ab4c8){logger['error'](_0x1ab4c8[_0x13b7('0x27')]);if(_0x1ab4c8['name']){delete _0x1ab4c8['name'];}_0x5e4723[_0x13b7('0x1a')](_0x366b47)[_0x13b7('0x28')](_0x1ab4c8);};}exports[_0x13b7('0x29')]=function(_0x190e60,_0x54e634){var _0x5a3bc4={},_0x4a88b1={},_0x38df97={'count':0x0,'rows':[]};var _0x5214f5=_[_0x13b7('0x2a')](db[_0x13b7('0x2b')]['rawAttributes'],function(_0x4c4bdd){return{'name':_0x4c4bdd[_0x13b7('0x2c')],'type':_0x4c4bdd[_0x13b7('0x2d')]['key']};});_0x4a88b1[_0x13b7('0x2e')]=_[_0x13b7('0x2a')](_0x5214f5,_0x13b7('0x2f'));_0x4a88b1[_0x13b7('0x30')]=_[_0x13b7('0x31')](_0x190e60[_0x13b7('0x30')]);_0x4a88b1[_0x13b7('0x32')]=_[_0x13b7('0x33')](_0x4a88b1['model'],_0x4a88b1[_0x13b7('0x30')]);_0x5a3bc4[_0x13b7('0x34')]=_[_0x13b7('0x33')](_0x4a88b1[_0x13b7('0x2e')],qs[_0x13b7('0x35')](_0x190e60[_0x13b7('0x30')]['fields']));_0x5a3bc4[_0x13b7('0x34')]=_0x5a3bc4[_0x13b7('0x34')][_0x13b7('0x36')]?_0x5a3bc4[_0x13b7('0x34')]:_0x4a88b1[_0x13b7('0x2e')];if(!_0x190e60['query']['hasOwnProperty']('nolimit')){_0x5a3bc4[_0x13b7('0x1e')]=qs[_0x13b7('0x1e')](_0x190e60[_0x13b7('0x30')][_0x13b7('0x1e')]);_0x5a3bc4[_0x13b7('0x1c')]=qs[_0x13b7('0x1c')](_0x190e60[_0x13b7('0x30')][_0x13b7('0x1c')]);}_0x5a3bc4['order']=qs[_0x13b7('0x37')](_0x190e60[_0x13b7('0x30')][_0x13b7('0x37')]);_0x5a3bc4[_0x13b7('0x38')]=qs[_0x13b7('0x32')](_['pick'](_0x190e60['query'],_0x4a88b1['filters']),_0x5214f5);if(_0x190e60[_0x13b7('0x30')]['filter']){_0x5a3bc4[_0x13b7('0x38')]=_[_0x13b7('0x39')](_0x5a3bc4[_0x13b7('0x38')],{'$or':_[_0x13b7('0x2a')](_0x5214f5,function(_0x36b60b){if(_0x36b60b[_0x13b7('0x2d')]!=='VIRTUAL'){var _0x123c61={};_0x123c61[_0x36b60b['name']]={'$like':'%'+_0x190e60[_0x13b7('0x30')][_0x13b7('0x3a')]+'%'};return _0x123c61;}})});}_0x5a3bc4=_[_0x13b7('0x39')]({},_0x5a3bc4,_0x190e60[_0x13b7('0x3b')]);var _0x4e9a4a={'where':_0x5a3bc4[_0x13b7('0x38')]};return db[_0x13b7('0x2b')][_0x13b7('0x1f')](_0x4e9a4a)['then'](function(_0x1008cb){_0x38df97[_0x13b7('0x1f')]=_0x1008cb;if(_0x190e60[_0x13b7('0x30')][_0x13b7('0x3c')]){_0x5a3bc4['include']=[{'all':!![]}];}return db[_0x13b7('0x2b')][_0x13b7('0x3d')](_0x5a3bc4);})['then'](function(_0x23271b){_0x38df97['rows']=_0x23271b;return _0x38df97;})[_0x13b7('0x25')](respondWithFilteredResult(_0x54e634,_0x5a3bc4))[_0x13b7('0x3e')](handleError(_0x54e634,null));};exports[_0x13b7('0x3f')]=function(_0x256a3e,_0x168705){var _0x1c6ed1={'raw':!![],'where':{'id':_0x256a3e[_0x13b7('0x40')]['id']}},_0x491af1={};_0x491af1[_0x13b7('0x2e')]=_['keys'](db[_0x13b7('0x2b')][_0x13b7('0x41')]);_0x491af1['query']=_[_0x13b7('0x31')](_0x256a3e['query']);_0x491af1[_0x13b7('0x32')]=_['intersection'](_0x491af1[_0x13b7('0x2e')],_0x491af1[_0x13b7('0x30')]);_0x1c6ed1[_0x13b7('0x34')]=_[_0x13b7('0x33')](_0x491af1[_0x13b7('0x2e')],qs[_0x13b7('0x35')](_0x256a3e['query'][_0x13b7('0x35')]));_0x1c6ed1[_0x13b7('0x34')]=_0x1c6ed1[_0x13b7('0x34')][_0x13b7('0x36')]?_0x1c6ed1['attributes']:_0x491af1[_0x13b7('0x2e')];if(_0x256a3e[_0x13b7('0x30')][_0x13b7('0x3c')]){_0x1c6ed1[_0x13b7('0x42')]=[{'all':!![]}];}_0x1c6ed1=_[_0x13b7('0x39')]({},_0x1c6ed1,_0x256a3e['options']);return db['ChatInternalMessage']['find'](_0x1c6ed1)['then'](handleEntityNotFound(_0x168705,null))[_0x13b7('0x25')](respondWithResult(_0x168705,null))[_0x13b7('0x3e')](handleError(_0x168705,null));};exports['create']=function(_0x2a4172,_0x202623){return db[_0x13b7('0x2b')][_0x13b7('0x43')](_0x2a4172[_0x13b7('0x44')],{})['then'](respondWithResult(_0x202623,0xc9))[_0x13b7('0x3e')](handleError(_0x202623,null));};exports['update']=function(_0x403b0c,_0x1c725b){if(_0x403b0c[_0x13b7('0x44')]['id']){delete _0x403b0c[_0x13b7('0x44')]['id'];}return db[_0x13b7('0x2b')][_0x13b7('0x45')]({'where':{'id':_0x403b0c[_0x13b7('0x40')]['id']}})[_0x13b7('0x25')](handleEntityNotFound(_0x1c725b,null))[_0x13b7('0x25')](saveUpdates(_0x403b0c[_0x13b7('0x44')],null))[_0x13b7('0x25')](respondWithResult(_0x1c725b,null))[_0x13b7('0x3e')](handleError(_0x1c725b,null));};exports['destroy']=function(_0x35bd5b,_0x43055f){return db[_0x13b7('0x2b')][_0x13b7('0x45')]({'where':{'id':_0x35bd5b['params']['id']}})[_0x13b7('0x25')](handleEntityNotFound(_0x43055f,null))[_0x13b7('0x25')](removeEntity(_0x43055f,null))[_0x13b7('0x3e')](handleError(_0x43055f,null));};exports['describe']=function(_0x1144ed,_0x3e491){return db[_0x13b7('0x2b')]['describe']()[_0x13b7('0x25')](respondWithResult(_0x3e491,null))[_0x13b7('0x3e')](handleError(_0x3e491,null));};function wrapUser(_0x134df3){return function(_0x5886ef){var _0x39a720=_0x134df3['get']({'plain':!![]});_0x39a720[_0x13b7('0x46')]=[];if(_0x5886ef){_0x39a720[_0x13b7('0x47')]=_0x5886ef[_0x13b7('0x48')];_0x39a720[_0x13b7('0x49')]=_0x5886ef;}else{_0x39a720[_0x13b7('0x47')]=moment(0x0)[_0x13b7('0x4a')]('YYYY-MM-DD\x20HH:mm:ss');_0x39a720[_0x13b7('0x49')]={};}return _0x39a720;};}exports[_0x13b7('0x4b')]=function(_0x3135da,_0x54af24,_0x5a0022){var _0x125c24=[];return db[_0x13b7('0x4c')]['findAll']({'where':{'role':[_0x13b7('0x4d'),_0x13b7('0x4e'),_0x13b7('0x4f')]},'attributes':['id',_0x13b7('0x50'),_0x13b7('0x2f'),_0x13b7('0x51'),_0x13b7('0x52'),_0x13b7('0x53'),_0x13b7('0x54'),_0x13b7('0x55'),_0x13b7('0x56'),_0x13b7('0x57')],'order':qs[_0x13b7('0x37')](_0x13b7('0x58')),'include':[{'model':db['VoiceQueue'],'as':_0x13b7('0x59'),'attributes':['id',_0x13b7('0x2f'),_0x13b7('0x2d')],'through':{'attributes':[]}}]})[_0x13b7('0x25')](function(_0x434552){if(_0x434552){var _0x1b8215=_0x3135da[_0x13b7('0x4f')][_0x13b7('0x5a')]({'plain':!![]});if(!_0x1b8215)throw new Error(_0x13b7('0x5b'));if(_0x1b8215['role']===_0x13b7('0x4f')){return db['UserProfileSection'][_0x13b7('0x45')]({'where':{'name':_0x13b7('0x5c'),'userProfileId':_0x1b8215[_0x13b7('0x5d')]},'raw':!![]})[_0x13b7('0x25')](function(_0x31329d){if(_0x31329d){if(_0x31329d['autoAssociation']===0x0){return db[_0x13b7('0x5e')][_0x13b7('0x3d')]({'where':{'sectionId':_0x31329d['id']},'raw':!![]})['then'](function(_0xb0d3f4){var _0x3489c8=[];if(_[_0x13b7('0x5f')](_0xb0d3f4)){_0x3489c8=_['filter'](_0x434552,function(_0x47730f){if(_0x47730f[_0x13b7('0x51')]!=='agent'){return _0x47730f;}});return _0x3489c8;}else{for(var _0x2c6a3f=0x0;_0x2c6a3f<_0x434552[_0x13b7('0x36')];_0x2c6a3f++){var _0x3fdaf6=_0x434552[_0x2c6a3f];if(_0x3fdaf6[_0x13b7('0x51')]===_0x13b7('0x4d')){var _0xf78590=_[_0x13b7('0x45')](_0xb0d3f4,function(_0x2a78cb){return _0x2a78cb[_0x13b7('0x60')]===_0x3fdaf6['id'];});if(_0xf78590)_0x3489c8[_0x13b7('0x61')](_0x3fdaf6);}else{_0x3489c8['push'](_0x3fdaf6);}}return _0x3489c8;}});}else{return _0x434552;}}else{var _0x41e938=_['filter'](_0x434552,function(_0x2a27c1){if(_0x2a27c1[_0x13b7('0x51')]!==_0x13b7('0x4d')){return _0x2a27c1;}});return _0x41e938;}});}else{return _0x434552;}}})[_0x13b7('0x25')](function(_0x2d3bec){var _0x1309d5=[];if(_0x2d3bec){_0x125c24=_0x2d3bec;for(var _0x2822d4=0x0;_0x2822d4<_0x2d3bec['length'];_0x2822d4+=0x1){_0x125c24[_0x2822d4]['messages']=[];_0x1309d5[_0x13b7('0x61')](db[_0x13b7('0x2b')]['find']({'where':{'FromId':[_0x3135da['user']['id'],_0x2d3bec[_0x2822d4]['id']],'ToId':[_0x3135da[_0x13b7('0x4f')]['id'],_0x2d3bec[_0x2822d4]['id']],'ChatGroupId':null},'attributes':['id',_0x13b7('0x48'),_0x13b7('0x62'),_0x13b7('0x63'),_0x13b7('0x64'),_0x13b7('0x44')],'order':qs['sort'](_0x13b7('0x65')),'limit':0x1,'offset':0x0,'raw':!![]})[_0x13b7('0x25')](wrapUser(_0x2d3bec[_0x2822d4])));}return BPromise['all'](_0x1309d5);}return[];})['then'](function(_0x10ed99){return{'rows':_0x10ed99,'count':_0x10ed99['length']};})['then'](respondWithResult(_0x54af24,null))[_0x13b7('0x3e')](handleError(_0x54af24,null));};