Built motion from commit 10af8726.|2.6.34
[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 _0xf41a=['type','key','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','order','sort','where','pick','merge','filter','includeAll','findAll','rows','catch','show','params','include','options','body','find','destroy','describe','get','messages','lastMessageAt','lastMessage','format','getUsers','User','admin','role','userpic','showWebBar','-online','VoiceQueues','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','isEmpty','agent','resourceId','push','createdAt','FromId','ToId','read','all','eml-format','rimraf','fast-json-patch','mustache','path','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','redis','localhost','socket.io-emitter','./chatInternalMessage.socket','status','end','offset','undefined','limit','count','set','Content-Range','json','apply','reject','save','update','then','sendStatus','stack','name','send','map','ChatInternalMessage','rawAttributes','fieldName'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0xf41a,0x1dd));var _0xaf41=function(_0x21f588,_0x3f63ae){_0x21f588=_0x21f588-0x0;var _0x3b28cb=_0xf41a[_0x21f588];return _0x3b28cb;};'use strict';var emlformat=require(_0xaf41('0x0'));var rimraf=require(_0xaf41('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xaf41('0x2'));var rp=require('request-promise');var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0xaf41('0x3'));var util=require('util');var path=require(_0xaf41('0x4'));var sox=require('sox');var csv=require(_0xaf41('0x5'));var ejs=require(_0xaf41('0x6'));var fs=require('fs');var fs_extra=require(_0xaf41('0x7'));var _=require('lodash');var squel=require(_0xaf41('0x8'));var crypto=require(_0xaf41('0x9'));var jsforce=require(_0xaf41('0xa'));var deskjs=require(_0xaf41('0xb'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0xaf41('0xc'));var Redis=require(_0xaf41('0xd'));var authService=require(_0xaf41('0xe'));var qs=require(_0xaf41('0xf'));var as=require(_0xaf41('0x10'));var hardwareService=require(_0xaf41('0x11'));var logger=require(_0xaf41('0x12'))('api');var utils=require(_0xaf41('0x13'));var config=require(_0xaf41('0x14'));var licenseUtil=require(_0xaf41('0x15'));var db=require('../../mysqldb')['db'];config[_0xaf41('0x16')]=_['defaults'](config['redis'],{'host':_0xaf41('0x17'),'port':0x18eb});var socket=require(_0xaf41('0x18'))(new Redis(config[_0xaf41('0x16')]));require(_0xaf41('0x19'))['register'](socket);function respondWithStatusCode(_0x2fdcf2,_0x37a6ae){_0x37a6ae=_0x37a6ae||0xcc;return function(_0x1cdaec){if(_0x1cdaec){return _0x2fdcf2['sendStatus'](_0x37a6ae);}return _0x2fdcf2[_0xaf41('0x1a')](_0x37a6ae)[_0xaf41('0x1b')]();};}function respondWithResult(_0x47873e,_0x1ed489){_0x1ed489=_0x1ed489||0xc8;return function(_0x346aa6){if(_0x346aa6){return _0x47873e[_0xaf41('0x1a')](_0x1ed489)['json'](_0x346aa6);}};}function respondWithFilteredResult(_0x35d58d,_0x18c259){return function(_0x35ec23){if(_0x35ec23){var _0x2cc149=typeof _0x18c259[_0xaf41('0x1c')]===_0xaf41('0x1d')&&typeof _0x18c259[_0xaf41('0x1e')]===_0xaf41('0x1d');var _0x156ab5=_0x35ec23[_0xaf41('0x1f')];var _0x45c80b=_0x2cc149?0x0:_0x18c259[_0xaf41('0x1c')];var _0x1b5a1f=_0x2cc149?_0x35ec23[_0xaf41('0x1f')]:_0x18c259[_0xaf41('0x1c')]+_0x18c259[_0xaf41('0x1e')];var _0x5abeeb;if(_0x1b5a1f>=_0x156ab5){_0x1b5a1f=_0x156ab5;_0x5abeeb=0xc8;}else{_0x5abeeb=0xce;}_0x35d58d['status'](_0x5abeeb);return _0x35d58d[_0xaf41('0x20')](_0xaf41('0x21'),_0x45c80b+'-'+_0x1b5a1f+'/'+_0x156ab5)[_0xaf41('0x22')](_0x35ec23);}return null;};}function patchUpdates(_0xae1b00){return function(_0x3f6d03){try{jsonpatch[_0xaf41('0x23')](_0x3f6d03,_0xae1b00,!![]);}catch(_0x26abc7){return BPromise[_0xaf41('0x24')](_0x26abc7);}return _0x3f6d03[_0xaf41('0x25')]();};}function saveUpdates(_0xd5c6b8,_0x454489){return function(_0x20cf87){if(_0x20cf87){return _0x20cf87[_0xaf41('0x26')](_0xd5c6b8)[_0xaf41('0x27')](function(_0x29828a){return _0x29828a;});}return null;};}function removeEntity(_0x953b9f,_0x5533e4){return function(_0x3ed706){if(_0x3ed706){return _0x3ed706['destroy']()[_0xaf41('0x27')](function(){_0x953b9f[_0xaf41('0x1a')](0xcc)[_0xaf41('0x1b')]();});}};}function handleEntityNotFound(_0x334051,_0x260677){return function(_0x3d5031){if(!_0x3d5031){_0x334051[_0xaf41('0x28')](0x194);}return _0x3d5031;};}function handleError(_0x5de024,_0x31d48e){_0x31d48e=_0x31d48e||0x1f4;return function(_0x3a630f){logger['error'](_0x3a630f[_0xaf41('0x29')]);if(_0x3a630f[_0xaf41('0x2a')]){delete _0x3a630f[_0xaf41('0x2a')];}_0x5de024[_0xaf41('0x1a')](_0x31d48e)[_0xaf41('0x2b')](_0x3a630f);};}exports['index']=function(_0x3a4e3b,_0x482009){var _0x229f71={},_0x5fea95={},_0x342f48={'count':0x0,'rows':[]};var _0x248ec0=_[_0xaf41('0x2c')](db[_0xaf41('0x2d')][_0xaf41('0x2e')],function(_0x5d719f){return{'name':_0x5d719f[_0xaf41('0x2f')],'type':_0x5d719f[_0xaf41('0x30')][_0xaf41('0x31')]};});_0x5fea95[_0xaf41('0x32')]=_[_0xaf41('0x2c')](_0x248ec0,_0xaf41('0x2a'));_0x5fea95[_0xaf41('0x33')]=_[_0xaf41('0x34')](_0x3a4e3b[_0xaf41('0x33')]);_0x5fea95[_0xaf41('0x35')]=_['intersection'](_0x5fea95[_0xaf41('0x32')],_0x5fea95[_0xaf41('0x33')]);_0x229f71['attributes']=_[_0xaf41('0x36')](_0x5fea95[_0xaf41('0x32')],qs[_0xaf41('0x37')](_0x3a4e3b[_0xaf41('0x33')]['fields']));_0x229f71['attributes']=_0x229f71[_0xaf41('0x38')][_0xaf41('0x39')]?_0x229f71[_0xaf41('0x38')]:_0x5fea95['model'];if(!_0x3a4e3b[_0xaf41('0x33')][_0xaf41('0x3a')]('nolimit')){_0x229f71[_0xaf41('0x1e')]=qs[_0xaf41('0x1e')](_0x3a4e3b[_0xaf41('0x33')]['limit']);_0x229f71[_0xaf41('0x1c')]=qs[_0xaf41('0x1c')](_0x3a4e3b[_0xaf41('0x33')][_0xaf41('0x1c')]);}_0x229f71[_0xaf41('0x3b')]=qs[_0xaf41('0x3c')](_0x3a4e3b['query'][_0xaf41('0x3c')]);_0x229f71[_0xaf41('0x3d')]=qs[_0xaf41('0x35')](_[_0xaf41('0x3e')](_0x3a4e3b[_0xaf41('0x33')],_0x5fea95[_0xaf41('0x35')]),_0x248ec0);if(_0x3a4e3b[_0xaf41('0x33')]['filter']){_0x229f71[_0xaf41('0x3d')]=_[_0xaf41('0x3f')](_0x229f71[_0xaf41('0x3d')],{'$or':_[_0xaf41('0x2c')](_0x248ec0,function(_0x4aeb38){if(_0x4aeb38[_0xaf41('0x30')]!=='VIRTUAL'){var _0x4afa79={};_0x4afa79[_0x4aeb38['name']]={'$like':'%'+_0x3a4e3b[_0xaf41('0x33')][_0xaf41('0x40')]+'%'};return _0x4afa79;}})});}_0x229f71=_['merge']({},_0x229f71,_0x3a4e3b['options']);var _0x2d53fb={'where':_0x229f71[_0xaf41('0x3d')]};return db[_0xaf41('0x2d')]['count'](_0x2d53fb)[_0xaf41('0x27')](function(_0x51bbad){_0x342f48[_0xaf41('0x1f')]=_0x51bbad;if(_0x3a4e3b[_0xaf41('0x33')][_0xaf41('0x41')]){_0x229f71['include']=[{'all':!![]}];}return db[_0xaf41('0x2d')][_0xaf41('0x42')](_0x229f71);})['then'](function(_0x21d432){_0x342f48[_0xaf41('0x43')]=_0x21d432;return _0x342f48;})[_0xaf41('0x27')](respondWithFilteredResult(_0x482009,_0x229f71))[_0xaf41('0x44')](handleError(_0x482009,null));};exports[_0xaf41('0x45')]=function(_0x312523,_0x735f01){var _0x1af06e={'raw':!![],'where':{'id':_0x312523[_0xaf41('0x46')]['id']}},_0x3323b2={};_0x3323b2['model']=_[_0xaf41('0x34')](db[_0xaf41('0x2d')][_0xaf41('0x2e')]);_0x3323b2[_0xaf41('0x33')]=_[_0xaf41('0x34')](_0x312523[_0xaf41('0x33')]);_0x3323b2[_0xaf41('0x35')]=_[_0xaf41('0x36')](_0x3323b2[_0xaf41('0x32')],_0x3323b2[_0xaf41('0x33')]);_0x1af06e[_0xaf41('0x38')]=_[_0xaf41('0x36')](_0x3323b2[_0xaf41('0x32')],qs[_0xaf41('0x37')](_0x312523[_0xaf41('0x33')][_0xaf41('0x37')]));_0x1af06e[_0xaf41('0x38')]=_0x1af06e[_0xaf41('0x38')][_0xaf41('0x39')]?_0x1af06e['attributes']:_0x3323b2[_0xaf41('0x32')];if(_0x312523[_0xaf41('0x33')][_0xaf41('0x41')]){_0x1af06e[_0xaf41('0x47')]=[{'all':!![]}];}_0x1af06e=_[_0xaf41('0x3f')]({},_0x1af06e,_0x312523[_0xaf41('0x48')]);return db[_0xaf41('0x2d')]['find'](_0x1af06e)[_0xaf41('0x27')](handleEntityNotFound(_0x735f01,null))['then'](respondWithResult(_0x735f01,null))[_0xaf41('0x44')](handleError(_0x735f01,null));};exports['create']=function(_0x4c807a,_0x1c6655){return db[_0xaf41('0x2d')]['create'](_0x4c807a['body'],{})[_0xaf41('0x27')](respondWithResult(_0x1c6655,0xc9))[_0xaf41('0x44')](handleError(_0x1c6655,null));};exports['update']=function(_0x192f37,_0x2f2f8a){if(_0x192f37[_0xaf41('0x49')]['id']){delete _0x192f37[_0xaf41('0x49')]['id'];}return db[_0xaf41('0x2d')][_0xaf41('0x4a')]({'where':{'id':_0x192f37[_0xaf41('0x46')]['id']}})[_0xaf41('0x27')](handleEntityNotFound(_0x2f2f8a,null))['then'](saveUpdates(_0x192f37['body'],null))[_0xaf41('0x27')](respondWithResult(_0x2f2f8a,null))[_0xaf41('0x44')](handleError(_0x2f2f8a,null));};exports[_0xaf41('0x4b')]=function(_0x2af88d,_0x3d5cc5){return db[_0xaf41('0x2d')][_0xaf41('0x4a')]({'where':{'id':_0x2af88d[_0xaf41('0x46')]['id']}})['then'](handleEntityNotFound(_0x3d5cc5,null))[_0xaf41('0x27')](removeEntity(_0x3d5cc5,null))[_0xaf41('0x44')](handleError(_0x3d5cc5,null));};exports[_0xaf41('0x4c')]=function(_0x2902eb,_0x6f715b){return db[_0xaf41('0x2d')][_0xaf41('0x4c')]()['then'](respondWithResult(_0x6f715b,null))['catch'](handleError(_0x6f715b,null));};function wrapUser(_0x22c493){return function(_0x2e323b){var _0x5f3c6c=_0x22c493[_0xaf41('0x4d')]({'plain':!![]});_0x5f3c6c[_0xaf41('0x4e')]=[];if(_0x2e323b){_0x5f3c6c[_0xaf41('0x4f')]=_0x2e323b['createdAt'];_0x5f3c6c[_0xaf41('0x50')]=_0x2e323b;}else{_0x5f3c6c[_0xaf41('0x4f')]=moment(0x0)[_0xaf41('0x51')]('YYYY-MM-DD\x20HH:mm:ss');_0x5f3c6c[_0xaf41('0x50')]={};}return _0x5f3c6c;};}exports[_0xaf41('0x52')]=function(_0x4dfa0b,_0x274d86,_0xf423b3){var _0x5ca2cc=[];return db[_0xaf41('0x53')]['findAll']({'where':{'role':['agent',_0xaf41('0x54'),'user']},'attributes':['id','fullname',_0xaf41('0x2a'),_0xaf41('0x55'),_0xaf41('0x56'),'internal','online','lastLoginAt','allowmessenger',_0xaf41('0x57')],'order':qs[_0xaf41('0x3c')](_0xaf41('0x58')),'include':[{'model':db['VoiceQueue'],'as':_0xaf41('0x59'),'attributes':['id','name',_0xaf41('0x30')],'through':{'attributes':[]}}]})[_0xaf41('0x27')](function(_0x2cc6f4){if(_0x2cc6f4){var _0x4aa3bb=_0x4dfa0b['user'][_0xaf41('0x4d')]({'plain':!![]});if(!_0x4aa3bb)throw new Error(_0xaf41('0x5a'));if(_0x4aa3bb[_0xaf41('0x55')]===_0xaf41('0x5b')){return db[_0xaf41('0x5c')][_0xaf41('0x4a')]({'where':{'name':'Agents','userProfileId':_0x4aa3bb[_0xaf41('0x5d')]},'raw':!![]})[_0xaf41('0x27')](function(_0x50bf17){if(_0x50bf17){if(_0x50bf17[_0xaf41('0x5e')]===0x0){return db[_0xaf41('0x5f')]['findAll']({'where':{'sectionId':_0x50bf17['id']},'raw':!![]})[_0xaf41('0x27')](function(_0x5200e6){var _0x2dafb3=[];if(_[_0xaf41('0x60')](_0x5200e6)){_0x2dafb3=_[_0xaf41('0x40')](_0x2cc6f4,function(_0x219145){if(_0x219145[_0xaf41('0x55')]!==_0xaf41('0x61')){return _0x219145;}});return _0x2dafb3;}else{for(var _0xd3c2ad=0x0;_0xd3c2ad<_0x2cc6f4[_0xaf41('0x39')];_0xd3c2ad++){var _0x8093ae=_0x2cc6f4[_0xd3c2ad];if(_0x8093ae['role']===_0xaf41('0x61')){var _0x49fa94=_['find'](_0x5200e6,function(_0x596b70){return _0x596b70[_0xaf41('0x62')]===_0x8093ae['id'];});if(_0x49fa94)_0x2dafb3['push'](_0x8093ae);}else{_0x2dafb3[_0xaf41('0x63')](_0x8093ae);}}return _0x2dafb3;}});}else{return _0x2cc6f4;}}else{var _0x4a9f55=_[_0xaf41('0x40')](_0x2cc6f4,function(_0x19b474){if(_0x19b474['role']!=='agent'){return _0x19b474;}});return _0x4a9f55;}});}else{return _0x2cc6f4;}}})[_0xaf41('0x27')](function(_0x283341){var _0x3429cd=[];if(_0x283341){_0x5ca2cc=_0x283341;for(var _0x48e115=0x0;_0x48e115<_0x283341['length'];_0x48e115+=0x1){_0x5ca2cc[_0x48e115][_0xaf41('0x4e')]=[];_0x3429cd['push'](db[_0xaf41('0x2d')][_0xaf41('0x4a')]({'where':{'FromId':[_0x4dfa0b[_0xaf41('0x5b')]['id'],_0x283341[_0x48e115]['id']],'ToId':[_0x4dfa0b[_0xaf41('0x5b')]['id'],_0x283341[_0x48e115]['id']],'ChatGroupId':null},'attributes':['id',_0xaf41('0x64'),_0xaf41('0x65'),_0xaf41('0x66'),_0xaf41('0x67'),_0xaf41('0x49')],'order':qs[_0xaf41('0x3c')]('-createdAt'),'limit':0x1,'offset':0x0,'raw':!![]})['then'](wrapUser(_0x283341[_0x48e115])));}return BPromise[_0xaf41('0x68')](_0x3429cd);}return[];})['then'](function(_0x5b2f2c){return{'rows':_0x5b2f2c,'count':_0x5b2f2c[_0xaf41('0x39')]};})[_0xaf41('0x27')](respondWithResult(_0x274d86,null))[_0xaf41('0x44')](handleError(_0x274d86,null));};