f1bdf06cb88d60e2d891ee7cc42078c913da9624
[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 _0xed0e=['mustache','to-csv','ejs','fs-extra','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./chatInternalMessage.socket','register','status','end','offset','undefined','count','limit','set','Content-Range','apply','reject','update','then','destroy','sendStatus','error','stack','name','send','index','map','rawAttributes','fieldName','type','query','keys','filters','intersection','fields','attributes','length','model','nolimit','sort','where','pick','merge','VIRTUAL','filter','includeAll','include','findAll','catch','show','ChatInternalMessage','options','find','create','body','params','describe','messages','YYYY-MM-DD\x20HH:mm:ss','getUsers','User','agent','admin','user','role','internal','online','lastLoginAt','allowmessenger','showWebBar','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','Agents','UserProfileResource','push','createdAt','FromId','ToId','read','-createdAt','all','eml-format','zip-dir','request-promise','moment'];(function(_0x1ed116,_0x23bc80){var _0x574066=function(_0x424f9e){while(--_0x424f9e){_0x1ed116['push'](_0x1ed116['shift']());}};_0x574066(++_0x23bc80);}(_0xed0e,0xc4));var _0xeed0=function(_0x4c440b,_0x3ea627){_0x4c440b=_0x4c440b-0x0;var _0x2d48cf=_0xed0e[_0x4c440b];return _0x2d48cf;};'use strict';var emlformat=require(_0xeed0('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xeed0('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0xeed0('0x2'));var moment=require(_0xeed0('0x3'));var BPromise=require('bluebird');var Mustache=require(_0xeed0('0x4'));var util=require('util');var path=require('path');var sox=require('sox');var csv=require(_0xeed0('0x5'));var ejs=require(_0xeed0('0x6'));var fs=require('fs');var fs_extra=require(_0xeed0('0x7'));var _=require('lodash');var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0xeed0('0x8'));var deskjs=require(_0xeed0('0x9'));var toCsv=require(_0xeed0('0x5'));var querystring=require(_0xeed0('0xa'));var Papa=require(_0xeed0('0xb'));var Redis=require('ioredis');var authService=require(_0xeed0('0xc'));var qs=require(_0xeed0('0xd'));var as=require(_0xeed0('0xe'));var hardwareService=require(_0xeed0('0xf'));var logger=require(_0xeed0('0x10'))(_0xeed0('0x11'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0xeed0('0x12'));var db=require(_0xeed0('0x13'))['db'];config[_0xeed0('0x14')]=_[_0xeed0('0x15')](config[_0xeed0('0x14')],{'host':_0xeed0('0x16'),'port':0x18eb});var socket=require(_0xeed0('0x17'))(new Redis(config[_0xeed0('0x14')]));require(_0xeed0('0x18'))[_0xeed0('0x19')](socket);function respondWithStatusCode(_0x23059a,_0x2d8664){_0x2d8664=_0x2d8664||0xcc;return function(_0x4876ef){if(_0x4876ef){return _0x23059a['sendStatus'](_0x2d8664);}return _0x23059a[_0xeed0('0x1a')](_0x2d8664)[_0xeed0('0x1b')]();};}function respondWithResult(_0x31db05,_0x5bb7f9){_0x5bb7f9=_0x5bb7f9||0xc8;return function(_0x5ccc92){if(_0x5ccc92){return _0x31db05[_0xeed0('0x1a')](_0x5bb7f9)['json'](_0x5ccc92);}};}function respondWithFilteredResult(_0x35b96d,_0x3f6daf){return function(_0x38aa1d){if(_0x38aa1d){var _0xcf68d5=typeof _0x3f6daf[_0xeed0('0x1c')]===_0xeed0('0x1d')&&typeof _0x3f6daf['limit']===_0xeed0('0x1d');var _0x36e742=_0x38aa1d[_0xeed0('0x1e')];var _0x340402=_0xcf68d5?0x0:_0x3f6daf[_0xeed0('0x1c')];var _0xb85fb1=_0xcf68d5?_0x38aa1d['count']:_0x3f6daf[_0xeed0('0x1c')]+_0x3f6daf[_0xeed0('0x1f')];var _0x2f4747;if(_0xb85fb1>=_0x36e742){_0xb85fb1=_0x36e742;_0x2f4747=0xc8;}else{_0x2f4747=0xce;}_0x35b96d[_0xeed0('0x1a')](_0x2f4747);return _0x35b96d[_0xeed0('0x20')](_0xeed0('0x21'),_0x340402+'-'+_0xb85fb1+'/'+_0x36e742)['json'](_0x38aa1d);}return null;};}function patchUpdates(_0x283e0f){return function(_0x5e0a00){try{jsonpatch[_0xeed0('0x22')](_0x5e0a00,_0x283e0f,!![]);}catch(_0x2c055e){return BPromise[_0xeed0('0x23')](_0x2c055e);}return _0x5e0a00['save']();};}function saveUpdates(_0x39b772,_0x28f21d){return function(_0x7d2f24){if(_0x7d2f24){return _0x7d2f24[_0xeed0('0x24')](_0x39b772)[_0xeed0('0x25')](function(_0x27c6ff){return _0x27c6ff;});}return null;};}function removeEntity(_0x1bb106,_0x3f7c24){return function(_0xf8e2b7){if(_0xf8e2b7){return _0xf8e2b7[_0xeed0('0x26')]()[_0xeed0('0x25')](function(){_0x1bb106[_0xeed0('0x1a')](0xcc)[_0xeed0('0x1b')]();});}};}function handleEntityNotFound(_0x577649,_0x4f3518){return function(_0xeffbfc){if(!_0xeffbfc){_0x577649[_0xeed0('0x27')](0x194);}return _0xeffbfc;};}function handleError(_0x30e22c,_0x11beba){_0x11beba=_0x11beba||0x1f4;return function(_0x54504f){logger[_0xeed0('0x28')](_0x54504f[_0xeed0('0x29')]);if(_0x54504f[_0xeed0('0x2a')]){delete _0x54504f[_0xeed0('0x2a')];}_0x30e22c[_0xeed0('0x1a')](_0x11beba)[_0xeed0('0x2b')](_0x54504f);};}exports[_0xeed0('0x2c')]=function(_0x14c51e,_0x9ade44){var _0x59a49a={},_0x5831c9={},_0x2ed782={'count':0x0,'rows':[]};var _0x19d031=_[_0xeed0('0x2d')](db['ChatInternalMessage'][_0xeed0('0x2e')],function(_0x582295){return{'name':_0x582295[_0xeed0('0x2f')],'type':_0x582295[_0xeed0('0x30')]['key']};});_0x5831c9['model']=_[_0xeed0('0x2d')](_0x19d031,'name');_0x5831c9[_0xeed0('0x31')]=_[_0xeed0('0x32')](_0x14c51e['query']);_0x5831c9[_0xeed0('0x33')]=_[_0xeed0('0x34')](_0x5831c9['model'],_0x5831c9['query']);_0x59a49a['attributes']=_[_0xeed0('0x34')](_0x5831c9['model'],qs[_0xeed0('0x35')](_0x14c51e[_0xeed0('0x31')][_0xeed0('0x35')]));_0x59a49a['attributes']=_0x59a49a[_0xeed0('0x36')][_0xeed0('0x37')]?_0x59a49a[_0xeed0('0x36')]:_0x5831c9[_0xeed0('0x38')];if(!_0x14c51e[_0xeed0('0x31')]['hasOwnProperty'](_0xeed0('0x39'))){_0x59a49a[_0xeed0('0x1f')]=qs[_0xeed0('0x1f')](_0x14c51e[_0xeed0('0x31')][_0xeed0('0x1f')]);_0x59a49a['offset']=qs[_0xeed0('0x1c')](_0x14c51e['query'][_0xeed0('0x1c')]);}_0x59a49a['order']=qs['sort'](_0x14c51e['query'][_0xeed0('0x3a')]);_0x59a49a[_0xeed0('0x3b')]=qs['filters'](_[_0xeed0('0x3c')](_0x14c51e[_0xeed0('0x31')],_0x5831c9[_0xeed0('0x33')]),_0x19d031);if(_0x14c51e[_0xeed0('0x31')]['filter']){_0x59a49a[_0xeed0('0x3b')]=_[_0xeed0('0x3d')](_0x59a49a[_0xeed0('0x3b')],{'$or':_['map'](_0x19d031,function(_0x40f6d6){if(_0x40f6d6['type']!==_0xeed0('0x3e')){var _0x101a2a={};_0x101a2a[_0x40f6d6['name']]={'$like':'%'+_0x14c51e['query'][_0xeed0('0x3f')]+'%'};return _0x101a2a;}})});}_0x59a49a=_[_0xeed0('0x3d')]({},_0x59a49a,_0x14c51e['options']);var _0x1f957b={'where':_0x59a49a[_0xeed0('0x3b')]};return db['ChatInternalMessage']['count'](_0x1f957b)[_0xeed0('0x25')](function(_0x425e2c){_0x2ed782['count']=_0x425e2c;if(_0x14c51e[_0xeed0('0x31')][_0xeed0('0x40')]){_0x59a49a[_0xeed0('0x41')]=[{'all':!![]}];}return db['ChatInternalMessage'][_0xeed0('0x42')](_0x59a49a);})[_0xeed0('0x25')](function(_0x178bc9){_0x2ed782['rows']=_0x178bc9;return _0x2ed782;})[_0xeed0('0x25')](respondWithFilteredResult(_0x9ade44,_0x59a49a))[_0xeed0('0x43')](handleError(_0x9ade44,null));};exports[_0xeed0('0x44')]=function(_0x1d8f66,_0x22d9ab){var _0x21c7d6={'raw':!![],'where':{'id':_0x1d8f66['params']['id']}},_0xf3f806={};_0xf3f806[_0xeed0('0x38')]=_['keys'](db[_0xeed0('0x45')]['rawAttributes']);_0xf3f806['query']=_[_0xeed0('0x32')](_0x1d8f66[_0xeed0('0x31')]);_0xf3f806[_0xeed0('0x33')]=_[_0xeed0('0x34')](_0xf3f806[_0xeed0('0x38')],_0xf3f806[_0xeed0('0x31')]);_0x21c7d6[_0xeed0('0x36')]=_[_0xeed0('0x34')](_0xf3f806[_0xeed0('0x38')],qs[_0xeed0('0x35')](_0x1d8f66['query'][_0xeed0('0x35')]));_0x21c7d6['attributes']=_0x21c7d6[_0xeed0('0x36')][_0xeed0('0x37')]?_0x21c7d6[_0xeed0('0x36')]:_0xf3f806[_0xeed0('0x38')];if(_0x1d8f66[_0xeed0('0x31')][_0xeed0('0x40')]){_0x21c7d6[_0xeed0('0x41')]=[{'all':!![]}];}_0x21c7d6=_[_0xeed0('0x3d')]({},_0x21c7d6,_0x1d8f66[_0xeed0('0x46')]);return db[_0xeed0('0x45')][_0xeed0('0x47')](_0x21c7d6)[_0xeed0('0x25')](handleEntityNotFound(_0x22d9ab,null))['then'](respondWithResult(_0x22d9ab,null))[_0xeed0('0x43')](handleError(_0x22d9ab,null));};exports[_0xeed0('0x48')]=function(_0x497027,_0x1e08d2){return db[_0xeed0('0x45')]['create'](_0x497027[_0xeed0('0x49')],{})['then'](respondWithResult(_0x1e08d2,0xc9))[_0xeed0('0x43')](handleError(_0x1e08d2,null));};exports['update']=function(_0x55fe8d,_0x34cb3b){if(_0x55fe8d['body']['id']){delete _0x55fe8d['body']['id'];}return db[_0xeed0('0x45')][_0xeed0('0x47')]({'where':{'id':_0x55fe8d[_0xeed0('0x4a')]['id']}})['then'](handleEntityNotFound(_0x34cb3b,null))['then'](saveUpdates(_0x55fe8d['body'],null))[_0xeed0('0x25')](respondWithResult(_0x34cb3b,null))['catch'](handleError(_0x34cb3b,null));};exports[_0xeed0('0x26')]=function(_0x27a380,_0x37933){return db[_0xeed0('0x45')][_0xeed0('0x47')]({'where':{'id':_0x27a380[_0xeed0('0x4a')]['id']}})[_0xeed0('0x25')](handleEntityNotFound(_0x37933,null))['then'](removeEntity(_0x37933,null))[_0xeed0('0x43')](handleError(_0x37933,null));};exports[_0xeed0('0x4b')]=function(_0xeb66e,_0x3fd6a2){return db['ChatInternalMessage'][_0xeed0('0x4b')]()['then'](respondWithResult(_0x3fd6a2,null))[_0xeed0('0x43')](handleError(_0x3fd6a2,null));};function wrapUser(_0x482685){return function(_0x169e89){var _0x412777=_0x482685['get']({'plain':!![]});_0x412777[_0xeed0('0x4c')]=[];if(_0x169e89){_0x412777['lastMessageAt']=_0x169e89['createdAt'];_0x412777['lastMessage']=_0x169e89;}else{_0x412777['lastMessageAt']=moment(0x0)['format'](_0xeed0('0x4d'));_0x412777['lastMessage']={};}return _0x412777;};}exports[_0xeed0('0x4e')]=function(_0x5baf58,_0x3a3491,_0x5a9c29){var _0x38fa81=[];return db[_0xeed0('0x4f')]['findAll']({'where':{'role':[_0xeed0('0x50'),_0xeed0('0x51'),_0xeed0('0x52')]},'attributes':['id','fullname','name',_0xeed0('0x53'),'userpic',_0xeed0('0x54'),_0xeed0('0x55'),_0xeed0('0x56'),_0xeed0('0x57'),_0xeed0('0x58')],'order':qs[_0xeed0('0x3a')]('-online'),'include':[{'model':db['VoiceQueue'],'as':'VoiceQueues','attributes':['id',_0xeed0('0x2a'),_0xeed0('0x30')],'through':{'attributes':[]}}]})[_0xeed0('0x25')](function(_0x453ffd){if(_0x453ffd){var _0x418307=_0x5baf58[_0xeed0('0x52')]['get']({'plain':!![]});if(!_0x418307)throw new Error(_0xeed0('0x59'));if(_0x418307['role']===_0xeed0('0x52')){return db[_0xeed0('0x5a')][_0xeed0('0x47')]({'where':{'name':_0xeed0('0x5b'),'userProfileId':_0x418307['userProfileId']},'raw':!![]})['then'](function(_0x30be9b){if(_0x30be9b){if(_0x30be9b['autoAssociation']===0x0){return db[_0xeed0('0x5c')][_0xeed0('0x42')]({'where':{'sectionId':_0x30be9b['id']},'raw':!![]})['then'](function(_0x31168a){var _0x135c93=[];if(_['isEmpty'](_0x31168a)){_0x135c93=_['filter'](_0x453ffd,function(_0x206030){if(_0x206030['role']!==_0xeed0('0x50')){return _0x206030;}});return _0x135c93;}else{for(var _0x59bf63=0x0;_0x59bf63<_0x453ffd[_0xeed0('0x37')];_0x59bf63++){var _0x26d3fb=_0x453ffd[_0x59bf63];if(_0x26d3fb[_0xeed0('0x53')]===_0xeed0('0x50')){var _0x307d0c=_[_0xeed0('0x47')](_0x31168a,function(_0x576afc){return _0x576afc['resourceId']===_0x26d3fb['id'];});if(_0x307d0c)_0x135c93['push'](_0x26d3fb);}else{_0x135c93[_0xeed0('0x5d')](_0x26d3fb);}}return _0x135c93;}});}else{return _0x453ffd;}}else{var _0x550a71=_['filter'](_0x453ffd,function(_0x322ec5){if(_0x322ec5['role']!=='agent'){return _0x322ec5;}});return _0x550a71;}});}else{return _0x453ffd;}}})[_0xeed0('0x25')](function(_0x2018e7){var _0x3df25e=[];if(_0x2018e7){_0x38fa81=_0x2018e7;for(var _0x4ecff6=0x0;_0x4ecff6<_0x2018e7[_0xeed0('0x37')];_0x4ecff6+=0x1){_0x38fa81[_0x4ecff6][_0xeed0('0x4c')]=[];_0x3df25e['push'](db[_0xeed0('0x45')][_0xeed0('0x47')]({'where':{'FromId':[_0x5baf58[_0xeed0('0x52')]['id'],_0x2018e7[_0x4ecff6]['id']],'ToId':[_0x5baf58[_0xeed0('0x52')]['id'],_0x2018e7[_0x4ecff6]['id']],'ChatGroupId':null},'attributes':['id',_0xeed0('0x5e'),_0xeed0('0x5f'),_0xeed0('0x60'),_0xeed0('0x61'),'body'],'order':qs[_0xeed0('0x3a')](_0xeed0('0x62')),'limit':0x1,'offset':0x0,'raw':!![]})[_0xeed0('0x25')](wrapUser(_0x2018e7[_0x4ecff6])));}return BPromise[_0xeed0('0x63')](_0x3df25e);}return[];})['then'](function(_0x4e31bc){return{'rows':_0x4e31bc,'count':_0x4e31bc['length']};})[_0xeed0('0x25')](respondWithResult(_0x3a3491,null))[_0xeed0('0x43')](handleError(_0x3a3491,null));};