e757decfa0ba09b5c868fba5130126e37fb47212
[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 _0x6216=['catch','destroy','describe','get','messages','lastMessageAt','createdAt','lastMessage','format','YYYY-MM-DD\x20HH:mm:ss','User','agent','user','fullname','role','userpic','internal','online','allowmessenger','showWebBar','-online','VoiceQueue','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','Agents','userProfileId','autoAssociation','UserProfileResource','isEmpty','length','resourceId','push','FromId','ToId','read','all','html-pdf','eml-format','zip-dir','fast-json-patch','bluebird','mustache','sox','to-csv','ejs','crypto','jsforce','desk.js','querystring','papaparse','../../components/parsers/qs','../../config/license/hardware','api','../../config/utils','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','register','sendStatus','status','end','json','count','offset','limit','set','Content-Range','reject','save','update','then','error','stack','name','send','index','map','key','model','query','keys','filters','attributes','intersection','fields','nolimit','sort','where','filter','merge','type','options','ChatInternalMessage','includeAll','findAll','show','params','rawAttributes','find','create','body'];(function(_0x5abbbc,_0x386e79){var _0x4e7fda=function(_0x2ab3dd){while(--_0x2ab3dd){_0x5abbbc['push'](_0x5abbbc['shift']());}};_0x4e7fda(++_0x386e79);}(_0x6216,0xf4));var _0x6621=function(_0x1f9369,_0x530417){_0x1f9369=_0x1f9369-0x0;var _0x38c7ba=_0x6216[_0x1f9369];return _0x38c7ba;};'use strict';var pdf=require(_0x6621('0x0'));var emlformat=require(_0x6621('0x1'));var rimraf=require('rimraf');var zipdir=require(_0x6621('0x2'));var jsonpatch=require(_0x6621('0x3'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x6621('0x4'));var Mustache=require(_0x6621('0x5'));var util=require('util');var path=require('path');var sox=require(_0x6621('0x6'));var csv=require(_0x6621('0x7'));var ejs=require(_0x6621('0x8'));var fs=require('fs');var _=require('lodash');var squel=require('squel');var crypto=require(_0x6621('0x9'));var jsforce=require(_0x6621('0xa'));var deskjs=require(_0x6621('0xb'));var toCsv=require(_0x6621('0x7'));var querystring=require(_0x6621('0xc'));var Papa=require(_0x6621('0xd'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x6621('0xe'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x6621('0xf'));var logger=require('../../config/logger')(_0x6621('0x10'));var utils=require(_0x6621('0x11'));var config=require('../../config/environment');var licenseUtil=require(_0x6621('0x12'));var db=require(_0x6621('0x13'))['db'];config[_0x6621('0x14')]=_[_0x6621('0x15')](config[_0x6621('0x14')],{'host':_0x6621('0x16'),'port':0x18eb});var socket=require(_0x6621('0x17'))(new Redis(config[_0x6621('0x14')]));require('./chatInternalMessage.socket')[_0x6621('0x18')](socket);function respondWithStatusCode(_0x3819ad,_0x384864){_0x384864=_0x384864||0xcc;return function(_0x4085cc){if(_0x4085cc){return _0x3819ad[_0x6621('0x19')](_0x384864);}return _0x3819ad[_0x6621('0x1a')](_0x384864)[_0x6621('0x1b')]();};}function respondWithResult(_0x579c11,_0x56b071){_0x56b071=_0x56b071||0xc8;return function(_0x20161e){if(_0x20161e){return _0x579c11['status'](_0x56b071)[_0x6621('0x1c')](_0x20161e);}};}function respondWithFilteredResult(_0x348e5f,_0x22d65d){return function(_0x3d5e78){if(_0x3d5e78){var _0x3e61b5=_0x3d5e78[_0x6621('0x1d')],_0x20649a=_0x22d65d[_0x6621('0x1e')],_0x3f1373=_0x22d65d[_0x6621('0x1e')]+_0x22d65d[_0x6621('0x1f')],_0x443bf9;if(_0x3f1373>=_0x3e61b5){_0x3f1373=_0x3e61b5;_0x443bf9=0xc8;}else{_0x443bf9=0xce;}_0x348e5f[_0x6621('0x1a')](_0x443bf9);return _0x348e5f[_0x6621('0x20')](_0x6621('0x21'),_0x20649a+'-'+_0x3f1373+'/'+_0x3e61b5)[_0x6621('0x1c')](_0x3d5e78);}return null;};}function patchUpdates(_0x46eaf2){return function(_0x35408c){try{jsonpatch['apply'](_0x35408c,_0x46eaf2,!![]);}catch(_0x323bd7){return BPromise[_0x6621('0x22')](_0x323bd7);}return _0x35408c[_0x6621('0x23')]();};}function saveUpdates(_0x52d275,_0x2f0d28){return function(_0x529009){if(_0x529009){return _0x529009[_0x6621('0x24')](_0x52d275)[_0x6621('0x25')](function(_0x5c3652){return _0x5c3652;});}return null;};}function removeEntity(_0x1a51f3,_0x3706cd){return function(_0x266163){if(_0x266163){return _0x266163['destroy']()[_0x6621('0x25')](function(){_0x1a51f3[_0x6621('0x1a')](0xcc)[_0x6621('0x1b')]();});}};}function handleEntityNotFound(_0x2bd3c5,_0x14b84a){return function(_0x593bf6){if(!_0x593bf6){_0x2bd3c5[_0x6621('0x19')](0x194);}return _0x593bf6;};}function handleError(_0x24b498,_0x32c97f){_0x32c97f=_0x32c97f||0x1f4;return function(_0x58f3b1){logger[_0x6621('0x26')](_0x58f3b1[_0x6621('0x27')]);if(_0x58f3b1[_0x6621('0x28')]){delete _0x58f3b1[_0x6621('0x28')];}_0x24b498['status'](_0x32c97f)[_0x6621('0x29')](_0x58f3b1);};}exports[_0x6621('0x2a')]=function(_0x2beba9,_0x4e86d5){var _0xc4344d={},_0x58518d={},_0x258292={'count':0x0,'rows':[]};var _0x2b1d12=_[_0x6621('0x2b')](db['ChatInternalMessage']['rawAttributes'],function(_0x27a251){return{'name':_0x27a251['fieldName'],'type':_0x27a251['type'][_0x6621('0x2c')]};});_0x58518d[_0x6621('0x2d')]=_[_0x6621('0x2b')](_0x2b1d12,_0x6621('0x28'));_0x58518d[_0x6621('0x2e')]=_[_0x6621('0x2f')](_0x2beba9[_0x6621('0x2e')]);_0x58518d[_0x6621('0x30')]=_['intersection'](_0x58518d[_0x6621('0x2d')],_0x58518d[_0x6621('0x2e')]);_0xc4344d[_0x6621('0x31')]=_[_0x6621('0x32')](_0x58518d['model'],qs[_0x6621('0x33')](_0x2beba9[_0x6621('0x2e')][_0x6621('0x33')]));_0xc4344d['attributes']=_0xc4344d[_0x6621('0x31')]['length']?_0xc4344d[_0x6621('0x31')]:_0x58518d[_0x6621('0x2d')];if(!_0x2beba9[_0x6621('0x2e')]['hasOwnProperty'](_0x6621('0x34'))){_0xc4344d['limit']=qs[_0x6621('0x1f')](_0x2beba9[_0x6621('0x2e')][_0x6621('0x1f')]);_0xc4344d[_0x6621('0x1e')]=qs[_0x6621('0x1e')](_0x2beba9[_0x6621('0x2e')][_0x6621('0x1e')]);}_0xc4344d['order']=qs[_0x6621('0x35')](_0x2beba9[_0x6621('0x2e')][_0x6621('0x35')]);_0xc4344d[_0x6621('0x36')]=qs[_0x6621('0x30')](_['pick'](_0x2beba9[_0x6621('0x2e')],_0x58518d[_0x6621('0x30')]),_0x2b1d12);if(_0x2beba9[_0x6621('0x2e')][_0x6621('0x37')]){_0xc4344d[_0x6621('0x36')]=_[_0x6621('0x38')](_0xc4344d[_0x6621('0x36')],{'$or':_[_0x6621('0x2b')](_0x2b1d12,function(_0x928299){if(_0x928299[_0x6621('0x39')]!=='VIRTUAL'){var _0x8800d0={};_0x8800d0[_0x928299['name']]={'$like':'%'+_0x2beba9[_0x6621('0x2e')]['filter']+'%'};return _0x8800d0;}})});}_0xc4344d=_['merge']({},_0xc4344d,_0x2beba9[_0x6621('0x3a')]);var _0xb96f2a={'where':_0xc4344d['where']};return db[_0x6621('0x3b')][_0x6621('0x1d')](_0xb96f2a)['then'](function(_0x395009){_0x258292[_0x6621('0x1d')]=_0x395009;if(_0x2beba9[_0x6621('0x2e')][_0x6621('0x3c')]){_0xc4344d['include']=[{'all':!![]}];}return db[_0x6621('0x3b')][_0x6621('0x3d')](_0xc4344d);})[_0x6621('0x25')](function(_0x516f17){_0x258292['rows']=_0x516f17;return _0x258292;})['then'](respondWithFilteredResult(_0x4e86d5,_0xc4344d))['catch'](handleError(_0x4e86d5,null));};exports[_0x6621('0x3e')]=function(_0x1b1be5,_0x426704){var _0x3365c1={'raw':!![],'where':{'id':_0x1b1be5[_0x6621('0x3f')]['id']}},_0x48bd11={};_0x48bd11['model']=_[_0x6621('0x2f')](db['ChatInternalMessage'][_0x6621('0x40')]);_0x48bd11[_0x6621('0x2e')]=_[_0x6621('0x2f')](_0x1b1be5[_0x6621('0x2e')]);_0x48bd11[_0x6621('0x30')]=_[_0x6621('0x32')](_0x48bd11[_0x6621('0x2d')],_0x48bd11[_0x6621('0x2e')]);_0x3365c1[_0x6621('0x31')]=_[_0x6621('0x32')](_0x48bd11[_0x6621('0x2d')],qs['fields'](_0x1b1be5['query'][_0x6621('0x33')]));_0x3365c1['attributes']=_0x3365c1[_0x6621('0x31')]['length']?_0x3365c1[_0x6621('0x31')]:_0x48bd11[_0x6621('0x2d')];if(_0x1b1be5[_0x6621('0x2e')]['includeAll']){_0x3365c1['include']=[{'all':!![]}];}_0x3365c1=_[_0x6621('0x38')]({},_0x3365c1,_0x1b1be5[_0x6621('0x3a')]);return db[_0x6621('0x3b')][_0x6621('0x41')](_0x3365c1)[_0x6621('0x25')](handleEntityNotFound(_0x426704,null))[_0x6621('0x25')](respondWithResult(_0x426704,null))['catch'](handleError(_0x426704,null));};exports[_0x6621('0x42')]=function(_0x519750,_0x49b7d7){return db['ChatInternalMessage']['create'](_0x519750[_0x6621('0x43')],{})[_0x6621('0x25')](respondWithResult(_0x49b7d7,0xc9))[_0x6621('0x44')](handleError(_0x49b7d7,null));};exports[_0x6621('0x24')]=function(_0x5015f8,_0xb3c8b8){if(_0x5015f8[_0x6621('0x43')]['id']){delete _0x5015f8['body']['id'];}return db[_0x6621('0x3b')][_0x6621('0x41')]({'where':{'id':_0x5015f8[_0x6621('0x3f')]['id']}})[_0x6621('0x25')](handleEntityNotFound(_0xb3c8b8,null))[_0x6621('0x25')](saveUpdates(_0x5015f8[_0x6621('0x43')],null))[_0x6621('0x25')](respondWithResult(_0xb3c8b8,null))[_0x6621('0x44')](handleError(_0xb3c8b8,null));};exports[_0x6621('0x45')]=function(_0x168088,_0x2ff1a2){return db[_0x6621('0x3b')]['find']({'where':{'id':_0x168088[_0x6621('0x3f')]['id']}})[_0x6621('0x25')](handleEntityNotFound(_0x2ff1a2,null))['then'](removeEntity(_0x2ff1a2,null))['catch'](handleError(_0x2ff1a2,null));};exports['describe']=function(_0x42a1ef,_0xca1e5b){return db[_0x6621('0x3b')][_0x6621('0x46')]()[_0x6621('0x25')](respondWithResult(_0xca1e5b,null))[_0x6621('0x44')](handleError(_0xca1e5b,null));};function wrapUser(_0x5a2841){return function(_0x58add3){var _0x380c70=_0x5a2841[_0x6621('0x47')]({'plain':!![]});_0x380c70[_0x6621('0x48')]=[];if(_0x58add3){_0x380c70[_0x6621('0x49')]=_0x58add3[_0x6621('0x4a')];_0x380c70[_0x6621('0x4b')]=_0x58add3;}else{_0x380c70[_0x6621('0x49')]=moment(0x0)[_0x6621('0x4c')](_0x6621('0x4d'));_0x380c70[_0x6621('0x4b')]={};}return _0x380c70;};}exports['getUsers']=function(_0x5a7822,_0x3e46aa,_0x244299){var _0x363a4e=[];return db[_0x6621('0x4e')][_0x6621('0x3d')]({'where':{'role':[_0x6621('0x4f'),'admin',_0x6621('0x50')]},'attributes':['id',_0x6621('0x51'),_0x6621('0x28'),_0x6621('0x52'),_0x6621('0x53'),_0x6621('0x54'),_0x6621('0x55'),'lastLoginAt',_0x6621('0x56'),_0x6621('0x57')],'order':qs[_0x6621('0x35')](_0x6621('0x58')),'include':[{'model':db[_0x6621('0x59')],'as':'VoiceQueues','attributes':['id',_0x6621('0x28'),_0x6621('0x39')],'through':{'attributes':[]}}]})[_0x6621('0x25')](function(_0x55e9ac){if(_0x55e9ac){var _0x3de5ea=_0x5a7822[_0x6621('0x50')][_0x6621('0x47')]({'plain':!![]});if(!_0x3de5ea)throw new Error(_0x6621('0x5a'));if(_0x3de5ea['role']===_0x6621('0x50')){return db[_0x6621('0x5b')][_0x6621('0x41')]({'where':{'name':_0x6621('0x5c'),'userProfileId':_0x3de5ea[_0x6621('0x5d')]},'raw':!![]})[_0x6621('0x25')](function(_0x5f5a72){if(_0x5f5a72){if(_0x5f5a72[_0x6621('0x5e')]===0x0){return db[_0x6621('0x5f')][_0x6621('0x3d')]({'where':{'sectionId':_0x5f5a72['id']},'raw':!![]})[_0x6621('0x25')](function(_0x1729ca){var _0x1daa00=[];if(_[_0x6621('0x60')](_0x1729ca)){_0x1daa00=_[_0x6621('0x37')](_0x55e9ac,function(_0x4992ba){if(_0x4992ba[_0x6621('0x52')]!==_0x6621('0x4f')){return _0x4992ba;}});return _0x1daa00;}else{for(var _0x11bc00=0x0;_0x11bc00<_0x55e9ac[_0x6621('0x61')];_0x11bc00++){var _0xa75022=_0x55e9ac[_0x11bc00];if(_0xa75022[_0x6621('0x52')]==='agent'){var _0x1626cb=_[_0x6621('0x41')](_0x1729ca,function(_0x82d4b0){return _0x82d4b0[_0x6621('0x62')]===_0xa75022['id'];});if(_0x1626cb)_0x1daa00[_0x6621('0x63')](_0xa75022);}else{_0x1daa00[_0x6621('0x63')](_0xa75022);}}return _0x1daa00;}});}else{return _0x55e9ac;}}else{var _0x40bf9f=_[_0x6621('0x37')](_0x55e9ac,function(_0x542e4a){if(_0x542e4a[_0x6621('0x52')]!==_0x6621('0x4f')){return _0x542e4a;}});return _0x40bf9f;}});}else{return _0x55e9ac;}}})['then'](function(_0x3d92b3){var _0x2b2a52=[];if(_0x3d92b3){_0x363a4e=_0x3d92b3;for(var _0x2d9ca2=0x0;_0x2d9ca2<_0x3d92b3[_0x6621('0x61')];_0x2d9ca2+=0x1){_0x363a4e[_0x2d9ca2][_0x6621('0x48')]=[];_0x2b2a52[_0x6621('0x63')](db[_0x6621('0x3b')][_0x6621('0x41')]({'where':{'FromId':[_0x5a7822['user']['id'],_0x3d92b3[_0x2d9ca2]['id']],'ToId':[_0x5a7822['user']['id'],_0x3d92b3[_0x2d9ca2]['id']],'ChatGroupId':null},'attributes':['id',_0x6621('0x4a'),_0x6621('0x64'),_0x6621('0x65'),_0x6621('0x66'),'body'],'order':qs['sort']('-createdAt'),'limit':0x1,'offset':0x0,'raw':!![]})[_0x6621('0x25')](wrapUser(_0x3d92b3[_0x2d9ca2])));}return BPromise[_0x6621('0x67')](_0x2b2a52);}return[];})[_0x6621('0x25')](function(_0x177173){return{'rows':_0x177173,'count':_0x177173[_0x6621('0x61')]};})[_0x6621('0x25')](respondWithResult(_0x3e46aa,null))['catch'](handleError(_0x3e46aa,null));};