Built motion from commit d69f4380.|2.6.29
[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 _0x8bac=['papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','redis','localhost','socket.io-emitter','./chatInternalMessage.socket','register','sendStatus','status','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','end','error','stack','name','send','ChatInternalMessage','rawAttributes','fieldName','type','key','model','query','keys','attributes','intersection','fields','length','hasOwnProperty','order','sort','where','filters','pick','filter','map','VIRTUAL','merge','options','includeAll','include','findAll','rows','catch','find','create','body','params','destroy','describe','get','messages','lastMessageAt','createdAt','lastMessage','format','YYYY-MM-DD\x20HH:mm:ss','User','user','role','userpic','internal','online','lastLoginAt','-online','VoiceQueue','VoiceQueues','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','userProfileId','autoAssociation','isEmpty','agent','push','FromId','ToId','read','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','querystring'];(function(_0x58f378,_0x328667){var _0x1afed1=function(_0x5502f6){while(--_0x5502f6){_0x58f378['push'](_0x58f378['shift']());}};_0x1afed1(++_0x328667);}(_0x8bac,0xcd));var _0xc8ba=function(_0x20bc10,_0x35bed9){_0x20bc10=_0x20bc10-0x0;var _0x3bd5ce=_0x8bac[_0x20bc10];return _0x3bd5ce;};'use strict';var emlformat=require(_0xc8ba('0x0'));var rimraf=require(_0xc8ba('0x1'));var zipdir=require(_0xc8ba('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xc8ba('0x3'));var moment=require(_0xc8ba('0x4'));var BPromise=require(_0xc8ba('0x5'));var Mustache=require(_0xc8ba('0x6'));var util=require(_0xc8ba('0x7'));var path=require(_0xc8ba('0x8'));var sox=require(_0xc8ba('0x9'));var csv=require(_0xc8ba('0xa'));var ejs=require(_0xc8ba('0xb'));var fs=require('fs');var fs_extra=require(_0xc8ba('0xc'));var _=require(_0xc8ba('0xd'));var squel=require(_0xc8ba('0xe'));var crypto=require('crypto');var jsforce=require(_0xc8ba('0xf'));var deskjs=require('desk.js');var toCsv=require(_0xc8ba('0xa'));var querystring=require(_0xc8ba('0x10'));var Papa=require(_0xc8ba('0x11'));var Redis=require(_0xc8ba('0x12'));var authService=require(_0xc8ba('0x13'));var qs=require('../../components/parsers/qs');var as=require(_0xc8ba('0x14'));var hardwareService=require(_0xc8ba('0x15'));var logger=require(_0xc8ba('0x16'))(_0xc8ba('0x17'));var utils=require(_0xc8ba('0x18'));var config=require('../../config/environment');var licenseUtil=require(_0xc8ba('0x19'));var db=require(_0xc8ba('0x1a'))['db'];config[_0xc8ba('0x1b')]=_['defaults'](config[_0xc8ba('0x1b')],{'host':_0xc8ba('0x1c'),'port':0x18eb});var socket=require(_0xc8ba('0x1d'))(new Redis(config['redis']));require(_0xc8ba('0x1e'))[_0xc8ba('0x1f')](socket);function respondWithStatusCode(_0xe5cf1b,_0x897bc9){_0x897bc9=_0x897bc9||0xcc;return function(_0x32be15){if(_0x32be15){return _0xe5cf1b[_0xc8ba('0x20')](_0x897bc9);}return _0xe5cf1b[_0xc8ba('0x21')](_0x897bc9)['end']();};}function respondWithResult(_0x71b7ff,_0xcfe164){_0xcfe164=_0xcfe164||0xc8;return function(_0x181944){if(_0x181944){return _0x71b7ff[_0xc8ba('0x21')](_0xcfe164)['json'](_0x181944);}};}function respondWithFilteredResult(_0x493048,_0x2f1318){return function(_0x16310e){if(_0x16310e){var _0x440c43=typeof _0x2f1318[_0xc8ba('0x22')]===_0xc8ba('0x23')&&typeof _0x2f1318[_0xc8ba('0x24')]===_0xc8ba('0x23');var _0x5824b7=_0x16310e[_0xc8ba('0x25')];var _0x3df9cc=_0x440c43?0x0:_0x2f1318[_0xc8ba('0x22')];var _0x5bf9cb=_0x440c43?_0x16310e[_0xc8ba('0x25')]:_0x2f1318[_0xc8ba('0x22')]+_0x2f1318[_0xc8ba('0x24')];var _0x36e823;if(_0x5bf9cb>=_0x5824b7){_0x5bf9cb=_0x5824b7;_0x36e823=0xc8;}else{_0x36e823=0xce;}_0x493048[_0xc8ba('0x21')](_0x36e823);return _0x493048[_0xc8ba('0x26')](_0xc8ba('0x27'),_0x3df9cc+'-'+_0x5bf9cb+'/'+_0x5824b7)['json'](_0x16310e);}return null;};}function patchUpdates(_0x5c41e1){return function(_0x6f1e74){try{jsonpatch[_0xc8ba('0x28')](_0x6f1e74,_0x5c41e1,!![]);}catch(_0xe71fb9){return BPromise[_0xc8ba('0x29')](_0xe71fb9);}return _0x6f1e74[_0xc8ba('0x2a')]();};}function saveUpdates(_0x82ef5b,_0x11bec0){return function(_0x30a338){if(_0x30a338){return _0x30a338[_0xc8ba('0x2b')](_0x82ef5b)[_0xc8ba('0x2c')](function(_0x49c955){return _0x49c955;});}return null;};}function removeEntity(_0x3eef25,_0x5d9324){return function(_0x36db80){if(_0x36db80){return _0x36db80['destroy']()['then'](function(){_0x3eef25[_0xc8ba('0x21')](0xcc)[_0xc8ba('0x2d')]();});}};}function handleEntityNotFound(_0x4335c8,_0x2376f9){return function(_0xc6885e){if(!_0xc6885e){_0x4335c8['sendStatus'](0x194);}return _0xc6885e;};}function handleError(_0x3f6dc0,_0x5aafb6){_0x5aafb6=_0x5aafb6||0x1f4;return function(_0x564161){logger[_0xc8ba('0x2e')](_0x564161[_0xc8ba('0x2f')]);if(_0x564161['name']){delete _0x564161[_0xc8ba('0x30')];}_0x3f6dc0[_0xc8ba('0x21')](_0x5aafb6)[_0xc8ba('0x31')](_0x564161);};}exports['index']=function(_0x26b978,_0x18244b){var _0x2d1796={},_0xd54216={},_0x34866f={'count':0x0,'rows':[]};var _0x4e1b30=_['map'](db[_0xc8ba('0x32')][_0xc8ba('0x33')],function(_0x1629fe){return{'name':_0x1629fe[_0xc8ba('0x34')],'type':_0x1629fe[_0xc8ba('0x35')][_0xc8ba('0x36')]};});_0xd54216[_0xc8ba('0x37')]=_['map'](_0x4e1b30,_0xc8ba('0x30'));_0xd54216[_0xc8ba('0x38')]=_[_0xc8ba('0x39')](_0x26b978[_0xc8ba('0x38')]);_0xd54216['filters']=_['intersection'](_0xd54216['model'],_0xd54216['query']);_0x2d1796[_0xc8ba('0x3a')]=_[_0xc8ba('0x3b')](_0xd54216[_0xc8ba('0x37')],qs[_0xc8ba('0x3c')](_0x26b978[_0xc8ba('0x38')][_0xc8ba('0x3c')]));_0x2d1796[_0xc8ba('0x3a')]=_0x2d1796[_0xc8ba('0x3a')][_0xc8ba('0x3d')]?_0x2d1796['attributes']:_0xd54216['model'];if(!_0x26b978[_0xc8ba('0x38')][_0xc8ba('0x3e')]('nolimit')){_0x2d1796[_0xc8ba('0x24')]=qs[_0xc8ba('0x24')](_0x26b978[_0xc8ba('0x38')][_0xc8ba('0x24')]);_0x2d1796[_0xc8ba('0x22')]=qs[_0xc8ba('0x22')](_0x26b978[_0xc8ba('0x38')][_0xc8ba('0x22')]);}_0x2d1796[_0xc8ba('0x3f')]=qs[_0xc8ba('0x40')](_0x26b978[_0xc8ba('0x38')][_0xc8ba('0x40')]);_0x2d1796[_0xc8ba('0x41')]=qs[_0xc8ba('0x42')](_[_0xc8ba('0x43')](_0x26b978[_0xc8ba('0x38')],_0xd54216[_0xc8ba('0x42')]),_0x4e1b30);if(_0x26b978[_0xc8ba('0x38')][_0xc8ba('0x44')]){_0x2d1796['where']=_['merge'](_0x2d1796[_0xc8ba('0x41')],{'$or':_[_0xc8ba('0x45')](_0x4e1b30,function(_0xb5236c){if(_0xb5236c[_0xc8ba('0x35')]!==_0xc8ba('0x46')){var _0x1346c5={};_0x1346c5[_0xb5236c[_0xc8ba('0x30')]]={'$like':'%'+_0x26b978[_0xc8ba('0x38')]['filter']+'%'};return _0x1346c5;}})});}_0x2d1796=_[_0xc8ba('0x47')]({},_0x2d1796,_0x26b978[_0xc8ba('0x48')]);var _0x168199={'where':_0x2d1796[_0xc8ba('0x41')]};return db['ChatInternalMessage']['count'](_0x168199)[_0xc8ba('0x2c')](function(_0x5e7659){_0x34866f[_0xc8ba('0x25')]=_0x5e7659;if(_0x26b978[_0xc8ba('0x38')][_0xc8ba('0x49')]){_0x2d1796[_0xc8ba('0x4a')]=[{'all':!![]}];}return db['ChatInternalMessage'][_0xc8ba('0x4b')](_0x2d1796);})[_0xc8ba('0x2c')](function(_0x36e510){_0x34866f[_0xc8ba('0x4c')]=_0x36e510;return _0x34866f;})['then'](respondWithFilteredResult(_0x18244b,_0x2d1796))[_0xc8ba('0x4d')](handleError(_0x18244b,null));};exports['show']=function(_0xa3f3f9,_0x48288b){var _0x389438={'raw':!![],'where':{'id':_0xa3f3f9['params']['id']}},_0x550ee7={};_0x550ee7[_0xc8ba('0x37')]=_['keys'](db['ChatInternalMessage']['rawAttributes']);_0x550ee7['query']=_[_0xc8ba('0x39')](_0xa3f3f9[_0xc8ba('0x38')]);_0x550ee7[_0xc8ba('0x42')]=_[_0xc8ba('0x3b')](_0x550ee7[_0xc8ba('0x37')],_0x550ee7[_0xc8ba('0x38')]);_0x389438[_0xc8ba('0x3a')]=_[_0xc8ba('0x3b')](_0x550ee7[_0xc8ba('0x37')],qs['fields'](_0xa3f3f9['query'][_0xc8ba('0x3c')]));_0x389438['attributes']=_0x389438['attributes']['length']?_0x389438[_0xc8ba('0x3a')]:_0x550ee7[_0xc8ba('0x37')];if(_0xa3f3f9[_0xc8ba('0x38')][_0xc8ba('0x49')]){_0x389438[_0xc8ba('0x4a')]=[{'all':!![]}];}_0x389438=_[_0xc8ba('0x47')]({},_0x389438,_0xa3f3f9[_0xc8ba('0x48')]);return db['ChatInternalMessage'][_0xc8ba('0x4e')](_0x389438)[_0xc8ba('0x2c')](handleEntityNotFound(_0x48288b,null))[_0xc8ba('0x2c')](respondWithResult(_0x48288b,null))[_0xc8ba('0x4d')](handleError(_0x48288b,null));};exports['create']=function(_0x37580c,_0x1f0e8f){return db['ChatInternalMessage'][_0xc8ba('0x4f')](_0x37580c[_0xc8ba('0x50')],{})[_0xc8ba('0x2c')](respondWithResult(_0x1f0e8f,0xc9))['catch'](handleError(_0x1f0e8f,null));};exports[_0xc8ba('0x2b')]=function(_0x557dbb,_0x4b387c){if(_0x557dbb[_0xc8ba('0x50')]['id']){delete _0x557dbb['body']['id'];}return db[_0xc8ba('0x32')][_0xc8ba('0x4e')]({'where':{'id':_0x557dbb[_0xc8ba('0x51')]['id']}})['then'](handleEntityNotFound(_0x4b387c,null))[_0xc8ba('0x2c')](saveUpdates(_0x557dbb['body'],null))[_0xc8ba('0x2c')](respondWithResult(_0x4b387c,null))[_0xc8ba('0x4d')](handleError(_0x4b387c,null));};exports[_0xc8ba('0x52')]=function(_0x520a1a,_0x59d06b){return db['ChatInternalMessage']['find']({'where':{'id':_0x520a1a[_0xc8ba('0x51')]['id']}})['then'](handleEntityNotFound(_0x59d06b,null))['then'](removeEntity(_0x59d06b,null))[_0xc8ba('0x4d')](handleError(_0x59d06b,null));};exports[_0xc8ba('0x53')]=function(_0x3d3bdf,_0xa475d){return db[_0xc8ba('0x32')][_0xc8ba('0x53')]()[_0xc8ba('0x2c')](respondWithResult(_0xa475d,null))[_0xc8ba('0x4d')](handleError(_0xa475d,null));};function wrapUser(_0x1b3136){return function(_0x505f03){var _0x47308a=_0x1b3136[_0xc8ba('0x54')]({'plain':!![]});_0x47308a[_0xc8ba('0x55')]=[];if(_0x505f03){_0x47308a[_0xc8ba('0x56')]=_0x505f03[_0xc8ba('0x57')];_0x47308a[_0xc8ba('0x58')]=_0x505f03;}else{_0x47308a[_0xc8ba('0x56')]=moment(0x0)[_0xc8ba('0x59')](_0xc8ba('0x5a'));_0x47308a[_0xc8ba('0x58')]={};}return _0x47308a;};}exports['getUsers']=function(_0x2dd4ad,_0x551cd1,_0x3370ac){var _0x591980=[];return db[_0xc8ba('0x5b')]['findAll']({'where':{'role':['agent','admin',_0xc8ba('0x5c')]},'attributes':['id','fullname',_0xc8ba('0x30'),_0xc8ba('0x5d'),_0xc8ba('0x5e'),_0xc8ba('0x5f'),_0xc8ba('0x60'),_0xc8ba('0x61'),'allowmessenger','showWebBar'],'order':qs[_0xc8ba('0x40')](_0xc8ba('0x62')),'include':[{'model':db[_0xc8ba('0x63')],'as':_0xc8ba('0x64'),'attributes':['id',_0xc8ba('0x30'),'type'],'through':{'attributes':[]}}]})[_0xc8ba('0x2c')](function(_0x1e6a6e){if(_0x1e6a6e){var _0x30821f=_0x2dd4ad['user'][_0xc8ba('0x54')]({'plain':!![]});if(!_0x30821f)throw new Error(_0xc8ba('0x65'));if(_0x30821f[_0xc8ba('0x5d')]===_0xc8ba('0x5c')){return db[_0xc8ba('0x66')][_0xc8ba('0x4e')]({'where':{'name':'Agents','userProfileId':_0x30821f[_0xc8ba('0x67')]},'raw':!![]})[_0xc8ba('0x2c')](function(_0x50d6c5){if(_0x50d6c5){if(_0x50d6c5[_0xc8ba('0x68')]===0x0){return db['UserProfileResource'][_0xc8ba('0x4b')]({'where':{'sectionId':_0x50d6c5['id']},'raw':!![]})[_0xc8ba('0x2c')](function(_0x584d88){var _0x21bb06=[];if(_[_0xc8ba('0x69')](_0x584d88)){_0x21bb06=_[_0xc8ba('0x44')](_0x1e6a6e,function(_0x48f864){if(_0x48f864[_0xc8ba('0x5d')]!==_0xc8ba('0x6a')){return _0x48f864;}});return _0x21bb06;}else{for(var _0x239ed2=0x0;_0x239ed2<_0x1e6a6e[_0xc8ba('0x3d')];_0x239ed2++){var _0x275200=_0x1e6a6e[_0x239ed2];if(_0x275200[_0xc8ba('0x5d')]===_0xc8ba('0x6a')){var _0x1a733d=_[_0xc8ba('0x4e')](_0x584d88,function(_0x583ed1){return _0x583ed1['resourceId']===_0x275200['id'];});if(_0x1a733d)_0x21bb06[_0xc8ba('0x6b')](_0x275200);}else{_0x21bb06[_0xc8ba('0x6b')](_0x275200);}}return _0x21bb06;}});}else{return _0x1e6a6e;}}else{var _0x5df769=_[_0xc8ba('0x44')](_0x1e6a6e,function(_0x66d029){if(_0x66d029[_0xc8ba('0x5d')]!=='agent'){return _0x66d029;}});return _0x5df769;}});}else{return _0x1e6a6e;}}})[_0xc8ba('0x2c')](function(_0x3ca7b7){var _0x4e45ea=[];if(_0x3ca7b7){_0x591980=_0x3ca7b7;for(var _0x3f8273=0x0;_0x3f8273<_0x3ca7b7[_0xc8ba('0x3d')];_0x3f8273+=0x1){_0x591980[_0x3f8273][_0xc8ba('0x55')]=[];_0x4e45ea[_0xc8ba('0x6b')](db['ChatInternalMessage'][_0xc8ba('0x4e')]({'where':{'FromId':[_0x2dd4ad[_0xc8ba('0x5c')]['id'],_0x3ca7b7[_0x3f8273]['id']],'ToId':[_0x2dd4ad['user']['id'],_0x3ca7b7[_0x3f8273]['id']],'ChatGroupId':null},'attributes':['id',_0xc8ba('0x57'),_0xc8ba('0x6c'),_0xc8ba('0x6d'),_0xc8ba('0x6e'),_0xc8ba('0x50')],'order':qs[_0xc8ba('0x40')]('-createdAt'),'limit':0x1,'offset':0x0,'raw':!![]})[_0xc8ba('0x2c')](wrapUser(_0x3ca7b7[_0x3f8273])));}return BPromise['all'](_0x4e45ea);}return[];})[_0xc8ba('0x2c')](function(_0xc7df54){return{'rows':_0xc7df54,'count':_0xc7df54['length']};})[_0xc8ba('0x2c')](respondWithResult(_0x551cd1,null))[_0xc8ba('0x4d')](handleError(_0x551cd1,null));};