c2d6487e1481af0643ac39aa33ca475079a025ef
[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 _0x492e=['where','merge','VIRTUAL','options','includeAll','include','catch','show','params','rawAttributes','length','find','create','body','describe','get','messages','lastMessageAt','YYYY-MM-DD\x20HH:mm:ss','lastMessage','getUsers','User','findAll','user','role','userpic','lastLoginAt','allowmessenger','showWebBar','VoiceQueues','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','Agents','userProfileId','UserProfileResource','isEmpty','agent','push','createdAt','FromId','ToId','read','-createdAt','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','moment','mustache','util','path','sox','to-csv','ejs','lodash','squel','jsforce','querystring','ioredis','api','../../config/utils','../../config/environment','../../config/license/util','redis','defaults','localhost','socket.io-emitter','./chatInternalMessage.socket','register','status','end','json','count','offset','limit','set','Content-Range','apply','reject','save','update','destroy','then','sendStatus','error','stack','name','send','index','map','ChatInternalMessage','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','sort','pick','filter'];(function(_0x32b50d,_0x4e0723){var _0x1b4bfd=function(_0x21d1dc){while(--_0x21d1dc){_0x32b50d['push'](_0x32b50d['shift']());}};_0x1b4bfd(++_0x4e0723);}(_0x492e,0x166));var _0xe492=function(_0x598436,_0x18f1f5){_0x598436=_0x598436-0x0;var _0x41dd0f=_0x492e[_0x598436];return _0x41dd0f;};'use strict';var pdf=require(_0xe492('0x0'));var emlformat=require(_0xe492('0x1'));var rimraf=require(_0xe492('0x2'));var zipdir=require(_0xe492('0x3'));var jsonpatch=require(_0xe492('0x4'));var rp=require('request-promise');var moment=require(_0xe492('0x5'));var BPromise=require('bluebird');var Mustache=require(_0xe492('0x6'));var util=require(_0xe492('0x7'));var path=require(_0xe492('0x8'));var sox=require(_0xe492('0x9'));var csv=require(_0xe492('0xa'));var ejs=require(_0xe492('0xb'));var fs=require('fs');var _=require(_0xe492('0xc'));var squel=require(_0xe492('0xd'));var crypto=require('crypto');var jsforce=require(_0xe492('0xe'));var deskjs=require('desk.js');var toCsv=require(_0xe492('0xa'));var querystring=require(_0xe492('0xf'));var Papa=require('papaparse');var Redis=require(_0xe492('0x10'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0xe492('0x11'));var utils=require(_0xe492('0x12'));var config=require(_0xe492('0x13'));var licenseUtil=require(_0xe492('0x14'));var db=require('../../mysqldb')['db'];config[_0xe492('0x15')]=_[_0xe492('0x16')](config[_0xe492('0x15')],{'host':_0xe492('0x17'),'port':0x18eb});var socket=require(_0xe492('0x18'))(new Redis(config[_0xe492('0x15')]));require(_0xe492('0x19'))[_0xe492('0x1a')](socket);function respondWithStatusCode(_0x54b017,_0x569fc2){_0x569fc2=_0x569fc2||0xcc;return function(_0x4d1cee){if(_0x4d1cee){return _0x54b017['sendStatus'](_0x569fc2);}return _0x54b017[_0xe492('0x1b')](_0x569fc2)[_0xe492('0x1c')]();};}function respondWithResult(_0x118eef,_0x10f233){_0x10f233=_0x10f233||0xc8;return function(_0x1fdb7c){if(_0x1fdb7c){return _0x118eef[_0xe492('0x1b')](_0x10f233)[_0xe492('0x1d')](_0x1fdb7c);}};}function respondWithFilteredResult(_0xe409c8,_0x1a3e10){return function(_0x11ad71){if(_0x11ad71){var _0x457395=_0x11ad71[_0xe492('0x1e')],_0x36794d=_0x1a3e10['offset'],_0x960619=_0x1a3e10[_0xe492('0x1f')]+_0x1a3e10[_0xe492('0x20')],_0x19f8f2;if(_0x960619>=_0x457395){_0x960619=_0x457395;_0x19f8f2=0xc8;}else{_0x19f8f2=0xce;}_0xe409c8[_0xe492('0x1b')](_0x19f8f2);return _0xe409c8[_0xe492('0x21')](_0xe492('0x22'),_0x36794d+'-'+_0x960619+'/'+_0x457395)['json'](_0x11ad71);}return null;};}function patchUpdates(_0x49da6b){return function(_0x151056){try{jsonpatch[_0xe492('0x23')](_0x151056,_0x49da6b,!![]);}catch(_0x265246){return BPromise[_0xe492('0x24')](_0x265246);}return _0x151056[_0xe492('0x25')]();};}function saveUpdates(_0x1fcf37,_0x514592){return function(_0x1e606a){if(_0x1e606a){return _0x1e606a[_0xe492('0x26')](_0x1fcf37)['then'](function(_0x5cb9ac){return _0x5cb9ac;});}return null;};}function removeEntity(_0x27d360,_0x30398d){return function(_0x51c840){if(_0x51c840){return _0x51c840[_0xe492('0x27')]()[_0xe492('0x28')](function(){_0x27d360[_0xe492('0x1b')](0xcc)[_0xe492('0x1c')]();});}};}function handleEntityNotFound(_0x48b74a,_0x387c77){return function(_0x2be435){if(!_0x2be435){_0x48b74a[_0xe492('0x29')](0x194);}return _0x2be435;};}function handleError(_0x21515a,_0xcaf0fe){_0xcaf0fe=_0xcaf0fe||0x1f4;return function(_0x111645){logger[_0xe492('0x2a')](_0x111645[_0xe492('0x2b')]);if(_0x111645[_0xe492('0x2c')]){delete _0x111645['name'];}_0x21515a['status'](_0xcaf0fe)[_0xe492('0x2d')](_0x111645);};}exports[_0xe492('0x2e')]=function(_0x3ccf73,_0x90117d){var _0x56e5fc={},_0x3e3205={},_0x51a274={'count':0x0,'rows':[]};var _0x4da96c=_[_0xe492('0x2f')](db[_0xe492('0x30')]['rawAttributes'],function(_0x16b15a){return{'name':_0x16b15a[_0xe492('0x31')],'type':_0x16b15a[_0xe492('0x32')][_0xe492('0x33')]};});_0x3e3205[_0xe492('0x34')]=_[_0xe492('0x2f')](_0x4da96c,_0xe492('0x2c'));_0x3e3205[_0xe492('0x35')]=_[_0xe492('0x36')](_0x3ccf73[_0xe492('0x35')]);_0x3e3205[_0xe492('0x37')]=_[_0xe492('0x38')](_0x3e3205[_0xe492('0x34')],_0x3e3205[_0xe492('0x35')]);_0x56e5fc[_0xe492('0x39')]=_['intersection'](_0x3e3205[_0xe492('0x34')],qs[_0xe492('0x3a')](_0x3ccf73[_0xe492('0x35')]['fields']));_0x56e5fc[_0xe492('0x39')]=_0x56e5fc[_0xe492('0x39')]['length']?_0x56e5fc['attributes']:_0x3e3205[_0xe492('0x34')];if(!_0x3ccf73[_0xe492('0x35')]['hasOwnProperty']('nolimit')){_0x56e5fc[_0xe492('0x20')]=qs[_0xe492('0x20')](_0x3ccf73[_0xe492('0x35')][_0xe492('0x20')]);_0x56e5fc[_0xe492('0x1f')]=qs['offset'](_0x3ccf73[_0xe492('0x35')][_0xe492('0x1f')]);}_0x56e5fc['order']=qs['sort'](_0x3ccf73['query'][_0xe492('0x3b')]);_0x56e5fc['where']=qs[_0xe492('0x37')](_[_0xe492('0x3c')](_0x3ccf73[_0xe492('0x35')],_0x3e3205[_0xe492('0x37')]),_0x4da96c);if(_0x3ccf73[_0xe492('0x35')][_0xe492('0x3d')]){_0x56e5fc[_0xe492('0x3e')]=_[_0xe492('0x3f')](_0x56e5fc[_0xe492('0x3e')],{'$or':_[_0xe492('0x2f')](_0x4da96c,function(_0x55c1da){if(_0x55c1da[_0xe492('0x32')]!==_0xe492('0x40')){var _0x28e49c={};_0x28e49c[_0x55c1da['name']]={'$like':'%'+_0x3ccf73[_0xe492('0x35')][_0xe492('0x3d')]+'%'};return _0x28e49c;}})});}_0x56e5fc=_['merge']({},_0x56e5fc,_0x3ccf73[_0xe492('0x41')]);var _0x499171={'where':_0x56e5fc[_0xe492('0x3e')]};return db[_0xe492('0x30')][_0xe492('0x1e')](_0x499171)['then'](function(_0x54c9ed){_0x51a274[_0xe492('0x1e')]=_0x54c9ed;if(_0x3ccf73['query'][_0xe492('0x42')]){_0x56e5fc[_0xe492('0x43')]=[{'all':!![]}];}return db['ChatInternalMessage']['findAll'](_0x56e5fc);})[_0xe492('0x28')](function(_0x2934ea){_0x51a274['rows']=_0x2934ea;return _0x51a274;})[_0xe492('0x28')](respondWithFilteredResult(_0x90117d,_0x56e5fc))[_0xe492('0x44')](handleError(_0x90117d,null));};exports[_0xe492('0x45')]=function(_0x21276a,_0x2fc81c){var _0x1877b0={'raw':!![],'where':{'id':_0x21276a[_0xe492('0x46')]['id']}},_0x11eedb={};_0x11eedb['model']=_[_0xe492('0x36')](db['ChatInternalMessage'][_0xe492('0x47')]);_0x11eedb['query']=_[_0xe492('0x36')](_0x21276a['query']);_0x11eedb['filters']=_[_0xe492('0x38')](_0x11eedb[_0xe492('0x34')],_0x11eedb[_0xe492('0x35')]);_0x1877b0['attributes']=_['intersection'](_0x11eedb[_0xe492('0x34')],qs[_0xe492('0x3a')](_0x21276a[_0xe492('0x35')][_0xe492('0x3a')]));_0x1877b0[_0xe492('0x39')]=_0x1877b0[_0xe492('0x39')][_0xe492('0x48')]?_0x1877b0[_0xe492('0x39')]:_0x11eedb[_0xe492('0x34')];if(_0x21276a[_0xe492('0x35')][_0xe492('0x42')]){_0x1877b0[_0xe492('0x43')]=[{'all':!![]}];}_0x1877b0=_[_0xe492('0x3f')]({},_0x1877b0,_0x21276a['options']);return db[_0xe492('0x30')][_0xe492('0x49')](_0x1877b0)[_0xe492('0x28')](handleEntityNotFound(_0x2fc81c,null))['then'](respondWithResult(_0x2fc81c,null))[_0xe492('0x44')](handleError(_0x2fc81c,null));};exports[_0xe492('0x4a')]=function(_0x4f4dcd,_0x36c5bf){return db[_0xe492('0x30')][_0xe492('0x4a')](_0x4f4dcd[_0xe492('0x4b')],{})[_0xe492('0x28')](respondWithResult(_0x36c5bf,0xc9))['catch'](handleError(_0x36c5bf,null));};exports[_0xe492('0x26')]=function(_0x13fbf4,_0x45aa05){if(_0x13fbf4[_0xe492('0x4b')]['id']){delete _0x13fbf4[_0xe492('0x4b')]['id'];}return db[_0xe492('0x30')][_0xe492('0x49')]({'where':{'id':_0x13fbf4['params']['id']}})[_0xe492('0x28')](handleEntityNotFound(_0x45aa05,null))[_0xe492('0x28')](saveUpdates(_0x13fbf4[_0xe492('0x4b')],null))[_0xe492('0x28')](respondWithResult(_0x45aa05,null))[_0xe492('0x44')](handleError(_0x45aa05,null));};exports[_0xe492('0x27')]=function(_0x194a45,_0x5da853){return db[_0xe492('0x30')][_0xe492('0x49')]({'where':{'id':_0x194a45[_0xe492('0x46')]['id']}})[_0xe492('0x28')](handleEntityNotFound(_0x5da853,null))[_0xe492('0x28')](removeEntity(_0x5da853,null))[_0xe492('0x44')](handleError(_0x5da853,null));};exports[_0xe492('0x4c')]=function(_0x5e8c23,_0x556b9d){return db[_0xe492('0x30')][_0xe492('0x4c')]()[_0xe492('0x28')](respondWithResult(_0x556b9d,null))[_0xe492('0x44')](handleError(_0x556b9d,null));};function wrapUser(_0x1e7307){return function(_0x13039d){var _0x3fe061=_0x1e7307[_0xe492('0x4d')]({'plain':!![]});_0x3fe061[_0xe492('0x4e')]=[];if(_0x13039d){_0x3fe061[_0xe492('0x4f')]=_0x13039d['createdAt'];_0x3fe061['lastMessage']=_0x13039d;}else{_0x3fe061[_0xe492('0x4f')]=moment(0x0)['format'](_0xe492('0x50'));_0x3fe061[_0xe492('0x51')]={};}return _0x3fe061;};}exports[_0xe492('0x52')]=function(_0x558661,_0x177ec7,_0x4d0362){var _0x4061ea=[];return db[_0xe492('0x53')][_0xe492('0x54')]({'where':{'role':['agent','admin',_0xe492('0x55')]},'attributes':['id','fullname','name',_0xe492('0x56'),_0xe492('0x57'),'internal','online',_0xe492('0x58'),_0xe492('0x59'),_0xe492('0x5a')],'order':qs['sort']('-online'),'include':[{'model':db['VoiceQueue'],'as':_0xe492('0x5b'),'attributes':['id',_0xe492('0x2c'),_0xe492('0x32')],'through':{'attributes':[]}}]})['then'](function(_0x34e716){if(_0x34e716){var _0x52d2c7=_0x558661['user'][_0xe492('0x4d')]({'plain':!![]});if(!_0x52d2c7)throw new Error(_0xe492('0x5c'));if(_0x52d2c7[_0xe492('0x56')]===_0xe492('0x55')){return db[_0xe492('0x5d')][_0xe492('0x49')]({'where':{'name':_0xe492('0x5e'),'userProfileId':_0x52d2c7[_0xe492('0x5f')]},'raw':!![]})[_0xe492('0x28')](function(_0x16ba07){if(_0x16ba07){if(_0x16ba07['autoAssociation']===0x0){return db[_0xe492('0x60')][_0xe492('0x54')]({'where':{'sectionId':_0x16ba07['id']},'raw':!![]})[_0xe492('0x28')](function(_0x41ef60){var _0x11ce19=[];if(_[_0xe492('0x61')](_0x41ef60)){_0x11ce19=_[_0xe492('0x3d')](_0x34e716,function(_0x191768){if(_0x191768[_0xe492('0x56')]!=='agent'){return _0x191768;}});return _0x11ce19;}else{for(var _0x55a198=0x0;_0x55a198<_0x34e716[_0xe492('0x48')];_0x55a198++){var _0x40fd58=_0x34e716[_0x55a198];if(_0x40fd58['role']===_0xe492('0x62')){var _0xf773f9=_[_0xe492('0x49')](_0x41ef60,function(_0x525811){return _0x525811['resourceId']===_0x40fd58['id'];});if(_0xf773f9)_0x11ce19['push'](_0x40fd58);}else{_0x11ce19[_0xe492('0x63')](_0x40fd58);}}return _0x11ce19;}});}else{return _0x34e716;}}else{var _0x2e76fe=_[_0xe492('0x3d')](_0x34e716,function(_0x3918e4){if(_0x3918e4['role']!==_0xe492('0x62')){return _0x3918e4;}});return _0x2e76fe;}});}else{return _0x34e716;}}})[_0xe492('0x28')](function(_0x1e9b9f){var _0x1eca2b=[];if(_0x1e9b9f){_0x4061ea=_0x1e9b9f;for(var _0x261e5b=0x0;_0x261e5b<_0x1e9b9f[_0xe492('0x48')];_0x261e5b+=0x1){_0x4061ea[_0x261e5b][_0xe492('0x4e')]=[];_0x1eca2b[_0xe492('0x63')](db[_0xe492('0x30')]['find']({'where':{'FromId':[_0x558661[_0xe492('0x55')]['id'],_0x1e9b9f[_0x261e5b]['id']],'ToId':[_0x558661[_0xe492('0x55')]['id'],_0x1e9b9f[_0x261e5b]['id']],'ChatGroupId':null},'attributes':['id',_0xe492('0x64'),_0xe492('0x65'),_0xe492('0x66'),_0xe492('0x67'),_0xe492('0x4b')],'order':qs[_0xe492('0x3b')](_0xe492('0x68')),'limit':0x1,'offset':0x0,'raw':!![]})[_0xe492('0x28')](wrapUser(_0x1e9b9f[_0x261e5b])));}return BPromise['all'](_0x1eca2b);}return[];})['then'](function(_0x3fbc8d){return{'rows':_0x3fbc8d,'count':_0x3fbc8d['length']};})[_0xe492('0x28')](respondWithResult(_0x177ec7,null))[_0xe492('0x44')](handleError(_0x177ec7,null));};