cc0cb78d64b8f00faa09ef7e9420e0b58a17ea69
[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 _0x1163=['push','FromId','read','-createdAt','all','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','path','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/environment','../../config/license/util','../../mysqldb','redis','localhost','sendStatus','status','end','json','offset','undefined','limit','set','apply','save','update','then','destroy','error','stack','name','send','index','map','ChatInternalMessage','rawAttributes','type','key','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','pick','merge','where','filter','options','count','include','findAll','rows','catch','params','includeAll','find','create','body','describe','get','messages','lastMessageAt','createdAt','lastMessage','format','YYYY-MM-DD\x20HH:mm:ss','getUsers','User','agent','admin','user','fullname','role','internal','online','lastLoginAt','allowmessenger','showWebBar','-online','VoiceQueue','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','Agents','autoAssociation','UserProfileResource','isEmpty','resourceId'];(function(_0x494d1f,_0x3f72ff){var _0x457b6e=function(_0x38cb16){while(--_0x38cb16){_0x494d1f['push'](_0x494d1f['shift']());}};_0x457b6e(++_0x3f72ff);}(_0x1163,0x75));var _0x3116=function(_0x54b062,_0x264bb5){_0x54b062=_0x54b062-0x0;var _0x255e41=_0x1163[_0x54b062];return _0x255e41;};'use strict';var emlformat=require(_0x3116('0x0'));var rimraf=require(_0x3116('0x1'));var zipdir=require(_0x3116('0x2'));var jsonpatch=require(_0x3116('0x3'));var rp=require(_0x3116('0x4'));var moment=require(_0x3116('0x5'));var BPromise=require(_0x3116('0x6'));var Mustache=require('mustache');var util=require('util');var path=require(_0x3116('0x7'));var sox=require(_0x3116('0x8'));var csv=require(_0x3116('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x3116('0xa'));var _=require(_0x3116('0xb'));var squel=require(_0x3116('0xc'));var crypto=require(_0x3116('0xd'));var jsforce=require(_0x3116('0xe'));var deskjs=require(_0x3116('0xf'));var toCsv=require('to-csv');var querystring=require(_0x3116('0x10'));var Papa=require(_0x3116('0x11'));var Redis=require(_0x3116('0x12'));var authService=require('../../components/auth/service');var qs=require(_0x3116('0x13'));var as=require(_0x3116('0x14'));var hardwareService=require(_0x3116('0x15'));var logger=require('../../config/logger')(_0x3116('0x16'));var utils=require('../../config/utils');var config=require(_0x3116('0x17'));var licenseUtil=require(_0x3116('0x18'));var db=require(_0x3116('0x19'))['db'];config[_0x3116('0x1a')]=_['defaults'](config[_0x3116('0x1a')],{'host':_0x3116('0x1b'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require('./chatInternalMessage.socket')['register'](socket);function respondWithStatusCode(_0x56c6eb,_0x42f4d1){_0x42f4d1=_0x42f4d1||0xcc;return function(_0x108447){if(_0x108447){return _0x56c6eb[_0x3116('0x1c')](_0x42f4d1);}return _0x56c6eb[_0x3116('0x1d')](_0x42f4d1)[_0x3116('0x1e')]();};}function respondWithResult(_0x14fc30,_0x19742f){_0x19742f=_0x19742f||0xc8;return function(_0xce2467){if(_0xce2467){return _0x14fc30[_0x3116('0x1d')](_0x19742f)[_0x3116('0x1f')](_0xce2467);}};}function respondWithFilteredResult(_0x4f2ddd,_0x2761d9){return function(_0x10ddaa){if(_0x10ddaa){var _0x564847=typeof _0x2761d9[_0x3116('0x20')]===_0x3116('0x21')&&typeof _0x2761d9[_0x3116('0x22')]===_0x3116('0x21');var _0x3a2dd5=_0x10ddaa['count'];var _0x5b2e90=_0x564847?0x0:_0x2761d9[_0x3116('0x20')];var _0x490e92=_0x564847?_0x10ddaa['count']:_0x2761d9['offset']+_0x2761d9[_0x3116('0x22')];var _0x56825b;if(_0x490e92>=_0x3a2dd5){_0x490e92=_0x3a2dd5;_0x56825b=0xc8;}else{_0x56825b=0xce;}_0x4f2ddd[_0x3116('0x1d')](_0x56825b);return _0x4f2ddd[_0x3116('0x23')]('Content-Range',_0x5b2e90+'-'+_0x490e92+'/'+_0x3a2dd5)[_0x3116('0x1f')](_0x10ddaa);}return null;};}function patchUpdates(_0x386d0c){return function(_0x5bcdee){try{jsonpatch[_0x3116('0x24')](_0x5bcdee,_0x386d0c,!![]);}catch(_0x122f24){return BPromise['reject'](_0x122f24);}return _0x5bcdee[_0x3116('0x25')]();};}function saveUpdates(_0x2295b9,_0x136874){return function(_0x2c802e){if(_0x2c802e){return _0x2c802e[_0x3116('0x26')](_0x2295b9)[_0x3116('0x27')](function(_0x1d48a5){return _0x1d48a5;});}return null;};}function removeEntity(_0x5069a5,_0x352a6d){return function(_0x15e553){if(_0x15e553){return _0x15e553[_0x3116('0x28')]()['then'](function(){_0x5069a5['status'](0xcc)[_0x3116('0x1e')]();});}};}function handleEntityNotFound(_0x1e26a4,_0x58c08e){return function(_0x4d38f7){if(!_0x4d38f7){_0x1e26a4[_0x3116('0x1c')](0x194);}return _0x4d38f7;};}function handleError(_0x2143b2,_0x42c292){_0x42c292=_0x42c292||0x1f4;return function(_0x8802a6){logger[_0x3116('0x29')](_0x8802a6[_0x3116('0x2a')]);if(_0x8802a6[_0x3116('0x2b')]){delete _0x8802a6[_0x3116('0x2b')];}_0x2143b2['status'](_0x42c292)[_0x3116('0x2c')](_0x8802a6);};}exports[_0x3116('0x2d')]=function(_0x2840ad,_0x11d5da){var _0x277bab={},_0x21cc38={},_0x2aaa81={'count':0x0,'rows':[]};var _0x1115a0=_[_0x3116('0x2e')](db[_0x3116('0x2f')][_0x3116('0x30')],function(_0x411a3b){return{'name':_0x411a3b['fieldName'],'type':_0x411a3b[_0x3116('0x31')][_0x3116('0x32')]};});_0x21cc38[_0x3116('0x33')]=_[_0x3116('0x2e')](_0x1115a0,_0x3116('0x2b'));_0x21cc38[_0x3116('0x34')]=_[_0x3116('0x35')](_0x2840ad[_0x3116('0x34')]);_0x21cc38[_0x3116('0x36')]=_[_0x3116('0x37')](_0x21cc38[_0x3116('0x33')],_0x21cc38[_0x3116('0x34')]);_0x277bab['attributes']=_[_0x3116('0x37')](_0x21cc38[_0x3116('0x33')],qs[_0x3116('0x38')](_0x2840ad['query'][_0x3116('0x38')]));_0x277bab[_0x3116('0x39')]=_0x277bab[_0x3116('0x39')][_0x3116('0x3a')]?_0x277bab[_0x3116('0x39')]:_0x21cc38[_0x3116('0x33')];if(!_0x2840ad['query'][_0x3116('0x3b')](_0x3116('0x3c'))){_0x277bab[_0x3116('0x22')]=qs[_0x3116('0x22')](_0x2840ad[_0x3116('0x34')]['limit']);_0x277bab[_0x3116('0x20')]=qs[_0x3116('0x20')](_0x2840ad['query'][_0x3116('0x20')]);}_0x277bab[_0x3116('0x3d')]=qs[_0x3116('0x3e')](_0x2840ad[_0x3116('0x34')]['sort']);_0x277bab['where']=qs['filters'](_[_0x3116('0x3f')](_0x2840ad[_0x3116('0x34')],_0x21cc38[_0x3116('0x36')]),_0x1115a0);if(_0x2840ad[_0x3116('0x34')]['filter']){_0x277bab['where']=_[_0x3116('0x40')](_0x277bab[_0x3116('0x41')],{'$or':_[_0x3116('0x2e')](_0x1115a0,function(_0x34bce0){if(_0x34bce0[_0x3116('0x31')]!=='VIRTUAL'){var _0x2879ea={};_0x2879ea[_0x34bce0[_0x3116('0x2b')]]={'$like':'%'+_0x2840ad[_0x3116('0x34')][_0x3116('0x42')]+'%'};return _0x2879ea;}})});}_0x277bab=_[_0x3116('0x40')]({},_0x277bab,_0x2840ad[_0x3116('0x43')]);var _0x3cf417={'where':_0x277bab['where']};return db[_0x3116('0x2f')][_0x3116('0x44')](_0x3cf417)[_0x3116('0x27')](function(_0x568b1e){_0x2aaa81[_0x3116('0x44')]=_0x568b1e;if(_0x2840ad[_0x3116('0x34')]['includeAll']){_0x277bab[_0x3116('0x45')]=[{'all':!![]}];}return db[_0x3116('0x2f')][_0x3116('0x46')](_0x277bab);})['then'](function(_0x2dafc3){_0x2aaa81[_0x3116('0x47')]=_0x2dafc3;return _0x2aaa81;})[_0x3116('0x27')](respondWithFilteredResult(_0x11d5da,_0x277bab))[_0x3116('0x48')](handleError(_0x11d5da,null));};exports['show']=function(_0x4e26d5,_0x81cc04){var _0x13a8db={'raw':!![],'where':{'id':_0x4e26d5[_0x3116('0x49')]['id']}},_0x4fd881={};_0x4fd881[_0x3116('0x33')]=_['keys'](db[_0x3116('0x2f')]['rawAttributes']);_0x4fd881[_0x3116('0x34')]=_[_0x3116('0x35')](_0x4e26d5[_0x3116('0x34')]);_0x4fd881[_0x3116('0x36')]=_['intersection'](_0x4fd881[_0x3116('0x33')],_0x4fd881[_0x3116('0x34')]);_0x13a8db[_0x3116('0x39')]=_['intersection'](_0x4fd881[_0x3116('0x33')],qs[_0x3116('0x38')](_0x4e26d5[_0x3116('0x34')]['fields']));_0x13a8db[_0x3116('0x39')]=_0x13a8db[_0x3116('0x39')][_0x3116('0x3a')]?_0x13a8db[_0x3116('0x39')]:_0x4fd881[_0x3116('0x33')];if(_0x4e26d5['query'][_0x3116('0x4a')]){_0x13a8db['include']=[{'all':!![]}];}_0x13a8db=_[_0x3116('0x40')]({},_0x13a8db,_0x4e26d5[_0x3116('0x43')]);return db[_0x3116('0x2f')][_0x3116('0x4b')](_0x13a8db)[_0x3116('0x27')](handleEntityNotFound(_0x81cc04,null))[_0x3116('0x27')](respondWithResult(_0x81cc04,null))[_0x3116('0x48')](handleError(_0x81cc04,null));};exports[_0x3116('0x4c')]=function(_0x301baa,_0x5b28f4){return db[_0x3116('0x2f')]['create'](_0x301baa['body'],{})[_0x3116('0x27')](respondWithResult(_0x5b28f4,0xc9))['catch'](handleError(_0x5b28f4,null));};exports[_0x3116('0x26')]=function(_0x2b43a2,_0x3d86e0){if(_0x2b43a2[_0x3116('0x4d')]['id']){delete _0x2b43a2[_0x3116('0x4d')]['id'];}return db['ChatInternalMessage'][_0x3116('0x4b')]({'where':{'id':_0x2b43a2['params']['id']}})[_0x3116('0x27')](handleEntityNotFound(_0x3d86e0,null))[_0x3116('0x27')](saveUpdates(_0x2b43a2[_0x3116('0x4d')],null))[_0x3116('0x27')](respondWithResult(_0x3d86e0,null))[_0x3116('0x48')](handleError(_0x3d86e0,null));};exports[_0x3116('0x28')]=function(_0xeb0687,_0x480cc6){return db[_0x3116('0x2f')][_0x3116('0x4b')]({'where':{'id':_0xeb0687[_0x3116('0x49')]['id']}})[_0x3116('0x27')](handleEntityNotFound(_0x480cc6,null))[_0x3116('0x27')](removeEntity(_0x480cc6,null))[_0x3116('0x48')](handleError(_0x480cc6,null));};exports[_0x3116('0x4e')]=function(_0x3792dc,_0x58a17c){return db[_0x3116('0x2f')][_0x3116('0x4e')]()[_0x3116('0x27')](respondWithResult(_0x58a17c,null))['catch'](handleError(_0x58a17c,null));};function wrapUser(_0x52cf7f){return function(_0x3effbf){var _0x491332=_0x52cf7f[_0x3116('0x4f')]({'plain':!![]});_0x491332[_0x3116('0x50')]=[];if(_0x3effbf){_0x491332[_0x3116('0x51')]=_0x3effbf[_0x3116('0x52')];_0x491332[_0x3116('0x53')]=_0x3effbf;}else{_0x491332['lastMessageAt']=moment(0x0)[_0x3116('0x54')](_0x3116('0x55'));_0x491332[_0x3116('0x53')]={};}return _0x491332;};}exports[_0x3116('0x56')]=function(_0x456b6a,_0x40be1b,_0x2e4cc5){var _0x4541ef=[];return db[_0x3116('0x57')][_0x3116('0x46')]({'where':{'role':[_0x3116('0x58'),_0x3116('0x59'),_0x3116('0x5a')]},'attributes':['id',_0x3116('0x5b'),_0x3116('0x2b'),_0x3116('0x5c'),'userpic',_0x3116('0x5d'),_0x3116('0x5e'),_0x3116('0x5f'),_0x3116('0x60'),_0x3116('0x61')],'order':qs[_0x3116('0x3e')](_0x3116('0x62')),'include':[{'model':db[_0x3116('0x63')],'as':'VoiceQueues','attributes':['id',_0x3116('0x2b'),_0x3116('0x31')],'through':{'attributes':[]}}]})[_0x3116('0x27')](function(_0x3b2688){if(_0x3b2688){var _0x14340b=_0x456b6a['user'][_0x3116('0x4f')]({'plain':!![]});if(!_0x14340b)throw new Error(_0x3116('0x64'));if(_0x14340b[_0x3116('0x5c')]===_0x3116('0x5a')){return db[_0x3116('0x65')]['find']({'where':{'name':_0x3116('0x66'),'userProfileId':_0x14340b['userProfileId']},'raw':!![]})['then'](function(_0x43c0d7){if(_0x43c0d7){if(_0x43c0d7[_0x3116('0x67')]===0x0){return db[_0x3116('0x68')][_0x3116('0x46')]({'where':{'sectionId':_0x43c0d7['id']},'raw':!![]})['then'](function(_0x5b8086){var _0xd97a34=[];if(_[_0x3116('0x69')](_0x5b8086)){_0xd97a34=_[_0x3116('0x42')](_0x3b2688,function(_0xe8a6a2){if(_0xe8a6a2[_0x3116('0x5c')]!==_0x3116('0x58')){return _0xe8a6a2;}});return _0xd97a34;}else{for(var _0x19354f=0x0;_0x19354f<_0x3b2688['length'];_0x19354f++){var _0x134435=_0x3b2688[_0x19354f];if(_0x134435[_0x3116('0x5c')]===_0x3116('0x58')){var _0x372ea1=_['find'](_0x5b8086,function(_0x1e7a9c){return _0x1e7a9c[_0x3116('0x6a')]===_0x134435['id'];});if(_0x372ea1)_0xd97a34['push'](_0x134435);}else{_0xd97a34[_0x3116('0x6b')](_0x134435);}}return _0xd97a34;}});}else{return _0x3b2688;}}else{var _0xcb6790=_[_0x3116('0x42')](_0x3b2688,function(_0x7b26be){if(_0x7b26be[_0x3116('0x5c')]!==_0x3116('0x58')){return _0x7b26be;}});return _0xcb6790;}});}else{return _0x3b2688;}}})[_0x3116('0x27')](function(_0x3ca73e){var _0x11f909=[];if(_0x3ca73e){_0x4541ef=_0x3ca73e;for(var _0x2c4425=0x0;_0x2c4425<_0x3ca73e[_0x3116('0x3a')];_0x2c4425+=0x1){_0x4541ef[_0x2c4425][_0x3116('0x50')]=[];_0x11f909[_0x3116('0x6b')](db['ChatInternalMessage'][_0x3116('0x4b')]({'where':{'FromId':[_0x456b6a[_0x3116('0x5a')]['id'],_0x3ca73e[_0x2c4425]['id']],'ToId':[_0x456b6a[_0x3116('0x5a')]['id'],_0x3ca73e[_0x2c4425]['id']],'ChatGroupId':null},'attributes':['id',_0x3116('0x52'),_0x3116('0x6c'),'ToId',_0x3116('0x6d'),_0x3116('0x4d')],'order':qs[_0x3116('0x3e')](_0x3116('0x6e')),'limit':0x1,'offset':0x0,'raw':!![]})[_0x3116('0x27')](wrapUser(_0x3ca73e[_0x2c4425])));}return BPromise[_0x3116('0x6f')](_0x11f909);}return[];})[_0x3116('0x27')](function(_0xddde94){return{'rows':_0xddde94,'count':_0xddde94[_0x3116('0x3a')]};})[_0x3116('0x27')](respondWithResult(_0x40be1b,null))[_0x3116('0x48')](handleError(_0x40be1b,null));};