9fbdcdb55585f18d5b015fa02991212937b0ee7a
[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 _0xe154=['catch','show','params','includeAll','find','create','body','messages','lastMessageAt','createdAt','lastMessage','format','YYYY-MM-DD\x20HH:mm:ss','getUsers','User','agent','fullname','userpic','showWebBar','VoiceQueue','type','user','get','role','UserProfileSection','Agents','userProfileId','UserProfileResource','resourceId','push','ToId','read','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','crypto','jsforce','desk.js','../../components/auth/service','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','socket.io-emitter','./chatInternalMessage.socket','register','sendStatus','status','end','json','count','offset','set','Content-Range','apply','reject','save','update','destroy','then','stack','name','send','index','ChatInternalMessage','rawAttributes','fieldName','key','model','query','keys','intersection','fields','attributes','length','nolimit','limit','order','sort','where','filters','pick','filter','merge','map','options','include','rows'];(function(_0x218994,_0x2cf487){var _0x3f350b=function(_0x2e2065){while(--_0x2e2065){_0x218994['push'](_0x218994['shift']());}};_0x3f350b(++_0x2cf487);}(_0xe154,0xee));var _0x4e15=function(_0x1cfc39,_0x1d3913){_0x1cfc39=_0x1cfc39-0x0;var _0x957a28=_0xe154[_0x1cfc39];return _0x957a28;};'use strict';var pdf=require(_0x4e15('0x0'));var emlformat=require(_0x4e15('0x1'));var rimraf=require(_0x4e15('0x2'));var zipdir=require(_0x4e15('0x3'));var jsonpatch=require(_0x4e15('0x4'));var rp=require(_0x4e15('0x5'));var moment=require(_0x4e15('0x6'));var BPromise=require(_0x4e15('0x7'));var Mustache=require(_0x4e15('0x8'));var util=require(_0x4e15('0x9'));var path=require(_0x4e15('0xa'));var sox=require(_0x4e15('0xb'));var csv=require(_0x4e15('0xc'));var ejs=require(_0x4e15('0xd'));var fs=require('fs');var _=require('lodash');var squel=require('squel');var crypto=require(_0x4e15('0xe'));var jsforce=require(_0x4e15('0xf'));var deskjs=require(_0x4e15('0x10'));var toCsv=require(_0x4e15('0xc'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x4e15('0x11'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x4e15('0x12'));var logger=require(_0x4e15('0x13'))(_0x4e15('0x14'));var utils=require('../../config/utils');var config=require(_0x4e15('0x15'));var licenseUtil=require(_0x4e15('0x16'));var db=require(_0x4e15('0x17'))['db'];config[_0x4e15('0x18')]=_[_0x4e15('0x19')](config[_0x4e15('0x18')],{'host':'localhost','port':0x18eb});var socket=require(_0x4e15('0x1a'))(new Redis(config['redis']));require(_0x4e15('0x1b'))[_0x4e15('0x1c')](socket);function respondWithStatusCode(_0x13b70e,_0x54a600){_0x54a600=_0x54a600||0xcc;return function(_0x219e89){if(_0x219e89){return _0x13b70e[_0x4e15('0x1d')](_0x54a600);}return _0x13b70e[_0x4e15('0x1e')](_0x54a600)[_0x4e15('0x1f')]();};}function respondWithResult(_0x30b09a,_0x4521ac){_0x4521ac=_0x4521ac||0xc8;return function(_0xe1bd67){if(_0xe1bd67){return _0x30b09a[_0x4e15('0x1e')](_0x4521ac)[_0x4e15('0x20')](_0xe1bd67);}};}function respondWithFilteredResult(_0xf6bc25,_0x2d6bb0){return function(_0x44158c){if(_0x44158c){var _0x2af149=_0x44158c[_0x4e15('0x21')],_0x5100c3=_0x2d6bb0[_0x4e15('0x22')],_0x49cc31=_0x2d6bb0['offset']+_0x2d6bb0['limit'],_0x309717;if(_0x49cc31>=_0x2af149){_0x49cc31=_0x2af149;_0x309717=0xc8;}else{_0x309717=0xce;}_0xf6bc25[_0x4e15('0x1e')](_0x309717);return _0xf6bc25[_0x4e15('0x23')](_0x4e15('0x24'),_0x5100c3+'-'+_0x49cc31+'/'+_0x2af149)[_0x4e15('0x20')](_0x44158c);}return null;};}function patchUpdates(_0x3c3500){return function(_0x478cd1){try{jsonpatch[_0x4e15('0x25')](_0x478cd1,_0x3c3500,!![]);}catch(_0x148857){return BPromise[_0x4e15('0x26')](_0x148857);}return _0x478cd1[_0x4e15('0x27')]();};}function saveUpdates(_0x919003,_0x2a5d1a){return function(_0x1ccf0f){if(_0x1ccf0f){return _0x1ccf0f[_0x4e15('0x28')](_0x919003)['then'](function(_0x311186){return _0x311186;});}return null;};}function removeEntity(_0x5ad688,_0x289f4f){return function(_0x9d623e){if(_0x9d623e){return _0x9d623e[_0x4e15('0x29')]()[_0x4e15('0x2a')](function(){_0x5ad688[_0x4e15('0x1e')](0xcc)[_0x4e15('0x1f')]();});}};}function handleEntityNotFound(_0xee7950,_0x344faa){return function(_0x17d7e9){if(!_0x17d7e9){_0xee7950[_0x4e15('0x1d')](0x194);}return _0x17d7e9;};}function handleError(_0x41b600,_0x534ddb){_0x534ddb=_0x534ddb||0x1f4;return function(_0x1526b0){logger['error'](_0x1526b0[_0x4e15('0x2b')]);if(_0x1526b0[_0x4e15('0x2c')]){delete _0x1526b0[_0x4e15('0x2c')];}_0x41b600[_0x4e15('0x1e')](_0x534ddb)[_0x4e15('0x2d')](_0x1526b0);};}exports[_0x4e15('0x2e')]=function(_0x38e51d,_0x5eb736){var _0x58f91a={},_0x514fd5={},_0x4fa755={'count':0x0,'rows':[]};var _0x5a431a=_['map'](db[_0x4e15('0x2f')][_0x4e15('0x30')],function(_0xd9adf6){return{'name':_0xd9adf6[_0x4e15('0x31')],'type':_0xd9adf6['type'][_0x4e15('0x32')]};});_0x514fd5[_0x4e15('0x33')]=_['map'](_0x5a431a,_0x4e15('0x2c'));_0x514fd5[_0x4e15('0x34')]=_[_0x4e15('0x35')](_0x38e51d[_0x4e15('0x34')]);_0x514fd5['filters']=_[_0x4e15('0x36')](_0x514fd5[_0x4e15('0x33')],_0x514fd5[_0x4e15('0x34')]);_0x58f91a['attributes']=_['intersection'](_0x514fd5['model'],qs[_0x4e15('0x37')](_0x38e51d[_0x4e15('0x34')]['fields']));_0x58f91a[_0x4e15('0x38')]=_0x58f91a[_0x4e15('0x38')][_0x4e15('0x39')]?_0x58f91a['attributes']:_0x514fd5['model'];if(!_0x38e51d[_0x4e15('0x34')]['hasOwnProperty'](_0x4e15('0x3a'))){_0x58f91a[_0x4e15('0x3b')]=qs[_0x4e15('0x3b')](_0x38e51d[_0x4e15('0x34')][_0x4e15('0x3b')]);_0x58f91a['offset']=qs[_0x4e15('0x22')](_0x38e51d['query'][_0x4e15('0x22')]);}_0x58f91a[_0x4e15('0x3c')]=qs[_0x4e15('0x3d')](_0x38e51d[_0x4e15('0x34')][_0x4e15('0x3d')]);_0x58f91a[_0x4e15('0x3e')]=qs[_0x4e15('0x3f')](_[_0x4e15('0x40')](_0x38e51d[_0x4e15('0x34')],_0x514fd5['filters']),_0x5a431a);if(_0x38e51d[_0x4e15('0x34')][_0x4e15('0x41')]){_0x58f91a[_0x4e15('0x3e')]=_[_0x4e15('0x42')](_0x58f91a['where'],{'$or':_[_0x4e15('0x43')](_0x5a431a,function(_0x5d6365){if(_0x5d6365['type']!=='VIRTUAL'){var _0x6cf368={};_0x6cf368[_0x5d6365['name']]={'$like':'%'+_0x38e51d[_0x4e15('0x34')][_0x4e15('0x41')]+'%'};return _0x6cf368;}})});}_0x58f91a=_[_0x4e15('0x42')]({},_0x58f91a,_0x38e51d[_0x4e15('0x44')]);var _0x149195={'where':_0x58f91a[_0x4e15('0x3e')]};return db[_0x4e15('0x2f')][_0x4e15('0x21')](_0x149195)['then'](function(_0x5c0cca){_0x4fa755['count']=_0x5c0cca;if(_0x38e51d[_0x4e15('0x34')]['includeAll']){_0x58f91a[_0x4e15('0x45')]=[{'all':!![]}];}return db[_0x4e15('0x2f')]['findAll'](_0x58f91a);})['then'](function(_0x5d976d){_0x4fa755[_0x4e15('0x46')]=_0x5d976d;return _0x4fa755;})[_0x4e15('0x2a')](respondWithFilteredResult(_0x5eb736,_0x58f91a))[_0x4e15('0x47')](handleError(_0x5eb736,null));};exports[_0x4e15('0x48')]=function(_0x197810,_0x1dc6b9){var _0x3fccad={'raw':!![],'where':{'id':_0x197810[_0x4e15('0x49')]['id']}},_0x9ff786={};_0x9ff786['model']=_[_0x4e15('0x35')](db['ChatInternalMessage'][_0x4e15('0x30')]);_0x9ff786[_0x4e15('0x34')]=_[_0x4e15('0x35')](_0x197810['query']);_0x9ff786[_0x4e15('0x3f')]=_['intersection'](_0x9ff786[_0x4e15('0x33')],_0x9ff786[_0x4e15('0x34')]);_0x3fccad['attributes']=_[_0x4e15('0x36')](_0x9ff786[_0x4e15('0x33')],qs[_0x4e15('0x37')](_0x197810[_0x4e15('0x34')][_0x4e15('0x37')]));_0x3fccad['attributes']=_0x3fccad[_0x4e15('0x38')][_0x4e15('0x39')]?_0x3fccad[_0x4e15('0x38')]:_0x9ff786[_0x4e15('0x33')];if(_0x197810[_0x4e15('0x34')][_0x4e15('0x4a')]){_0x3fccad['include']=[{'all':!![]}];}_0x3fccad=_[_0x4e15('0x42')]({},_0x3fccad,_0x197810['options']);return db[_0x4e15('0x2f')][_0x4e15('0x4b')](_0x3fccad)[_0x4e15('0x2a')](handleEntityNotFound(_0x1dc6b9,null))[_0x4e15('0x2a')](respondWithResult(_0x1dc6b9,null))['catch'](handleError(_0x1dc6b9,null));};exports[_0x4e15('0x4c')]=function(_0x3c5b54,_0x42d7c4){return db[_0x4e15('0x2f')]['create'](_0x3c5b54[_0x4e15('0x4d')],{})[_0x4e15('0x2a')](respondWithResult(_0x42d7c4,0xc9))['catch'](handleError(_0x42d7c4,null));};exports[_0x4e15('0x28')]=function(_0x25634b,_0x30dee9){if(_0x25634b[_0x4e15('0x4d')]['id']){delete _0x25634b[_0x4e15('0x4d')]['id'];}return db[_0x4e15('0x2f')][_0x4e15('0x4b')]({'where':{'id':_0x25634b[_0x4e15('0x49')]['id']}})['then'](handleEntityNotFound(_0x30dee9,null))['then'](saveUpdates(_0x25634b[_0x4e15('0x4d')],null))['then'](respondWithResult(_0x30dee9,null))[_0x4e15('0x47')](handleError(_0x30dee9,null));};exports[_0x4e15('0x29')]=function(_0x59d7be,_0x3921e1){return db[_0x4e15('0x2f')][_0x4e15('0x4b')]({'where':{'id':_0x59d7be[_0x4e15('0x49')]['id']}})[_0x4e15('0x2a')](handleEntityNotFound(_0x3921e1,null))[_0x4e15('0x2a')](removeEntity(_0x3921e1,null))['catch'](handleError(_0x3921e1,null));};exports['describe']=function(_0x8ac54e,_0x452eca){return db[_0x4e15('0x2f')]['describe']()[_0x4e15('0x2a')](respondWithResult(_0x452eca,null))[_0x4e15('0x47')](handleError(_0x452eca,null));};function wrapUser(_0x40725a){return function(_0x345f35){var _0x43e25b=_0x40725a['get']({'plain':!![]});_0x43e25b[_0x4e15('0x4e')]=[];if(_0x345f35){_0x43e25b[_0x4e15('0x4f')]=_0x345f35[_0x4e15('0x50')];_0x43e25b[_0x4e15('0x51')]=_0x345f35;}else{_0x43e25b[_0x4e15('0x4f')]=moment(0x0)[_0x4e15('0x52')](_0x4e15('0x53'));_0x43e25b[_0x4e15('0x51')]={};}return _0x43e25b;};}exports[_0x4e15('0x54')]=function(_0x23db95,_0x240406,_0x1ed4e1){var _0x53c038=[];return db[_0x4e15('0x55')]['findAll']({'where':{'role':[_0x4e15('0x56'),'admin','user']},'attributes':['id',_0x4e15('0x57'),_0x4e15('0x2c'),'role',_0x4e15('0x58'),'internal','online','lastLoginAt','allowmessenger',_0x4e15('0x59')],'order':qs['sort']('-online'),'include':[{'model':db[_0x4e15('0x5a')],'as':'VoiceQueues','attributes':['id','name',_0x4e15('0x5b')],'through':{'attributes':[]}}]})[_0x4e15('0x2a')](function(_0x26c3ea){if(_0x26c3ea){var _0x4141c9=_0x23db95[_0x4e15('0x5c')][_0x4e15('0x5d')]({'plain':!![]});if(!_0x4141c9)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x4141c9[_0x4e15('0x5e')]==='user'){return db[_0x4e15('0x5f')][_0x4e15('0x4b')]({'where':{'name':_0x4e15('0x60'),'userProfileId':_0x4141c9[_0x4e15('0x61')]},'raw':!![]})['then'](function(_0x37bd5f){if(_0x37bd5f){if(_0x37bd5f['autoAssociation']===0x0){return db[_0x4e15('0x62')]['findAll']({'where':{'sectionId':_0x37bd5f['id']},'raw':!![]})[_0x4e15('0x2a')](function(_0x33962e){var _0x560c58=[];if(_['isEmpty'](_0x33962e)){_0x560c58=_[_0x4e15('0x41')](_0x26c3ea,function(_0x5de07d){if(_0x5de07d[_0x4e15('0x5e')]!==_0x4e15('0x56')){return _0x5de07d;}});return _0x560c58;}else{for(var _0x36a1cd=0x0;_0x36a1cd<_0x26c3ea[_0x4e15('0x39')];_0x36a1cd++){var _0x5e785a=_0x26c3ea[_0x36a1cd];if(_0x5e785a[_0x4e15('0x5e')]===_0x4e15('0x56')){var _0x56db11=_[_0x4e15('0x4b')](_0x33962e,function(_0x1e503b){return _0x1e503b[_0x4e15('0x63')]===_0x5e785a['id'];});if(_0x56db11)_0x560c58[_0x4e15('0x64')](_0x5e785a);}else{_0x560c58[_0x4e15('0x64')](_0x5e785a);}}return _0x560c58;}});}else{return _0x26c3ea;}}else{var _0x5c9f02=_['filter'](_0x26c3ea,function(_0x167186){if(_0x167186[_0x4e15('0x5e')]!==_0x4e15('0x56')){return _0x167186;}});return _0x5c9f02;}});}else{return _0x26c3ea;}}})[_0x4e15('0x2a')](function(_0x439dc8){var _0x1571af=[];if(_0x439dc8){_0x53c038=_0x439dc8;for(var _0x153c39=0x0;_0x153c39<_0x439dc8[_0x4e15('0x39')];_0x153c39+=0x1){_0x53c038[_0x153c39][_0x4e15('0x4e')]=[];_0x1571af[_0x4e15('0x64')](db[_0x4e15('0x2f')][_0x4e15('0x4b')]({'where':{'FromId':[_0x23db95[_0x4e15('0x5c')]['id'],_0x439dc8[_0x153c39]['id']],'ToId':[_0x23db95[_0x4e15('0x5c')]['id'],_0x439dc8[_0x153c39]['id']],'ChatGroupId':null},'attributes':['id',_0x4e15('0x50'),'FromId',_0x4e15('0x65'),_0x4e15('0x66'),_0x4e15('0x4d')],'order':qs[_0x4e15('0x3d')]('-createdAt'),'limit':0x1,'offset':0x0,'raw':!![]})[_0x4e15('0x2a')](wrapUser(_0x439dc8[_0x153c39])));}return BPromise['all'](_0x1571af);}return[];})[_0x4e15('0x2a')](function(_0x15af18){return{'rows':_0x15af18,'count':_0x15af18[_0x4e15('0x39')]};})[_0x4e15('0x2a')](respondWithResult(_0x240406,null))[_0x4e15('0x47')](handleError(_0x240406,null));};