Built motion from commit 639a1a7f.|2.6.19
[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 _0xd800=['zip-dir','fast-json-patch','moment','bluebird','path','sox','to-csv','ejs','fs-extra','lodash','squel','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../mysqldb','redis','defaults','localhost','socket.io-emitter','register','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','destroy','error','stack','name','send','index','ChatInternalMessage','rawAttributes','fieldName','key','model','map','query','filters','intersection','attributes','fields','hasOwnProperty','nolimit','sort','where','pick','merge','type','filter','includeAll','include','findAll','then','rows','show','keys','length','options','find','catch','body','params','describe','get','messages','lastMessageAt','createdAt','lastMessage','format','YYYY-MM-DD\x20HH:mm:ss','admin','user','fullname','userpic','internal','online','allowmessenger','-online','VoiceQueue','VoiceQueues','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','Agents','userProfileId','autoAssociation','UserProfileResource','isEmpty','agent','resourceId','push','FromId','ToId','read','-createdAt'];(function(_0x402565,_0x431efa){var _0x2ed987=function(_0x3d1fff){while(--_0x3d1fff){_0x402565['push'](_0x402565['shift']());}};_0x2ed987(++_0x431efa);}(_0xd800,0xda));var _0x0d80=function(_0xbca1b1,_0x33f0ce){_0xbca1b1=_0xbca1b1-0x0;var _0x4e1686=_0xd800[_0xbca1b1];return _0x4e1686;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x0d80('0x0'));var jsonpatch=require(_0x0d80('0x1'));var rp=require('request-promise');var moment=require(_0x0d80('0x2'));var BPromise=require(_0x0d80('0x3'));var Mustache=require('mustache');var util=require('util');var path=require(_0x0d80('0x4'));var sox=require(_0x0d80('0x5'));var csv=require(_0x0d80('0x6'));var ejs=require(_0x0d80('0x7'));var fs=require('fs');var fs_extra=require(_0x0d80('0x8'));var _=require(_0x0d80('0x9'));var squel=require(_0x0d80('0xa'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x0d80('0x6'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x0d80('0xb'));var authService=require(_0x0d80('0xc'));var qs=require(_0x0d80('0xd'));var as=require(_0x0d80('0xe'));var hardwareService=require(_0x0d80('0xf'));var logger=require(_0x0d80('0x10'))(_0x0d80('0x11'));var utils=require('../../config/utils');var config=require(_0x0d80('0x12'));var licenseUtil=require('../../config/license/util');var db=require(_0x0d80('0x13'))['db'];config[_0x0d80('0x14')]=_[_0x0d80('0x15')](config[_0x0d80('0x14')],{'host':_0x0d80('0x16'),'port':0x18eb});var socket=require(_0x0d80('0x17'))(new Redis(config[_0x0d80('0x14')]));require('./chatInternalMessage.socket')[_0x0d80('0x18')](socket);function respondWithStatusCode(_0x19578b,_0x52f1cf){_0x52f1cf=_0x52f1cf||0xcc;return function(_0x200fcd){if(_0x200fcd){return _0x19578b[_0x0d80('0x19')](_0x52f1cf);}return _0x19578b[_0x0d80('0x1a')](_0x52f1cf)[_0x0d80('0x1b')]();};}function respondWithResult(_0x1bced4,_0x27e68d){_0x27e68d=_0x27e68d||0xc8;return function(_0x59add3){if(_0x59add3){return _0x1bced4[_0x0d80('0x1a')](_0x27e68d)[_0x0d80('0x1c')](_0x59add3);}};}function respondWithFilteredResult(_0x5eaa80,_0x5fba2a){return function(_0x369d1e){if(_0x369d1e){var _0x15e903=typeof _0x5fba2a[_0x0d80('0x1d')]===_0x0d80('0x1e')&&typeof _0x5fba2a[_0x0d80('0x1f')]==='undefined';var _0x109347=_0x369d1e[_0x0d80('0x20')];var _0x4f0afc=_0x15e903?0x0:_0x5fba2a[_0x0d80('0x1d')];var _0x106c68=_0x15e903?_0x369d1e[_0x0d80('0x20')]:_0x5fba2a[_0x0d80('0x1d')]+_0x5fba2a[_0x0d80('0x1f')];var _0x4d881b;if(_0x106c68>=_0x109347){_0x106c68=_0x109347;_0x4d881b=0xc8;}else{_0x4d881b=0xce;}_0x5eaa80['status'](_0x4d881b);return _0x5eaa80[_0x0d80('0x21')](_0x0d80('0x22'),_0x4f0afc+'-'+_0x106c68+'/'+_0x109347)['json'](_0x369d1e);}return null;};}function patchUpdates(_0x31f8f3){return function(_0x4c0f25){try{jsonpatch[_0x0d80('0x23')](_0x4c0f25,_0x31f8f3,!![]);}catch(_0x44ecc2){return BPromise[_0x0d80('0x24')](_0x44ecc2);}return _0x4c0f25[_0x0d80('0x25')]();};}function saveUpdates(_0x2191b3,_0x1bf249){return function(_0x28f15e){if(_0x28f15e){return _0x28f15e[_0x0d80('0x26')](_0x2191b3)['then'](function(_0x301d7f){return _0x301d7f;});}return null;};}function removeEntity(_0x97f8b0,_0x509d31){return function(_0xb57925){if(_0xb57925){return _0xb57925[_0x0d80('0x27')]()['then'](function(){_0x97f8b0[_0x0d80('0x1a')](0xcc)[_0x0d80('0x1b')]();});}};}function handleEntityNotFound(_0x23c49c,_0x344e95){return function(_0x16c804){if(!_0x16c804){_0x23c49c[_0x0d80('0x19')](0x194);}return _0x16c804;};}function handleError(_0x4f9951,_0x32e688){_0x32e688=_0x32e688||0x1f4;return function(_0x1144f4){logger[_0x0d80('0x28')](_0x1144f4[_0x0d80('0x29')]);if(_0x1144f4[_0x0d80('0x2a')]){delete _0x1144f4[_0x0d80('0x2a')];}_0x4f9951[_0x0d80('0x1a')](_0x32e688)[_0x0d80('0x2b')](_0x1144f4);};}exports[_0x0d80('0x2c')]=function(_0x4be887,_0x26ee64){var _0x13e969={},_0x472e71={},_0x123049={'count':0x0,'rows':[]};var _0x410719=_['map'](db[_0x0d80('0x2d')][_0x0d80('0x2e')],function(_0x36fdf1){return{'name':_0x36fdf1[_0x0d80('0x2f')],'type':_0x36fdf1['type'][_0x0d80('0x30')]};});_0x472e71[_0x0d80('0x31')]=_[_0x0d80('0x32')](_0x410719,_0x0d80('0x2a'));_0x472e71[_0x0d80('0x33')]=_['keys'](_0x4be887[_0x0d80('0x33')]);_0x472e71[_0x0d80('0x34')]=_[_0x0d80('0x35')](_0x472e71[_0x0d80('0x31')],_0x472e71['query']);_0x13e969[_0x0d80('0x36')]=_[_0x0d80('0x35')](_0x472e71[_0x0d80('0x31')],qs['fields'](_0x4be887[_0x0d80('0x33')][_0x0d80('0x37')]));_0x13e969[_0x0d80('0x36')]=_0x13e969[_0x0d80('0x36')]['length']?_0x13e969['attributes']:_0x472e71[_0x0d80('0x31')];if(!_0x4be887[_0x0d80('0x33')][_0x0d80('0x38')](_0x0d80('0x39'))){_0x13e969['limit']=qs[_0x0d80('0x1f')](_0x4be887[_0x0d80('0x33')]['limit']);_0x13e969['offset']=qs[_0x0d80('0x1d')](_0x4be887[_0x0d80('0x33')][_0x0d80('0x1d')]);}_0x13e969['order']=qs['sort'](_0x4be887[_0x0d80('0x33')][_0x0d80('0x3a')]);_0x13e969[_0x0d80('0x3b')]=qs[_0x0d80('0x34')](_[_0x0d80('0x3c')](_0x4be887['query'],_0x472e71[_0x0d80('0x34')]),_0x410719);if(_0x4be887[_0x0d80('0x33')]['filter']){_0x13e969['where']=_[_0x0d80('0x3d')](_0x13e969[_0x0d80('0x3b')],{'$or':_[_0x0d80('0x32')](_0x410719,function(_0x3323f2){if(_0x3323f2[_0x0d80('0x3e')]!=='VIRTUAL'){var _0x353793={};_0x353793[_0x3323f2[_0x0d80('0x2a')]]={'$like':'%'+_0x4be887[_0x0d80('0x33')][_0x0d80('0x3f')]+'%'};return _0x353793;}})});}_0x13e969=_[_0x0d80('0x3d')]({},_0x13e969,_0x4be887['options']);var _0x31fc91={'where':_0x13e969[_0x0d80('0x3b')]};return db['ChatInternalMessage'][_0x0d80('0x20')](_0x31fc91)['then'](function(_0x2a1888){_0x123049[_0x0d80('0x20')]=_0x2a1888;if(_0x4be887[_0x0d80('0x33')][_0x0d80('0x40')]){_0x13e969[_0x0d80('0x41')]=[{'all':!![]}];}return db[_0x0d80('0x2d')][_0x0d80('0x42')](_0x13e969);})[_0x0d80('0x43')](function(_0x15a165){_0x123049[_0x0d80('0x44')]=_0x15a165;return _0x123049;})['then'](respondWithFilteredResult(_0x26ee64,_0x13e969))['catch'](handleError(_0x26ee64,null));};exports[_0x0d80('0x45')]=function(_0x4d9311,_0x2262a2){var _0x83c0a4={'raw':!![],'where':{'id':_0x4d9311['params']['id']}},_0x118895={};_0x118895[_0x0d80('0x31')]=_['keys'](db[_0x0d80('0x2d')][_0x0d80('0x2e')]);_0x118895['query']=_[_0x0d80('0x46')](_0x4d9311['query']);_0x118895[_0x0d80('0x34')]=_[_0x0d80('0x35')](_0x118895['model'],_0x118895['query']);_0x83c0a4[_0x0d80('0x36')]=_['intersection'](_0x118895[_0x0d80('0x31')],qs[_0x0d80('0x37')](_0x4d9311[_0x0d80('0x33')][_0x0d80('0x37')]));_0x83c0a4['attributes']=_0x83c0a4[_0x0d80('0x36')][_0x0d80('0x47')]?_0x83c0a4[_0x0d80('0x36')]:_0x118895[_0x0d80('0x31')];if(_0x4d9311['query'][_0x0d80('0x40')]){_0x83c0a4[_0x0d80('0x41')]=[{'all':!![]}];}_0x83c0a4=_[_0x0d80('0x3d')]({},_0x83c0a4,_0x4d9311[_0x0d80('0x48')]);return db[_0x0d80('0x2d')][_0x0d80('0x49')](_0x83c0a4)[_0x0d80('0x43')](handleEntityNotFound(_0x2262a2,null))[_0x0d80('0x43')](respondWithResult(_0x2262a2,null))[_0x0d80('0x4a')](handleError(_0x2262a2,null));};exports['create']=function(_0x2440c9,_0x34f260){return db[_0x0d80('0x2d')]['create'](_0x2440c9[_0x0d80('0x4b')],{})['then'](respondWithResult(_0x34f260,0xc9))[_0x0d80('0x4a')](handleError(_0x34f260,null));};exports[_0x0d80('0x26')]=function(_0x117e56,_0x539c72){if(_0x117e56[_0x0d80('0x4b')]['id']){delete _0x117e56[_0x0d80('0x4b')]['id'];}return db['ChatInternalMessage'][_0x0d80('0x49')]({'where':{'id':_0x117e56['params']['id']}})[_0x0d80('0x43')](handleEntityNotFound(_0x539c72,null))[_0x0d80('0x43')](saveUpdates(_0x117e56[_0x0d80('0x4b')],null))[_0x0d80('0x43')](respondWithResult(_0x539c72,null))['catch'](handleError(_0x539c72,null));};exports[_0x0d80('0x27')]=function(_0x12c951,_0x30dda4){return db[_0x0d80('0x2d')][_0x0d80('0x49')]({'where':{'id':_0x12c951[_0x0d80('0x4c')]['id']}})[_0x0d80('0x43')](handleEntityNotFound(_0x30dda4,null))[_0x0d80('0x43')](removeEntity(_0x30dda4,null))[_0x0d80('0x4a')](handleError(_0x30dda4,null));};exports[_0x0d80('0x4d')]=function(_0x3bdc01,_0x57f8d6){return db[_0x0d80('0x2d')]['describe']()['then'](respondWithResult(_0x57f8d6,null))[_0x0d80('0x4a')](handleError(_0x57f8d6,null));};function wrapUser(_0x4d2beb){return function(_0x4d372c){var _0x2b84ac=_0x4d2beb[_0x0d80('0x4e')]({'plain':!![]});_0x2b84ac[_0x0d80('0x4f')]=[];if(_0x4d372c){_0x2b84ac[_0x0d80('0x50')]=_0x4d372c[_0x0d80('0x51')];_0x2b84ac[_0x0d80('0x52')]=_0x4d372c;}else{_0x2b84ac[_0x0d80('0x50')]=moment(0x0)[_0x0d80('0x53')](_0x0d80('0x54'));_0x2b84ac[_0x0d80('0x52')]={};}return _0x2b84ac;};}exports['getUsers']=function(_0x5d1553,_0x1c041d,_0x2fc797){var _0x49ca08=[];return db['User'][_0x0d80('0x42')]({'where':{'role':['agent',_0x0d80('0x55'),_0x0d80('0x56')]},'attributes':['id',_0x0d80('0x57'),_0x0d80('0x2a'),'role',_0x0d80('0x58'),_0x0d80('0x59'),_0x0d80('0x5a'),'lastLoginAt',_0x0d80('0x5b'),'showWebBar'],'order':qs[_0x0d80('0x3a')](_0x0d80('0x5c')),'include':[{'model':db[_0x0d80('0x5d')],'as':_0x0d80('0x5e'),'attributes':['id',_0x0d80('0x2a'),_0x0d80('0x3e')],'through':{'attributes':[]}}]})[_0x0d80('0x43')](function(_0x590fff){if(_0x590fff){var _0x3ccc85=_0x5d1553[_0x0d80('0x56')][_0x0d80('0x4e')]({'plain':!![]});if(!_0x3ccc85)throw new Error(_0x0d80('0x5f'));if(_0x3ccc85[_0x0d80('0x60')]==='user'){return db['UserProfileSection'][_0x0d80('0x49')]({'where':{'name':_0x0d80('0x61'),'userProfileId':_0x3ccc85[_0x0d80('0x62')]},'raw':!![]})['then'](function(_0x58df08){if(_0x58df08){if(_0x58df08[_0x0d80('0x63')]===0x0){return db[_0x0d80('0x64')][_0x0d80('0x42')]({'where':{'sectionId':_0x58df08['id']},'raw':!![]})['then'](function(_0x3a93b8){var _0x47c7fb=[];if(_[_0x0d80('0x65')](_0x3a93b8)){_0x47c7fb=_['filter'](_0x590fff,function(_0x37e5d2){if(_0x37e5d2[_0x0d80('0x60')]!==_0x0d80('0x66')){return _0x37e5d2;}});return _0x47c7fb;}else{for(var _0x33b053=0x0;_0x33b053<_0x590fff['length'];_0x33b053++){var _0x325171=_0x590fff[_0x33b053];if(_0x325171[_0x0d80('0x60')]==='agent'){var _0x182af2=_['find'](_0x3a93b8,function(_0x11860c){return _0x11860c[_0x0d80('0x67')]===_0x325171['id'];});if(_0x182af2)_0x47c7fb['push'](_0x325171);}else{_0x47c7fb[_0x0d80('0x68')](_0x325171);}}return _0x47c7fb;}});}else{return _0x590fff;}}else{var _0x39ee6e=_[_0x0d80('0x3f')](_0x590fff,function(_0xb72b4a){if(_0xb72b4a[_0x0d80('0x60')]!=='agent'){return _0xb72b4a;}});return _0x39ee6e;}});}else{return _0x590fff;}}})[_0x0d80('0x43')](function(_0xb5dc94){var _0x911949=[];if(_0xb5dc94){_0x49ca08=_0xb5dc94;for(var _0x4ee1ae=0x0;_0x4ee1ae<_0xb5dc94[_0x0d80('0x47')];_0x4ee1ae+=0x1){_0x49ca08[_0x4ee1ae][_0x0d80('0x4f')]=[];_0x911949[_0x0d80('0x68')](db[_0x0d80('0x2d')][_0x0d80('0x49')]({'where':{'FromId':[_0x5d1553[_0x0d80('0x56')]['id'],_0xb5dc94[_0x4ee1ae]['id']],'ToId':[_0x5d1553[_0x0d80('0x56')]['id'],_0xb5dc94[_0x4ee1ae]['id']],'ChatGroupId':null},'attributes':['id','createdAt',_0x0d80('0x69'),_0x0d80('0x6a'),_0x0d80('0x6b'),_0x0d80('0x4b')],'order':qs['sort'](_0x0d80('0x6c')),'limit':0x1,'offset':0x0,'raw':!![]})[_0x0d80('0x43')](wrapUser(_0xb5dc94[_0x4ee1ae])));}return BPromise['all'](_0x911949);}return[];})[_0x0d80('0x43')](function(_0x42afc3){return{'rows':_0x42afc3,'count':_0x42afc3[_0x0d80('0x47')]};})[_0x0d80('0x43')](respondWithResult(_0x1c041d,null))[_0x0d80('0x4a')](handleError(_0x1c041d,null));};