Built motion from commit d5e4af8c.|2.6.23
[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 _0xf2e2=['VIRTUAL','options','includeAll','findAll','rows','show','params','include','find','create','body','catch','describe','get','messages','lastMessageAt','createdAt','format','YYYY-MM-DD\x20HH:mm:ss','lastMessage','getUsers','agent','admin','user','fullname','role','userpic','internal','online','lastLoginAt','allowmessenger','-online','VoiceQueue','VoiceQueues','UserProfileSection','Agents','autoAssociation','isEmpty','resourceId','push','ToId','read','-createdAt','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./chatInternalMessage.socket','register','status','end','offset','undefined','limit','count','set','Content-Range','json','apply','reject','save','update','destroy','then','sendStatus','error','stack','name','send','index','map','ChatInternalMessage','rawAttributes','fieldName','type','key','keys','query','model','attributes','intersection','fields','length','order','sort','filters','filter','where','merge'];(function(_0x532a69,_0x1cd3f3){var _0x5def44=function(_0x581255){while(--_0x581255){_0x532a69['push'](_0x532a69['shift']());}};_0x5def44(++_0x1cd3f3);}(_0xf2e2,0xa0));var _0x2f2e=function(_0x1088ef,_0x6ce3e4){_0x1088ef=_0x1088ef-0x0;var _0x215cdd=_0xf2e2[_0x1088ef];return _0x215cdd;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x2f2e('0x0'));var zipdir=require(_0x2f2e('0x1'));var jsonpatch=require(_0x2f2e('0x2'));var rp=require(_0x2f2e('0x3'));var moment=require(_0x2f2e('0x4'));var BPromise=require(_0x2f2e('0x5'));var Mustache=require(_0x2f2e('0x6'));var util=require('util');var path=require(_0x2f2e('0x7'));var sox=require(_0x2f2e('0x8'));var csv=require(_0x2f2e('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x2f2e('0xa'));var _=require(_0x2f2e('0xb'));var squel=require(_0x2f2e('0xc'));var crypto=require(_0x2f2e('0xd'));var jsforce=require(_0x2f2e('0xe'));var deskjs=require(_0x2f2e('0xf'));var toCsv=require(_0x2f2e('0x9'));var querystring=require(_0x2f2e('0x10'));var Papa=require('papaparse');var Redis=require(_0x2f2e('0x11'));var authService=require(_0x2f2e('0x12'));var qs=require(_0x2f2e('0x13'));var as=require(_0x2f2e('0x14'));var hardwareService=require(_0x2f2e('0x15'));var logger=require(_0x2f2e('0x16'))(_0x2f2e('0x17'));var utils=require(_0x2f2e('0x18'));var config=require(_0x2f2e('0x19'));var licenseUtil=require(_0x2f2e('0x1a'));var db=require(_0x2f2e('0x1b'))['db'];config[_0x2f2e('0x1c')]=_[_0x2f2e('0x1d')](config[_0x2f2e('0x1c')],{'host':_0x2f2e('0x1e'),'port':0x18eb});var socket=require(_0x2f2e('0x1f'))(new Redis(config['redis']));require(_0x2f2e('0x20'))[_0x2f2e('0x21')](socket);function respondWithStatusCode(_0x10e789,_0x1ea1bd){_0x1ea1bd=_0x1ea1bd||0xcc;return function(_0x2e2487){if(_0x2e2487){return _0x10e789['sendStatus'](_0x1ea1bd);}return _0x10e789[_0x2f2e('0x22')](_0x1ea1bd)[_0x2f2e('0x23')]();};}function respondWithResult(_0x4437af,_0x4f613d){_0x4f613d=_0x4f613d||0xc8;return function(_0x23ca3b){if(_0x23ca3b){return _0x4437af['status'](_0x4f613d)['json'](_0x23ca3b);}};}function respondWithFilteredResult(_0x5db71c,_0x1bb9fb){return function(_0x4a8a4a){if(_0x4a8a4a){var _0x4ec9d5=typeof _0x1bb9fb[_0x2f2e('0x24')]===_0x2f2e('0x25')&&typeof _0x1bb9fb[_0x2f2e('0x26')]==='undefined';var _0x2835b1=_0x4a8a4a[_0x2f2e('0x27')];var _0x1f770e=_0x4ec9d5?0x0:_0x1bb9fb[_0x2f2e('0x24')];var _0x1a0150=_0x4ec9d5?_0x4a8a4a[_0x2f2e('0x27')]:_0x1bb9fb[_0x2f2e('0x24')]+_0x1bb9fb[_0x2f2e('0x26')];var _0x26d2d5;if(_0x1a0150>=_0x2835b1){_0x1a0150=_0x2835b1;_0x26d2d5=0xc8;}else{_0x26d2d5=0xce;}_0x5db71c[_0x2f2e('0x22')](_0x26d2d5);return _0x5db71c[_0x2f2e('0x28')](_0x2f2e('0x29'),_0x1f770e+'-'+_0x1a0150+'/'+_0x2835b1)[_0x2f2e('0x2a')](_0x4a8a4a);}return null;};}function patchUpdates(_0x4b24be){return function(_0x4783a8){try{jsonpatch[_0x2f2e('0x2b')](_0x4783a8,_0x4b24be,!![]);}catch(_0x20c61c){return BPromise[_0x2f2e('0x2c')](_0x20c61c);}return _0x4783a8[_0x2f2e('0x2d')]();};}function saveUpdates(_0x2522f1,_0x48c126){return function(_0x4702a8){if(_0x4702a8){return _0x4702a8[_0x2f2e('0x2e')](_0x2522f1)['then'](function(_0x1d6329){return _0x1d6329;});}return null;};}function removeEntity(_0x3fa074,_0x471677){return function(_0x548c77){if(_0x548c77){return _0x548c77[_0x2f2e('0x2f')]()[_0x2f2e('0x30')](function(){_0x3fa074['status'](0xcc)[_0x2f2e('0x23')]();});}};}function handleEntityNotFound(_0x2902b9,_0x36653f){return function(_0x2cc071){if(!_0x2cc071){_0x2902b9[_0x2f2e('0x31')](0x194);}return _0x2cc071;};}function handleError(_0x24271e,_0x4bb9d7){_0x4bb9d7=_0x4bb9d7||0x1f4;return function(_0x35a2ec){logger[_0x2f2e('0x32')](_0x35a2ec[_0x2f2e('0x33')]);if(_0x35a2ec[_0x2f2e('0x34')]){delete _0x35a2ec[_0x2f2e('0x34')];}_0x24271e[_0x2f2e('0x22')](_0x4bb9d7)[_0x2f2e('0x35')](_0x35a2ec);};}exports[_0x2f2e('0x36')]=function(_0x31ea6e,_0x1753ef){var _0x3987a5={},_0xc602b8={},_0x4cc065={'count':0x0,'rows':[]};var _0x52807c=_[_0x2f2e('0x37')](db[_0x2f2e('0x38')][_0x2f2e('0x39')],function(_0x3c6cb1){return{'name':_0x3c6cb1[_0x2f2e('0x3a')],'type':_0x3c6cb1[_0x2f2e('0x3b')][_0x2f2e('0x3c')]};});_0xc602b8['model']=_[_0x2f2e('0x37')](_0x52807c,'name');_0xc602b8['query']=_[_0x2f2e('0x3d')](_0x31ea6e[_0x2f2e('0x3e')]);_0xc602b8['filters']=_['intersection'](_0xc602b8[_0x2f2e('0x3f')],_0xc602b8[_0x2f2e('0x3e')]);_0x3987a5[_0x2f2e('0x40')]=_[_0x2f2e('0x41')](_0xc602b8[_0x2f2e('0x3f')],qs[_0x2f2e('0x42')](_0x31ea6e['query']['fields']));_0x3987a5['attributes']=_0x3987a5['attributes'][_0x2f2e('0x43')]?_0x3987a5[_0x2f2e('0x40')]:_0xc602b8[_0x2f2e('0x3f')];if(!_0x31ea6e[_0x2f2e('0x3e')]['hasOwnProperty']('nolimit')){_0x3987a5[_0x2f2e('0x26')]=qs[_0x2f2e('0x26')](_0x31ea6e[_0x2f2e('0x3e')][_0x2f2e('0x26')]);_0x3987a5[_0x2f2e('0x24')]=qs['offset'](_0x31ea6e[_0x2f2e('0x3e')][_0x2f2e('0x24')]);}_0x3987a5[_0x2f2e('0x44')]=qs[_0x2f2e('0x45')](_0x31ea6e['query'][_0x2f2e('0x45')]);_0x3987a5['where']=qs[_0x2f2e('0x46')](_['pick'](_0x31ea6e['query'],_0xc602b8['filters']),_0x52807c);if(_0x31ea6e['query'][_0x2f2e('0x47')]){_0x3987a5[_0x2f2e('0x48')]=_[_0x2f2e('0x49')](_0x3987a5[_0x2f2e('0x48')],{'$or':_[_0x2f2e('0x37')](_0x52807c,function(_0x1b2c69){if(_0x1b2c69[_0x2f2e('0x3b')]!==_0x2f2e('0x4a')){var _0x22aac5={};_0x22aac5[_0x1b2c69[_0x2f2e('0x34')]]={'$like':'%'+_0x31ea6e[_0x2f2e('0x3e')][_0x2f2e('0x47')]+'%'};return _0x22aac5;}})});}_0x3987a5=_[_0x2f2e('0x49')]({},_0x3987a5,_0x31ea6e[_0x2f2e('0x4b')]);var _0x2a68f2={'where':_0x3987a5[_0x2f2e('0x48')]};return db[_0x2f2e('0x38')]['count'](_0x2a68f2)[_0x2f2e('0x30')](function(_0x13f6d8){_0x4cc065[_0x2f2e('0x27')]=_0x13f6d8;if(_0x31ea6e[_0x2f2e('0x3e')][_0x2f2e('0x4c')]){_0x3987a5['include']=[{'all':!![]}];}return db[_0x2f2e('0x38')][_0x2f2e('0x4d')](_0x3987a5);})[_0x2f2e('0x30')](function(_0x11225f){_0x4cc065[_0x2f2e('0x4e')]=_0x11225f;return _0x4cc065;})[_0x2f2e('0x30')](respondWithFilteredResult(_0x1753ef,_0x3987a5))['catch'](handleError(_0x1753ef,null));};exports[_0x2f2e('0x4f')]=function(_0x3ffd88,_0x92a531){var _0x36b388={'raw':!![],'where':{'id':_0x3ffd88[_0x2f2e('0x50')]['id']}},_0x521d3f={};_0x521d3f[_0x2f2e('0x3f')]=_['keys'](db['ChatInternalMessage']['rawAttributes']);_0x521d3f[_0x2f2e('0x3e')]=_[_0x2f2e('0x3d')](_0x3ffd88[_0x2f2e('0x3e')]);_0x521d3f[_0x2f2e('0x46')]=_[_0x2f2e('0x41')](_0x521d3f[_0x2f2e('0x3f')],_0x521d3f[_0x2f2e('0x3e')]);_0x36b388[_0x2f2e('0x40')]=_[_0x2f2e('0x41')](_0x521d3f[_0x2f2e('0x3f')],qs[_0x2f2e('0x42')](_0x3ffd88[_0x2f2e('0x3e')][_0x2f2e('0x42')]));_0x36b388[_0x2f2e('0x40')]=_0x36b388[_0x2f2e('0x40')]['length']?_0x36b388[_0x2f2e('0x40')]:_0x521d3f['model'];if(_0x3ffd88[_0x2f2e('0x3e')]['includeAll']){_0x36b388[_0x2f2e('0x51')]=[{'all':!![]}];}_0x36b388=_['merge']({},_0x36b388,_0x3ffd88[_0x2f2e('0x4b')]);return db['ChatInternalMessage'][_0x2f2e('0x52')](_0x36b388)[_0x2f2e('0x30')](handleEntityNotFound(_0x92a531,null))[_0x2f2e('0x30')](respondWithResult(_0x92a531,null))['catch'](handleError(_0x92a531,null));};exports['create']=function(_0x4e1bea,_0x499e2e){return db[_0x2f2e('0x38')][_0x2f2e('0x53')](_0x4e1bea[_0x2f2e('0x54')],{})[_0x2f2e('0x30')](respondWithResult(_0x499e2e,0xc9))[_0x2f2e('0x55')](handleError(_0x499e2e,null));};exports[_0x2f2e('0x2e')]=function(_0xdc737a,_0x59fe8c){if(_0xdc737a[_0x2f2e('0x54')]['id']){delete _0xdc737a[_0x2f2e('0x54')]['id'];}return db[_0x2f2e('0x38')][_0x2f2e('0x52')]({'where':{'id':_0xdc737a[_0x2f2e('0x50')]['id']}})[_0x2f2e('0x30')](handleEntityNotFound(_0x59fe8c,null))[_0x2f2e('0x30')](saveUpdates(_0xdc737a['body'],null))['then'](respondWithResult(_0x59fe8c,null))[_0x2f2e('0x55')](handleError(_0x59fe8c,null));};exports[_0x2f2e('0x2f')]=function(_0x4c2a79,_0x26c61d){return db['ChatInternalMessage'][_0x2f2e('0x52')]({'where':{'id':_0x4c2a79[_0x2f2e('0x50')]['id']}})[_0x2f2e('0x30')](handleEntityNotFound(_0x26c61d,null))[_0x2f2e('0x30')](removeEntity(_0x26c61d,null))[_0x2f2e('0x55')](handleError(_0x26c61d,null));};exports[_0x2f2e('0x56')]=function(_0x1dbe4f,_0x461c3e){return db['ChatInternalMessage']['describe']()[_0x2f2e('0x30')](respondWithResult(_0x461c3e,null))[_0x2f2e('0x55')](handleError(_0x461c3e,null));};function wrapUser(_0x25a61e){return function(_0x5b628c){var _0x35482e=_0x25a61e[_0x2f2e('0x57')]({'plain':!![]});_0x35482e[_0x2f2e('0x58')]=[];if(_0x5b628c){_0x35482e[_0x2f2e('0x59')]=_0x5b628c[_0x2f2e('0x5a')];_0x35482e['lastMessage']=_0x5b628c;}else{_0x35482e['lastMessageAt']=moment(0x0)[_0x2f2e('0x5b')](_0x2f2e('0x5c'));_0x35482e[_0x2f2e('0x5d')]={};}return _0x35482e;};}exports[_0x2f2e('0x5e')]=function(_0xa8b70,_0x1d59d6,_0x4edf4d){var _0x2b363c=[];return db['User'][_0x2f2e('0x4d')]({'where':{'role':[_0x2f2e('0x5f'),_0x2f2e('0x60'),_0x2f2e('0x61')]},'attributes':['id',_0x2f2e('0x62'),_0x2f2e('0x34'),_0x2f2e('0x63'),_0x2f2e('0x64'),_0x2f2e('0x65'),_0x2f2e('0x66'),_0x2f2e('0x67'),_0x2f2e('0x68'),'showWebBar'],'order':qs[_0x2f2e('0x45')](_0x2f2e('0x69')),'include':[{'model':db[_0x2f2e('0x6a')],'as':_0x2f2e('0x6b'),'attributes':['id',_0x2f2e('0x34'),_0x2f2e('0x3b')],'through':{'attributes':[]}}]})[_0x2f2e('0x30')](function(_0x6c68e1){if(_0x6c68e1){var _0x240387=_0xa8b70[_0x2f2e('0x61')]['get']({'plain':!![]});if(!_0x240387)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x240387[_0x2f2e('0x63')]===_0x2f2e('0x61')){return db[_0x2f2e('0x6c')][_0x2f2e('0x52')]({'where':{'name':_0x2f2e('0x6d'),'userProfileId':_0x240387['userProfileId']},'raw':!![]})[_0x2f2e('0x30')](function(_0xb20c39){if(_0xb20c39){if(_0xb20c39[_0x2f2e('0x6e')]===0x0){return db['UserProfileResource'][_0x2f2e('0x4d')]({'where':{'sectionId':_0xb20c39['id']},'raw':!![]})[_0x2f2e('0x30')](function(_0xb75a22){var _0x48bcb4=[];if(_[_0x2f2e('0x6f')](_0xb75a22)){_0x48bcb4=_['filter'](_0x6c68e1,function(_0x1c6d84){if(_0x1c6d84[_0x2f2e('0x63')]!=='agent'){return _0x1c6d84;}});return _0x48bcb4;}else{for(var _0x54b6ae=0x0;_0x54b6ae<_0x6c68e1[_0x2f2e('0x43')];_0x54b6ae++){var _0x2874ba=_0x6c68e1[_0x54b6ae];if(_0x2874ba[_0x2f2e('0x63')]==='agent'){var _0x5af102=_[_0x2f2e('0x52')](_0xb75a22,function(_0x43f477){return _0x43f477[_0x2f2e('0x70')]===_0x2874ba['id'];});if(_0x5af102)_0x48bcb4[_0x2f2e('0x71')](_0x2874ba);}else{_0x48bcb4[_0x2f2e('0x71')](_0x2874ba);}}return _0x48bcb4;}});}else{return _0x6c68e1;}}else{var _0x4fcf5e=_[_0x2f2e('0x47')](_0x6c68e1,function(_0x281b5a){if(_0x281b5a['role']!=='agent'){return _0x281b5a;}});return _0x4fcf5e;}});}else{return _0x6c68e1;}}})[_0x2f2e('0x30')](function(_0x1bfd2b){var _0x50d3f7=[];if(_0x1bfd2b){_0x2b363c=_0x1bfd2b;for(var _0x127e39=0x0;_0x127e39<_0x1bfd2b[_0x2f2e('0x43')];_0x127e39+=0x1){_0x2b363c[_0x127e39][_0x2f2e('0x58')]=[];_0x50d3f7[_0x2f2e('0x71')](db[_0x2f2e('0x38')][_0x2f2e('0x52')]({'where':{'FromId':[_0xa8b70[_0x2f2e('0x61')]['id'],_0x1bfd2b[_0x127e39]['id']],'ToId':[_0xa8b70['user']['id'],_0x1bfd2b[_0x127e39]['id']],'ChatGroupId':null},'attributes':['id',_0x2f2e('0x5a'),'FromId',_0x2f2e('0x72'),_0x2f2e('0x73'),'body'],'order':qs[_0x2f2e('0x45')](_0x2f2e('0x74')),'limit':0x1,'offset':0x0,'raw':!![]})[_0x2f2e('0x30')](wrapUser(_0x1bfd2b[_0x127e39])));}return BPromise['all'](_0x50d3f7);}return[];})['then'](function(_0x2e5b27){return{'rows':_0x2e5b27,'count':_0x2e5b27[_0x2f2e('0x43')]};})[_0x2f2e('0x30')](respondWithResult(_0x1d59d6,null))[_0x2f2e('0x55')](handleError(_0x1d59d6,null));};