781d42f6bb5e17742b11286905a9293a70544ec6
[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 _0x1923=['all','html-pdf','zip-dir','request-promise','moment','bluebird','mustache','util','ejs','lodash','squel','crypto','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./chatInternalMessage.socket','sendStatus','status','end','offset','set','json','reject','save','update','destroy','error','name','ChatInternalMessage','rawAttributes','fieldName','type','key','query','keys','filters','model','fields','attributes','length','hasOwnProperty','nolimit','limit','order','sort','where','pick','merge','map','VIRTUAL','filter','options','count','then','include','findAll','rows','catch','show','params','intersection','includeAll','find','body','describe','get','messages','createdAt','lastMessage','lastMessageAt','YYYY-MM-DD\x20HH:mm:ss','agent','admin','fullname','role','internal','online','lastLoginAt','allowmessenger','VoiceQueue','VoiceQueues','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','isEmpty','resourceId','read'];(function(_0x3b69b3,_0x56829b){var _0x430184=function(_0x4365ff){while(--_0x4365ff){_0x3b69b3['push'](_0x3b69b3['shift']());}};_0x430184(++_0x56829b);}(_0x1923,0x1a5));var _0x3192=function(_0x1bf6c8,_0x8eb2af){_0x1bf6c8=_0x1bf6c8-0x0;var _0xbc2239=_0x1923[_0x1bf6c8];return _0xbc2239;};'use strict';var pdf=require(_0x3192('0x0'));var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x3192('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x3192('0x2'));var moment=require(_0x3192('0x3'));var BPromise=require(_0x3192('0x4'));var Mustache=require(_0x3192('0x5'));var util=require(_0x3192('0x6'));var path=require('path');var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x3192('0x7'));var fs=require('fs');var _=require(_0x3192('0x8'));var squel=require(_0x3192('0x9'));var crypto=require(_0x3192('0xa'));var jsforce=require('jsforce');var deskjs=require(_0x3192('0xb'));var toCsv=require(_0x3192('0xc'));var querystring=require(_0x3192('0xd'));var Papa=require(_0x3192('0xe'));var Redis=require(_0x3192('0xf'));var authService=require(_0x3192('0x10'));var qs=require(_0x3192('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x3192('0x12'));var logger=require(_0x3192('0x13'))(_0x3192('0x14'));var utils=require(_0x3192('0x15'));var config=require(_0x3192('0x16'));var licenseUtil=require(_0x3192('0x17'));var db=require(_0x3192('0x18'))['db'];config[_0x3192('0x19')]=_[_0x3192('0x1a')](config['redis'],{'host':_0x3192('0x1b'),'port':0x18eb});var socket=require(_0x3192('0x1c'))(new Redis(config[_0x3192('0x19')]));require(_0x3192('0x1d'))['register'](socket);function respondWithStatusCode(_0x2dd86d,_0x39d905){_0x39d905=_0x39d905||0xcc;return function(_0x5115dd){if(_0x5115dd){return _0x2dd86d[_0x3192('0x1e')](_0x39d905);}return _0x2dd86d[_0x3192('0x1f')](_0x39d905)[_0x3192('0x20')]();};}function respondWithResult(_0x2f3d0c,_0xd3aed5){_0xd3aed5=_0xd3aed5||0xc8;return function(_0x2e9c2b){if(_0x2e9c2b){return _0x2f3d0c['status'](_0xd3aed5)['json'](_0x2e9c2b);}};}function respondWithFilteredResult(_0x35a723,_0x8989e9){return function(_0x30b6db){if(_0x30b6db){var _0x5c5dab=_0x30b6db['count'],_0x3dbdfc=_0x8989e9['offset'],_0x498692=_0x8989e9[_0x3192('0x21')]+_0x8989e9['limit'],_0x434a51;if(_0x498692>=_0x5c5dab){_0x498692=_0x5c5dab;_0x434a51=0xc8;}else{_0x434a51=0xce;}_0x35a723['status'](_0x434a51);return _0x35a723[_0x3192('0x22')]('Content-Range',_0x3dbdfc+'-'+_0x498692+'/'+_0x5c5dab)[_0x3192('0x23')](_0x30b6db);}return null;};}function patchUpdates(_0x46ac9d){return function(_0x49084b){try{jsonpatch['apply'](_0x49084b,_0x46ac9d,!![]);}catch(_0x4d8cba){return BPromise[_0x3192('0x24')](_0x4d8cba);}return _0x49084b[_0x3192('0x25')]();};}function saveUpdates(_0x16d83e,_0x425558){return function(_0x12e8f5){if(_0x12e8f5){return _0x12e8f5[_0x3192('0x26')](_0x16d83e)['then'](function(_0x3605f0){return _0x3605f0;});}return null;};}function removeEntity(_0x5cf771,_0x2049d3){return function(_0xa47ff1){if(_0xa47ff1){return _0xa47ff1[_0x3192('0x27')]()['then'](function(){_0x5cf771[_0x3192('0x1f')](0xcc)[_0x3192('0x20')]();});}};}function handleEntityNotFound(_0x37b02c,_0x36aa76){return function(_0x163351){if(!_0x163351){_0x37b02c['sendStatus'](0x194);}return _0x163351;};}function handleError(_0x288e79,_0x10631c){_0x10631c=_0x10631c||0x1f4;return function(_0x656e7b){logger[_0x3192('0x28')](_0x656e7b['stack']);if(_0x656e7b['name']){delete _0x656e7b[_0x3192('0x29')];}_0x288e79['status'](_0x10631c)['send'](_0x656e7b);};}exports['index']=function(_0x55873f,_0x596390){var _0x291ec8={},_0x4defb6={},_0x3d94a0={'count':0x0,'rows':[]};var _0x13ef2a=_['map'](db[_0x3192('0x2a')][_0x3192('0x2b')],function(_0x2dc0d){return{'name':_0x2dc0d[_0x3192('0x2c')],'type':_0x2dc0d[_0x3192('0x2d')][_0x3192('0x2e')]};});_0x4defb6['model']=_['map'](_0x13ef2a,_0x3192('0x29'));_0x4defb6[_0x3192('0x2f')]=_[_0x3192('0x30')](_0x55873f[_0x3192('0x2f')]);_0x4defb6[_0x3192('0x31')]=_['intersection'](_0x4defb6[_0x3192('0x32')],_0x4defb6[_0x3192('0x2f')]);_0x291ec8['attributes']=_['intersection'](_0x4defb6[_0x3192('0x32')],qs[_0x3192('0x33')](_0x55873f['query'][_0x3192('0x33')]));_0x291ec8[_0x3192('0x34')]=_0x291ec8[_0x3192('0x34')][_0x3192('0x35')]?_0x291ec8[_0x3192('0x34')]:_0x4defb6[_0x3192('0x32')];if(!_0x55873f['query'][_0x3192('0x36')](_0x3192('0x37'))){_0x291ec8[_0x3192('0x38')]=qs[_0x3192('0x38')](_0x55873f['query'][_0x3192('0x38')]);_0x291ec8[_0x3192('0x21')]=qs[_0x3192('0x21')](_0x55873f[_0x3192('0x2f')][_0x3192('0x21')]);}_0x291ec8[_0x3192('0x39')]=qs[_0x3192('0x3a')](_0x55873f[_0x3192('0x2f')][_0x3192('0x3a')]);_0x291ec8[_0x3192('0x3b')]=qs[_0x3192('0x31')](_[_0x3192('0x3c')](_0x55873f[_0x3192('0x2f')],_0x4defb6[_0x3192('0x31')]),_0x13ef2a);if(_0x55873f['query']['filter']){_0x291ec8[_0x3192('0x3b')]=_[_0x3192('0x3d')](_0x291ec8[_0x3192('0x3b')],{'$or':_[_0x3192('0x3e')](_0x13ef2a,function(_0x46bc30){if(_0x46bc30[_0x3192('0x2d')]!==_0x3192('0x3f')){var _0x982b5e={};_0x982b5e[_0x46bc30[_0x3192('0x29')]]={'$like':'%'+_0x55873f['query'][_0x3192('0x40')]+'%'};return _0x982b5e;}})});}_0x291ec8=_[_0x3192('0x3d')]({},_0x291ec8,_0x55873f[_0x3192('0x41')]);var _0x56526f={'where':_0x291ec8[_0x3192('0x3b')]};return db[_0x3192('0x2a')][_0x3192('0x42')](_0x56526f)[_0x3192('0x43')](function(_0x393135){_0x3d94a0[_0x3192('0x42')]=_0x393135;if(_0x55873f['query']['includeAll']){_0x291ec8[_0x3192('0x44')]=[{'all':!![]}];}return db[_0x3192('0x2a')][_0x3192('0x45')](_0x291ec8);})[_0x3192('0x43')](function(_0x56e310){_0x3d94a0[_0x3192('0x46')]=_0x56e310;return _0x3d94a0;})[_0x3192('0x43')](respondWithFilteredResult(_0x596390,_0x291ec8))[_0x3192('0x47')](handleError(_0x596390,null));};exports[_0x3192('0x48')]=function(_0x4284f1,_0x49c8b6){var _0x43dcd1={'raw':!![],'where':{'id':_0x4284f1[_0x3192('0x49')]['id']}},_0x5798ca={};_0x5798ca['model']=_[_0x3192('0x30')](db['ChatInternalMessage'][_0x3192('0x2b')]);_0x5798ca['query']=_[_0x3192('0x30')](_0x4284f1[_0x3192('0x2f')]);_0x5798ca['filters']=_[_0x3192('0x4a')](_0x5798ca[_0x3192('0x32')],_0x5798ca[_0x3192('0x2f')]);_0x43dcd1[_0x3192('0x34')]=_['intersection'](_0x5798ca['model'],qs[_0x3192('0x33')](_0x4284f1[_0x3192('0x2f')][_0x3192('0x33')]));_0x43dcd1[_0x3192('0x34')]=_0x43dcd1[_0x3192('0x34')][_0x3192('0x35')]?_0x43dcd1[_0x3192('0x34')]:_0x5798ca['model'];if(_0x4284f1['query'][_0x3192('0x4b')]){_0x43dcd1[_0x3192('0x44')]=[{'all':!![]}];}_0x43dcd1=_[_0x3192('0x3d')]({},_0x43dcd1,_0x4284f1[_0x3192('0x41')]);return db[_0x3192('0x2a')][_0x3192('0x4c')](_0x43dcd1)[_0x3192('0x43')](handleEntityNotFound(_0x49c8b6,null))[_0x3192('0x43')](respondWithResult(_0x49c8b6,null))[_0x3192('0x47')](handleError(_0x49c8b6,null));};exports['create']=function(_0x22f6d1,_0x1b5e68){return db[_0x3192('0x2a')]['create'](_0x22f6d1[_0x3192('0x4d')],{})['then'](respondWithResult(_0x1b5e68,0xc9))['catch'](handleError(_0x1b5e68,null));};exports[_0x3192('0x26')]=function(_0x36b699,_0x51d44e){if(_0x36b699['body']['id']){delete _0x36b699[_0x3192('0x4d')]['id'];}return db[_0x3192('0x2a')]['find']({'where':{'id':_0x36b699['params']['id']}})['then'](handleEntityNotFound(_0x51d44e,null))[_0x3192('0x43')](saveUpdates(_0x36b699[_0x3192('0x4d')],null))['then'](respondWithResult(_0x51d44e,null))[_0x3192('0x47')](handleError(_0x51d44e,null));};exports[_0x3192('0x27')]=function(_0x4fb5e3,_0x29821a){return db['ChatInternalMessage']['find']({'where':{'id':_0x4fb5e3[_0x3192('0x49')]['id']}})[_0x3192('0x43')](handleEntityNotFound(_0x29821a,null))[_0x3192('0x43')](removeEntity(_0x29821a,null))['catch'](handleError(_0x29821a,null));};exports['describe']=function(_0xc54f2a,_0x175daf){return db[_0x3192('0x2a')][_0x3192('0x4e')]()[_0x3192('0x43')](respondWithResult(_0x175daf,null))[_0x3192('0x47')](handleError(_0x175daf,null));};function wrapUser(_0x59af7d){return function(_0x7aa9bc){var _0x28b2ed=_0x59af7d[_0x3192('0x4f')]({'plain':!![]});_0x28b2ed[_0x3192('0x50')]=[];if(_0x7aa9bc){_0x28b2ed['lastMessageAt']=_0x7aa9bc[_0x3192('0x51')];_0x28b2ed[_0x3192('0x52')]=_0x7aa9bc;}else{_0x28b2ed[_0x3192('0x53')]=moment(0x0)['format'](_0x3192('0x54'));_0x28b2ed[_0x3192('0x52')]={};}return _0x28b2ed;};}exports['getUsers']=function(_0xc2120f,_0xa41d22,_0x11e088){var _0x7dcd17=[];return db['User'][_0x3192('0x45')]({'where':{'role':[_0x3192('0x55'),_0x3192('0x56'),'user']},'attributes':['id',_0x3192('0x57'),'name',_0x3192('0x58'),'userpic',_0x3192('0x59'),_0x3192('0x5a'),_0x3192('0x5b'),_0x3192('0x5c'),'showWebBar'],'order':qs[_0x3192('0x3a')]('-online'),'include':[{'model':db[_0x3192('0x5d')],'as':_0x3192('0x5e'),'attributes':['id','name',_0x3192('0x2d')],'through':{'attributes':[]}}]})[_0x3192('0x43')](function(_0x31d533){if(_0x31d533){var _0x58a2f2=_0xc2120f[_0x3192('0x5f')][_0x3192('0x4f')]({'plain':!![]});if(!_0x58a2f2)throw new Error(_0x3192('0x60'));if(_0x58a2f2[_0x3192('0x58')]==='user'){return db[_0x3192('0x61')][_0x3192('0x4c')]({'where':{'name':'Agents','userProfileId':_0x58a2f2[_0x3192('0x62')]},'raw':!![]})[_0x3192('0x43')](function(_0x5475ea){if(_0x5475ea){if(_0x5475ea[_0x3192('0x63')]===0x0){return db[_0x3192('0x64')]['findAll']({'where':{'sectionId':_0x5475ea['id']},'raw':!![]})[_0x3192('0x43')](function(_0xefbeb1){var _0x3392a8=[];if(_[_0x3192('0x65')](_0xefbeb1)){_0x3392a8=_[_0x3192('0x40')](_0x31d533,function(_0x1945db){if(_0x1945db['role']!=='agent'){return _0x1945db;}});return _0x3392a8;}else{for(var _0x8b436=0x0;_0x8b436<_0x31d533[_0x3192('0x35')];_0x8b436++){var _0x5100c3=_0x31d533[_0x8b436];if(_0x5100c3[_0x3192('0x58')]==='agent'){var _0x1483e=_['find'](_0xefbeb1,function(_0x45f6a9){return _0x45f6a9[_0x3192('0x66')]===_0x5100c3['id'];});if(_0x1483e)_0x3392a8['push'](_0x5100c3);}else{_0x3392a8['push'](_0x5100c3);}}return _0x3392a8;}});}else{return _0x31d533;}}else{var _0x2aa7e5=_[_0x3192('0x40')](_0x31d533,function(_0x258506){if(_0x258506[_0x3192('0x58')]!==_0x3192('0x55')){return _0x258506;}});return _0x2aa7e5;}});}else{return _0x31d533;}}})['then'](function(_0x1ec1c3){var _0x274e39=[];if(_0x1ec1c3){_0x7dcd17=_0x1ec1c3;for(var _0x2e143=0x0;_0x2e143<_0x1ec1c3['length'];_0x2e143+=0x1){_0x7dcd17[_0x2e143][_0x3192('0x50')]=[];_0x274e39['push'](db[_0x3192('0x2a')][_0x3192('0x4c')]({'where':{'FromId':[_0xc2120f[_0x3192('0x5f')]['id'],_0x1ec1c3[_0x2e143]['id']],'ToId':[_0xc2120f[_0x3192('0x5f')]['id'],_0x1ec1c3[_0x2e143]['id']],'ChatGroupId':null},'attributes':['id',_0x3192('0x51'),'FromId','ToId',_0x3192('0x67'),_0x3192('0x4d')],'order':qs[_0x3192('0x3a')]('-createdAt'),'limit':0x1,'offset':0x0,'raw':!![]})[_0x3192('0x43')](wrapUser(_0x1ec1c3[_0x2e143])));}return BPromise[_0x3192('0x68')](_0x274e39);}return[];})['then'](function(_0x21065c){return{'rows':_0x21065c,'count':_0x21065c[_0x3192('0x35')]};})[_0x3192('0x43')](respondWithResult(_0xa41d22,null))['catch'](handleError(_0xa41d22,null));};