Built motion from commit 9d0783e6.|2.6.13
[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 _0xc406=['FromId','read','-createdAt','all','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/utils','../../config/environment','../../config/license/util','redis','localhost','socket.io-emitter','./chatInternalMessage.socket','register','sendStatus','status','json','offset','undefined','limit','count','Content-Range','reject','save','then','destroy','end','error','name','send','map','ChatInternalMessage','rawAttributes','fieldName','key','model','query','keys','attributes','fields','length','order','sort','filters','pick','filter','where','merge','type','VIRTUAL','options','include','rows','catch','show','params','intersection','includeAll','find','create','body','describe','get','messages','lastMessageAt','createdAt','format','lastMessage','getUsers','User','findAll','admin','user','fullname','role','internal','allowmessenger','showWebBar','VoiceQueues','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','autoAssociation','UserProfileResource','isEmpty','agent','resourceId','push'];(function(_0xfae23b,_0x2be4ba){var _0x200640=function(_0x4ae258){while(--_0x4ae258){_0xfae23b['push'](_0xfae23b['shift']());}};_0x200640(++_0x2be4ba);}(_0xc406,0xd0));var _0x6c40=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xc406[_0x3dd15e];return _0x231fd0;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x6c40('0x0'));var zipdir=require(_0x6c40('0x1'));var jsonpatch=require(_0x6c40('0x2'));var rp=require(_0x6c40('0x3'));var moment=require(_0x6c40('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x6c40('0x5'));var util=require('util');var path=require('path');var sox=require('sox');var csv=require(_0x6c40('0x6'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x6c40('0x7'));var _=require(_0x6c40('0x8'));var squel=require(_0x6c40('0x9'));var crypto=require(_0x6c40('0xa'));var jsforce=require(_0x6c40('0xb'));var deskjs=require(_0x6c40('0xc'));var toCsv=require(_0x6c40('0x6'));var querystring=require('querystring');var Papa=require(_0x6c40('0xd'));var Redis=require(_0x6c40('0xe'));var authService=require(_0x6c40('0xf'));var qs=require(_0x6c40('0x10'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')('api');var utils=require(_0x6c40('0x11'));var config=require(_0x6c40('0x12'));var licenseUtil=require(_0x6c40('0x13'));var db=require('../../mysqldb')['db'];config[_0x6c40('0x14')]=_['defaults'](config['redis'],{'host':_0x6c40('0x15'),'port':0x18eb});var socket=require(_0x6c40('0x16'))(new Redis(config['redis']));require(_0x6c40('0x17'))[_0x6c40('0x18')](socket);function respondWithStatusCode(_0x40f170,_0x4776ad){_0x4776ad=_0x4776ad||0xcc;return function(_0x1fe556){if(_0x1fe556){return _0x40f170[_0x6c40('0x19')](_0x4776ad);}return _0x40f170[_0x6c40('0x1a')](_0x4776ad)['end']();};}function respondWithResult(_0x360cb8,_0x13327b){_0x13327b=_0x13327b||0xc8;return function(_0x559ba4){if(_0x559ba4){return _0x360cb8[_0x6c40('0x1a')](_0x13327b)[_0x6c40('0x1b')](_0x559ba4);}};}function respondWithFilteredResult(_0xdec5d7,_0x254425){return function(_0x421372){if(_0x421372){var _0x1122d7=typeof _0x254425[_0x6c40('0x1c')]===_0x6c40('0x1d')&&typeof _0x254425[_0x6c40('0x1e')]===_0x6c40('0x1d');var _0x32a7ea=_0x421372[_0x6c40('0x1f')];var _0x1ae4fc=_0x1122d7?0x0:_0x254425[_0x6c40('0x1c')];var _0x3d855=_0x1122d7?_0x421372[_0x6c40('0x1f')]:_0x254425[_0x6c40('0x1c')]+_0x254425[_0x6c40('0x1e')];var _0x414104;if(_0x3d855>=_0x32a7ea){_0x3d855=_0x32a7ea;_0x414104=0xc8;}else{_0x414104=0xce;}_0xdec5d7[_0x6c40('0x1a')](_0x414104);return _0xdec5d7['set'](_0x6c40('0x20'),_0x1ae4fc+'-'+_0x3d855+'/'+_0x32a7ea)[_0x6c40('0x1b')](_0x421372);}return null;};}function patchUpdates(_0x5aa342){return function(_0x293dfa){try{jsonpatch['apply'](_0x293dfa,_0x5aa342,!![]);}catch(_0x2f8549){return BPromise[_0x6c40('0x21')](_0x2f8549);}return _0x293dfa[_0x6c40('0x22')]();};}function saveUpdates(_0x2397d5,_0x36bd21){return function(_0x48bc5c){if(_0x48bc5c){return _0x48bc5c['update'](_0x2397d5)[_0x6c40('0x23')](function(_0x16700c){return _0x16700c;});}return null;};}function removeEntity(_0x2bc969,_0x74427){return function(_0x1ccb84){if(_0x1ccb84){return _0x1ccb84[_0x6c40('0x24')]()['then'](function(){_0x2bc969[_0x6c40('0x1a')](0xcc)[_0x6c40('0x25')]();});}};}function handleEntityNotFound(_0x4fa07a,_0x2c9a06){return function(_0x3187f6){if(!_0x3187f6){_0x4fa07a[_0x6c40('0x19')](0x194);}return _0x3187f6;};}function handleError(_0x561e86,_0x34fecb){_0x34fecb=_0x34fecb||0x1f4;return function(_0xabf85a){logger[_0x6c40('0x26')](_0xabf85a['stack']);if(_0xabf85a[_0x6c40('0x27')]){delete _0xabf85a['name'];}_0x561e86[_0x6c40('0x1a')](_0x34fecb)[_0x6c40('0x28')](_0xabf85a);};}exports['index']=function(_0x4d0b27,_0x54db30){var _0x3ad78b={},_0x5204e3={},_0x53cda7={'count':0x0,'rows':[]};var _0x1d6775=_[_0x6c40('0x29')](db[_0x6c40('0x2a')][_0x6c40('0x2b')],function(_0x520a38){return{'name':_0x520a38[_0x6c40('0x2c')],'type':_0x520a38['type'][_0x6c40('0x2d')]};});_0x5204e3[_0x6c40('0x2e')]=_[_0x6c40('0x29')](_0x1d6775,_0x6c40('0x27'));_0x5204e3[_0x6c40('0x2f')]=_[_0x6c40('0x30')](_0x4d0b27[_0x6c40('0x2f')]);_0x5204e3['filters']=_['intersection'](_0x5204e3['model'],_0x5204e3[_0x6c40('0x2f')]);_0x3ad78b[_0x6c40('0x31')]=_['intersection'](_0x5204e3[_0x6c40('0x2e')],qs['fields'](_0x4d0b27[_0x6c40('0x2f')][_0x6c40('0x32')]));_0x3ad78b[_0x6c40('0x31')]=_0x3ad78b[_0x6c40('0x31')][_0x6c40('0x33')]?_0x3ad78b['attributes']:_0x5204e3[_0x6c40('0x2e')];if(!_0x4d0b27['query']['hasOwnProperty']('nolimit')){_0x3ad78b[_0x6c40('0x1e')]=qs[_0x6c40('0x1e')](_0x4d0b27['query']['limit']);_0x3ad78b[_0x6c40('0x1c')]=qs[_0x6c40('0x1c')](_0x4d0b27['query']['offset']);}_0x3ad78b[_0x6c40('0x34')]=qs[_0x6c40('0x35')](_0x4d0b27[_0x6c40('0x2f')]['sort']);_0x3ad78b['where']=qs[_0x6c40('0x36')](_[_0x6c40('0x37')](_0x4d0b27[_0x6c40('0x2f')],_0x5204e3[_0x6c40('0x36')]),_0x1d6775);if(_0x4d0b27['query'][_0x6c40('0x38')]){_0x3ad78b[_0x6c40('0x39')]=_[_0x6c40('0x3a')](_0x3ad78b[_0x6c40('0x39')],{'$or':_[_0x6c40('0x29')](_0x1d6775,function(_0x2e2833){if(_0x2e2833[_0x6c40('0x3b')]!==_0x6c40('0x3c')){var _0x1c0162={};_0x1c0162[_0x2e2833['name']]={'$like':'%'+_0x4d0b27['query'][_0x6c40('0x38')]+'%'};return _0x1c0162;}})});}_0x3ad78b=_[_0x6c40('0x3a')]({},_0x3ad78b,_0x4d0b27[_0x6c40('0x3d')]);var _0x44e80e={'where':_0x3ad78b['where']};return db['ChatInternalMessage'][_0x6c40('0x1f')](_0x44e80e)[_0x6c40('0x23')](function(_0x480f32){_0x53cda7[_0x6c40('0x1f')]=_0x480f32;if(_0x4d0b27[_0x6c40('0x2f')]['includeAll']){_0x3ad78b[_0x6c40('0x3e')]=[{'all':!![]}];}return db[_0x6c40('0x2a')]['findAll'](_0x3ad78b);})[_0x6c40('0x23')](function(_0x15476b){_0x53cda7[_0x6c40('0x3f')]=_0x15476b;return _0x53cda7;})[_0x6c40('0x23')](respondWithFilteredResult(_0x54db30,_0x3ad78b))[_0x6c40('0x40')](handleError(_0x54db30,null));};exports[_0x6c40('0x41')]=function(_0x163d4f,_0x4cf967){var _0x40e4a5={'raw':!![],'where':{'id':_0x163d4f[_0x6c40('0x42')]['id']}},_0x4b703d={};_0x4b703d[_0x6c40('0x2e')]=_[_0x6c40('0x30')](db[_0x6c40('0x2a')][_0x6c40('0x2b')]);_0x4b703d[_0x6c40('0x2f')]=_[_0x6c40('0x30')](_0x163d4f[_0x6c40('0x2f')]);_0x4b703d['filters']=_[_0x6c40('0x43')](_0x4b703d[_0x6c40('0x2e')],_0x4b703d[_0x6c40('0x2f')]);_0x40e4a5[_0x6c40('0x31')]=_[_0x6c40('0x43')](_0x4b703d[_0x6c40('0x2e')],qs[_0x6c40('0x32')](_0x163d4f[_0x6c40('0x2f')]['fields']));_0x40e4a5[_0x6c40('0x31')]=_0x40e4a5[_0x6c40('0x31')][_0x6c40('0x33')]?_0x40e4a5[_0x6c40('0x31')]:_0x4b703d[_0x6c40('0x2e')];if(_0x163d4f[_0x6c40('0x2f')][_0x6c40('0x44')]){_0x40e4a5[_0x6c40('0x3e')]=[{'all':!![]}];}_0x40e4a5=_[_0x6c40('0x3a')]({},_0x40e4a5,_0x163d4f[_0x6c40('0x3d')]);return db[_0x6c40('0x2a')][_0x6c40('0x45')](_0x40e4a5)[_0x6c40('0x23')](handleEntityNotFound(_0x4cf967,null))[_0x6c40('0x23')](respondWithResult(_0x4cf967,null))[_0x6c40('0x40')](handleError(_0x4cf967,null));};exports[_0x6c40('0x46')]=function(_0x2614b3,_0x2cd259){return db['ChatInternalMessage'][_0x6c40('0x46')](_0x2614b3['body'],{})['then'](respondWithResult(_0x2cd259,0xc9))[_0x6c40('0x40')](handleError(_0x2cd259,null));};exports['update']=function(_0x4b38e3,_0x1a8ff8){if(_0x4b38e3['body']['id']){delete _0x4b38e3[_0x6c40('0x47')]['id'];}return db[_0x6c40('0x2a')][_0x6c40('0x45')]({'where':{'id':_0x4b38e3[_0x6c40('0x42')]['id']}})[_0x6c40('0x23')](handleEntityNotFound(_0x1a8ff8,null))['then'](saveUpdates(_0x4b38e3[_0x6c40('0x47')],null))[_0x6c40('0x23')](respondWithResult(_0x1a8ff8,null))['catch'](handleError(_0x1a8ff8,null));};exports['destroy']=function(_0x41f669,_0x53521e){return db[_0x6c40('0x2a')][_0x6c40('0x45')]({'where':{'id':_0x41f669['params']['id']}})[_0x6c40('0x23')](handleEntityNotFound(_0x53521e,null))[_0x6c40('0x23')](removeEntity(_0x53521e,null))[_0x6c40('0x40')](handleError(_0x53521e,null));};exports[_0x6c40('0x48')]=function(_0x22c132,_0x4ddbc6){return db[_0x6c40('0x2a')][_0x6c40('0x48')]()[_0x6c40('0x23')](respondWithResult(_0x4ddbc6,null))[_0x6c40('0x40')](handleError(_0x4ddbc6,null));};function wrapUser(_0xd06380){return function(_0x410201){var _0x390339=_0xd06380[_0x6c40('0x49')]({'plain':!![]});_0x390339[_0x6c40('0x4a')]=[];if(_0x410201){_0x390339[_0x6c40('0x4b')]=_0x410201[_0x6c40('0x4c')];_0x390339['lastMessage']=_0x410201;}else{_0x390339[_0x6c40('0x4b')]=moment(0x0)[_0x6c40('0x4d')]('YYYY-MM-DD\x20HH:mm:ss');_0x390339[_0x6c40('0x4e')]={};}return _0x390339;};}exports[_0x6c40('0x4f')]=function(_0x20e3a9,_0x424d08,_0x4bda57){var _0x1f3d01=[];return db[_0x6c40('0x50')][_0x6c40('0x51')]({'where':{'role':['agent',_0x6c40('0x52'),_0x6c40('0x53')]},'attributes':['id',_0x6c40('0x54'),_0x6c40('0x27'),_0x6c40('0x55'),'userpic',_0x6c40('0x56'),'online','lastLoginAt',_0x6c40('0x57'),_0x6c40('0x58')],'order':qs['sort']('-online'),'include':[{'model':db['VoiceQueue'],'as':_0x6c40('0x59'),'attributes':['id',_0x6c40('0x27'),_0x6c40('0x3b')],'through':{'attributes':[]}}]})[_0x6c40('0x23')](function(_0x43a830){if(_0x43a830){var _0x3eb26b=_0x20e3a9['user'][_0x6c40('0x49')]({'plain':!![]});if(!_0x3eb26b)throw new Error(_0x6c40('0x5a'));if(_0x3eb26b[_0x6c40('0x55')]===_0x6c40('0x53')){return db[_0x6c40('0x5b')][_0x6c40('0x45')]({'where':{'name':'Agents','userProfileId':_0x3eb26b['userProfileId']},'raw':!![]})[_0x6c40('0x23')](function(_0x3d8cf9){if(_0x3d8cf9){if(_0x3d8cf9[_0x6c40('0x5c')]===0x0){return db[_0x6c40('0x5d')][_0x6c40('0x51')]({'where':{'sectionId':_0x3d8cf9['id']},'raw':!![]})[_0x6c40('0x23')](function(_0x29854f){var _0x460d5d=[];if(_[_0x6c40('0x5e')](_0x29854f)){_0x460d5d=_['filter'](_0x43a830,function(_0x5b448e){if(_0x5b448e[_0x6c40('0x55')]!==_0x6c40('0x5f')){return _0x5b448e;}});return _0x460d5d;}else{for(var _0x592e1b=0x0;_0x592e1b<_0x43a830['length'];_0x592e1b++){var _0x5afa37=_0x43a830[_0x592e1b];if(_0x5afa37[_0x6c40('0x55')]==='agent'){var _0x4fd117=_['find'](_0x29854f,function(_0x3f7a16){return _0x3f7a16[_0x6c40('0x60')]===_0x5afa37['id'];});if(_0x4fd117)_0x460d5d[_0x6c40('0x61')](_0x5afa37);}else{_0x460d5d['push'](_0x5afa37);}}return _0x460d5d;}});}else{return _0x43a830;}}else{var _0x58094f=_['filter'](_0x43a830,function(_0x55570b){if(_0x55570b[_0x6c40('0x55')]!==_0x6c40('0x5f')){return _0x55570b;}});return _0x58094f;}});}else{return _0x43a830;}}})[_0x6c40('0x23')](function(_0x1e67da){var _0xd05077=[];if(_0x1e67da){_0x1f3d01=_0x1e67da;for(var _0x5eae2d=0x0;_0x5eae2d<_0x1e67da['length'];_0x5eae2d+=0x1){_0x1f3d01[_0x5eae2d][_0x6c40('0x4a')]=[];_0xd05077[_0x6c40('0x61')](db['ChatInternalMessage'][_0x6c40('0x45')]({'where':{'FromId':[_0x20e3a9['user']['id'],_0x1e67da[_0x5eae2d]['id']],'ToId':[_0x20e3a9[_0x6c40('0x53')]['id'],_0x1e67da[_0x5eae2d]['id']],'ChatGroupId':null},'attributes':['id',_0x6c40('0x4c'),_0x6c40('0x62'),'ToId',_0x6c40('0x63'),_0x6c40('0x47')],'order':qs[_0x6c40('0x35')](_0x6c40('0x64')),'limit':0x1,'offset':0x0,'raw':!![]})[_0x6c40('0x23')](wrapUser(_0x1e67da[_0x5eae2d])));}return BPromise[_0x6c40('0x65')](_0xd05077);}return[];})[_0x6c40('0x23')](function(_0x4d4676){return{'rows':_0x4d4676,'count':_0x4d4676['length']};})[_0x6c40('0x23')](respondWithResult(_0x424d08,null))[_0x6c40('0x40')](handleError(_0x424d08,null));};