51378d686b280bdb37775751487cb1d1b7c8c9f6
[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 _0x0d2d=['defaults','localhost','socket.io-emitter','./chatInternalMessage.socket','register','sendStatus','status','json','limit','undefined','count','offset','apply','reject','save','update','then','end','error','name','send','index','map','rawAttributes','fieldName','type','key','model','keys','query','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','ChatInternalMessage','include','findAll','catch','params','length','includeAll','find','create','body','describe','get','messages','lastMessage','lastMessageAt','YYYY-MM-DD\x20HH:mm:ss','User','agent','admin','role','userpic','internal','lastLoginAt','allowmessenger','-online','VoiceQueue','VoiceQueues','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','Agents','userProfileId','autoAssociation','UserProfileResource','isEmpty','resourceId','push','createdAt','FromId','ToId','read','-createdAt','all','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','lodash','squel','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../mysqldb','redis'];(function(_0x16db5c,_0x7d65ee){var _0x40e126=function(_0x5add7b){while(--_0x5add7b){_0x16db5c['push'](_0x16db5c['shift']());}};_0x40e126(++_0x7d65ee);}(_0x0d2d,0xc7));var _0xd0d2=function(_0x59562c,_0x1b801f){_0x59562c=_0x59562c-0x0;var _0xa27606=_0x0d2d[_0x59562c];return _0xa27606;};'use strict';var emlformat=require(_0xd0d2('0x0'));var rimraf=require(_0xd0d2('0x1'));var zipdir=require(_0xd0d2('0x2'));var jsonpatch=require(_0xd0d2('0x3'));var rp=require('request-promise');var moment=require(_0xd0d2('0x4'));var BPromise=require(_0xd0d2('0x5'));var Mustache=require(_0xd0d2('0x6'));var util=require(_0xd0d2('0x7'));var path=require('path');var sox=require(_0xd0d2('0x8'));var csv=require(_0xd0d2('0x9'));var ejs=require(_0xd0d2('0xa'));var fs=require('fs');var fs_extra=require(_0xd0d2('0xb'));var _=require(_0xd0d2('0xc'));var squel=require(_0xd0d2('0xd'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0xd0d2('0x9'));var querystring=require(_0xd0d2('0xe'));var Papa=require(_0xd0d2('0xf'));var Redis=require('ioredis');var authService=require(_0xd0d2('0x10'));var qs=require(_0xd0d2('0x11'));var as=require(_0xd0d2('0x12'));var hardwareService=require(_0xd0d2('0x13'));var logger=require(_0xd0d2('0x14'))(_0xd0d2('0x15'));var utils=require('../../config/utils');var config=require(_0xd0d2('0x16'));var licenseUtil=require('../../config/license/util');var db=require(_0xd0d2('0x17'))['db'];config[_0xd0d2('0x18')]=_[_0xd0d2('0x19')](config[_0xd0d2('0x18')],{'host':_0xd0d2('0x1a'),'port':0x18eb});var socket=require(_0xd0d2('0x1b'))(new Redis(config[_0xd0d2('0x18')]));require(_0xd0d2('0x1c'))[_0xd0d2('0x1d')](socket);function respondWithStatusCode(_0x5ed312,_0x2e5b41){_0x2e5b41=_0x2e5b41||0xcc;return function(_0x395eb0){if(_0x395eb0){return _0x5ed312[_0xd0d2('0x1e')](_0x2e5b41);}return _0x5ed312[_0xd0d2('0x1f')](_0x2e5b41)['end']();};}function respondWithResult(_0x39e94f,_0x2c47cd){_0x2c47cd=_0x2c47cd||0xc8;return function(_0x39d4cc){if(_0x39d4cc){return _0x39e94f[_0xd0d2('0x1f')](_0x2c47cd)[_0xd0d2('0x20')](_0x39d4cc);}};}function respondWithFilteredResult(_0x21a754,_0x2a0dba){return function(_0x46c0e4){if(_0x46c0e4){var _0x4b9f68=typeof _0x2a0dba['offset']==='undefined'&&typeof _0x2a0dba[_0xd0d2('0x21')]===_0xd0d2('0x22');var _0x3ae9ba=_0x46c0e4[_0xd0d2('0x23')];var _0x509c14=_0x4b9f68?0x0:_0x2a0dba[_0xd0d2('0x24')];var _0x126a79=_0x4b9f68?_0x46c0e4[_0xd0d2('0x23')]:_0x2a0dba[_0xd0d2('0x24')]+_0x2a0dba[_0xd0d2('0x21')];var _0x48e98f;if(_0x126a79>=_0x3ae9ba){_0x126a79=_0x3ae9ba;_0x48e98f=0xc8;}else{_0x48e98f=0xce;}_0x21a754[_0xd0d2('0x1f')](_0x48e98f);return _0x21a754['set']('Content-Range',_0x509c14+'-'+_0x126a79+'/'+_0x3ae9ba)[_0xd0d2('0x20')](_0x46c0e4);}return null;};}function patchUpdates(_0x33a50c){return function(_0xa6e0c7){try{jsonpatch[_0xd0d2('0x25')](_0xa6e0c7,_0x33a50c,!![]);}catch(_0x52be66){return BPromise[_0xd0d2('0x26')](_0x52be66);}return _0xa6e0c7[_0xd0d2('0x27')]();};}function saveUpdates(_0x5e757c,_0x44f828){return function(_0x171631){if(_0x171631){return _0x171631[_0xd0d2('0x28')](_0x5e757c)[_0xd0d2('0x29')](function(_0x19ad26){return _0x19ad26;});}return null;};}function removeEntity(_0x39b1e2,_0x2dd776){return function(_0x1245d4){if(_0x1245d4){return _0x1245d4['destroy']()[_0xd0d2('0x29')](function(){_0x39b1e2['status'](0xcc)[_0xd0d2('0x2a')]();});}};}function handleEntityNotFound(_0x4b77f7,_0x10f8f5){return function(_0x125db2){if(!_0x125db2){_0x4b77f7[_0xd0d2('0x1e')](0x194);}return _0x125db2;};}function handleError(_0x38118e,_0x2eb363){_0x2eb363=_0x2eb363||0x1f4;return function(_0x5ad454){logger[_0xd0d2('0x2b')](_0x5ad454['stack']);if(_0x5ad454[_0xd0d2('0x2c')]){delete _0x5ad454[_0xd0d2('0x2c')];}_0x38118e[_0xd0d2('0x1f')](_0x2eb363)[_0xd0d2('0x2d')](_0x5ad454);};}exports[_0xd0d2('0x2e')]=function(_0x5c48a4,_0x1b1f74){var _0x445d81={},_0x183615={},_0x59d97d={'count':0x0,'rows':[]};var _0x9270b8=_[_0xd0d2('0x2f')](db['ChatInternalMessage'][_0xd0d2('0x30')],function(_0x49ff46){return{'name':_0x49ff46[_0xd0d2('0x31')],'type':_0x49ff46[_0xd0d2('0x32')][_0xd0d2('0x33')]};});_0x183615[_0xd0d2('0x34')]=_[_0xd0d2('0x2f')](_0x9270b8,_0xd0d2('0x2c'));_0x183615['query']=_[_0xd0d2('0x35')](_0x5c48a4[_0xd0d2('0x36')]);_0x183615[_0xd0d2('0x37')]=_[_0xd0d2('0x38')](_0x183615[_0xd0d2('0x34')],_0x183615['query']);_0x445d81[_0xd0d2('0x39')]=_[_0xd0d2('0x38')](_0x183615[_0xd0d2('0x34')],qs[_0xd0d2('0x3a')](_0x5c48a4['query'][_0xd0d2('0x3a')]));_0x445d81[_0xd0d2('0x39')]=_0x445d81[_0xd0d2('0x39')]['length']?_0x445d81['attributes']:_0x183615[_0xd0d2('0x34')];if(!_0x5c48a4['query'][_0xd0d2('0x3b')](_0xd0d2('0x3c'))){_0x445d81[_0xd0d2('0x21')]=qs[_0xd0d2('0x21')](_0x5c48a4[_0xd0d2('0x36')][_0xd0d2('0x21')]);_0x445d81[_0xd0d2('0x24')]=qs[_0xd0d2('0x24')](_0x5c48a4[_0xd0d2('0x36')][_0xd0d2('0x24')]);}_0x445d81[_0xd0d2('0x3d')]=qs[_0xd0d2('0x3e')](_0x5c48a4[_0xd0d2('0x36')][_0xd0d2('0x3e')]);_0x445d81[_0xd0d2('0x3f')]=qs[_0xd0d2('0x37')](_[_0xd0d2('0x40')](_0x5c48a4[_0xd0d2('0x36')],_0x183615['filters']),_0x9270b8);if(_0x5c48a4[_0xd0d2('0x36')][_0xd0d2('0x41')]){_0x445d81[_0xd0d2('0x3f')]=_[_0xd0d2('0x42')](_0x445d81[_0xd0d2('0x3f')],{'$or':_[_0xd0d2('0x2f')](_0x9270b8,function(_0x315d91){if(_0x315d91['type']!==_0xd0d2('0x43')){var _0x226641={};_0x226641[_0x315d91[_0xd0d2('0x2c')]]={'$like':'%'+_0x5c48a4[_0xd0d2('0x36')][_0xd0d2('0x41')]+'%'};return _0x226641;}})});}_0x445d81=_['merge']({},_0x445d81,_0x5c48a4[_0xd0d2('0x44')]);var _0x3e9de6={'where':_0x445d81[_0xd0d2('0x3f')]};return db[_0xd0d2('0x45')][_0xd0d2('0x23')](_0x3e9de6)['then'](function(_0x3217f0){_0x59d97d['count']=_0x3217f0;if(_0x5c48a4[_0xd0d2('0x36')]['includeAll']){_0x445d81[_0xd0d2('0x46')]=[{'all':!![]}];}return db[_0xd0d2('0x45')][_0xd0d2('0x47')](_0x445d81);})[_0xd0d2('0x29')](function(_0x259242){_0x59d97d['rows']=_0x259242;return _0x59d97d;})[_0xd0d2('0x29')](respondWithFilteredResult(_0x1b1f74,_0x445d81))[_0xd0d2('0x48')](handleError(_0x1b1f74,null));};exports['show']=function(_0x59133c,_0x723efb){var _0x3cba41={'raw':!![],'where':{'id':_0x59133c[_0xd0d2('0x49')]['id']}},_0x4e0746={};_0x4e0746[_0xd0d2('0x34')]=_[_0xd0d2('0x35')](db[_0xd0d2('0x45')]['rawAttributes']);_0x4e0746[_0xd0d2('0x36')]=_[_0xd0d2('0x35')](_0x59133c[_0xd0d2('0x36')]);_0x4e0746[_0xd0d2('0x37')]=_[_0xd0d2('0x38')](_0x4e0746['model'],_0x4e0746[_0xd0d2('0x36')]);_0x3cba41[_0xd0d2('0x39')]=_[_0xd0d2('0x38')](_0x4e0746['model'],qs[_0xd0d2('0x3a')](_0x59133c[_0xd0d2('0x36')][_0xd0d2('0x3a')]));_0x3cba41['attributes']=_0x3cba41[_0xd0d2('0x39')][_0xd0d2('0x4a')]?_0x3cba41[_0xd0d2('0x39')]:_0x4e0746['model'];if(_0x59133c['query'][_0xd0d2('0x4b')]){_0x3cba41[_0xd0d2('0x46')]=[{'all':!![]}];}_0x3cba41=_[_0xd0d2('0x42')]({},_0x3cba41,_0x59133c['options']);return db[_0xd0d2('0x45')][_0xd0d2('0x4c')](_0x3cba41)[_0xd0d2('0x29')](handleEntityNotFound(_0x723efb,null))['then'](respondWithResult(_0x723efb,null))[_0xd0d2('0x48')](handleError(_0x723efb,null));};exports[_0xd0d2('0x4d')]=function(_0x299f75,_0x30cc69){return db[_0xd0d2('0x45')][_0xd0d2('0x4d')](_0x299f75[_0xd0d2('0x4e')],{})[_0xd0d2('0x29')](respondWithResult(_0x30cc69,0xc9))[_0xd0d2('0x48')](handleError(_0x30cc69,null));};exports[_0xd0d2('0x28')]=function(_0x2dfd59,_0x41ff58){if(_0x2dfd59['body']['id']){delete _0x2dfd59[_0xd0d2('0x4e')]['id'];}return db[_0xd0d2('0x45')][_0xd0d2('0x4c')]({'where':{'id':_0x2dfd59['params']['id']}})[_0xd0d2('0x29')](handleEntityNotFound(_0x41ff58,null))[_0xd0d2('0x29')](saveUpdates(_0x2dfd59['body'],null))[_0xd0d2('0x29')](respondWithResult(_0x41ff58,null))[_0xd0d2('0x48')](handleError(_0x41ff58,null));};exports['destroy']=function(_0x181db4,_0x1fe7b6){return db[_0xd0d2('0x45')]['find']({'where':{'id':_0x181db4[_0xd0d2('0x49')]['id']}})['then'](handleEntityNotFound(_0x1fe7b6,null))[_0xd0d2('0x29')](removeEntity(_0x1fe7b6,null))[_0xd0d2('0x48')](handleError(_0x1fe7b6,null));};exports[_0xd0d2('0x4f')]=function(_0x51893f,_0x5dd716){return db[_0xd0d2('0x45')]['describe']()[_0xd0d2('0x29')](respondWithResult(_0x5dd716,null))[_0xd0d2('0x48')](handleError(_0x5dd716,null));};function wrapUser(_0x338f23){return function(_0x1fc6cf){var _0x505381=_0x338f23[_0xd0d2('0x50')]({'plain':!![]});_0x505381[_0xd0d2('0x51')]=[];if(_0x1fc6cf){_0x505381['lastMessageAt']=_0x1fc6cf['createdAt'];_0x505381[_0xd0d2('0x52')]=_0x1fc6cf;}else{_0x505381[_0xd0d2('0x53')]=moment(0x0)['format'](_0xd0d2('0x54'));_0x505381[_0xd0d2('0x52')]={};}return _0x505381;};}exports['getUsers']=function(_0x3434c0,_0x22cbbe,_0xa86f61){var _0x267ee6=[];return db[_0xd0d2('0x55')][_0xd0d2('0x47')]({'where':{'role':[_0xd0d2('0x56'),_0xd0d2('0x57'),'user']},'attributes':['id','fullname',_0xd0d2('0x2c'),_0xd0d2('0x58'),_0xd0d2('0x59'),_0xd0d2('0x5a'),'online',_0xd0d2('0x5b'),_0xd0d2('0x5c'),'showWebBar'],'order':qs[_0xd0d2('0x3e')](_0xd0d2('0x5d')),'include':[{'model':db[_0xd0d2('0x5e')],'as':_0xd0d2('0x5f'),'attributes':['id','name',_0xd0d2('0x32')],'through':{'attributes':[]}}]})['then'](function(_0x3363c3){if(_0x3363c3){var _0x5afe84=_0x3434c0[_0xd0d2('0x60')][_0xd0d2('0x50')]({'plain':!![]});if(!_0x5afe84)throw new Error(_0xd0d2('0x61'));if(_0x5afe84[_0xd0d2('0x58')]===_0xd0d2('0x60')){return db[_0xd0d2('0x62')][_0xd0d2('0x4c')]({'where':{'name':_0xd0d2('0x63'),'userProfileId':_0x5afe84[_0xd0d2('0x64')]},'raw':!![]})[_0xd0d2('0x29')](function(_0x2dc540){if(_0x2dc540){if(_0x2dc540[_0xd0d2('0x65')]===0x0){return db[_0xd0d2('0x66')]['findAll']({'where':{'sectionId':_0x2dc540['id']},'raw':!![]})[_0xd0d2('0x29')](function(_0x3cdd55){var _0xd05037=[];if(_[_0xd0d2('0x67')](_0x3cdd55)){_0xd05037=_[_0xd0d2('0x41')](_0x3363c3,function(_0x3f0961){if(_0x3f0961[_0xd0d2('0x58')]!==_0xd0d2('0x56')){return _0x3f0961;}});return _0xd05037;}else{for(var _0x223d27=0x0;_0x223d27<_0x3363c3[_0xd0d2('0x4a')];_0x223d27++){var _0xdd0480=_0x3363c3[_0x223d27];if(_0xdd0480[_0xd0d2('0x58')]===_0xd0d2('0x56')){var _0x496227=_[_0xd0d2('0x4c')](_0x3cdd55,function(_0xc1acd4){return _0xc1acd4[_0xd0d2('0x68')]===_0xdd0480['id'];});if(_0x496227)_0xd05037['push'](_0xdd0480);}else{_0xd05037[_0xd0d2('0x69')](_0xdd0480);}}return _0xd05037;}});}else{return _0x3363c3;}}else{var _0x1034e4=_['filter'](_0x3363c3,function(_0x571a43){if(_0x571a43[_0xd0d2('0x58')]!==_0xd0d2('0x56')){return _0x571a43;}});return _0x1034e4;}});}else{return _0x3363c3;}}})['then'](function(_0x318ddf){var _0x83db67=[];if(_0x318ddf){_0x267ee6=_0x318ddf;for(var _0xa54021=0x0;_0xa54021<_0x318ddf[_0xd0d2('0x4a')];_0xa54021+=0x1){_0x267ee6[_0xa54021][_0xd0d2('0x51')]=[];_0x83db67['push'](db[_0xd0d2('0x45')]['find']({'where':{'FromId':[_0x3434c0[_0xd0d2('0x60')]['id'],_0x318ddf[_0xa54021]['id']],'ToId':[_0x3434c0['user']['id'],_0x318ddf[_0xa54021]['id']],'ChatGroupId':null},'attributes':['id',_0xd0d2('0x6a'),_0xd0d2('0x6b'),_0xd0d2('0x6c'),_0xd0d2('0x6d'),_0xd0d2('0x4e')],'order':qs[_0xd0d2('0x3e')](_0xd0d2('0x6e')),'limit':0x1,'offset':0x0,'raw':!![]})[_0xd0d2('0x29')](wrapUser(_0x318ddf[_0xa54021])));}return BPromise[_0xd0d2('0x6f')](_0x83db67);}return[];})[_0xd0d2('0x29')](function(_0x4f0123){return{'rows':_0x4f0123,'count':_0x4f0123[_0xd0d2('0x4a')]};})[_0xd0d2('0x29')](respondWithResult(_0x22cbbe,null))[_0xd0d2('0x48')](handleError(_0x22cbbe,null));};