Built motion from commit (unavailable).|2.4.18
[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 _0x2cee=['name','send','index','map','ChatInternalMessage','type','model','query','keys','attributes','intersection','fields','nolimit','sort','where','pick','merge','filter','options','include','findAll','rows','show','params','rawAttributes','filters','length','includeAll','find','catch','create','body','update','get','lastMessageAt','createdAt','lastMessage','YYYY-MM-DD\x20HH:mm:ss','getUsers','User','fullname','role','userpic','internal','online','lastLoginAt','showWebBar','-online','VoiceQueue','VoiceQueues','userProfileId','autoAssociation','UserProfileResource','isEmpty','agent','push','user','FromId','ToId','read','all','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','moment','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','papaparse','ioredis','../../components/parsers/qs','../../config/license/hardware','api','../../config/utils','../../config/environment','defaults','localhost','socket.io-emitter','redis','./chatInternalMessage.socket','register','sendStatus','status','end','json','count','offset','limit','set','reject','then','destroy','error','stack'];(function(_0x400b43,_0x55da4e){var _0x3c330f=function(_0x5bbd52){while(--_0x5bbd52){_0x400b43['push'](_0x400b43['shift']());}};_0x3c330f(++_0x55da4e);}(_0x2cee,0x10b));var _0xe2ce=function(_0x2afa67,_0xde603){_0x2afa67=_0x2afa67-0x0;var _0x18d4f7=_0x2cee[_0x2afa67];return _0x18d4f7;};'use strict';var pdf=require(_0xe2ce('0x0'));var emlformat=require(_0xe2ce('0x1'));var rimraf=require(_0xe2ce('0x2'));var zipdir=require(_0xe2ce('0x3'));var jsonpatch=require(_0xe2ce('0x4'));var rp=require('request-promise');var moment=require(_0xe2ce('0x5'));var BPromise=require('bluebird');var Mustache=require(_0xe2ce('0x6'));var util=require(_0xe2ce('0x7'));var path=require(_0xe2ce('0x8'));var sox=require(_0xe2ce('0x9'));var csv=require(_0xe2ce('0xa'));var ejs=require(_0xe2ce('0xb'));var fs=require('fs');var _=require(_0xe2ce('0xc'));var squel=require(_0xe2ce('0xd'));var crypto=require(_0xe2ce('0xe'));var jsforce=require(_0xe2ce('0xf'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0xe2ce('0x10'));var Redis=require(_0xe2ce('0x11'));var authService=require('../../components/auth/service');var qs=require(_0xe2ce('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xe2ce('0x13'));var logger=require('../../config/logger')(_0xe2ce('0x14'));var utils=require(_0xe2ce('0x15'));var config=require(_0xe2ce('0x16'));var db=require('../../mysqldb')['db'];config['redis']=_[_0xe2ce('0x17')](config['redis'],{'host':_0xe2ce('0x18'),'port':0x18eb});var socket=require(_0xe2ce('0x19'))(new Redis(config[_0xe2ce('0x1a')]));require(_0xe2ce('0x1b'))[_0xe2ce('0x1c')](socket);function respondWithStatusCode(_0x35d24e,_0xe406f9){_0xe406f9=_0xe406f9||0xcc;return function(_0x4725cb){if(_0x4725cb){return _0x35d24e[_0xe2ce('0x1d')](_0xe406f9);}return _0x35d24e[_0xe2ce('0x1e')](_0xe406f9)[_0xe2ce('0x1f')]();};}function respondWithResult(_0x4d9572,_0x23fe87){_0x23fe87=_0x23fe87||0xc8;return function(_0xb0747e){if(_0xb0747e){return _0x4d9572[_0xe2ce('0x1e')](_0x23fe87)[_0xe2ce('0x20')](_0xb0747e);}};}function respondWithFilteredResult(_0x46b60e,_0x271f97){return function(_0xdcc6f9){if(_0xdcc6f9){var _0x5cd2e9=_0xdcc6f9[_0xe2ce('0x21')],_0xc2009=_0x271f97[_0xe2ce('0x22')],_0x20f6e4=_0x271f97[_0xe2ce('0x22')]+_0x271f97[_0xe2ce('0x23')],_0x2e7478;if(_0x20f6e4>=_0x5cd2e9){_0x20f6e4=_0x5cd2e9;_0x2e7478=0xc8;}else{_0x2e7478=0xce;}_0x46b60e[_0xe2ce('0x1e')](_0x2e7478);return _0x46b60e[_0xe2ce('0x24')]('Content-Range',_0xc2009+'-'+_0x20f6e4+'/'+_0x5cd2e9)[_0xe2ce('0x20')](_0xdcc6f9);}return null;};}function patchUpdates(_0x41f05d){return function(_0x693631){try{jsonpatch['apply'](_0x693631,_0x41f05d,!![]);}catch(_0x2ca68d){return BPromise[_0xe2ce('0x25')](_0x2ca68d);}return _0x693631['save']();};}function saveUpdates(_0x33577b,_0x110005){return function(_0x50551f){if(_0x50551f){return _0x50551f['update'](_0x33577b)[_0xe2ce('0x26')](function(_0x594d78){return _0x594d78;});}return null;};}function removeEntity(_0x27bb43,_0x57156d){return function(_0x167c5d){if(_0x167c5d){return _0x167c5d[_0xe2ce('0x27')]()[_0xe2ce('0x26')](function(){_0x27bb43[_0xe2ce('0x1e')](0xcc)[_0xe2ce('0x1f')]();});}};}function handleEntityNotFound(_0x541dca,_0x5a0b8d){return function(_0x579dcb){if(!_0x579dcb){_0x541dca[_0xe2ce('0x1d')](0x194);}return _0x579dcb;};}function handleError(_0x4a4e96,_0x2c7bdd){_0x2c7bdd=_0x2c7bdd||0x1f4;return function(_0xde4bca){logger[_0xe2ce('0x28')](_0xde4bca[_0xe2ce('0x29')]);if(_0xde4bca['name']){delete _0xde4bca[_0xe2ce('0x2a')];}_0x4a4e96[_0xe2ce('0x1e')](_0x2c7bdd)[_0xe2ce('0x2b')](_0xde4bca);};}exports[_0xe2ce('0x2c')]=function(_0x163e55,_0x4a927d){var _0x494a14={},_0x3b31e1={},_0x4c8b20={'count':0x0,'rows':[]};var _0x2510a8=_[_0xe2ce('0x2d')](db[_0xe2ce('0x2e')]['rawAttributes'],function(_0x5db4ab){return{'name':_0x5db4ab['fieldName'],'type':_0x5db4ab[_0xe2ce('0x2f')]['key']};});_0x3b31e1[_0xe2ce('0x30')]=_[_0xe2ce('0x2d')](_0x2510a8,_0xe2ce('0x2a'));_0x3b31e1[_0xe2ce('0x31')]=_[_0xe2ce('0x32')](_0x163e55[_0xe2ce('0x31')]);_0x3b31e1['filters']=_['intersection'](_0x3b31e1['model'],_0x3b31e1[_0xe2ce('0x31')]);_0x494a14[_0xe2ce('0x33')]=_[_0xe2ce('0x34')](_0x3b31e1[_0xe2ce('0x30')],qs[_0xe2ce('0x35')](_0x163e55[_0xe2ce('0x31')][_0xe2ce('0x35')]));_0x494a14['attributes']=_0x494a14[_0xe2ce('0x33')]['length']?_0x494a14[_0xe2ce('0x33')]:_0x3b31e1[_0xe2ce('0x30')];if(!_0x163e55[_0xe2ce('0x31')]['hasOwnProperty'](_0xe2ce('0x36'))){_0x494a14['limit']=qs[_0xe2ce('0x23')](_0x163e55['query'][_0xe2ce('0x23')]);_0x494a14['offset']=qs['offset'](_0x163e55[_0xe2ce('0x31')][_0xe2ce('0x22')]);}_0x494a14['order']=qs[_0xe2ce('0x37')](_0x163e55[_0xe2ce('0x31')]['sort']);_0x494a14[_0xe2ce('0x38')]=qs['filters'](_[_0xe2ce('0x39')](_0x163e55[_0xe2ce('0x31')],_0x3b31e1['filters']));if(_0x163e55[_0xe2ce('0x31')]['filter']){_0x494a14['where']=_[_0xe2ce('0x3a')](_0x494a14[_0xe2ce('0x38')],{'$or':_[_0xe2ce('0x2d')](_0x2510a8,function(_0x3e4d9b){if(_0x3e4d9b['type']!=='VIRTUAL'){var _0x4a3b93={};_0x4a3b93[_0x3e4d9b[_0xe2ce('0x2a')]]={'$like':'%'+_0x163e55[_0xe2ce('0x31')][_0xe2ce('0x3b')]+'%'};return _0x4a3b93;}})});}_0x494a14=_['merge']({},_0x494a14,_0x163e55[_0xe2ce('0x3c')]);var _0x480f8e={'where':_0x494a14['where']};return db[_0xe2ce('0x2e')][_0xe2ce('0x21')](_0x480f8e)[_0xe2ce('0x26')](function(_0xe0e7fd){_0x4c8b20[_0xe2ce('0x21')]=_0xe0e7fd;if(_0x163e55[_0xe2ce('0x31')]['includeAll']){_0x494a14[_0xe2ce('0x3d')]=[{'all':!![]}];}return db[_0xe2ce('0x2e')][_0xe2ce('0x3e')](_0x494a14);})[_0xe2ce('0x26')](function(_0x4b6d26){_0x4c8b20[_0xe2ce('0x3f')]=_0x4b6d26;return _0x4c8b20;})[_0xe2ce('0x26')](respondWithFilteredResult(_0x4a927d,_0x494a14))['catch'](handleError(_0x4a927d,null));};exports[_0xe2ce('0x40')]=function(_0x3e8ce5,_0x2f8cbe){var _0x376b56={'raw':!![],'where':{'id':_0x3e8ce5[_0xe2ce('0x41')]['id']}},_0x14a26f={};_0x14a26f[_0xe2ce('0x30')]=_[_0xe2ce('0x32')](db[_0xe2ce('0x2e')][_0xe2ce('0x42')]);_0x14a26f[_0xe2ce('0x31')]=_[_0xe2ce('0x32')](_0x3e8ce5[_0xe2ce('0x31')]);_0x14a26f[_0xe2ce('0x43')]=_[_0xe2ce('0x34')](_0x14a26f['model'],_0x14a26f[_0xe2ce('0x31')]);_0x376b56[_0xe2ce('0x33')]=_['intersection'](_0x14a26f[_0xe2ce('0x30')],qs[_0xe2ce('0x35')](_0x3e8ce5[_0xe2ce('0x31')]['fields']));_0x376b56[_0xe2ce('0x33')]=_0x376b56[_0xe2ce('0x33')][_0xe2ce('0x44')]?_0x376b56[_0xe2ce('0x33')]:_0x14a26f['model'];if(_0x3e8ce5[_0xe2ce('0x31')][_0xe2ce('0x45')]){_0x376b56[_0xe2ce('0x3d')]=[{'all':!![]}];}_0x376b56=_[_0xe2ce('0x3a')]({},_0x376b56,_0x3e8ce5[_0xe2ce('0x3c')]);return db[_0xe2ce('0x2e')][_0xe2ce('0x46')](_0x376b56)[_0xe2ce('0x26')](handleEntityNotFound(_0x2f8cbe,null))[_0xe2ce('0x26')](respondWithResult(_0x2f8cbe,null))[_0xe2ce('0x47')](handleError(_0x2f8cbe,null));};exports[_0xe2ce('0x48')]=function(_0x50857f,_0x1aa177){return db[_0xe2ce('0x2e')][_0xe2ce('0x48')](_0x50857f[_0xe2ce('0x49')],{})[_0xe2ce('0x26')](respondWithResult(_0x1aa177,0xc9))[_0xe2ce('0x47')](handleError(_0x1aa177,null));};exports[_0xe2ce('0x4a')]=function(_0x273862,_0x7de25f){if(_0x273862[_0xe2ce('0x49')]['id']){delete _0x273862[_0xe2ce('0x49')]['id'];}return db[_0xe2ce('0x2e')][_0xe2ce('0x46')]({'where':{'id':_0x273862[_0xe2ce('0x41')]['id']}})[_0xe2ce('0x26')](handleEntityNotFound(_0x7de25f,null))[_0xe2ce('0x26')](saveUpdates(_0x273862[_0xe2ce('0x49')],null))['then'](respondWithResult(_0x7de25f,null))[_0xe2ce('0x47')](handleError(_0x7de25f,null));};exports['destroy']=function(_0x4020e7,_0x493ccb){return db['ChatInternalMessage'][_0xe2ce('0x46')]({'where':{'id':_0x4020e7['params']['id']}})[_0xe2ce('0x26')](handleEntityNotFound(_0x493ccb,null))[_0xe2ce('0x26')](removeEntity(_0x493ccb,null))['catch'](handleError(_0x493ccb,null));};exports['describe']=function(_0x5715c0,_0x4712a3){return db[_0xe2ce('0x2e')]['describe']()[_0xe2ce('0x26')](respondWithResult(_0x4712a3,null))[_0xe2ce('0x47')](handleError(_0x4712a3,null));};function wrapUser(_0x5f08a3){return function(_0x541023){var _0x2b5e97=_0x5f08a3[_0xe2ce('0x4b')]({'plain':!![]});_0x2b5e97['messages']=[];if(_0x541023){_0x2b5e97[_0xe2ce('0x4c')]=_0x541023[_0xe2ce('0x4d')];_0x2b5e97[_0xe2ce('0x4e')]=_0x541023;}else{_0x2b5e97[_0xe2ce('0x4c')]=moment(0x0)['format'](_0xe2ce('0x4f'));_0x2b5e97[_0xe2ce('0x4e')]={};}return _0x2b5e97;};}exports[_0xe2ce('0x50')]=function(_0x206a6c,_0x1ba834,_0x5c9a51){var _0xfa5023=[];return db[_0xe2ce('0x51')]['findAll']({'where':{'role':['agent','admin','user']},'attributes':['id',_0xe2ce('0x52'),_0xe2ce('0x2a'),_0xe2ce('0x53'),_0xe2ce('0x54'),_0xe2ce('0x55'),_0xe2ce('0x56'),_0xe2ce('0x57'),'allowmessenger',_0xe2ce('0x58')],'order':qs[_0xe2ce('0x37')](_0xe2ce('0x59')),'include':[{'model':db[_0xe2ce('0x5a')],'as':_0xe2ce('0x5b'),'attributes':['id',_0xe2ce('0x2a'),_0xe2ce('0x2f')],'through':{'attributes':[]}}]})['then'](function(_0x3c6430){if(_0x3c6430){var _0x1e39f2=_0x206a6c['user']['get']({'plain':!![]});if(!_0x1e39f2)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x1e39f2[_0xe2ce('0x53')]==='user'){return db['UserProfileSection'][_0xe2ce('0x46')]({'where':{'name':'Agents','userProfileId':_0x1e39f2[_0xe2ce('0x5c')]},'raw':!![]})[_0xe2ce('0x26')](function(_0x4c997b){if(_0x4c997b){if(_0x4c997b[_0xe2ce('0x5d')]===0x0){return db[_0xe2ce('0x5e')]['findAll']({'where':{'sectionId':_0x4c997b['id']},'raw':!![]})[_0xe2ce('0x26')](function(_0x32836d){var _0x35813e=[];if(_[_0xe2ce('0x5f')](_0x32836d)){_0x35813e=_[_0xe2ce('0x3b')](_0x3c6430,function(_0x25993d){if(_0x25993d[_0xe2ce('0x53')]!==_0xe2ce('0x60')){return _0x25993d;}});return _0x35813e;}else{for(var _0x3584fd=0x0;_0x3584fd<_0x3c6430[_0xe2ce('0x44')];_0x3584fd++){var _0x3911ca=_0x3c6430[_0x3584fd];if(_0x3911ca[_0xe2ce('0x53')]==='agent'){var _0x17e527=_[_0xe2ce('0x46')](_0x32836d,function(_0x2b0187){return _0x2b0187['resourceId']===_0x3911ca['id'];});if(_0x17e527)_0x35813e[_0xe2ce('0x61')](_0x3911ca);}else{_0x35813e[_0xe2ce('0x61')](_0x3911ca);}}return _0x35813e;}});}else{return _0x3c6430;}}else{var _0x9fc1fb=_[_0xe2ce('0x3b')](_0x3c6430,function(_0x4c7627){if(_0x4c7627['role']!==_0xe2ce('0x60')){return _0x4c7627;}});return _0x9fc1fb;}});}else{return _0x3c6430;}}})[_0xe2ce('0x26')](function(_0x1ac4f9){var _0x26ecb6=[];if(_0x1ac4f9){_0xfa5023=_0x1ac4f9;for(var _0x3a34e4=0x0;_0x3a34e4<_0x1ac4f9[_0xe2ce('0x44')];_0x3a34e4+=0x1){_0xfa5023[_0x3a34e4]['messages']=[];_0x26ecb6[_0xe2ce('0x61')](db[_0xe2ce('0x2e')][_0xe2ce('0x46')]({'where':{'FromId':[_0x206a6c[_0xe2ce('0x62')]['id'],_0x1ac4f9[_0x3a34e4]['id']],'ToId':[_0x206a6c[_0xe2ce('0x62')]['id'],_0x1ac4f9[_0x3a34e4]['id']],'ChatGroupId':null},'attributes':['id',_0xe2ce('0x4d'),_0xe2ce('0x63'),_0xe2ce('0x64'),_0xe2ce('0x65'),_0xe2ce('0x49')],'order':qs[_0xe2ce('0x37')]('-createdAt'),'limit':0x1,'offset':0x0,'raw':!![]})[_0xe2ce('0x26')](wrapUser(_0x1ac4f9[_0x3a34e4])));}return BPromise[_0xe2ce('0x66')](_0x26ecb6);}return[];})['then'](function(_0x62417e){return{'rows':_0x62417e,'count':_0x62417e['length']};})[_0xe2ce('0x26')](respondWithResult(_0x1ba834,null))[_0xe2ce('0x47')](handleError(_0x1ba834,null));};