1557927c1129448bfa276b6132a9277bed66baaf
[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 _0x5192=['zip-dir','fast-json-patch','bluebird','util','path','sox','fs-extra','lodash','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','localhost','socket.io-emitter','./chatInternalMessage.socket','register','status','json','offset','undefined','limit','count','set','apply','reject','save','update','then','destroy','end','stack','name','index','map','rawAttributes','fieldName','type','key','query','filters','intersection','model','attributes','fields','length','nolimit','order','sort','where','pick','merge','VIRTUAL','filter','ChatInternalMessage','includeAll','include','catch','show','params','keys','options','find','create','body','describe','get','messages','lastMessageAt','createdAt','lastMessage','YYYY-MM-DD\x20HH:mm:ss','user','userpic','lastLoginAt','allowmessenger','showWebBar','VoiceQueue','VoiceQueues','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','Agents','autoAssociation','UserProfileResource','findAll','isEmpty','agent','push','FromId','ToId','read','-createdAt','all','eml-format','rimraf'];(function(_0x1886c8,_0x1179d3){var _0x3e26e5=function(_0x557191){while(--_0x557191){_0x1886c8['push'](_0x1886c8['shift']());}};_0x3e26e5(++_0x1179d3);}(_0x5192,0xce));var _0x2519=function(_0x572dc4,_0x48dec4){_0x572dc4=_0x572dc4-0x0;var _0x18a792=_0x5192[_0x572dc4];return _0x18a792;};'use strict';var emlformat=require(_0x2519('0x0'));var rimraf=require(_0x2519('0x1'));var zipdir=require(_0x2519('0x2'));var jsonpatch=require(_0x2519('0x3'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x2519('0x4'));var Mustache=require('mustache');var util=require(_0x2519('0x5'));var path=require(_0x2519('0x6'));var sox=require(_0x2519('0x7'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x2519('0x8'));var _=require(_0x2519('0x9'));var squel=require('squel');var crypto=require(_0x2519('0xa'));var jsforce=require(_0x2519('0xb'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x2519('0xc'));var Papa=require(_0x2519('0xd'));var Redis=require(_0x2519('0xe'));var authService=require(_0x2519('0xf'));var qs=require(_0x2519('0x10'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x2519('0x11'))('api');var utils=require(_0x2519('0x12'));var config=require(_0x2519('0x13'));var licenseUtil=require(_0x2519('0x14'));var db=require(_0x2519('0x15'))['db'];config['redis']=_['defaults'](config[_0x2519('0x16')],{'host':_0x2519('0x17'),'port':0x18eb});var socket=require(_0x2519('0x18'))(new Redis(config[_0x2519('0x16')]));require(_0x2519('0x19'))[_0x2519('0x1a')](socket);function respondWithStatusCode(_0x3c4dbc,_0x364930){_0x364930=_0x364930||0xcc;return function(_0x21d97d){if(_0x21d97d){return _0x3c4dbc['sendStatus'](_0x364930);}return _0x3c4dbc[_0x2519('0x1b')](_0x364930)['end']();};}function respondWithResult(_0x451e63,_0x58f555){_0x58f555=_0x58f555||0xc8;return function(_0x56ce38){if(_0x56ce38){return _0x451e63['status'](_0x58f555)[_0x2519('0x1c')](_0x56ce38);}};}function respondWithFilteredResult(_0x1949bd,_0x59f649){return function(_0x37df53){if(_0x37df53){var _0x424c26=typeof _0x59f649[_0x2519('0x1d')]===_0x2519('0x1e')&&typeof _0x59f649[_0x2519('0x1f')]===_0x2519('0x1e');var _0x2a8691=_0x37df53['count'];var _0x3a5223=_0x424c26?0x0:_0x59f649[_0x2519('0x1d')];var _0x42f68a=_0x424c26?_0x37df53[_0x2519('0x20')]:_0x59f649[_0x2519('0x1d')]+_0x59f649['limit'];var _0x43c474;if(_0x42f68a>=_0x2a8691){_0x42f68a=_0x2a8691;_0x43c474=0xc8;}else{_0x43c474=0xce;}_0x1949bd[_0x2519('0x1b')](_0x43c474);return _0x1949bd[_0x2519('0x21')]('Content-Range',_0x3a5223+'-'+_0x42f68a+'/'+_0x2a8691)[_0x2519('0x1c')](_0x37df53);}return null;};}function patchUpdates(_0x1779db){return function(_0x16a3c6){try{jsonpatch[_0x2519('0x22')](_0x16a3c6,_0x1779db,!![]);}catch(_0x563de7){return BPromise[_0x2519('0x23')](_0x563de7);}return _0x16a3c6[_0x2519('0x24')]();};}function saveUpdates(_0x382a19,_0x1b03a1){return function(_0x22061d){if(_0x22061d){return _0x22061d[_0x2519('0x25')](_0x382a19)[_0x2519('0x26')](function(_0x4b507c){return _0x4b507c;});}return null;};}function removeEntity(_0x52a908,_0x8512d5){return function(_0xbc1147){if(_0xbc1147){return _0xbc1147[_0x2519('0x27')]()[_0x2519('0x26')](function(){_0x52a908['status'](0xcc)[_0x2519('0x28')]();});}};}function handleEntityNotFound(_0x340a58,_0x3f05fa){return function(_0xf62d14){if(!_0xf62d14){_0x340a58['sendStatus'](0x194);}return _0xf62d14;};}function handleError(_0x536c48,_0x292b65){_0x292b65=_0x292b65||0x1f4;return function(_0x38dbdf){logger['error'](_0x38dbdf[_0x2519('0x29')]);if(_0x38dbdf[_0x2519('0x2a')]){delete _0x38dbdf[_0x2519('0x2a')];}_0x536c48[_0x2519('0x1b')](_0x292b65)['send'](_0x38dbdf);};}exports[_0x2519('0x2b')]=function(_0x429ca5,_0x5f0a4c){var _0x556c64={},_0x393bad={},_0x33ddff={'count':0x0,'rows':[]};var _0x3a37e8=_[_0x2519('0x2c')](db['ChatInternalMessage'][_0x2519('0x2d')],function(_0x20ba66){return{'name':_0x20ba66[_0x2519('0x2e')],'type':_0x20ba66[_0x2519('0x2f')][_0x2519('0x30')]};});_0x393bad['model']=_[_0x2519('0x2c')](_0x3a37e8,_0x2519('0x2a'));_0x393bad[_0x2519('0x31')]=_['keys'](_0x429ca5[_0x2519('0x31')]);_0x393bad[_0x2519('0x32')]=_[_0x2519('0x33')](_0x393bad[_0x2519('0x34')],_0x393bad[_0x2519('0x31')]);_0x556c64[_0x2519('0x35')]=_[_0x2519('0x33')](_0x393bad[_0x2519('0x34')],qs[_0x2519('0x36')](_0x429ca5[_0x2519('0x31')][_0x2519('0x36')]));_0x556c64[_0x2519('0x35')]=_0x556c64[_0x2519('0x35')][_0x2519('0x37')]?_0x556c64[_0x2519('0x35')]:_0x393bad['model'];if(!_0x429ca5['query']['hasOwnProperty'](_0x2519('0x38'))){_0x556c64[_0x2519('0x1f')]=qs[_0x2519('0x1f')](_0x429ca5['query'][_0x2519('0x1f')]);_0x556c64[_0x2519('0x1d')]=qs[_0x2519('0x1d')](_0x429ca5['query'][_0x2519('0x1d')]);}_0x556c64[_0x2519('0x39')]=qs[_0x2519('0x3a')](_0x429ca5[_0x2519('0x31')][_0x2519('0x3a')]);_0x556c64[_0x2519('0x3b')]=qs['filters'](_[_0x2519('0x3c')](_0x429ca5[_0x2519('0x31')],_0x393bad[_0x2519('0x32')]),_0x3a37e8);if(_0x429ca5[_0x2519('0x31')]['filter']){_0x556c64[_0x2519('0x3b')]=_[_0x2519('0x3d')](_0x556c64['where'],{'$or':_[_0x2519('0x2c')](_0x3a37e8,function(_0x1bc9a6){if(_0x1bc9a6['type']!==_0x2519('0x3e')){var _0x520bde={};_0x520bde[_0x1bc9a6['name']]={'$like':'%'+_0x429ca5['query'][_0x2519('0x3f')]+'%'};return _0x520bde;}})});}_0x556c64=_['merge']({},_0x556c64,_0x429ca5['options']);var _0x5c0d9b={'where':_0x556c64['where']};return db[_0x2519('0x40')][_0x2519('0x20')](_0x5c0d9b)[_0x2519('0x26')](function(_0x552933){_0x33ddff['count']=_0x552933;if(_0x429ca5[_0x2519('0x31')][_0x2519('0x41')]){_0x556c64[_0x2519('0x42')]=[{'all':!![]}];}return db[_0x2519('0x40')]['findAll'](_0x556c64);})[_0x2519('0x26')](function(_0x2376d6){_0x33ddff['rows']=_0x2376d6;return _0x33ddff;})[_0x2519('0x26')](respondWithFilteredResult(_0x5f0a4c,_0x556c64))[_0x2519('0x43')](handleError(_0x5f0a4c,null));};exports[_0x2519('0x44')]=function(_0x1599b1,_0x189064){var _0x55fa3d={'raw':!![],'where':{'id':_0x1599b1[_0x2519('0x45')]['id']}},_0x3e7bc9={};_0x3e7bc9[_0x2519('0x34')]=_['keys'](db[_0x2519('0x40')][_0x2519('0x2d')]);_0x3e7bc9[_0x2519('0x31')]=_[_0x2519('0x46')](_0x1599b1[_0x2519('0x31')]);_0x3e7bc9[_0x2519('0x32')]=_[_0x2519('0x33')](_0x3e7bc9[_0x2519('0x34')],_0x3e7bc9['query']);_0x55fa3d['attributes']=_['intersection'](_0x3e7bc9['model'],qs[_0x2519('0x36')](_0x1599b1['query'][_0x2519('0x36')]));_0x55fa3d[_0x2519('0x35')]=_0x55fa3d[_0x2519('0x35')]['length']?_0x55fa3d[_0x2519('0x35')]:_0x3e7bc9['model'];if(_0x1599b1['query'][_0x2519('0x41')]){_0x55fa3d['include']=[{'all':!![]}];}_0x55fa3d=_[_0x2519('0x3d')]({},_0x55fa3d,_0x1599b1[_0x2519('0x47')]);return db['ChatInternalMessage'][_0x2519('0x48')](_0x55fa3d)[_0x2519('0x26')](handleEntityNotFound(_0x189064,null))['then'](respondWithResult(_0x189064,null))[_0x2519('0x43')](handleError(_0x189064,null));};exports[_0x2519('0x49')]=function(_0x11fc7d,_0x3dccec){return db['ChatInternalMessage']['create'](_0x11fc7d[_0x2519('0x4a')],{})[_0x2519('0x26')](respondWithResult(_0x3dccec,0xc9))['catch'](handleError(_0x3dccec,null));};exports[_0x2519('0x25')]=function(_0x5255f9,_0x44dcf7){if(_0x5255f9[_0x2519('0x4a')]['id']){delete _0x5255f9[_0x2519('0x4a')]['id'];}return db[_0x2519('0x40')]['find']({'where':{'id':_0x5255f9[_0x2519('0x45')]['id']}})[_0x2519('0x26')](handleEntityNotFound(_0x44dcf7,null))[_0x2519('0x26')](saveUpdates(_0x5255f9[_0x2519('0x4a')],null))[_0x2519('0x26')](respondWithResult(_0x44dcf7,null))[_0x2519('0x43')](handleError(_0x44dcf7,null));};exports[_0x2519('0x27')]=function(_0x556b88,_0xbcb7aa){return db[_0x2519('0x40')][_0x2519('0x48')]({'where':{'id':_0x556b88[_0x2519('0x45')]['id']}})[_0x2519('0x26')](handleEntityNotFound(_0xbcb7aa,null))[_0x2519('0x26')](removeEntity(_0xbcb7aa,null))[_0x2519('0x43')](handleError(_0xbcb7aa,null));};exports[_0x2519('0x4b')]=function(_0x1bfd04,_0x23ab4a){return db['ChatInternalMessage'][_0x2519('0x4b')]()[_0x2519('0x26')](respondWithResult(_0x23ab4a,null))[_0x2519('0x43')](handleError(_0x23ab4a,null));};function wrapUser(_0x27718f){return function(_0x2fe6b3){var _0x1745cf=_0x27718f[_0x2519('0x4c')]({'plain':!![]});_0x1745cf[_0x2519('0x4d')]=[];if(_0x2fe6b3){_0x1745cf[_0x2519('0x4e')]=_0x2fe6b3[_0x2519('0x4f')];_0x1745cf[_0x2519('0x50')]=_0x2fe6b3;}else{_0x1745cf[_0x2519('0x4e')]=moment(0x0)['format'](_0x2519('0x51'));_0x1745cf['lastMessage']={};}return _0x1745cf;};}exports['getUsers']=function(_0x43e5f4,_0x3fb717,_0x172b89){var _0x18cb49=[];return db['User']['findAll']({'where':{'role':['agent','admin',_0x2519('0x52')]},'attributes':['id','fullname',_0x2519('0x2a'),'role',_0x2519('0x53'),'internal','online',_0x2519('0x54'),_0x2519('0x55'),_0x2519('0x56')],'order':qs[_0x2519('0x3a')]('-online'),'include':[{'model':db[_0x2519('0x57')],'as':_0x2519('0x58'),'attributes':['id',_0x2519('0x2a'),_0x2519('0x2f')],'through':{'attributes':[]}}]})[_0x2519('0x26')](function(_0x474788){if(_0x474788){var _0x3bdfbf=_0x43e5f4['user'][_0x2519('0x4c')]({'plain':!![]});if(!_0x3bdfbf)throw new Error(_0x2519('0x59'));if(_0x3bdfbf[_0x2519('0x5a')]===_0x2519('0x52')){return db[_0x2519('0x5b')]['find']({'where':{'name':_0x2519('0x5c'),'userProfileId':_0x3bdfbf['userProfileId']},'raw':!![]})[_0x2519('0x26')](function(_0x8e8259){if(_0x8e8259){if(_0x8e8259[_0x2519('0x5d')]===0x0){return db[_0x2519('0x5e')][_0x2519('0x5f')]({'where':{'sectionId':_0x8e8259['id']},'raw':!![]})['then'](function(_0x384ac6){var _0x46a9bd=[];if(_[_0x2519('0x60')](_0x384ac6)){_0x46a9bd=_[_0x2519('0x3f')](_0x474788,function(_0x6c04a9){if(_0x6c04a9['role']!=='agent'){return _0x6c04a9;}});return _0x46a9bd;}else{for(var _0x388461=0x0;_0x388461<_0x474788[_0x2519('0x37')];_0x388461++){var _0x347f49=_0x474788[_0x388461];if(_0x347f49[_0x2519('0x5a')]===_0x2519('0x61')){var _0x4de8d5=_['find'](_0x384ac6,function(_0x2adcfe){return _0x2adcfe['resourceId']===_0x347f49['id'];});if(_0x4de8d5)_0x46a9bd[_0x2519('0x62')](_0x347f49);}else{_0x46a9bd[_0x2519('0x62')](_0x347f49);}}return _0x46a9bd;}});}else{return _0x474788;}}else{var _0x293ec9=_[_0x2519('0x3f')](_0x474788,function(_0x3dfbc8){if(_0x3dfbc8['role']!==_0x2519('0x61')){return _0x3dfbc8;}});return _0x293ec9;}});}else{return _0x474788;}}})[_0x2519('0x26')](function(_0x283d28){var _0xff57a9=[];if(_0x283d28){_0x18cb49=_0x283d28;for(var _0x356b0a=0x0;_0x356b0a<_0x283d28[_0x2519('0x37')];_0x356b0a+=0x1){_0x18cb49[_0x356b0a][_0x2519('0x4d')]=[];_0xff57a9['push'](db[_0x2519('0x40')][_0x2519('0x48')]({'where':{'FromId':[_0x43e5f4[_0x2519('0x52')]['id'],_0x283d28[_0x356b0a]['id']],'ToId':[_0x43e5f4[_0x2519('0x52')]['id'],_0x283d28[_0x356b0a]['id']],'ChatGroupId':null},'attributes':['id','createdAt',_0x2519('0x63'),_0x2519('0x64'),_0x2519('0x65'),_0x2519('0x4a')],'order':qs[_0x2519('0x3a')](_0x2519('0x66')),'limit':0x1,'offset':0x0,'raw':!![]})[_0x2519('0x26')](wrapUser(_0x283d28[_0x356b0a])));}return BPromise[_0x2519('0x67')](_0xff57a9);}return[];})[_0x2519('0x26')](function(_0x286889){return{'rows':_0x286889,'count':_0x286889['length']};})['then'](respondWithResult(_0x3fb717,null))[_0x2519('0x43')](handleError(_0x3fb717,null));};