48e35ab30eff6405a44e0aec820b22c3f4899e30
[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 _0xdf55=['apply','reject','save','update','then','destroy','end','error','stack','name','send','ChatInternalMessage','rawAttributes','fieldName','key','query','keys','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','type','VIRTUAL','options','includeAll','include','catch','show','params','find','body','describe','get','lastMessageAt','lastMessage','format','YYYY-MM-DD\x20HH:mm:ss','getUsers','User','findAll','agent','admin','fullname','role','userpic','internal','online','allowmessenger','showWebBar','-online','VoiceQueues','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','Agents','userProfileId','UserProfileResource','isEmpty','resourceId','push','messages','createdAt','FromId','ToId','read','-createdAt','all','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','sox','to-csv','ejs','squel','crypto','jsforce','desk.js','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','localhost','socket.io-emitter','redis','./chatInternalMessage.socket','register','sendStatus','status','json','count','offset','limit','set','Content-Range'];(function(_0x7f30ae,_0xcaeaf3){var _0x4ec1fc=function(_0x550619){while(--_0x550619){_0x7f30ae['push'](_0x7f30ae['shift']());}};_0x4ec1fc(++_0xcaeaf3);}(_0xdf55,0x135));var _0x5df5=function(_0x3f8743,_0x33973f){_0x3f8743=_0x3f8743-0x0;var _0x1f844c=_0xdf55[_0x3f8743];return _0x1f844c;};'use strict';var pdf=require(_0x5df5('0x0'));var emlformat=require(_0x5df5('0x1'));var rimraf=require(_0x5df5('0x2'));var zipdir=require(_0x5df5('0x3'));var jsonpatch=require(_0x5df5('0x4'));var rp=require(_0x5df5('0x5'));var moment=require(_0x5df5('0x6'));var BPromise=require('bluebird');var Mustache=require(_0x5df5('0x7'));var util=require(_0x5df5('0x8'));var path=require(_0x5df5('0x9'));var sox=require(_0x5df5('0xa'));var csv=require(_0x5df5('0xb'));var ejs=require(_0x5df5('0xc'));var fs=require('fs');var _=require('lodash');var squel=require(_0x5df5('0xd'));var crypto=require(_0x5df5('0xe'));var jsforce=require(_0x5df5('0xf'));var deskjs=require(_0x5df5('0x10'));var toCsv=require(_0x5df5('0xb'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x5df5('0x11'));var authService=require(_0x5df5('0x12'));var qs=require(_0x5df5('0x13'));var as=require(_0x5df5('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x5df5('0x15'))(_0x5df5('0x16'));var utils=require(_0x5df5('0x17'));var config=require('../../config/environment');var licenseUtil=require(_0x5df5('0x18'));var db=require(_0x5df5('0x19'))['db'];config['redis']=_['defaults'](config['redis'],{'host':_0x5df5('0x1a'),'port':0x18eb});var socket=require(_0x5df5('0x1b'))(new Redis(config[_0x5df5('0x1c')]));require(_0x5df5('0x1d'))[_0x5df5('0x1e')](socket);function respondWithStatusCode(_0x2f6eb5,_0x7ddab2){_0x7ddab2=_0x7ddab2||0xcc;return function(_0x42d654){if(_0x42d654){return _0x2f6eb5[_0x5df5('0x1f')](_0x7ddab2);}return _0x2f6eb5[_0x5df5('0x20')](_0x7ddab2)['end']();};}function respondWithResult(_0x383484,_0x5d2a88){_0x5d2a88=_0x5d2a88||0xc8;return function(_0x5e6243){if(_0x5e6243){return _0x383484[_0x5df5('0x20')](_0x5d2a88)[_0x5df5('0x21')](_0x5e6243);}};}function respondWithFilteredResult(_0x55704a,_0x93c5bb){return function(_0x4c3c8b){if(_0x4c3c8b){var _0x237d1f=_0x4c3c8b[_0x5df5('0x22')],_0x4f992b=_0x93c5bb['offset'],_0x251d1a=_0x93c5bb[_0x5df5('0x23')]+_0x93c5bb[_0x5df5('0x24')],_0x235903;if(_0x251d1a>=_0x237d1f){_0x251d1a=_0x237d1f;_0x235903=0xc8;}else{_0x235903=0xce;}_0x55704a[_0x5df5('0x20')](_0x235903);return _0x55704a[_0x5df5('0x25')](_0x5df5('0x26'),_0x4f992b+'-'+_0x251d1a+'/'+_0x237d1f)[_0x5df5('0x21')](_0x4c3c8b);}return null;};}function patchUpdates(_0x53025d){return function(_0x19e04b){try{jsonpatch[_0x5df5('0x27')](_0x19e04b,_0x53025d,!![]);}catch(_0x4a621f){return BPromise[_0x5df5('0x28')](_0x4a621f);}return _0x19e04b[_0x5df5('0x29')]();};}function saveUpdates(_0x5ce8a1,_0x3ca2e2){return function(_0x3e1494){if(_0x3e1494){return _0x3e1494[_0x5df5('0x2a')](_0x5ce8a1)[_0x5df5('0x2b')](function(_0x3e80c8){return _0x3e80c8;});}return null;};}function removeEntity(_0x5f3a69,_0x5211f5){return function(_0x24f211){if(_0x24f211){return _0x24f211[_0x5df5('0x2c')]()[_0x5df5('0x2b')](function(){_0x5f3a69[_0x5df5('0x20')](0xcc)[_0x5df5('0x2d')]();});}};}function handleEntityNotFound(_0x37e84a,_0x11a200){return function(_0xd29e65){if(!_0xd29e65){_0x37e84a[_0x5df5('0x1f')](0x194);}return _0xd29e65;};}function handleError(_0x19418d,_0x2bb01b){_0x2bb01b=_0x2bb01b||0x1f4;return function(_0x4e10b0){logger[_0x5df5('0x2e')](_0x4e10b0[_0x5df5('0x2f')]);if(_0x4e10b0['name']){delete _0x4e10b0[_0x5df5('0x30')];}_0x19418d['status'](_0x2bb01b)[_0x5df5('0x31')](_0x4e10b0);};}exports['index']=function(_0x51ff19,_0x11b225){var _0x501bf4={},_0x5d36c4={},_0x2f8e6a={'count':0x0,'rows':[]};var _0xf9d543=_['map'](db[_0x5df5('0x32')][_0x5df5('0x33')],function(_0x4f0143){return{'name':_0x4f0143[_0x5df5('0x34')],'type':_0x4f0143['type'][_0x5df5('0x35')]};});_0x5d36c4['model']=_['map'](_0xf9d543,_0x5df5('0x30'));_0x5d36c4[_0x5df5('0x36')]=_[_0x5df5('0x37')](_0x51ff19[_0x5df5('0x36')]);_0x5d36c4[_0x5df5('0x38')]=_[_0x5df5('0x39')](_0x5d36c4[_0x5df5('0x3a')],_0x5d36c4[_0x5df5('0x36')]);_0x501bf4[_0x5df5('0x3b')]=_[_0x5df5('0x39')](_0x5d36c4['model'],qs[_0x5df5('0x3c')](_0x51ff19[_0x5df5('0x36')][_0x5df5('0x3c')]));_0x501bf4[_0x5df5('0x3b')]=_0x501bf4[_0x5df5('0x3b')][_0x5df5('0x3d')]?_0x501bf4[_0x5df5('0x3b')]:_0x5d36c4[_0x5df5('0x3a')];if(!_0x51ff19[_0x5df5('0x36')][_0x5df5('0x3e')](_0x5df5('0x3f'))){_0x501bf4['limit']=qs[_0x5df5('0x24')](_0x51ff19[_0x5df5('0x36')][_0x5df5('0x24')]);_0x501bf4['offset']=qs[_0x5df5('0x23')](_0x51ff19[_0x5df5('0x36')][_0x5df5('0x23')]);}_0x501bf4[_0x5df5('0x40')]=qs['sort'](_0x51ff19[_0x5df5('0x36')][_0x5df5('0x41')]);_0x501bf4[_0x5df5('0x42')]=qs[_0x5df5('0x38')](_[_0x5df5('0x43')](_0x51ff19['query'],_0x5d36c4[_0x5df5('0x38')]),_0xf9d543);if(_0x51ff19[_0x5df5('0x36')][_0x5df5('0x44')]){_0x501bf4[_0x5df5('0x42')]=_[_0x5df5('0x45')](_0x501bf4[_0x5df5('0x42')],{'$or':_['map'](_0xf9d543,function(_0x44f262){if(_0x44f262[_0x5df5('0x46')]!==_0x5df5('0x47')){var _0x40ce0a={};_0x40ce0a[_0x44f262[_0x5df5('0x30')]]={'$like':'%'+_0x51ff19[_0x5df5('0x36')][_0x5df5('0x44')]+'%'};return _0x40ce0a;}})});}_0x501bf4=_[_0x5df5('0x45')]({},_0x501bf4,_0x51ff19[_0x5df5('0x48')]);var _0x165db5={'where':_0x501bf4[_0x5df5('0x42')]};return db[_0x5df5('0x32')][_0x5df5('0x22')](_0x165db5)[_0x5df5('0x2b')](function(_0x1adabe){_0x2f8e6a[_0x5df5('0x22')]=_0x1adabe;if(_0x51ff19[_0x5df5('0x36')][_0x5df5('0x49')]){_0x501bf4[_0x5df5('0x4a')]=[{'all':!![]}];}return db['ChatInternalMessage']['findAll'](_0x501bf4);})[_0x5df5('0x2b')](function(_0x19c48c){_0x2f8e6a['rows']=_0x19c48c;return _0x2f8e6a;})[_0x5df5('0x2b')](respondWithFilteredResult(_0x11b225,_0x501bf4))[_0x5df5('0x4b')](handleError(_0x11b225,null));};exports[_0x5df5('0x4c')]=function(_0x23ef50,_0x2fbdbf){var _0x1a726a={'raw':!![],'where':{'id':_0x23ef50[_0x5df5('0x4d')]['id']}},_0x2efc8b={};_0x2efc8b['model']=_[_0x5df5('0x37')](db[_0x5df5('0x32')][_0x5df5('0x33')]);_0x2efc8b['query']=_[_0x5df5('0x37')](_0x23ef50[_0x5df5('0x36')]);_0x2efc8b[_0x5df5('0x38')]=_[_0x5df5('0x39')](_0x2efc8b[_0x5df5('0x3a')],_0x2efc8b['query']);_0x1a726a[_0x5df5('0x3b')]=_['intersection'](_0x2efc8b[_0x5df5('0x3a')],qs['fields'](_0x23ef50[_0x5df5('0x36')][_0x5df5('0x3c')]));_0x1a726a[_0x5df5('0x3b')]=_0x1a726a[_0x5df5('0x3b')][_0x5df5('0x3d')]?_0x1a726a[_0x5df5('0x3b')]:_0x2efc8b[_0x5df5('0x3a')];if(_0x23ef50[_0x5df5('0x36')][_0x5df5('0x49')]){_0x1a726a[_0x5df5('0x4a')]=[{'all':!![]}];}_0x1a726a=_[_0x5df5('0x45')]({},_0x1a726a,_0x23ef50[_0x5df5('0x48')]);return db['ChatInternalMessage'][_0x5df5('0x4e')](_0x1a726a)[_0x5df5('0x2b')](handleEntityNotFound(_0x2fbdbf,null))[_0x5df5('0x2b')](respondWithResult(_0x2fbdbf,null))[_0x5df5('0x4b')](handleError(_0x2fbdbf,null));};exports['create']=function(_0x5f9c93,_0x5f5dc6){return db[_0x5df5('0x32')]['create'](_0x5f9c93['body'],{})['then'](respondWithResult(_0x5f5dc6,0xc9))[_0x5df5('0x4b')](handleError(_0x5f5dc6,null));};exports[_0x5df5('0x2a')]=function(_0x11ac9a,_0x47901e){if(_0x11ac9a['body']['id']){delete _0x11ac9a[_0x5df5('0x4f')]['id'];}return db[_0x5df5('0x32')][_0x5df5('0x4e')]({'where':{'id':_0x11ac9a[_0x5df5('0x4d')]['id']}})['then'](handleEntityNotFound(_0x47901e,null))[_0x5df5('0x2b')](saveUpdates(_0x11ac9a[_0x5df5('0x4f')],null))[_0x5df5('0x2b')](respondWithResult(_0x47901e,null))['catch'](handleError(_0x47901e,null));};exports[_0x5df5('0x2c')]=function(_0xf5c86e,_0x310d8d){return db[_0x5df5('0x32')][_0x5df5('0x4e')]({'where':{'id':_0xf5c86e[_0x5df5('0x4d')]['id']}})['then'](handleEntityNotFound(_0x310d8d,null))['then'](removeEntity(_0x310d8d,null))[_0x5df5('0x4b')](handleError(_0x310d8d,null));};exports[_0x5df5('0x50')]=function(_0x4da60b,_0x45d473){return db[_0x5df5('0x32')][_0x5df5('0x50')]()[_0x5df5('0x2b')](respondWithResult(_0x45d473,null))[_0x5df5('0x4b')](handleError(_0x45d473,null));};function wrapUser(_0x2d78be){return function(_0x420459){var _0x5c6f4c=_0x2d78be[_0x5df5('0x51')]({'plain':!![]});_0x5c6f4c['messages']=[];if(_0x420459){_0x5c6f4c[_0x5df5('0x52')]=_0x420459['createdAt'];_0x5c6f4c[_0x5df5('0x53')]=_0x420459;}else{_0x5c6f4c[_0x5df5('0x52')]=moment(0x0)[_0x5df5('0x54')](_0x5df5('0x55'));_0x5c6f4c[_0x5df5('0x53')]={};}return _0x5c6f4c;};}exports[_0x5df5('0x56')]=function(_0x1e24c0,_0x1fe555,_0x345537){var _0x2a27a3=[];return db[_0x5df5('0x57')][_0x5df5('0x58')]({'where':{'role':[_0x5df5('0x59'),_0x5df5('0x5a'),'user']},'attributes':['id',_0x5df5('0x5b'),'name',_0x5df5('0x5c'),_0x5df5('0x5d'),_0x5df5('0x5e'),_0x5df5('0x5f'),'lastLoginAt',_0x5df5('0x60'),_0x5df5('0x61')],'order':qs[_0x5df5('0x41')](_0x5df5('0x62')),'include':[{'model':db['VoiceQueue'],'as':_0x5df5('0x63'),'attributes':['id',_0x5df5('0x30'),_0x5df5('0x46')],'through':{'attributes':[]}}]})[_0x5df5('0x2b')](function(_0xbfae73){if(_0xbfae73){var _0x5a64e4=_0x1e24c0[_0x5df5('0x64')][_0x5df5('0x51')]({'plain':!![]});if(!_0x5a64e4)throw new Error(_0x5df5('0x65'));if(_0x5a64e4[_0x5df5('0x5c')]===_0x5df5('0x64')){return db[_0x5df5('0x66')][_0x5df5('0x4e')]({'where':{'name':_0x5df5('0x67'),'userProfileId':_0x5a64e4[_0x5df5('0x68')]},'raw':!![]})[_0x5df5('0x2b')](function(_0xf2cede){if(_0xf2cede){if(_0xf2cede['autoAssociation']===0x0){return db[_0x5df5('0x69')][_0x5df5('0x58')]({'where':{'sectionId':_0xf2cede['id']},'raw':!![]})[_0x5df5('0x2b')](function(_0x3d9204){var _0x36a160=[];if(_[_0x5df5('0x6a')](_0x3d9204)){_0x36a160=_[_0x5df5('0x44')](_0xbfae73,function(_0x803a71){if(_0x803a71['role']!==_0x5df5('0x59')){return _0x803a71;}});return _0x36a160;}else{for(var _0x1290b8=0x0;_0x1290b8<_0xbfae73[_0x5df5('0x3d')];_0x1290b8++){var _0x2605c6=_0xbfae73[_0x1290b8];if(_0x2605c6['role']===_0x5df5('0x59')){var _0x5886b4=_['find'](_0x3d9204,function(_0x71dea){return _0x71dea[_0x5df5('0x6b')]===_0x2605c6['id'];});if(_0x5886b4)_0x36a160['push'](_0x2605c6);}else{_0x36a160[_0x5df5('0x6c')](_0x2605c6);}}return _0x36a160;}});}else{return _0xbfae73;}}else{var _0x2bec75=_[_0x5df5('0x44')](_0xbfae73,function(_0x15a96e){if(_0x15a96e['role']!=='agent'){return _0x15a96e;}});return _0x2bec75;}});}else{return _0xbfae73;}}})[_0x5df5('0x2b')](function(_0x2f0216){var _0x257642=[];if(_0x2f0216){_0x2a27a3=_0x2f0216;for(var _0x335b37=0x0;_0x335b37<_0x2f0216[_0x5df5('0x3d')];_0x335b37+=0x1){_0x2a27a3[_0x335b37][_0x5df5('0x6d')]=[];_0x257642[_0x5df5('0x6c')](db[_0x5df5('0x32')][_0x5df5('0x4e')]({'where':{'FromId':[_0x1e24c0[_0x5df5('0x64')]['id'],_0x2f0216[_0x335b37]['id']],'ToId':[_0x1e24c0[_0x5df5('0x64')]['id'],_0x2f0216[_0x335b37]['id']],'ChatGroupId':null},'attributes':['id',_0x5df5('0x6e'),_0x5df5('0x6f'),_0x5df5('0x70'),_0x5df5('0x71'),_0x5df5('0x4f')],'order':qs[_0x5df5('0x41')](_0x5df5('0x72')),'limit':0x1,'offset':0x0,'raw':!![]})[_0x5df5('0x2b')](wrapUser(_0x2f0216[_0x335b37])));}return BPromise[_0x5df5('0x73')](_0x257642);}return[];})[_0x5df5('0x2b')](function(_0x3b1c9b){return{'rows':_0x3b1c9b,'count':_0x3b1c9b['length']};})['then'](respondWithResult(_0x1fe555,null))[_0x5df5('0x4b')](handleError(_0x1fe555,null));};