Built motion from commit (unavailable).|2.5.4
[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 _0x7c86=['intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','rows','catch','show','params','length','include','find','body','update','describe','get','messages','lastMessageAt','createdAt','lastMessage','format','YYYY-MM-DD\x20HH:mm:ss','getUsers','findAll','agent','admin','user','role','userpic','online','lastLoginAt','showWebBar','VoiceQueue','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','isEmpty','resourceId','push','FromId','all','html-pdf','eml-format','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','to-csv','ejs','lodash','squel','crypto','jsforce','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../mysqldb','redis','defaults','localhost','./chatInternalMessage.socket','register','status','end','json','count','offset','limit','set','reject','save','then','destroy','sendStatus','error','send','index','map','ChatInternalMessage','rawAttributes','fieldName','type','key','model','name','query','keys','filters'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x7c86,0x171));var _0x67c8=function(_0x341e0f,_0x4a09d0){_0x341e0f=_0x341e0f-0x0;var _0x59555a=_0x7c86[_0x341e0f];return _0x59555a;};'use strict';var pdf=require(_0x67c8('0x0'));var emlformat=require(_0x67c8('0x1'));var rimraf=require('rimraf');var zipdir=require(_0x67c8('0x2'));var jsonpatch=require(_0x67c8('0x3'));var rp=require(_0x67c8('0x4'));var moment=require(_0x67c8('0x5'));var BPromise=require('bluebird');var Mustache=require(_0x67c8('0x6'));var util=require(_0x67c8('0x7'));var path=require(_0x67c8('0x8'));var sox=require('sox');var csv=require(_0x67c8('0x9'));var ejs=require(_0x67c8('0xa'));var fs=require('fs');var _=require(_0x67c8('0xb'));var squel=require(_0x67c8('0xc'));var crypto=require(_0x67c8('0xd'));var jsforce=require(_0x67c8('0xe'));var deskjs=require('desk.js');var toCsv=require(_0x67c8('0x9'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x67c8('0xf'));var authService=require(_0x67c8('0x10'));var qs=require(_0x67c8('0x11'));var as=require(_0x67c8('0x12'));var hardwareService=require(_0x67c8('0x13'));var logger=require(_0x67c8('0x14'))(_0x67c8('0x15'));var utils=require(_0x67c8('0x16'));var config=require('../../config/environment');var db=require(_0x67c8('0x17'))['db'];config[_0x67c8('0x18')]=_[_0x67c8('0x19')](config[_0x67c8('0x18')],{'host':_0x67c8('0x1a'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x67c8('0x18')]));require(_0x67c8('0x1b'))[_0x67c8('0x1c')](socket);function respondWithStatusCode(_0x10a6d1,_0xdd44ae){_0xdd44ae=_0xdd44ae||0xcc;return function(_0xc73b4d){if(_0xc73b4d){return _0x10a6d1['sendStatus'](_0xdd44ae);}return _0x10a6d1[_0x67c8('0x1d')](_0xdd44ae)[_0x67c8('0x1e')]();};}function respondWithResult(_0x4347e5,_0x37ed79){_0x37ed79=_0x37ed79||0xc8;return function(_0x483ff9){if(_0x483ff9){return _0x4347e5[_0x67c8('0x1d')](_0x37ed79)[_0x67c8('0x1f')](_0x483ff9);}};}function respondWithFilteredResult(_0x29e2a8,_0xbdadcc){return function(_0x36a917){if(_0x36a917){var _0x4a06e6=_0x36a917[_0x67c8('0x20')],_0x427db3=_0xbdadcc[_0x67c8('0x21')],_0x4a0789=_0xbdadcc[_0x67c8('0x21')]+_0xbdadcc[_0x67c8('0x22')],_0x2728d1;if(_0x4a0789>=_0x4a06e6){_0x4a0789=_0x4a06e6;_0x2728d1=0xc8;}else{_0x2728d1=0xce;}_0x29e2a8[_0x67c8('0x1d')](_0x2728d1);return _0x29e2a8[_0x67c8('0x23')]('Content-Range',_0x427db3+'-'+_0x4a0789+'/'+_0x4a06e6)[_0x67c8('0x1f')](_0x36a917);}return null;};}function patchUpdates(_0xb5f990){return function(_0x3f5eb3){try{jsonpatch['apply'](_0x3f5eb3,_0xb5f990,!![]);}catch(_0x531cd9){return BPromise[_0x67c8('0x24')](_0x531cd9);}return _0x3f5eb3[_0x67c8('0x25')]();};}function saveUpdates(_0x336bdb,_0x5c5880){return function(_0x1a89f5){if(_0x1a89f5){return _0x1a89f5['update'](_0x336bdb)[_0x67c8('0x26')](function(_0x3316db){return _0x3316db;});}return null;};}function removeEntity(_0x9cc1f5,_0x479e8b){return function(_0x348048){if(_0x348048){return _0x348048[_0x67c8('0x27')]()[_0x67c8('0x26')](function(){_0x9cc1f5[_0x67c8('0x1d')](0xcc)[_0x67c8('0x1e')]();});}};}function handleEntityNotFound(_0x54a12b,_0xc79ba6){return function(_0x4d96f3){if(!_0x4d96f3){_0x54a12b[_0x67c8('0x28')](0x194);}return _0x4d96f3;};}function handleError(_0x1dbce4,_0x4bd5b1){_0x4bd5b1=_0x4bd5b1||0x1f4;return function(_0x165f48){logger[_0x67c8('0x29')](_0x165f48['stack']);if(_0x165f48['name']){delete _0x165f48['name'];}_0x1dbce4['status'](_0x4bd5b1)[_0x67c8('0x2a')](_0x165f48);};}exports[_0x67c8('0x2b')]=function(_0x2365ca,_0x1d730d){var _0x308d3d={},_0x534ab9={},_0x29b749={'count':0x0,'rows':[]};var _0x35fa0e=_[_0x67c8('0x2c')](db[_0x67c8('0x2d')][_0x67c8('0x2e')],function(_0x5c452d){return{'name':_0x5c452d[_0x67c8('0x2f')],'type':_0x5c452d[_0x67c8('0x30')][_0x67c8('0x31')]};});_0x534ab9[_0x67c8('0x32')]=_[_0x67c8('0x2c')](_0x35fa0e,_0x67c8('0x33'));_0x534ab9[_0x67c8('0x34')]=_[_0x67c8('0x35')](_0x2365ca[_0x67c8('0x34')]);_0x534ab9[_0x67c8('0x36')]=_[_0x67c8('0x37')](_0x534ab9[_0x67c8('0x32')],_0x534ab9[_0x67c8('0x34')]);_0x308d3d[_0x67c8('0x38')]=_[_0x67c8('0x37')](_0x534ab9[_0x67c8('0x32')],qs[_0x67c8('0x39')](_0x2365ca[_0x67c8('0x34')][_0x67c8('0x39')]));_0x308d3d[_0x67c8('0x38')]=_0x308d3d[_0x67c8('0x38')]['length']?_0x308d3d[_0x67c8('0x38')]:_0x534ab9['model'];if(!_0x2365ca[_0x67c8('0x34')][_0x67c8('0x3a')](_0x67c8('0x3b'))){_0x308d3d[_0x67c8('0x22')]=qs[_0x67c8('0x22')](_0x2365ca[_0x67c8('0x34')]['limit']);_0x308d3d[_0x67c8('0x21')]=qs[_0x67c8('0x21')](_0x2365ca['query'][_0x67c8('0x21')]);}_0x308d3d[_0x67c8('0x3c')]=qs['sort'](_0x2365ca['query'][_0x67c8('0x3d')]);_0x308d3d[_0x67c8('0x3e')]=qs[_0x67c8('0x36')](_[_0x67c8('0x3f')](_0x2365ca['query'],_0x534ab9[_0x67c8('0x36')]),_0x35fa0e);if(_0x2365ca[_0x67c8('0x34')][_0x67c8('0x40')]){_0x308d3d['where']=_[_0x67c8('0x41')](_0x308d3d['where'],{'$or':_['map'](_0x35fa0e,function(_0x429dda){if(_0x429dda[_0x67c8('0x30')]!==_0x67c8('0x42')){var _0x42cb7c={};_0x42cb7c[_0x429dda[_0x67c8('0x33')]]={'$like':'%'+_0x2365ca[_0x67c8('0x34')]['filter']+'%'};return _0x42cb7c;}})});}_0x308d3d=_[_0x67c8('0x41')]({},_0x308d3d,_0x2365ca[_0x67c8('0x43')]);var _0x475231={'where':_0x308d3d['where']};return db[_0x67c8('0x2d')]['count'](_0x475231)[_0x67c8('0x26')](function(_0x475569){_0x29b749[_0x67c8('0x20')]=_0x475569;if(_0x2365ca['query'][_0x67c8('0x44')]){_0x308d3d['include']=[{'all':!![]}];}return db[_0x67c8('0x2d')]['findAll'](_0x308d3d);})['then'](function(_0x321d73){_0x29b749[_0x67c8('0x45')]=_0x321d73;return _0x29b749;})[_0x67c8('0x26')](respondWithFilteredResult(_0x1d730d,_0x308d3d))[_0x67c8('0x46')](handleError(_0x1d730d,null));};exports[_0x67c8('0x47')]=function(_0x2ae283,_0x1f9506){var _0xa1b285={'raw':!![],'where':{'id':_0x2ae283[_0x67c8('0x48')]['id']}},_0xa4ea5e={};_0xa4ea5e[_0x67c8('0x32')]=_[_0x67c8('0x35')](db['ChatInternalMessage'][_0x67c8('0x2e')]);_0xa4ea5e['query']=_['keys'](_0x2ae283[_0x67c8('0x34')]);_0xa4ea5e[_0x67c8('0x36')]=_[_0x67c8('0x37')](_0xa4ea5e['model'],_0xa4ea5e[_0x67c8('0x34')]);_0xa1b285[_0x67c8('0x38')]=_[_0x67c8('0x37')](_0xa4ea5e['model'],qs[_0x67c8('0x39')](_0x2ae283[_0x67c8('0x34')][_0x67c8('0x39')]));_0xa1b285[_0x67c8('0x38')]=_0xa1b285[_0x67c8('0x38')][_0x67c8('0x49')]?_0xa1b285[_0x67c8('0x38')]:_0xa4ea5e[_0x67c8('0x32')];if(_0x2ae283[_0x67c8('0x34')]['includeAll']){_0xa1b285[_0x67c8('0x4a')]=[{'all':!![]}];}_0xa1b285=_[_0x67c8('0x41')]({},_0xa1b285,_0x2ae283['options']);return db[_0x67c8('0x2d')][_0x67c8('0x4b')](_0xa1b285)[_0x67c8('0x26')](handleEntityNotFound(_0x1f9506,null))[_0x67c8('0x26')](respondWithResult(_0x1f9506,null))['catch'](handleError(_0x1f9506,null));};exports['create']=function(_0x2101f8,_0x14f74b){return db[_0x67c8('0x2d')]['create'](_0x2101f8[_0x67c8('0x4c')],{})[_0x67c8('0x26')](respondWithResult(_0x14f74b,0xc9))[_0x67c8('0x46')](handleError(_0x14f74b,null));};exports[_0x67c8('0x4d')]=function(_0x527bc3,_0x2be485){if(_0x527bc3['body']['id']){delete _0x527bc3[_0x67c8('0x4c')]['id'];}return db[_0x67c8('0x2d')][_0x67c8('0x4b')]({'where':{'id':_0x527bc3[_0x67c8('0x48')]['id']}})[_0x67c8('0x26')](handleEntityNotFound(_0x2be485,null))[_0x67c8('0x26')](saveUpdates(_0x527bc3[_0x67c8('0x4c')],null))[_0x67c8('0x26')](respondWithResult(_0x2be485,null))[_0x67c8('0x46')](handleError(_0x2be485,null));};exports[_0x67c8('0x27')]=function(_0x1adb9c,_0xbfd7fe){return db[_0x67c8('0x2d')][_0x67c8('0x4b')]({'where':{'id':_0x1adb9c[_0x67c8('0x48')]['id']}})[_0x67c8('0x26')](handleEntityNotFound(_0xbfd7fe,null))[_0x67c8('0x26')](removeEntity(_0xbfd7fe,null))[_0x67c8('0x46')](handleError(_0xbfd7fe,null));};exports[_0x67c8('0x4e')]=function(_0x241cc8,_0x4a26f1){return db[_0x67c8('0x2d')][_0x67c8('0x4e')]()['then'](respondWithResult(_0x4a26f1,null))[_0x67c8('0x46')](handleError(_0x4a26f1,null));};function wrapUser(_0x189f98){return function(_0x441503){var _0x5bddb4=_0x189f98[_0x67c8('0x4f')]({'plain':!![]});_0x5bddb4[_0x67c8('0x50')]=[];if(_0x441503){_0x5bddb4[_0x67c8('0x51')]=_0x441503[_0x67c8('0x52')];_0x5bddb4[_0x67c8('0x53')]=_0x441503;}else{_0x5bddb4[_0x67c8('0x51')]=moment(0x0)[_0x67c8('0x54')](_0x67c8('0x55'));_0x5bddb4[_0x67c8('0x53')]={};}return _0x5bddb4;};}exports[_0x67c8('0x56')]=function(_0xa08f8f,_0xa91b2f,_0x4cbc46){var _0x40c589=[];return db['User'][_0x67c8('0x57')]({'where':{'role':[_0x67c8('0x58'),_0x67c8('0x59'),_0x67c8('0x5a')]},'attributes':['id','fullname',_0x67c8('0x33'),_0x67c8('0x5b'),_0x67c8('0x5c'),'internal',_0x67c8('0x5d'),_0x67c8('0x5e'),'allowmessenger',_0x67c8('0x5f')],'order':qs[_0x67c8('0x3d')]('-online'),'include':[{'model':db[_0x67c8('0x60')],'as':'VoiceQueues','attributes':['id',_0x67c8('0x33'),_0x67c8('0x30')],'through':{'attributes':[]}}]})[_0x67c8('0x26')](function(_0x2212aa){if(_0x2212aa){var _0x23813b=_0xa08f8f[_0x67c8('0x5a')][_0x67c8('0x4f')]({'plain':!![]});if(!_0x23813b)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x23813b[_0x67c8('0x5b')]===_0x67c8('0x5a')){return db[_0x67c8('0x61')][_0x67c8('0x4b')]({'where':{'name':'Agents','userProfileId':_0x23813b[_0x67c8('0x62')]},'raw':!![]})['then'](function(_0x2c03a1){if(_0x2c03a1){if(_0x2c03a1[_0x67c8('0x63')]===0x0){return db[_0x67c8('0x64')][_0x67c8('0x57')]({'where':{'sectionId':_0x2c03a1['id']},'raw':!![]})[_0x67c8('0x26')](function(_0x1a513a){var _0x2de889=[];if(_[_0x67c8('0x65')](_0x1a513a)){_0x2de889=_['filter'](_0x2212aa,function(_0x2e73dc){if(_0x2e73dc['role']!==_0x67c8('0x58')){return _0x2e73dc;}});return _0x2de889;}else{for(var _0x57a813=0x0;_0x57a813<_0x2212aa[_0x67c8('0x49')];_0x57a813++){var _0x1236bd=_0x2212aa[_0x57a813];if(_0x1236bd[_0x67c8('0x5b')]==='agent'){var _0x3c4370=_[_0x67c8('0x4b')](_0x1a513a,function(_0x516ac9){return _0x516ac9[_0x67c8('0x66')]===_0x1236bd['id'];});if(_0x3c4370)_0x2de889['push'](_0x1236bd);}else{_0x2de889[_0x67c8('0x67')](_0x1236bd);}}return _0x2de889;}});}else{return _0x2212aa;}}else{var _0x526551=_[_0x67c8('0x40')](_0x2212aa,function(_0x3d713e){if(_0x3d713e['role']!==_0x67c8('0x58')){return _0x3d713e;}});return _0x526551;}});}else{return _0x2212aa;}}})['then'](function(_0xe3ffdd){var _0x46e793=[];if(_0xe3ffdd){_0x40c589=_0xe3ffdd;for(var _0x15bf76=0x0;_0x15bf76<_0xe3ffdd[_0x67c8('0x49')];_0x15bf76+=0x1){_0x40c589[_0x15bf76]['messages']=[];_0x46e793[_0x67c8('0x67')](db['ChatInternalMessage'][_0x67c8('0x4b')]({'where':{'FromId':[_0xa08f8f[_0x67c8('0x5a')]['id'],_0xe3ffdd[_0x15bf76]['id']],'ToId':[_0xa08f8f[_0x67c8('0x5a')]['id'],_0xe3ffdd[_0x15bf76]['id']],'ChatGroupId':null},'attributes':['id',_0x67c8('0x52'),_0x67c8('0x68'),'ToId','read',_0x67c8('0x4c')],'order':qs['sort']('-createdAt'),'limit':0x1,'offset':0x0,'raw':!![]})['then'](wrapUser(_0xe3ffdd[_0x15bf76])));}return BPromise[_0x67c8('0x69')](_0x46e793);}return[];})[_0x67c8('0x26')](function(_0x1979e6){return{'rows':_0x1979e6,'count':_0x1979e6['length']};})[_0x67c8('0x26')](respondWithResult(_0xa91b2f,null))[_0x67c8('0x46')](handleError(_0xa91b2f,null));};