Built motion from commit 00bf23f6.|2.6.16
[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 _0xf18e=['find','catch','create','body','params','describe','messages','createdAt','lastMessage','lastMessageAt','format','YYYY-MM-DD\x20HH:mm:ss','getUsers','User','agent','user','fullname','role','internal','online','lastLoginAt','allowmessenger','-online','VoiceQueue','VoiceQueues','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','userProfileId','UserProfileResource','findAll','isEmpty','resourceId','push','ToId','read','-createdAt','all','eml-format','zip-dir','fast-json-patch','moment','bluebird','util','path','sox','to-csv','fs-extra','lodash','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','./chatInternalMessage.socket','sendStatus','end','status','json','offset','undefined','limit','count','Content-Range','apply','save','update','destroy','error','stack','name','send','map','ChatInternalMessage','type','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','pick','filter','merge','VIRTUAL','options','where','includeAll','include','then','show','rawAttributes'];(function(_0x29ae4e,_0x377359){var _0xc2dcf=function(_0x4e6135){while(--_0x4e6135){_0x29ae4e['push'](_0x29ae4e['shift']());}};_0xc2dcf(++_0x377359);}(_0xf18e,0x1da));var _0xef18=function(_0x1f55f3,_0xac0628){_0x1f55f3=_0x1f55f3-0x0;var _0x456d70=_0xf18e[_0x1f55f3];return _0x456d70;};'use strict';var emlformat=require(_0xef18('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xef18('0x1'));var jsonpatch=require(_0xef18('0x2'));var rp=require('request-promise');var moment=require(_0xef18('0x3'));var BPromise=require(_0xef18('0x4'));var Mustache=require('mustache');var util=require(_0xef18('0x5'));var path=require(_0xef18('0x6'));var sox=require(_0xef18('0x7'));var csv=require(_0xef18('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xef18('0x9'));var _=require(_0xef18('0xa'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0xef18('0xb'));var deskjs=require(_0xef18('0xc'));var toCsv=require(_0xef18('0x8'));var querystring=require(_0xef18('0xd'));var Papa=require(_0xef18('0xe'));var Redis=require(_0xef18('0xf'));var authService=require('../../components/auth/service');var qs=require(_0xef18('0x10'));var as=require(_0xef18('0x11'));var hardwareService=require(_0xef18('0x12'));var logger=require(_0xef18('0x13'))(_0xef18('0x14'));var utils=require(_0xef18('0x15'));var config=require(_0xef18('0x16'));var licenseUtil=require(_0xef18('0x17'));var db=require(_0xef18('0x18'))['db'];config[_0xef18('0x19')]=_[_0xef18('0x1a')](config[_0xef18('0x19')],{'host':_0xef18('0x1b'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xef18('0x19')]));require(_0xef18('0x1c'))['register'](socket);function respondWithStatusCode(_0x5c6892,_0x3cd668){_0x3cd668=_0x3cd668||0xcc;return function(_0x3b1195){if(_0x3b1195){return _0x5c6892[_0xef18('0x1d')](_0x3cd668);}return _0x5c6892['status'](_0x3cd668)[_0xef18('0x1e')]();};}function respondWithResult(_0x47875f,_0x3d3cc8){_0x3d3cc8=_0x3d3cc8||0xc8;return function(_0x2759fe){if(_0x2759fe){return _0x47875f[_0xef18('0x1f')](_0x3d3cc8)[_0xef18('0x20')](_0x2759fe);}};}function respondWithFilteredResult(_0x5dae14,_0x10d234){return function(_0x41b265){if(_0x41b265){var _0x19877d=typeof _0x10d234[_0xef18('0x21')]===_0xef18('0x22')&&typeof _0x10d234[_0xef18('0x23')]===_0xef18('0x22');var _0x3cf77b=_0x41b265['count'];var _0x299bd9=_0x19877d?0x0:_0x10d234[_0xef18('0x21')];var _0x5cb8ac=_0x19877d?_0x41b265[_0xef18('0x24')]:_0x10d234[_0xef18('0x21')]+_0x10d234[_0xef18('0x23')];var _0x2e556a;if(_0x5cb8ac>=_0x3cf77b){_0x5cb8ac=_0x3cf77b;_0x2e556a=0xc8;}else{_0x2e556a=0xce;}_0x5dae14[_0xef18('0x1f')](_0x2e556a);return _0x5dae14['set'](_0xef18('0x25'),_0x299bd9+'-'+_0x5cb8ac+'/'+_0x3cf77b)[_0xef18('0x20')](_0x41b265);}return null;};}function patchUpdates(_0x2130f1){return function(_0x3bae8a){try{jsonpatch[_0xef18('0x26')](_0x3bae8a,_0x2130f1,!![]);}catch(_0x754bbe){return BPromise['reject'](_0x754bbe);}return _0x3bae8a[_0xef18('0x27')]();};}function saveUpdates(_0x232546,_0x4f12fb){return function(_0x61b15e){if(_0x61b15e){return _0x61b15e[_0xef18('0x28')](_0x232546)['then'](function(_0xaf9f64){return _0xaf9f64;});}return null;};}function removeEntity(_0x1b4efb,_0x544557){return function(_0x2042c6){if(_0x2042c6){return _0x2042c6[_0xef18('0x29')]()['then'](function(){_0x1b4efb[_0xef18('0x1f')](0xcc)[_0xef18('0x1e')]();});}};}function handleEntityNotFound(_0x4bf77a,_0x545d85){return function(_0x361d26){if(!_0x361d26){_0x4bf77a[_0xef18('0x1d')](0x194);}return _0x361d26;};}function handleError(_0x1d80e6,_0x4f0912){_0x4f0912=_0x4f0912||0x1f4;return function(_0x13aba8){logger[_0xef18('0x2a')](_0x13aba8[_0xef18('0x2b')]);if(_0x13aba8[_0xef18('0x2c')]){delete _0x13aba8[_0xef18('0x2c')];}_0x1d80e6[_0xef18('0x1f')](_0x4f0912)[_0xef18('0x2d')](_0x13aba8);};}exports['index']=function(_0x539a01,_0x46d49c){var _0x5a2f7f={},_0x218325={},_0xb09aa8={'count':0x0,'rows':[]};var _0x3e118d=_[_0xef18('0x2e')](db[_0xef18('0x2f')]['rawAttributes'],function(_0x47c4ab){return{'name':_0x47c4ab['fieldName'],'type':_0x47c4ab[_0xef18('0x30')]['key']};});_0x218325[_0xef18('0x31')]=_['map'](_0x3e118d,_0xef18('0x2c'));_0x218325[_0xef18('0x32')]=_[_0xef18('0x33')](_0x539a01['query']);_0x218325[_0xef18('0x34')]=_[_0xef18('0x35')](_0x218325[_0xef18('0x31')],_0x218325[_0xef18('0x32')]);_0x5a2f7f[_0xef18('0x36')]=_[_0xef18('0x35')](_0x218325[_0xef18('0x31')],qs[_0xef18('0x37')](_0x539a01[_0xef18('0x32')][_0xef18('0x37')]));_0x5a2f7f[_0xef18('0x36')]=_0x5a2f7f[_0xef18('0x36')][_0xef18('0x38')]?_0x5a2f7f['attributes']:_0x218325['model'];if(!_0x539a01['query'][_0xef18('0x39')](_0xef18('0x3a'))){_0x5a2f7f[_0xef18('0x23')]=qs['limit'](_0x539a01['query']['limit']);_0x5a2f7f[_0xef18('0x21')]=qs[_0xef18('0x21')](_0x539a01[_0xef18('0x32')][_0xef18('0x21')]);}_0x5a2f7f['order']=qs[_0xef18('0x3b')](_0x539a01[_0xef18('0x32')][_0xef18('0x3b')]);_0x5a2f7f['where']=qs[_0xef18('0x34')](_[_0xef18('0x3c')](_0x539a01[_0xef18('0x32')],_0x218325[_0xef18('0x34')]),_0x3e118d);if(_0x539a01['query'][_0xef18('0x3d')]){_0x5a2f7f['where']=_[_0xef18('0x3e')](_0x5a2f7f['where'],{'$or':_[_0xef18('0x2e')](_0x3e118d,function(_0x256519){if(_0x256519['type']!==_0xef18('0x3f')){var _0x3161f0={};_0x3161f0[_0x256519[_0xef18('0x2c')]]={'$like':'%'+_0x539a01[_0xef18('0x32')][_0xef18('0x3d')]+'%'};return _0x3161f0;}})});}_0x5a2f7f=_[_0xef18('0x3e')]({},_0x5a2f7f,_0x539a01[_0xef18('0x40')]);var _0x226e14={'where':_0x5a2f7f[_0xef18('0x41')]};return db[_0xef18('0x2f')][_0xef18('0x24')](_0x226e14)['then'](function(_0x1cad7f){_0xb09aa8[_0xef18('0x24')]=_0x1cad7f;if(_0x539a01['query'][_0xef18('0x42')]){_0x5a2f7f[_0xef18('0x43')]=[{'all':!![]}];}return db[_0xef18('0x2f')]['findAll'](_0x5a2f7f);})[_0xef18('0x44')](function(_0x409163){_0xb09aa8['rows']=_0x409163;return _0xb09aa8;})[_0xef18('0x44')](respondWithFilteredResult(_0x46d49c,_0x5a2f7f))['catch'](handleError(_0x46d49c,null));};exports[_0xef18('0x45')]=function(_0x116441,_0x14d366){var _0x4bec95={'raw':!![],'where':{'id':_0x116441['params']['id']}},_0x46a76a={};_0x46a76a[_0xef18('0x31')]=_[_0xef18('0x33')](db[_0xef18('0x2f')][_0xef18('0x46')]);_0x46a76a['query']=_['keys'](_0x116441[_0xef18('0x32')]);_0x46a76a['filters']=_[_0xef18('0x35')](_0x46a76a[_0xef18('0x31')],_0x46a76a[_0xef18('0x32')]);_0x4bec95[_0xef18('0x36')]=_['intersection'](_0x46a76a['model'],qs[_0xef18('0x37')](_0x116441[_0xef18('0x32')][_0xef18('0x37')]));_0x4bec95['attributes']=_0x4bec95[_0xef18('0x36')]['length']?_0x4bec95['attributes']:_0x46a76a[_0xef18('0x31')];if(_0x116441[_0xef18('0x32')][_0xef18('0x42')]){_0x4bec95[_0xef18('0x43')]=[{'all':!![]}];}_0x4bec95=_[_0xef18('0x3e')]({},_0x4bec95,_0x116441[_0xef18('0x40')]);return db['ChatInternalMessage'][_0xef18('0x47')](_0x4bec95)[_0xef18('0x44')](handleEntityNotFound(_0x14d366,null))[_0xef18('0x44')](respondWithResult(_0x14d366,null))[_0xef18('0x48')](handleError(_0x14d366,null));};exports[_0xef18('0x49')]=function(_0x37442c,_0x338b16){return db[_0xef18('0x2f')][_0xef18('0x49')](_0x37442c['body'],{})[_0xef18('0x44')](respondWithResult(_0x338b16,0xc9))[_0xef18('0x48')](handleError(_0x338b16,null));};exports[_0xef18('0x28')]=function(_0x41dedf,_0x4a8208){if(_0x41dedf[_0xef18('0x4a')]['id']){delete _0x41dedf[_0xef18('0x4a')]['id'];}return db[_0xef18('0x2f')][_0xef18('0x47')]({'where':{'id':_0x41dedf[_0xef18('0x4b')]['id']}})[_0xef18('0x44')](handleEntityNotFound(_0x4a8208,null))[_0xef18('0x44')](saveUpdates(_0x41dedf[_0xef18('0x4a')],null))[_0xef18('0x44')](respondWithResult(_0x4a8208,null))[_0xef18('0x48')](handleError(_0x4a8208,null));};exports['destroy']=function(_0x1609ff,_0x3e3e25){return db['ChatInternalMessage'][_0xef18('0x47')]({'where':{'id':_0x1609ff['params']['id']}})[_0xef18('0x44')](handleEntityNotFound(_0x3e3e25,null))['then'](removeEntity(_0x3e3e25,null))[_0xef18('0x48')](handleError(_0x3e3e25,null));};exports[_0xef18('0x4c')]=function(_0x3158bc,_0x2d7260){return db[_0xef18('0x2f')][_0xef18('0x4c')]()[_0xef18('0x44')](respondWithResult(_0x2d7260,null))['catch'](handleError(_0x2d7260,null));};function wrapUser(_0x26897a){return function(_0x47515e){var _0x751941=_0x26897a['get']({'plain':!![]});_0x751941[_0xef18('0x4d')]=[];if(_0x47515e){_0x751941['lastMessageAt']=_0x47515e[_0xef18('0x4e')];_0x751941[_0xef18('0x4f')]=_0x47515e;}else{_0x751941[_0xef18('0x50')]=moment(0x0)[_0xef18('0x51')](_0xef18('0x52'));_0x751941[_0xef18('0x4f')]={};}return _0x751941;};}exports[_0xef18('0x53')]=function(_0x5d8dca,_0x199f3f,_0x691456){var _0x2b8baf=[];return db[_0xef18('0x54')]['findAll']({'where':{'role':[_0xef18('0x55'),'admin',_0xef18('0x56')]},'attributes':['id',_0xef18('0x57'),'name',_0xef18('0x58'),'userpic',_0xef18('0x59'),_0xef18('0x5a'),_0xef18('0x5b'),_0xef18('0x5c'),'showWebBar'],'order':qs['sort'](_0xef18('0x5d')),'include':[{'model':db[_0xef18('0x5e')],'as':_0xef18('0x5f'),'attributes':['id',_0xef18('0x2c'),_0xef18('0x30')],'through':{'attributes':[]}}]})['then'](function(_0x572c11){if(_0x572c11){var _0x1df914=_0x5d8dca['user'][_0xef18('0x60')]({'plain':!![]});if(!_0x1df914)throw new Error(_0xef18('0x61'));if(_0x1df914['role']===_0xef18('0x56')){return db[_0xef18('0x62')][_0xef18('0x47')]({'where':{'name':'Agents','userProfileId':_0x1df914[_0xef18('0x63')]},'raw':!![]})[_0xef18('0x44')](function(_0x201920){if(_0x201920){if(_0x201920['autoAssociation']===0x0){return db[_0xef18('0x64')][_0xef18('0x65')]({'where':{'sectionId':_0x201920['id']},'raw':!![]})[_0xef18('0x44')](function(_0x4bc163){var _0x5c44d9=[];if(_[_0xef18('0x66')](_0x4bc163)){_0x5c44d9=_[_0xef18('0x3d')](_0x572c11,function(_0x4df976){if(_0x4df976[_0xef18('0x58')]!==_0xef18('0x55')){return _0x4df976;}});return _0x5c44d9;}else{for(var _0xe475fa=0x0;_0xe475fa<_0x572c11[_0xef18('0x38')];_0xe475fa++){var _0xfc53b5=_0x572c11[_0xe475fa];if(_0xfc53b5[_0xef18('0x58')]===_0xef18('0x55')){var _0x2bb14a=_[_0xef18('0x47')](_0x4bc163,function(_0x2cbd93){return _0x2cbd93[_0xef18('0x67')]===_0xfc53b5['id'];});if(_0x2bb14a)_0x5c44d9[_0xef18('0x68')](_0xfc53b5);}else{_0x5c44d9[_0xef18('0x68')](_0xfc53b5);}}return _0x5c44d9;}});}else{return _0x572c11;}}else{var _0x13f93e=_[_0xef18('0x3d')](_0x572c11,function(_0x4fa930){if(_0x4fa930[_0xef18('0x58')]!==_0xef18('0x55')){return _0x4fa930;}});return _0x13f93e;}});}else{return _0x572c11;}}})[_0xef18('0x44')](function(_0x2908f0){var _0x4a30b3=[];if(_0x2908f0){_0x2b8baf=_0x2908f0;for(var _0x2aac4d=0x0;_0x2aac4d<_0x2908f0[_0xef18('0x38')];_0x2aac4d+=0x1){_0x2b8baf[_0x2aac4d]['messages']=[];_0x4a30b3[_0xef18('0x68')](db[_0xef18('0x2f')][_0xef18('0x47')]({'where':{'FromId':[_0x5d8dca[_0xef18('0x56')]['id'],_0x2908f0[_0x2aac4d]['id']],'ToId':[_0x5d8dca['user']['id'],_0x2908f0[_0x2aac4d]['id']],'ChatGroupId':null},'attributes':['id','createdAt','FromId',_0xef18('0x69'),_0xef18('0x6a'),_0xef18('0x4a')],'order':qs[_0xef18('0x3b')](_0xef18('0x6b')),'limit':0x1,'offset':0x0,'raw':!![]})[_0xef18('0x44')](wrapUser(_0x2908f0[_0x2aac4d])));}return BPromise[_0xef18('0x6c')](_0x4a30b3);}return[];})['then'](function(_0x3ccaff){return{'rows':_0x3ccaff,'count':_0x3ccaff[_0xef18('0x38')]};})[_0xef18('0x44')](respondWithResult(_0x199f3f,null))[_0xef18('0x48')](handleError(_0x199f3f,null));};