Built motion from commit (unavailable).|2.5.18
[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 _0x6b03=['agent','resourceId','push','FromId','ToId','read','all','html-pdf','eml-format','rimraf','zip-dir','request-promise','moment','mustache','util','sox','to-csv','ejs','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','register','sendStatus','status','end','json','count','offset','set','Content-Range','reject','save','then','destroy','error','stack','name','send','ChatInternalMessage','rawAttributes','fieldName','type','key','map','query','keys','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','limit','order','sort','where','pick','filter','merge','VIRTUAL','options','include','findAll','rows','catch','show','params','includeAll','find','create','update','body','describe','get','messages','lastMessageAt','createdAt','YYYY-MM-DD\x20HH:mm:ss','User','admin','user','fullname','userpic','online','lastLoginAt','allowmessenger','showWebBar','-online','VoiceQueue','role','UserProfileSection','Agents','userProfileId','autoAssociation','UserProfileResource','isEmpty'];(function(_0x3571cd,_0x4cb187){var _0x51ba6d=function(_0x3befb6){while(--_0x3befb6){_0x3571cd['push'](_0x3571cd['shift']());}};_0x51ba6d(++_0x4cb187);}(_0x6b03,0x1d3));var _0x36b0=function(_0x386daa,_0x4fd86){_0x386daa=_0x386daa-0x0;var _0x3c3d48=_0x6b03[_0x386daa];return _0x3c3d48;};'use strict';var pdf=require(_0x36b0('0x0'));var emlformat=require(_0x36b0('0x1'));var rimraf=require(_0x36b0('0x2'));var zipdir=require(_0x36b0('0x3'));var jsonpatch=require('fast-json-patch');var rp=require(_0x36b0('0x4'));var moment=require(_0x36b0('0x5'));var BPromise=require('bluebird');var Mustache=require(_0x36b0('0x6'));var util=require(_0x36b0('0x7'));var path=require('path');var sox=require(_0x36b0('0x8'));var csv=require(_0x36b0('0x9'));var ejs=require(_0x36b0('0xa'));var fs=require('fs');var _=require(_0x36b0('0xb'));var squel=require('squel');var crypto=require(_0x36b0('0xc'));var jsforce=require(_0x36b0('0xd'));var deskjs=require(_0x36b0('0xe'));var toCsv=require('to-csv');var querystring=require(_0x36b0('0xf'));var Papa=require(_0x36b0('0x10'));var Redis=require(_0x36b0('0x11'));var authService=require('../../components/auth/service');var qs=require(_0x36b0('0x12'));var as=require(_0x36b0('0x13'));var hardwareService=require(_0x36b0('0x14'));var logger=require(_0x36b0('0x15'))(_0x36b0('0x16'));var utils=require(_0x36b0('0x17'));var config=require(_0x36b0('0x18'));var licenseUtil=require(_0x36b0('0x19'));var db=require(_0x36b0('0x1a'))['db'];config[_0x36b0('0x1b')]=_[_0x36b0('0x1c')](config[_0x36b0('0x1b')],{'host':_0x36b0('0x1d'),'port':0x18eb});var socket=require(_0x36b0('0x1e'))(new Redis(config[_0x36b0('0x1b')]));require('./chatInternalMessage.socket')[_0x36b0('0x1f')](socket);function respondWithStatusCode(_0x1b8421,_0x5526f4){_0x5526f4=_0x5526f4||0xcc;return function(_0x3ee199){if(_0x3ee199){return _0x1b8421[_0x36b0('0x20')](_0x5526f4);}return _0x1b8421[_0x36b0('0x21')](_0x5526f4)[_0x36b0('0x22')]();};}function respondWithResult(_0x4b4f45,_0x4043eb){_0x4043eb=_0x4043eb||0xc8;return function(_0x5096ab){if(_0x5096ab){return _0x4b4f45[_0x36b0('0x21')](_0x4043eb)[_0x36b0('0x23')](_0x5096ab);}};}function respondWithFilteredResult(_0x3cb512,_0x548030){return function(_0xfd84c8){if(_0xfd84c8){var _0x133865=_0xfd84c8[_0x36b0('0x24')],_0x270b53=_0x548030[_0x36b0('0x25')],_0x24e9b5=_0x548030['offset']+_0x548030['limit'],_0x3ad08b;if(_0x24e9b5>=_0x133865){_0x24e9b5=_0x133865;_0x3ad08b=0xc8;}else{_0x3ad08b=0xce;}_0x3cb512['status'](_0x3ad08b);return _0x3cb512[_0x36b0('0x26')](_0x36b0('0x27'),_0x270b53+'-'+_0x24e9b5+'/'+_0x133865)[_0x36b0('0x23')](_0xfd84c8);}return null;};}function patchUpdates(_0x1b2a27){return function(_0xa5b12c){try{jsonpatch['apply'](_0xa5b12c,_0x1b2a27,!![]);}catch(_0xe62a2a){return BPromise[_0x36b0('0x28')](_0xe62a2a);}return _0xa5b12c[_0x36b0('0x29')]();};}function saveUpdates(_0x22b155,_0x4948e1){return function(_0x384dd2){if(_0x384dd2){return _0x384dd2['update'](_0x22b155)[_0x36b0('0x2a')](function(_0x3da176){return _0x3da176;});}return null;};}function removeEntity(_0x1721c1,_0x4c9105){return function(_0x50b05f){if(_0x50b05f){return _0x50b05f[_0x36b0('0x2b')]()[_0x36b0('0x2a')](function(){_0x1721c1[_0x36b0('0x21')](0xcc)[_0x36b0('0x22')]();});}};}function handleEntityNotFound(_0x2cf7b3,_0x355edf){return function(_0x4e4bbc){if(!_0x4e4bbc){_0x2cf7b3[_0x36b0('0x20')](0x194);}return _0x4e4bbc;};}function handleError(_0x320461,_0x2d695f){_0x2d695f=_0x2d695f||0x1f4;return function(_0x10c0f9){logger[_0x36b0('0x2c')](_0x10c0f9[_0x36b0('0x2d')]);if(_0x10c0f9[_0x36b0('0x2e')]){delete _0x10c0f9[_0x36b0('0x2e')];}_0x320461[_0x36b0('0x21')](_0x2d695f)[_0x36b0('0x2f')](_0x10c0f9);};}exports['index']=function(_0x4d3398,_0x3409e0){var _0x35e6d5={},_0x204420={},_0x3601a8={'count':0x0,'rows':[]};var _0x3d8978=_['map'](db[_0x36b0('0x30')][_0x36b0('0x31')],function(_0x5bc5a9){return{'name':_0x5bc5a9[_0x36b0('0x32')],'type':_0x5bc5a9[_0x36b0('0x33')][_0x36b0('0x34')]};});_0x204420['model']=_[_0x36b0('0x35')](_0x3d8978,_0x36b0('0x2e'));_0x204420[_0x36b0('0x36')]=_[_0x36b0('0x37')](_0x4d3398[_0x36b0('0x36')]);_0x204420[_0x36b0('0x38')]=_[_0x36b0('0x39')](_0x204420[_0x36b0('0x3a')],_0x204420[_0x36b0('0x36')]);_0x35e6d5[_0x36b0('0x3b')]=_[_0x36b0('0x39')](_0x204420[_0x36b0('0x3a')],qs[_0x36b0('0x3c')](_0x4d3398[_0x36b0('0x36')][_0x36b0('0x3c')]));_0x35e6d5[_0x36b0('0x3b')]=_0x35e6d5['attributes'][_0x36b0('0x3d')]?_0x35e6d5[_0x36b0('0x3b')]:_0x204420[_0x36b0('0x3a')];if(!_0x4d3398[_0x36b0('0x36')][_0x36b0('0x3e')](_0x36b0('0x3f'))){_0x35e6d5[_0x36b0('0x40')]=qs[_0x36b0('0x40')](_0x4d3398[_0x36b0('0x36')][_0x36b0('0x40')]);_0x35e6d5[_0x36b0('0x25')]=qs[_0x36b0('0x25')](_0x4d3398['query'][_0x36b0('0x25')]);}_0x35e6d5[_0x36b0('0x41')]=qs[_0x36b0('0x42')](_0x4d3398[_0x36b0('0x36')][_0x36b0('0x42')]);_0x35e6d5[_0x36b0('0x43')]=qs['filters'](_[_0x36b0('0x44')](_0x4d3398[_0x36b0('0x36')],_0x204420[_0x36b0('0x38')]),_0x3d8978);if(_0x4d3398[_0x36b0('0x36')][_0x36b0('0x45')]){_0x35e6d5['where']=_[_0x36b0('0x46')](_0x35e6d5[_0x36b0('0x43')],{'$or':_[_0x36b0('0x35')](_0x3d8978,function(_0x5d8a59){if(_0x5d8a59[_0x36b0('0x33')]!==_0x36b0('0x47')){var _0x175f65={};_0x175f65[_0x5d8a59[_0x36b0('0x2e')]]={'$like':'%'+_0x4d3398[_0x36b0('0x36')][_0x36b0('0x45')]+'%'};return _0x175f65;}})});}_0x35e6d5=_[_0x36b0('0x46')]({},_0x35e6d5,_0x4d3398[_0x36b0('0x48')]);var _0x536ee0={'where':_0x35e6d5[_0x36b0('0x43')]};return db[_0x36b0('0x30')][_0x36b0('0x24')](_0x536ee0)[_0x36b0('0x2a')](function(_0x326a05){_0x3601a8[_0x36b0('0x24')]=_0x326a05;if(_0x4d3398['query']['includeAll']){_0x35e6d5[_0x36b0('0x49')]=[{'all':!![]}];}return db[_0x36b0('0x30')][_0x36b0('0x4a')](_0x35e6d5);})[_0x36b0('0x2a')](function(_0x178372){_0x3601a8[_0x36b0('0x4b')]=_0x178372;return _0x3601a8;})[_0x36b0('0x2a')](respondWithFilteredResult(_0x3409e0,_0x35e6d5))[_0x36b0('0x4c')](handleError(_0x3409e0,null));};exports[_0x36b0('0x4d')]=function(_0x5e36a7,_0x31390e){var _0x2497d6={'raw':!![],'where':{'id':_0x5e36a7[_0x36b0('0x4e')]['id']}},_0x469e03={};_0x469e03[_0x36b0('0x3a')]=_[_0x36b0('0x37')](db['ChatInternalMessage']['rawAttributes']);_0x469e03[_0x36b0('0x36')]=_[_0x36b0('0x37')](_0x5e36a7['query']);_0x469e03[_0x36b0('0x38')]=_['intersection'](_0x469e03[_0x36b0('0x3a')],_0x469e03[_0x36b0('0x36')]);_0x2497d6['attributes']=_[_0x36b0('0x39')](_0x469e03['model'],qs[_0x36b0('0x3c')](_0x5e36a7[_0x36b0('0x36')][_0x36b0('0x3c')]));_0x2497d6['attributes']=_0x2497d6['attributes'][_0x36b0('0x3d')]?_0x2497d6[_0x36b0('0x3b')]:_0x469e03['model'];if(_0x5e36a7['query'][_0x36b0('0x4f')]){_0x2497d6[_0x36b0('0x49')]=[{'all':!![]}];}_0x2497d6=_['merge']({},_0x2497d6,_0x5e36a7[_0x36b0('0x48')]);return db[_0x36b0('0x30')][_0x36b0('0x50')](_0x2497d6)[_0x36b0('0x2a')](handleEntityNotFound(_0x31390e,null))[_0x36b0('0x2a')](respondWithResult(_0x31390e,null))[_0x36b0('0x4c')](handleError(_0x31390e,null));};exports[_0x36b0('0x51')]=function(_0x36a7ad,_0x5d0b02){return db[_0x36b0('0x30')][_0x36b0('0x51')](_0x36a7ad['body'],{})[_0x36b0('0x2a')](respondWithResult(_0x5d0b02,0xc9))[_0x36b0('0x4c')](handleError(_0x5d0b02,null));};exports[_0x36b0('0x52')]=function(_0x39e38b,_0x312956){if(_0x39e38b[_0x36b0('0x53')]['id']){delete _0x39e38b['body']['id'];}return db[_0x36b0('0x30')][_0x36b0('0x50')]({'where':{'id':_0x39e38b['params']['id']}})[_0x36b0('0x2a')](handleEntityNotFound(_0x312956,null))[_0x36b0('0x2a')](saveUpdates(_0x39e38b[_0x36b0('0x53')],null))['then'](respondWithResult(_0x312956,null))[_0x36b0('0x4c')](handleError(_0x312956,null));};exports['destroy']=function(_0x299feb,_0x4bf0d6){return db[_0x36b0('0x30')][_0x36b0('0x50')]({'where':{'id':_0x299feb[_0x36b0('0x4e')]['id']}})['then'](handleEntityNotFound(_0x4bf0d6,null))[_0x36b0('0x2a')](removeEntity(_0x4bf0d6,null))[_0x36b0('0x4c')](handleError(_0x4bf0d6,null));};exports[_0x36b0('0x54')]=function(_0x5a11c4,_0x3c58d3){return db[_0x36b0('0x30')][_0x36b0('0x54')]()[_0x36b0('0x2a')](respondWithResult(_0x3c58d3,null))[_0x36b0('0x4c')](handleError(_0x3c58d3,null));};function wrapUser(_0x17ebec){return function(_0x1ae855){var _0x3b31ba=_0x17ebec[_0x36b0('0x55')]({'plain':!![]});_0x3b31ba[_0x36b0('0x56')]=[];if(_0x1ae855){_0x3b31ba[_0x36b0('0x57')]=_0x1ae855[_0x36b0('0x58')];_0x3b31ba['lastMessage']=_0x1ae855;}else{_0x3b31ba[_0x36b0('0x57')]=moment(0x0)['format'](_0x36b0('0x59'));_0x3b31ba['lastMessage']={};}return _0x3b31ba;};}exports['getUsers']=function(_0x13b4a4,_0x15a99b,_0x29c47e){var _0x85fb79=[];return db[_0x36b0('0x5a')][_0x36b0('0x4a')]({'where':{'role':['agent',_0x36b0('0x5b'),_0x36b0('0x5c')]},'attributes':['id',_0x36b0('0x5d'),'name','role',_0x36b0('0x5e'),'internal',_0x36b0('0x5f'),_0x36b0('0x60'),_0x36b0('0x61'),_0x36b0('0x62')],'order':qs[_0x36b0('0x42')](_0x36b0('0x63')),'include':[{'model':db[_0x36b0('0x64')],'as':'VoiceQueues','attributes':['id','name',_0x36b0('0x33')],'through':{'attributes':[]}}]})[_0x36b0('0x2a')](function(_0x34bd11){if(_0x34bd11){var _0x1c40d4=_0x13b4a4['user'][_0x36b0('0x55')]({'plain':!![]});if(!_0x1c40d4)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x1c40d4[_0x36b0('0x65')]==='user'){return db[_0x36b0('0x66')][_0x36b0('0x50')]({'where':{'name':_0x36b0('0x67'),'userProfileId':_0x1c40d4[_0x36b0('0x68')]},'raw':!![]})['then'](function(_0x364768){if(_0x364768){if(_0x364768[_0x36b0('0x69')]===0x0){return db[_0x36b0('0x6a')]['findAll']({'where':{'sectionId':_0x364768['id']},'raw':!![]})[_0x36b0('0x2a')](function(_0x49526e){var _0x5a5563=[];if(_[_0x36b0('0x6b')](_0x49526e)){_0x5a5563=_[_0x36b0('0x45')](_0x34bd11,function(_0x545ab4){if(_0x545ab4[_0x36b0('0x65')]!==_0x36b0('0x6c')){return _0x545ab4;}});return _0x5a5563;}else{for(var _0x189fb5=0x0;_0x189fb5<_0x34bd11[_0x36b0('0x3d')];_0x189fb5++){var _0xce4caa=_0x34bd11[_0x189fb5];if(_0xce4caa[_0x36b0('0x65')]===_0x36b0('0x6c')){var _0x302d13=_['find'](_0x49526e,function(_0x198725){return _0x198725[_0x36b0('0x6d')]===_0xce4caa['id'];});if(_0x302d13)_0x5a5563[_0x36b0('0x6e')](_0xce4caa);}else{_0x5a5563[_0x36b0('0x6e')](_0xce4caa);}}return _0x5a5563;}});}else{return _0x34bd11;}}else{var _0x33f94b=_[_0x36b0('0x45')](_0x34bd11,function(_0x568488){if(_0x568488[_0x36b0('0x65')]!==_0x36b0('0x6c')){return _0x568488;}});return _0x33f94b;}});}else{return _0x34bd11;}}})[_0x36b0('0x2a')](function(_0x7ab8d6){var _0x551ce5=[];if(_0x7ab8d6){_0x85fb79=_0x7ab8d6;for(var _0x9cbec1=0x0;_0x9cbec1<_0x7ab8d6[_0x36b0('0x3d')];_0x9cbec1+=0x1){_0x85fb79[_0x9cbec1][_0x36b0('0x56')]=[];_0x551ce5['push'](db[_0x36b0('0x30')]['find']({'where':{'FromId':[_0x13b4a4[_0x36b0('0x5c')]['id'],_0x7ab8d6[_0x9cbec1]['id']],'ToId':[_0x13b4a4['user']['id'],_0x7ab8d6[_0x9cbec1]['id']],'ChatGroupId':null},'attributes':['id',_0x36b0('0x58'),_0x36b0('0x6f'),_0x36b0('0x70'),_0x36b0('0x71'),_0x36b0('0x53')],'order':qs['sort']('-createdAt'),'limit':0x1,'offset':0x0,'raw':!![]})[_0x36b0('0x2a')](wrapUser(_0x7ab8d6[_0x9cbec1])));}return BPromise[_0x36b0('0x72')](_0x551ce5);}return[];})[_0x36b0('0x2a')](function(_0x5c34a8){return{'rows':_0x5c34a8,'count':_0x5c34a8[_0x36b0('0x3d')]};})['then'](respondWithResult(_0x15a99b,null))['catch'](handleError(_0x15a99b,null));};