23c2f7549ba4ce91da8baeb3c7c1318f1cb96b7a
[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 _0xa3bb=['options','includeAll','include','findAll','show','params','keys','catch','body','describe','get','lastMessageAt','lastMessage','YYYY-MM-DD\x20HH:mm:ss','getUsers','User','agent','admin','user','role','internal','online','lastLoginAt','allowmessenger','showWebBar','-online','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','find','Agents','userProfileId','UserProfileResource','isEmpty','resourceId','push','messages','FromId','ToId','read','-createdAt','html-pdf','eml-format','zip-dir','moment','bluebird','util','path','sox','to-csv','lodash','squel','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','redis','socket.io-emitter','./chatInternalMessage.socket','register','sendStatus','status','end','json','count','offset','set','Content-Range','apply','reject','update','destroy','then','error','stack','name','index','map','ChatInternalMessage','rawAttributes','fieldName','type','model','query','intersection','fields','attributes','length','nolimit','limit','sort','where','filters','filter','merge'];(function(_0x21d3d5,_0x38163c){var _0xf0057b=function(_0x2d1646){while(--_0x2d1646){_0x21d3d5['push'](_0x21d3d5['shift']());}};_0xf0057b(++_0x38163c);}(_0xa3bb,0x8e));var _0xba3b=function(_0x37853b,_0x35e920){_0x37853b=_0x37853b-0x0;var _0x32c9f1=_0xa3bb[_0x37853b];return _0x32c9f1;};'use strict';var pdf=require(_0xba3b('0x0'));var emlformat=require(_0xba3b('0x1'));var rimraf=require('rimraf');var zipdir=require(_0xba3b('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0xba3b('0x3'));var BPromise=require(_0xba3b('0x4'));var Mustache=require('mustache');var util=require(_0xba3b('0x5'));var path=require(_0xba3b('0x6'));var sox=require(_0xba3b('0x7'));var csv=require(_0xba3b('0x8'));var ejs=require('ejs');var fs=require('fs');var _=require(_0xba3b('0x9'));var squel=require(_0xba3b('0xa'));var crypto=require('crypto');var jsforce=require(_0xba3b('0xb'));var deskjs=require(_0xba3b('0xc'));var toCsv=require(_0xba3b('0x8'));var querystring=require(_0xba3b('0xd'));var Papa=require(_0xba3b('0xe'));var Redis=require('ioredis');var authService=require(_0xba3b('0xf'));var qs=require(_0xba3b('0x10'));var as=require(_0xba3b('0x11'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xba3b('0x12'))(_0xba3b('0x13'));var utils=require(_0xba3b('0x14'));var config=require(_0xba3b('0x15'));var db=require(_0xba3b('0x16'))['db'];config[_0xba3b('0x17')]=_['defaults'](config[_0xba3b('0x17')],{'host':'localhost','port':0x18eb});var socket=require(_0xba3b('0x18'))(new Redis(config[_0xba3b('0x17')]));require(_0xba3b('0x19'))[_0xba3b('0x1a')](socket);function respondWithStatusCode(_0x5ef485,_0x2a9555){_0x2a9555=_0x2a9555||0xcc;return function(_0x1cff82){if(_0x1cff82){return _0x5ef485[_0xba3b('0x1b')](_0x2a9555);}return _0x5ef485[_0xba3b('0x1c')](_0x2a9555)[_0xba3b('0x1d')]();};}function respondWithResult(_0x51f1f1,_0x5157b5){_0x5157b5=_0x5157b5||0xc8;return function(_0x4858f3){if(_0x4858f3){return _0x51f1f1[_0xba3b('0x1c')](_0x5157b5)[_0xba3b('0x1e')](_0x4858f3);}};}function respondWithFilteredResult(_0x24d63,_0xe7c293){return function(_0x194de7){if(_0x194de7){var _0x4a3a12=_0x194de7[_0xba3b('0x1f')],_0x49e4d2=_0xe7c293['offset'],_0x1c6822=_0xe7c293[_0xba3b('0x20')]+_0xe7c293['limit'],_0x228fad;if(_0x1c6822>=_0x4a3a12){_0x1c6822=_0x4a3a12;_0x228fad=0xc8;}else{_0x228fad=0xce;}_0x24d63[_0xba3b('0x1c')](_0x228fad);return _0x24d63[_0xba3b('0x21')](_0xba3b('0x22'),_0x49e4d2+'-'+_0x1c6822+'/'+_0x4a3a12)['json'](_0x194de7);}return null;};}function patchUpdates(_0x2cd5bd){return function(_0x5d5078){try{jsonpatch[_0xba3b('0x23')](_0x5d5078,_0x2cd5bd,!![]);}catch(_0x972e5b){return BPromise[_0xba3b('0x24')](_0x972e5b);}return _0x5d5078['save']();};}function saveUpdates(_0x274cc7,_0x23029e){return function(_0x37dd09){if(_0x37dd09){return _0x37dd09[_0xba3b('0x25')](_0x274cc7)['then'](function(_0x4f89c9){return _0x4f89c9;});}return null;};}function removeEntity(_0x2eac03,_0x454312){return function(_0x13ea32){if(_0x13ea32){return _0x13ea32[_0xba3b('0x26')]()[_0xba3b('0x27')](function(){_0x2eac03[_0xba3b('0x1c')](0xcc)['end']();});}};}function handleEntityNotFound(_0x24514b,_0x98a0d0){return function(_0x16c5f0){if(!_0x16c5f0){_0x24514b[_0xba3b('0x1b')](0x194);}return _0x16c5f0;};}function handleError(_0x4a7c61,_0x581e1d){_0x581e1d=_0x581e1d||0x1f4;return function(_0x481086){logger[_0xba3b('0x28')](_0x481086[_0xba3b('0x29')]);if(_0x481086[_0xba3b('0x2a')]){delete _0x481086[_0xba3b('0x2a')];}_0x4a7c61[_0xba3b('0x1c')](_0x581e1d)['send'](_0x481086);};}exports[_0xba3b('0x2b')]=function(_0xd112fa,_0x205282){var _0x353eef={},_0x1e17ef={},_0x42bca3={'count':0x0,'rows':[]};var _0x12a99b=_[_0xba3b('0x2c')](db[_0xba3b('0x2d')][_0xba3b('0x2e')],function(_0x9936ed){return{'name':_0x9936ed[_0xba3b('0x2f')],'type':_0x9936ed[_0xba3b('0x30')]['key']};});_0x1e17ef[_0xba3b('0x31')]=_['map'](_0x12a99b,_0xba3b('0x2a'));_0x1e17ef[_0xba3b('0x32')]=_['keys'](_0xd112fa[_0xba3b('0x32')]);_0x1e17ef['filters']=_[_0xba3b('0x33')](_0x1e17ef[_0xba3b('0x31')],_0x1e17ef['query']);_0x353eef['attributes']=_[_0xba3b('0x33')](_0x1e17ef[_0xba3b('0x31')],qs[_0xba3b('0x34')](_0xd112fa['query'][_0xba3b('0x34')]));_0x353eef['attributes']=_0x353eef[_0xba3b('0x35')][_0xba3b('0x36')]?_0x353eef['attributes']:_0x1e17ef['model'];if(!_0xd112fa['query']['hasOwnProperty'](_0xba3b('0x37'))){_0x353eef[_0xba3b('0x38')]=qs[_0xba3b('0x38')](_0xd112fa[_0xba3b('0x32')][_0xba3b('0x38')]);_0x353eef[_0xba3b('0x20')]=qs['offset'](_0xd112fa[_0xba3b('0x32')][_0xba3b('0x20')]);}_0x353eef['order']=qs[_0xba3b('0x39')](_0xd112fa[_0xba3b('0x32')][_0xba3b('0x39')]);_0x353eef[_0xba3b('0x3a')]=qs[_0xba3b('0x3b')](_['pick'](_0xd112fa[_0xba3b('0x32')],_0x1e17ef[_0xba3b('0x3b')]));if(_0xd112fa[_0xba3b('0x32')][_0xba3b('0x3c')]){_0x353eef['where']=_[_0xba3b('0x3d')](_0x353eef[_0xba3b('0x3a')],{'$or':_['map'](_0x12a99b,function(_0x4dbd34){if(_0x4dbd34[_0xba3b('0x30')]!=='VIRTUAL'){var _0x98135f={};_0x98135f[_0x4dbd34[_0xba3b('0x2a')]]={'$like':'%'+_0xd112fa[_0xba3b('0x32')][_0xba3b('0x3c')]+'%'};return _0x98135f;}})});}_0x353eef=_[_0xba3b('0x3d')]({},_0x353eef,_0xd112fa[_0xba3b('0x3e')]);var _0x2f0898={'where':_0x353eef[_0xba3b('0x3a')]};return db[_0xba3b('0x2d')][_0xba3b('0x1f')](_0x2f0898)[_0xba3b('0x27')](function(_0x5e6075){_0x42bca3[_0xba3b('0x1f')]=_0x5e6075;if(_0xd112fa[_0xba3b('0x32')][_0xba3b('0x3f')]){_0x353eef[_0xba3b('0x40')]=[{'all':!![]}];}return db[_0xba3b('0x2d')][_0xba3b('0x41')](_0x353eef);})[_0xba3b('0x27')](function(_0x52caa6){_0x42bca3['rows']=_0x52caa6;return _0x42bca3;})[_0xba3b('0x27')](respondWithFilteredResult(_0x205282,_0x353eef))['catch'](handleError(_0x205282,null));};exports[_0xba3b('0x42')]=function(_0x49953f,_0x56619a){var _0x21e3eb={'raw':!![],'where':{'id':_0x49953f[_0xba3b('0x43')]['id']}},_0x3c6278={};_0x3c6278['model']=_[_0xba3b('0x44')](db[_0xba3b('0x2d')][_0xba3b('0x2e')]);_0x3c6278[_0xba3b('0x32')]=_[_0xba3b('0x44')](_0x49953f[_0xba3b('0x32')]);_0x3c6278[_0xba3b('0x3b')]=_[_0xba3b('0x33')](_0x3c6278['model'],_0x3c6278[_0xba3b('0x32')]);_0x21e3eb[_0xba3b('0x35')]=_[_0xba3b('0x33')](_0x3c6278['model'],qs[_0xba3b('0x34')](_0x49953f['query'][_0xba3b('0x34')]));_0x21e3eb[_0xba3b('0x35')]=_0x21e3eb[_0xba3b('0x35')][_0xba3b('0x36')]?_0x21e3eb[_0xba3b('0x35')]:_0x3c6278[_0xba3b('0x31')];if(_0x49953f[_0xba3b('0x32')][_0xba3b('0x3f')]){_0x21e3eb[_0xba3b('0x40')]=[{'all':!![]}];}_0x21e3eb=_[_0xba3b('0x3d')]({},_0x21e3eb,_0x49953f[_0xba3b('0x3e')]);return db[_0xba3b('0x2d')]['find'](_0x21e3eb)[_0xba3b('0x27')](handleEntityNotFound(_0x56619a,null))[_0xba3b('0x27')](respondWithResult(_0x56619a,null))['catch'](handleError(_0x56619a,null));};exports['create']=function(_0x4e20d9,_0x8ad81e){return db[_0xba3b('0x2d')]['create'](_0x4e20d9['body'],{})[_0xba3b('0x27')](respondWithResult(_0x8ad81e,0xc9))[_0xba3b('0x45')](handleError(_0x8ad81e,null));};exports['update']=function(_0x7aec7,_0x11570a){if(_0x7aec7[_0xba3b('0x46')]['id']){delete _0x7aec7[_0xba3b('0x46')]['id'];}return db[_0xba3b('0x2d')]['find']({'where':{'id':_0x7aec7[_0xba3b('0x43')]['id']}})[_0xba3b('0x27')](handleEntityNotFound(_0x11570a,null))[_0xba3b('0x27')](saveUpdates(_0x7aec7[_0xba3b('0x46')],null))[_0xba3b('0x27')](respondWithResult(_0x11570a,null))[_0xba3b('0x45')](handleError(_0x11570a,null));};exports[_0xba3b('0x26')]=function(_0x363fcd,_0x5d4bef){return db[_0xba3b('0x2d')]['find']({'where':{'id':_0x363fcd['params']['id']}})[_0xba3b('0x27')](handleEntityNotFound(_0x5d4bef,null))[_0xba3b('0x27')](removeEntity(_0x5d4bef,null))[_0xba3b('0x45')](handleError(_0x5d4bef,null));};exports[_0xba3b('0x47')]=function(_0x29c609,_0x329829){return db[_0xba3b('0x2d')][_0xba3b('0x47')]()[_0xba3b('0x27')](respondWithResult(_0x329829,null))[_0xba3b('0x45')](handleError(_0x329829,null));};function wrapUser(_0x517803){return function(_0x58d1d6){var _0x6ef601=_0x517803[_0xba3b('0x48')]({'plain':!![]});_0x6ef601['messages']=[];if(_0x58d1d6){_0x6ef601[_0xba3b('0x49')]=_0x58d1d6['createdAt'];_0x6ef601[_0xba3b('0x4a')]=_0x58d1d6;}else{_0x6ef601[_0xba3b('0x49')]=moment(0x0)['format'](_0xba3b('0x4b'));_0x6ef601[_0xba3b('0x4a')]={};}return _0x6ef601;};}exports[_0xba3b('0x4c')]=function(_0x5d1219,_0x31e37c,_0x78221f){var _0x45e213=[];return db[_0xba3b('0x4d')][_0xba3b('0x41')]({'where':{'role':[_0xba3b('0x4e'),_0xba3b('0x4f'),_0xba3b('0x50')]},'attributes':['id','fullname',_0xba3b('0x2a'),_0xba3b('0x51'),'userpic',_0xba3b('0x52'),_0xba3b('0x53'),_0xba3b('0x54'),_0xba3b('0x55'),_0xba3b('0x56')],'order':qs[_0xba3b('0x39')](_0xba3b('0x57')),'include':[{'model':db['VoiceQueue'],'as':'VoiceQueues','attributes':['id',_0xba3b('0x2a'),_0xba3b('0x30')],'through':{'attributes':[]}}]})[_0xba3b('0x27')](function(_0x43bb16){if(_0x43bb16){var _0x392be5=_0x5d1219[_0xba3b('0x50')][_0xba3b('0x48')]({'plain':!![]});if(!_0x392be5)throw new Error(_0xba3b('0x58'));if(_0x392be5['role']===_0xba3b('0x50')){return db[_0xba3b('0x59')][_0xba3b('0x5a')]({'where':{'name':_0xba3b('0x5b'),'userProfileId':_0x392be5[_0xba3b('0x5c')]},'raw':!![]})[_0xba3b('0x27')](function(_0x3b5bf6){if(_0x3b5bf6){if(_0x3b5bf6['autoAssociation']===0x0){return db[_0xba3b('0x5d')][_0xba3b('0x41')]({'where':{'sectionId':_0x3b5bf6['id']},'raw':!![]})[_0xba3b('0x27')](function(_0x476a0e){var _0x379221=[];if(_[_0xba3b('0x5e')](_0x476a0e)){_0x379221=_[_0xba3b('0x3c')](_0x43bb16,function(_0x155563){if(_0x155563[_0xba3b('0x51')]!==_0xba3b('0x4e')){return _0x155563;}});return _0x379221;}else{for(var _0x4fdf0e=0x0;_0x4fdf0e<_0x43bb16[_0xba3b('0x36')];_0x4fdf0e++){var _0x1828a1=_0x43bb16[_0x4fdf0e];if(_0x1828a1[_0xba3b('0x51')]==='agent'){var _0x5a310f=_[_0xba3b('0x5a')](_0x476a0e,function(_0x58696a){return _0x58696a[_0xba3b('0x5f')]===_0x1828a1['id'];});if(_0x5a310f)_0x379221[_0xba3b('0x60')](_0x1828a1);}else{_0x379221[_0xba3b('0x60')](_0x1828a1);}}return _0x379221;}});}else{return _0x43bb16;}}else{var _0x5f3ac5=_[_0xba3b('0x3c')](_0x43bb16,function(_0x48ced3){if(_0x48ced3[_0xba3b('0x51')]!=='agent'){return _0x48ced3;}});return _0x5f3ac5;}});}else{return _0x43bb16;}}})[_0xba3b('0x27')](function(_0x2574a3){var _0x26c77d=[];if(_0x2574a3){_0x45e213=_0x2574a3;for(var _0x2e1aa7=0x0;_0x2e1aa7<_0x2574a3[_0xba3b('0x36')];_0x2e1aa7+=0x1){_0x45e213[_0x2e1aa7][_0xba3b('0x61')]=[];_0x26c77d[_0xba3b('0x60')](db[_0xba3b('0x2d')][_0xba3b('0x5a')]({'where':{'FromId':[_0x5d1219[_0xba3b('0x50')]['id'],_0x2574a3[_0x2e1aa7]['id']],'ToId':[_0x5d1219[_0xba3b('0x50')]['id'],_0x2574a3[_0x2e1aa7]['id']],'ChatGroupId':null},'attributes':['id','createdAt',_0xba3b('0x62'),_0xba3b('0x63'),_0xba3b('0x64'),_0xba3b('0x46')],'order':qs[_0xba3b('0x39')](_0xba3b('0x65')),'limit':0x1,'offset':0x0,'raw':!![]})[_0xba3b('0x27')](wrapUser(_0x2574a3[_0x2e1aa7])));}return BPromise['all'](_0x26c77d);}return[];})[_0xba3b('0x27')](function(_0x249466){return{'rows':_0x249466,'count':_0x249466['length']};})[_0xba3b('0x27')](respondWithResult(_0x31e37c,null))[_0xba3b('0x45')](handleError(_0x31e37c,null));};