Built motion from commit (unavailable).|2.5.31
[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 _0xb8f5=['status','json','offset','undefined','count','set','reject','save','update','then','destroy','error','stack','name','send','index','map','ChatInternalMessage','rawAttributes','type','key','query','keys','filters','intersection','model','attributes','fields','hasOwnProperty','nolimit','limit','order','sort','where','pick','filter','merge','includeAll','include','findAll','rows','show','params','length','options','find','catch','create','body','describe','get','messages','lastMessageAt','createdAt','lastMessage','format','YYYY-MM-DD\x20HH:mm:ss','getUsers','user','fullname','role','userpic','internal','lastLoginAt','allowmessenger','showWebBar','VoiceQueue','VoiceQueues','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','Agents','autoAssociation','UserProfileResource','isEmpty','agent','resourceId','push','FromId','ToId','read','-createdAt','eml-format','rimraf','zip-dir','fast-json-patch','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','redis','defaults','./chatInternalMessage.socket','register','sendStatus','end'];(function(_0x2db466,_0x228988){var _0x414add=function(_0x2e8823){while(--_0x2e8823){_0x2db466['push'](_0x2db466['shift']());}};_0x414add(++_0x228988);}(_0xb8f5,0x1a7));var _0x5b8f=function(_0x2e4759,_0x5e99f1){_0x2e4759=_0x2e4759-0x0;var _0x2f631a=_0xb8f5[_0x2e4759];return _0x2f631a;};'use strict';var emlformat=require(_0x5b8f('0x0'));var rimraf=require(_0x5b8f('0x1'));var zipdir=require(_0x5b8f('0x2'));var jsonpatch=require(_0x5b8f('0x3'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x5b8f('0x4'));var Mustache=require(_0x5b8f('0x5'));var util=require(_0x5b8f('0x6'));var path=require(_0x5b8f('0x7'));var sox=require(_0x5b8f('0x8'));var csv=require(_0x5b8f('0x9'));var ejs=require(_0x5b8f('0xa'));var fs=require('fs');var fs_extra=require(_0x5b8f('0xb'));var _=require(_0x5b8f('0xc'));var squel=require(_0x5b8f('0xd'));var crypto=require(_0x5b8f('0xe'));var jsforce=require(_0x5b8f('0xf'));var deskjs=require(_0x5b8f('0x10'));var toCsv=require(_0x5b8f('0x9'));var querystring=require(_0x5b8f('0x11'));var Papa=require(_0x5b8f('0x12'));var Redis=require(_0x5b8f('0x13'));var authService=require('../../components/auth/service');var qs=require(_0x5b8f('0x14'));var as=require(_0x5b8f('0x15'));var hardwareService=require(_0x5b8f('0x16'));var logger=require(_0x5b8f('0x17'))('api');var utils=require(_0x5b8f('0x18'));var config=require(_0x5b8f('0x19'));var licenseUtil=require('../../config/license/util');var db=require(_0x5b8f('0x1a'))['db'];config[_0x5b8f('0x1b')]=_[_0x5b8f('0x1c')](config['redis'],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x5b8f('0x1b')]));require(_0x5b8f('0x1d'))[_0x5b8f('0x1e')](socket);function respondWithStatusCode(_0x148f04,_0xb16c7e){_0xb16c7e=_0xb16c7e||0xcc;return function(_0x329118){if(_0x329118){return _0x148f04[_0x5b8f('0x1f')](_0xb16c7e);}return _0x148f04['status'](_0xb16c7e)[_0x5b8f('0x20')]();};}function respondWithResult(_0x72d244,_0xc7eb47){_0xc7eb47=_0xc7eb47||0xc8;return function(_0x3e08d2){if(_0x3e08d2){return _0x72d244[_0x5b8f('0x21')](_0xc7eb47)[_0x5b8f('0x22')](_0x3e08d2);}};}function respondWithFilteredResult(_0x4700d5,_0x1ef9bd){return function(_0xc88966){if(_0xc88966){var _0x1c4ee0=typeof _0x1ef9bd[_0x5b8f('0x23')]===_0x5b8f('0x24')&&typeof _0x1ef9bd['limit']===_0x5b8f('0x24');var _0x31d85c=_0xc88966[_0x5b8f('0x25')];var _0x47bd71=_0x1c4ee0?0x0:_0x1ef9bd[_0x5b8f('0x23')];var _0xac88f9=_0x1c4ee0?_0xc88966[_0x5b8f('0x25')]:_0x1ef9bd[_0x5b8f('0x23')]+_0x1ef9bd['limit'];var _0x2a9700;if(_0xac88f9>=_0x31d85c){_0xac88f9=_0x31d85c;_0x2a9700=0xc8;}else{_0x2a9700=0xce;}_0x4700d5[_0x5b8f('0x21')](_0x2a9700);return _0x4700d5[_0x5b8f('0x26')]('Content-Range',_0x47bd71+'-'+_0xac88f9+'/'+_0x31d85c)[_0x5b8f('0x22')](_0xc88966);}return null;};}function patchUpdates(_0x418b8b){return function(_0x144dc2){try{jsonpatch['apply'](_0x144dc2,_0x418b8b,!![]);}catch(_0x575a76){return BPromise[_0x5b8f('0x27')](_0x575a76);}return _0x144dc2[_0x5b8f('0x28')]();};}function saveUpdates(_0x4b426a,_0x24785a){return function(_0x5ae4bc){if(_0x5ae4bc){return _0x5ae4bc[_0x5b8f('0x29')](_0x4b426a)[_0x5b8f('0x2a')](function(_0x12f4d5){return _0x12f4d5;});}return null;};}function removeEntity(_0x306bbd,_0x44ae5c){return function(_0x5b0747){if(_0x5b0747){return _0x5b0747[_0x5b8f('0x2b')]()[_0x5b8f('0x2a')](function(){_0x306bbd[_0x5b8f('0x21')](0xcc)[_0x5b8f('0x20')]();});}};}function handleEntityNotFound(_0x8d2939,_0x2815ea){return function(_0x1444d9){if(!_0x1444d9){_0x8d2939['sendStatus'](0x194);}return _0x1444d9;};}function handleError(_0x244ef8,_0x19423c){_0x19423c=_0x19423c||0x1f4;return function(_0x4ce30a){logger[_0x5b8f('0x2c')](_0x4ce30a[_0x5b8f('0x2d')]);if(_0x4ce30a[_0x5b8f('0x2e')]){delete _0x4ce30a[_0x5b8f('0x2e')];}_0x244ef8[_0x5b8f('0x21')](_0x19423c)[_0x5b8f('0x2f')](_0x4ce30a);};}exports[_0x5b8f('0x30')]=function(_0x4d9cdc,_0x5840d4){var _0x398f61={},_0x2b6eba={},_0x5d6839={'count':0x0,'rows':[]};var _0x237e49=_[_0x5b8f('0x31')](db[_0x5b8f('0x32')][_0x5b8f('0x33')],function(_0x2ff3c8){return{'name':_0x2ff3c8['fieldName'],'type':_0x2ff3c8[_0x5b8f('0x34')][_0x5b8f('0x35')]};});_0x2b6eba['model']=_[_0x5b8f('0x31')](_0x237e49,_0x5b8f('0x2e'));_0x2b6eba[_0x5b8f('0x36')]=_[_0x5b8f('0x37')](_0x4d9cdc[_0x5b8f('0x36')]);_0x2b6eba[_0x5b8f('0x38')]=_[_0x5b8f('0x39')](_0x2b6eba[_0x5b8f('0x3a')],_0x2b6eba[_0x5b8f('0x36')]);_0x398f61[_0x5b8f('0x3b')]=_[_0x5b8f('0x39')](_0x2b6eba['model'],qs[_0x5b8f('0x3c')](_0x4d9cdc[_0x5b8f('0x36')][_0x5b8f('0x3c')]));_0x398f61[_0x5b8f('0x3b')]=_0x398f61['attributes']['length']?_0x398f61[_0x5b8f('0x3b')]:_0x2b6eba[_0x5b8f('0x3a')];if(!_0x4d9cdc[_0x5b8f('0x36')][_0x5b8f('0x3d')](_0x5b8f('0x3e'))){_0x398f61[_0x5b8f('0x3f')]=qs['limit'](_0x4d9cdc[_0x5b8f('0x36')][_0x5b8f('0x3f')]);_0x398f61['offset']=qs[_0x5b8f('0x23')](_0x4d9cdc['query'][_0x5b8f('0x23')]);}_0x398f61[_0x5b8f('0x40')]=qs['sort'](_0x4d9cdc[_0x5b8f('0x36')][_0x5b8f('0x41')]);_0x398f61[_0x5b8f('0x42')]=qs['filters'](_[_0x5b8f('0x43')](_0x4d9cdc[_0x5b8f('0x36')],_0x2b6eba[_0x5b8f('0x38')]),_0x237e49);if(_0x4d9cdc[_0x5b8f('0x36')][_0x5b8f('0x44')]){_0x398f61[_0x5b8f('0x42')]=_[_0x5b8f('0x45')](_0x398f61[_0x5b8f('0x42')],{'$or':_[_0x5b8f('0x31')](_0x237e49,function(_0x3c0d73){if(_0x3c0d73[_0x5b8f('0x34')]!=='VIRTUAL'){var _0x4ac965={};_0x4ac965[_0x3c0d73['name']]={'$like':'%'+_0x4d9cdc[_0x5b8f('0x36')][_0x5b8f('0x44')]+'%'};return _0x4ac965;}})});}_0x398f61=_[_0x5b8f('0x45')]({},_0x398f61,_0x4d9cdc['options']);var _0x440b38={'where':_0x398f61[_0x5b8f('0x42')]};return db[_0x5b8f('0x32')][_0x5b8f('0x25')](_0x440b38)['then'](function(_0x20d1bc){_0x5d6839[_0x5b8f('0x25')]=_0x20d1bc;if(_0x4d9cdc[_0x5b8f('0x36')][_0x5b8f('0x46')]){_0x398f61[_0x5b8f('0x47')]=[{'all':!![]}];}return db[_0x5b8f('0x32')][_0x5b8f('0x48')](_0x398f61);})['then'](function(_0x5761d7){_0x5d6839[_0x5b8f('0x49')]=_0x5761d7;return _0x5d6839;})[_0x5b8f('0x2a')](respondWithFilteredResult(_0x5840d4,_0x398f61))['catch'](handleError(_0x5840d4,null));};exports[_0x5b8f('0x4a')]=function(_0x21b15f,_0x56ddbd){var _0x65ea9a={'raw':!![],'where':{'id':_0x21b15f[_0x5b8f('0x4b')]['id']}},_0x1ba255={};_0x1ba255[_0x5b8f('0x3a')]=_[_0x5b8f('0x37')](db[_0x5b8f('0x32')][_0x5b8f('0x33')]);_0x1ba255[_0x5b8f('0x36')]=_[_0x5b8f('0x37')](_0x21b15f['query']);_0x1ba255[_0x5b8f('0x38')]=_[_0x5b8f('0x39')](_0x1ba255[_0x5b8f('0x3a')],_0x1ba255['query']);_0x65ea9a[_0x5b8f('0x3b')]=_['intersection'](_0x1ba255['model'],qs['fields'](_0x21b15f[_0x5b8f('0x36')][_0x5b8f('0x3c')]));_0x65ea9a[_0x5b8f('0x3b')]=_0x65ea9a[_0x5b8f('0x3b')][_0x5b8f('0x4c')]?_0x65ea9a['attributes']:_0x1ba255['model'];if(_0x21b15f[_0x5b8f('0x36')][_0x5b8f('0x46')]){_0x65ea9a[_0x5b8f('0x47')]=[{'all':!![]}];}_0x65ea9a=_['merge']({},_0x65ea9a,_0x21b15f[_0x5b8f('0x4d')]);return db[_0x5b8f('0x32')][_0x5b8f('0x4e')](_0x65ea9a)[_0x5b8f('0x2a')](handleEntityNotFound(_0x56ddbd,null))['then'](respondWithResult(_0x56ddbd,null))[_0x5b8f('0x4f')](handleError(_0x56ddbd,null));};exports[_0x5b8f('0x50')]=function(_0x30e05e,_0x39c4b1){return db[_0x5b8f('0x32')]['create'](_0x30e05e[_0x5b8f('0x51')],{})[_0x5b8f('0x2a')](respondWithResult(_0x39c4b1,0xc9))[_0x5b8f('0x4f')](handleError(_0x39c4b1,null));};exports[_0x5b8f('0x29')]=function(_0x193547,_0x22886d){if(_0x193547[_0x5b8f('0x51')]['id']){delete _0x193547[_0x5b8f('0x51')]['id'];}return db[_0x5b8f('0x32')][_0x5b8f('0x4e')]({'where':{'id':_0x193547[_0x5b8f('0x4b')]['id']}})[_0x5b8f('0x2a')](handleEntityNotFound(_0x22886d,null))[_0x5b8f('0x2a')](saveUpdates(_0x193547[_0x5b8f('0x51')],null))[_0x5b8f('0x2a')](respondWithResult(_0x22886d,null))[_0x5b8f('0x4f')](handleError(_0x22886d,null));};exports[_0x5b8f('0x2b')]=function(_0x1cb29f,_0x2e00a9){return db['ChatInternalMessage'][_0x5b8f('0x4e')]({'where':{'id':_0x1cb29f[_0x5b8f('0x4b')]['id']}})['then'](handleEntityNotFound(_0x2e00a9,null))['then'](removeEntity(_0x2e00a9,null))[_0x5b8f('0x4f')](handleError(_0x2e00a9,null));};exports[_0x5b8f('0x52')]=function(_0x50f8fd,_0x27e74b){return db[_0x5b8f('0x32')][_0x5b8f('0x52')]()[_0x5b8f('0x2a')](respondWithResult(_0x27e74b,null))[_0x5b8f('0x4f')](handleError(_0x27e74b,null));};function wrapUser(_0x322310){return function(_0x315e3b){var _0x472ea7=_0x322310[_0x5b8f('0x53')]({'plain':!![]});_0x472ea7[_0x5b8f('0x54')]=[];if(_0x315e3b){_0x472ea7[_0x5b8f('0x55')]=_0x315e3b[_0x5b8f('0x56')];_0x472ea7[_0x5b8f('0x57')]=_0x315e3b;}else{_0x472ea7[_0x5b8f('0x55')]=moment(0x0)[_0x5b8f('0x58')](_0x5b8f('0x59'));_0x472ea7['lastMessage']={};}return _0x472ea7;};}exports[_0x5b8f('0x5a')]=function(_0x5f4a3e,_0x367b45,_0x54e302){var _0x65b949=[];return db['User'][_0x5b8f('0x48')]({'where':{'role':['agent','admin',_0x5b8f('0x5b')]},'attributes':['id',_0x5b8f('0x5c'),_0x5b8f('0x2e'),_0x5b8f('0x5d'),_0x5b8f('0x5e'),_0x5b8f('0x5f'),'online',_0x5b8f('0x60'),_0x5b8f('0x61'),_0x5b8f('0x62')],'order':qs[_0x5b8f('0x41')]('-online'),'include':[{'model':db[_0x5b8f('0x63')],'as':_0x5b8f('0x64'),'attributes':['id',_0x5b8f('0x2e'),_0x5b8f('0x34')],'through':{'attributes':[]}}]})[_0x5b8f('0x2a')](function(_0x2ea59a){if(_0x2ea59a){var _0x42d369=_0x5f4a3e[_0x5b8f('0x5b')][_0x5b8f('0x53')]({'plain':!![]});if(!_0x42d369)throw new Error(_0x5b8f('0x65'));if(_0x42d369['role']===_0x5b8f('0x5b')){return db[_0x5b8f('0x66')][_0x5b8f('0x4e')]({'where':{'name':_0x5b8f('0x67'),'userProfileId':_0x42d369['userProfileId']},'raw':!![]})['then'](function(_0x53890d){if(_0x53890d){if(_0x53890d[_0x5b8f('0x68')]===0x0){return db[_0x5b8f('0x69')][_0x5b8f('0x48')]({'where':{'sectionId':_0x53890d['id']},'raw':!![]})['then'](function(_0x5ed76e){var _0x38691d=[];if(_[_0x5b8f('0x6a')](_0x5ed76e)){_0x38691d=_[_0x5b8f('0x44')](_0x2ea59a,function(_0x2d688c){if(_0x2d688c[_0x5b8f('0x5d')]!==_0x5b8f('0x6b')){return _0x2d688c;}});return _0x38691d;}else{for(var _0x103e6f=0x0;_0x103e6f<_0x2ea59a[_0x5b8f('0x4c')];_0x103e6f++){var _0x2c39ed=_0x2ea59a[_0x103e6f];if(_0x2c39ed[_0x5b8f('0x5d')]===_0x5b8f('0x6b')){var _0x567528=_[_0x5b8f('0x4e')](_0x5ed76e,function(_0x34c8eb){return _0x34c8eb[_0x5b8f('0x6c')]===_0x2c39ed['id'];});if(_0x567528)_0x38691d[_0x5b8f('0x6d')](_0x2c39ed);}else{_0x38691d[_0x5b8f('0x6d')](_0x2c39ed);}}return _0x38691d;}});}else{return _0x2ea59a;}}else{var _0x1daeaf=_[_0x5b8f('0x44')](_0x2ea59a,function(_0x39f2ec){if(_0x39f2ec[_0x5b8f('0x5d')]!==_0x5b8f('0x6b')){return _0x39f2ec;}});return _0x1daeaf;}});}else{return _0x2ea59a;}}})[_0x5b8f('0x2a')](function(_0x432ed9){var _0x5bd48b=[];if(_0x432ed9){_0x65b949=_0x432ed9;for(var _0x240994=0x0;_0x240994<_0x432ed9['length'];_0x240994+=0x1){_0x65b949[_0x240994]['messages']=[];_0x5bd48b[_0x5b8f('0x6d')](db[_0x5b8f('0x32')][_0x5b8f('0x4e')]({'where':{'FromId':[_0x5f4a3e['user']['id'],_0x432ed9[_0x240994]['id']],'ToId':[_0x5f4a3e[_0x5b8f('0x5b')]['id'],_0x432ed9[_0x240994]['id']],'ChatGroupId':null},'attributes':['id','createdAt',_0x5b8f('0x6e'),_0x5b8f('0x6f'),_0x5b8f('0x70'),_0x5b8f('0x51')],'order':qs[_0x5b8f('0x41')](_0x5b8f('0x71')),'limit':0x1,'offset':0x0,'raw':!![]})[_0x5b8f('0x2a')](wrapUser(_0x432ed9[_0x240994])));}return BPromise['all'](_0x5bd48b);}return[];})[_0x5b8f('0x2a')](function(_0x5a671b){return{'rows':_0x5a671b,'count':_0x5a671b['length']};})[_0x5b8f('0x2a')](respondWithResult(_0x367b45,null))[_0x5b8f('0x4f')](handleError(_0x367b45,null));};