9087667844f506118f70ce1ea91cbe651ea029a4
[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 _0xe78f=['where','VIRTUAL','merge','options','ChatInternalMessage','include','findAll','rows','show','params','keys','includeAll','find','catch','create','body','update','describe','get','messages','createdAt','lastMessageAt','YYYY-MM-DD\x20HH:mm:ss','User','agent','admin','user','role','userpic','online','lastLoginAt','allowmessenger','-online','VoiceQueue','UserProfileSection','userProfileId','autoAssociation','isEmpty','resourceId','push','FromId','ToId','read','-createdAt','all','html-pdf','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','path','sox','to-csv','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','redis','localhost','socket.io-emitter','./chatInternalMessage.socket','status','json','count','offset','Content-Range','apply','reject','save','then','destroy','sendStatus','error','stack','name','send','map','rawAttributes','fieldName','type','query','filters','intersection','attributes','model','fields','length','nolimit','limit','sort','pick','filter'];(function(_0x403509,_0x113905){var _0x38711a=function(_0x3e96e6){while(--_0x3e96e6){_0x403509['push'](_0x403509['shift']());}};_0x38711a(++_0x113905);}(_0xe78f,0x15f));var _0xfe78=function(_0x1a5266,_0x30ac46){_0x1a5266=_0x1a5266-0x0;var _0x139a98=_0xe78f[_0x1a5266];return _0x139a98;};'use strict';var pdf=require(_0xfe78('0x0'));var emlformat=require(_0xfe78('0x1'));var rimraf=require(_0xfe78('0x2'));var zipdir=require(_0xfe78('0x3'));var jsonpatch=require('fast-json-patch');var rp=require(_0xfe78('0x4'));var moment=require(_0xfe78('0x5'));var BPromise=require(_0xfe78('0x6'));var Mustache=require(_0xfe78('0x7'));var util=require('util');var path=require(_0xfe78('0x8'));var sox=require(_0xfe78('0x9'));var csv=require(_0xfe78('0xa'));var ejs=require('ejs');var fs=require('fs');var _=require(_0xfe78('0xb'));var squel=require(_0xfe78('0xc'));var crypto=require(_0xfe78('0xd'));var jsforce=require(_0xfe78('0xe'));var deskjs=require(_0xfe78('0xf'));var toCsv=require(_0xfe78('0xa'));var querystring=require(_0xfe78('0x10'));var Papa=require(_0xfe78('0x11'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0xfe78('0x12'));var as=require(_0xfe78('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xfe78('0x14'))(_0xfe78('0x15'));var utils=require('../../config/utils');var config=require('../../config/environment');var db=require('../../mysqldb')['db'];config['redis']=_['defaults'](config[_0xfe78('0x16')],{'host':_0xfe78('0x17'),'port':0x18eb});var socket=require(_0xfe78('0x18'))(new Redis(config[_0xfe78('0x16')]));require(_0xfe78('0x19'))['register'](socket);function respondWithStatusCode(_0x4a8b15,_0x5b4477){_0x5b4477=_0x5b4477||0xcc;return function(_0x2524b0){if(_0x2524b0){return _0x4a8b15['sendStatus'](_0x5b4477);}return _0x4a8b15[_0xfe78('0x1a')](_0x5b4477)['end']();};}function respondWithResult(_0x4aea2d,_0x1d83cd){_0x1d83cd=_0x1d83cd||0xc8;return function(_0x436999){if(_0x436999){return _0x4aea2d[_0xfe78('0x1a')](_0x1d83cd)[_0xfe78('0x1b')](_0x436999);}};}function respondWithFilteredResult(_0x5477bf,_0x58d07b){return function(_0x1fa9c9){if(_0x1fa9c9){var _0x176ca5=_0x1fa9c9[_0xfe78('0x1c')],_0x36a366=_0x58d07b[_0xfe78('0x1d')],_0x33e88e=_0x58d07b[_0xfe78('0x1d')]+_0x58d07b['limit'],_0x58ed73;if(_0x33e88e>=_0x176ca5){_0x33e88e=_0x176ca5;_0x58ed73=0xc8;}else{_0x58ed73=0xce;}_0x5477bf[_0xfe78('0x1a')](_0x58ed73);return _0x5477bf['set'](_0xfe78('0x1e'),_0x36a366+'-'+_0x33e88e+'/'+_0x176ca5)[_0xfe78('0x1b')](_0x1fa9c9);}return null;};}function patchUpdates(_0x405fae){return function(_0x1b006a){try{jsonpatch[_0xfe78('0x1f')](_0x1b006a,_0x405fae,!![]);}catch(_0x1b6735){return BPromise[_0xfe78('0x20')](_0x1b6735);}return _0x1b006a[_0xfe78('0x21')]();};}function saveUpdates(_0x13d780,_0x25fafb){return function(_0x3cb12a){if(_0x3cb12a){return _0x3cb12a['update'](_0x13d780)[_0xfe78('0x22')](function(_0x1513c3){return _0x1513c3;});}return null;};}function removeEntity(_0x3eca99,_0x5eea61){return function(_0x45f901){if(_0x45f901){return _0x45f901[_0xfe78('0x23')]()[_0xfe78('0x22')](function(){_0x3eca99[_0xfe78('0x1a')](0xcc)['end']();});}};}function handleEntityNotFound(_0x14e443,_0x23ae1f){return function(_0x4779b7){if(!_0x4779b7){_0x14e443[_0xfe78('0x24')](0x194);}return _0x4779b7;};}function handleError(_0x940cb2,_0x686b8c){_0x686b8c=_0x686b8c||0x1f4;return function(_0x1c26fe){logger[_0xfe78('0x25')](_0x1c26fe[_0xfe78('0x26')]);if(_0x1c26fe['name']){delete _0x1c26fe[_0xfe78('0x27')];}_0x940cb2[_0xfe78('0x1a')](_0x686b8c)[_0xfe78('0x28')](_0x1c26fe);};}exports['index']=function(_0xdcba08,_0x870078){var _0x59d891={},_0x56cffd={},_0x17203c={'count':0x0,'rows':[]};var _0x484b5a=_[_0xfe78('0x29')](db['ChatInternalMessage'][_0xfe78('0x2a')],function(_0x2eb999){return{'name':_0x2eb999[_0xfe78('0x2b')],'type':_0x2eb999[_0xfe78('0x2c')]['key']};});_0x56cffd['model']=_[_0xfe78('0x29')](_0x484b5a,_0xfe78('0x27'));_0x56cffd[_0xfe78('0x2d')]=_['keys'](_0xdcba08[_0xfe78('0x2d')]);_0x56cffd[_0xfe78('0x2e')]=_[_0xfe78('0x2f')](_0x56cffd['model'],_0x56cffd[_0xfe78('0x2d')]);_0x59d891[_0xfe78('0x30')]=_['intersection'](_0x56cffd[_0xfe78('0x31')],qs['fields'](_0xdcba08[_0xfe78('0x2d')][_0xfe78('0x32')]));_0x59d891[_0xfe78('0x30')]=_0x59d891[_0xfe78('0x30')][_0xfe78('0x33')]?_0x59d891[_0xfe78('0x30')]:_0x56cffd[_0xfe78('0x31')];if(!_0xdcba08[_0xfe78('0x2d')]['hasOwnProperty'](_0xfe78('0x34'))){_0x59d891[_0xfe78('0x35')]=qs[_0xfe78('0x35')](_0xdcba08['query']['limit']);_0x59d891[_0xfe78('0x1d')]=qs[_0xfe78('0x1d')](_0xdcba08[_0xfe78('0x2d')][_0xfe78('0x1d')]);}_0x59d891['order']=qs['sort'](_0xdcba08['query'][_0xfe78('0x36')]);_0x59d891['where']=qs[_0xfe78('0x2e')](_[_0xfe78('0x37')](_0xdcba08[_0xfe78('0x2d')],_0x56cffd[_0xfe78('0x2e')]),_0x484b5a);if(_0xdcba08[_0xfe78('0x2d')][_0xfe78('0x38')]){_0x59d891['where']=_['merge'](_0x59d891[_0xfe78('0x39')],{'$or':_[_0xfe78('0x29')](_0x484b5a,function(_0x1b32f4){if(_0x1b32f4[_0xfe78('0x2c')]!==_0xfe78('0x3a')){var _0x3ca781={};_0x3ca781[_0x1b32f4[_0xfe78('0x27')]]={'$like':'%'+_0xdcba08[_0xfe78('0x2d')]['filter']+'%'};return _0x3ca781;}})});}_0x59d891=_[_0xfe78('0x3b')]({},_0x59d891,_0xdcba08[_0xfe78('0x3c')]);var _0x4ba781={'where':_0x59d891[_0xfe78('0x39')]};return db[_0xfe78('0x3d')][_0xfe78('0x1c')](_0x4ba781)[_0xfe78('0x22')](function(_0x5bc18e){_0x17203c[_0xfe78('0x1c')]=_0x5bc18e;if(_0xdcba08['query']['includeAll']){_0x59d891[_0xfe78('0x3e')]=[{'all':!![]}];}return db[_0xfe78('0x3d')][_0xfe78('0x3f')](_0x59d891);})['then'](function(_0x3e0a85){_0x17203c[_0xfe78('0x40')]=_0x3e0a85;return _0x17203c;})['then'](respondWithFilteredResult(_0x870078,_0x59d891))['catch'](handleError(_0x870078,null));};exports[_0xfe78('0x41')]=function(_0x3a2db0,_0x4aa36a){var _0x423215={'raw':!![],'where':{'id':_0x3a2db0[_0xfe78('0x42')]['id']}},_0x44ca06={};_0x44ca06[_0xfe78('0x31')]=_[_0xfe78('0x43')](db[_0xfe78('0x3d')][_0xfe78('0x2a')]);_0x44ca06['query']=_[_0xfe78('0x43')](_0x3a2db0['query']);_0x44ca06['filters']=_[_0xfe78('0x2f')](_0x44ca06[_0xfe78('0x31')],_0x44ca06[_0xfe78('0x2d')]);_0x423215[_0xfe78('0x30')]=_['intersection'](_0x44ca06[_0xfe78('0x31')],qs['fields'](_0x3a2db0['query'][_0xfe78('0x32')]));_0x423215[_0xfe78('0x30')]=_0x423215[_0xfe78('0x30')]['length']?_0x423215['attributes']:_0x44ca06[_0xfe78('0x31')];if(_0x3a2db0[_0xfe78('0x2d')][_0xfe78('0x44')]){_0x423215[_0xfe78('0x3e')]=[{'all':!![]}];}_0x423215=_['merge']({},_0x423215,_0x3a2db0['options']);return db[_0xfe78('0x3d')][_0xfe78('0x45')](_0x423215)['then'](handleEntityNotFound(_0x4aa36a,null))[_0xfe78('0x22')](respondWithResult(_0x4aa36a,null))[_0xfe78('0x46')](handleError(_0x4aa36a,null));};exports['create']=function(_0x17f937,_0x3daedc){return db[_0xfe78('0x3d')][_0xfe78('0x47')](_0x17f937[_0xfe78('0x48')],{})['then'](respondWithResult(_0x3daedc,0xc9))['catch'](handleError(_0x3daedc,null));};exports[_0xfe78('0x49')]=function(_0x3cdca8,_0x448b2d){if(_0x3cdca8['body']['id']){delete _0x3cdca8['body']['id'];}return db[_0xfe78('0x3d')][_0xfe78('0x45')]({'where':{'id':_0x3cdca8[_0xfe78('0x42')]['id']}})[_0xfe78('0x22')](handleEntityNotFound(_0x448b2d,null))[_0xfe78('0x22')](saveUpdates(_0x3cdca8['body'],null))['then'](respondWithResult(_0x448b2d,null))[_0xfe78('0x46')](handleError(_0x448b2d,null));};exports['destroy']=function(_0x3df663,_0x483592){return db[_0xfe78('0x3d')][_0xfe78('0x45')]({'where':{'id':_0x3df663[_0xfe78('0x42')]['id']}})[_0xfe78('0x22')](handleEntityNotFound(_0x483592,null))[_0xfe78('0x22')](removeEntity(_0x483592,null))[_0xfe78('0x46')](handleError(_0x483592,null));};exports[_0xfe78('0x4a')]=function(_0x3cafdf,_0x47e353){return db[_0xfe78('0x3d')][_0xfe78('0x4a')]()[_0xfe78('0x22')](respondWithResult(_0x47e353,null))[_0xfe78('0x46')](handleError(_0x47e353,null));};function wrapUser(_0x151a1f){return function(_0x1cb469){var _0x59ea86=_0x151a1f[_0xfe78('0x4b')]({'plain':!![]});_0x59ea86[_0xfe78('0x4c')]=[];if(_0x1cb469){_0x59ea86['lastMessageAt']=_0x1cb469[_0xfe78('0x4d')];_0x59ea86['lastMessage']=_0x1cb469;}else{_0x59ea86[_0xfe78('0x4e')]=moment(0x0)['format'](_0xfe78('0x4f'));_0x59ea86['lastMessage']={};}return _0x59ea86;};}exports['getUsers']=function(_0x25a119,_0x16706f,_0x37f2d0){var _0xe0f65f=[];return db[_0xfe78('0x50')][_0xfe78('0x3f')]({'where':{'role':[_0xfe78('0x51'),_0xfe78('0x52'),_0xfe78('0x53')]},'attributes':['id','fullname',_0xfe78('0x27'),_0xfe78('0x54'),_0xfe78('0x55'),'internal',_0xfe78('0x56'),_0xfe78('0x57'),_0xfe78('0x58'),'showWebBar'],'order':qs[_0xfe78('0x36')](_0xfe78('0x59')),'include':[{'model':db[_0xfe78('0x5a')],'as':'VoiceQueues','attributes':['id',_0xfe78('0x27'),_0xfe78('0x2c')],'through':{'attributes':[]}}]})['then'](function(_0x323c3d){if(_0x323c3d){var _0x1d5058=_0x25a119[_0xfe78('0x53')][_0xfe78('0x4b')]({'plain':!![]});if(!_0x1d5058)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x1d5058[_0xfe78('0x54')]===_0xfe78('0x53')){return db[_0xfe78('0x5b')][_0xfe78('0x45')]({'where':{'name':'Agents','userProfileId':_0x1d5058[_0xfe78('0x5c')]},'raw':!![]})[_0xfe78('0x22')](function(_0x48e9d5){if(_0x48e9d5){if(_0x48e9d5[_0xfe78('0x5d')]===0x0){return db['UserProfileResource'][_0xfe78('0x3f')]({'where':{'sectionId':_0x48e9d5['id']},'raw':!![]})[_0xfe78('0x22')](function(_0x965c50){var _0x80da5a=[];if(_[_0xfe78('0x5e')](_0x965c50)){_0x80da5a=_[_0xfe78('0x38')](_0x323c3d,function(_0x5cd777){if(_0x5cd777[_0xfe78('0x54')]!==_0xfe78('0x51')){return _0x5cd777;}});return _0x80da5a;}else{for(var _0x4bdd1e=0x0;_0x4bdd1e<_0x323c3d[_0xfe78('0x33')];_0x4bdd1e++){var _0x1df130=_0x323c3d[_0x4bdd1e];if(_0x1df130[_0xfe78('0x54')]===_0xfe78('0x51')){var _0x318d7a=_[_0xfe78('0x45')](_0x965c50,function(_0x438dd5){return _0x438dd5[_0xfe78('0x5f')]===_0x1df130['id'];});if(_0x318d7a)_0x80da5a[_0xfe78('0x60')](_0x1df130);}else{_0x80da5a[_0xfe78('0x60')](_0x1df130);}}return _0x80da5a;}});}else{return _0x323c3d;}}else{var _0x1a897c=_[_0xfe78('0x38')](_0x323c3d,function(_0x4ec7a2){if(_0x4ec7a2[_0xfe78('0x54')]!==_0xfe78('0x51')){return _0x4ec7a2;}});return _0x1a897c;}});}else{return _0x323c3d;}}})[_0xfe78('0x22')](function(_0xb85653){var _0x17d5fb=[];if(_0xb85653){_0xe0f65f=_0xb85653;for(var _0x320095=0x0;_0x320095<_0xb85653['length'];_0x320095+=0x1){_0xe0f65f[_0x320095][_0xfe78('0x4c')]=[];_0x17d5fb[_0xfe78('0x60')](db[_0xfe78('0x3d')]['find']({'where':{'FromId':[_0x25a119[_0xfe78('0x53')]['id'],_0xb85653[_0x320095]['id']],'ToId':[_0x25a119['user']['id'],_0xb85653[_0x320095]['id']],'ChatGroupId':null},'attributes':['id',_0xfe78('0x4d'),_0xfe78('0x61'),_0xfe78('0x62'),_0xfe78('0x63'),_0xfe78('0x48')],'order':qs[_0xfe78('0x36')](_0xfe78('0x64')),'limit':0x1,'offset':0x0,'raw':!![]})[_0xfe78('0x22')](wrapUser(_0xb85653[_0x320095])));}return BPromise[_0xfe78('0x65')](_0x17d5fb);}return[];})[_0xfe78('0x22')](function(_0x478286){return{'rows':_0x478286,'count':_0x478286[_0xfe78('0x33')]};})[_0xfe78('0x22')](respondWithResult(_0x16706f,null))['catch'](handleError(_0x16706f,null));};