Built motion from commit (unavailable).|2.5.4
[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 _0x483b=['sox','ejs','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./chatInternalMessage.socket','register','sendStatus','status','end','json','count','offset','limit','set','Content-Range','then','destroy','stack','name','send','index','map','ChatInternalMessage','rawAttributes','fieldName','type','key','model','query','keys','intersection','fields','attributes','hasOwnProperty','order','where','filters','merge','VIRTUAL','filter','options','include','findAll','rows','catch','show','params','includeAll','find','create','body','describe','get','messages','lastMessage','lastMessageAt','format','YYYY-MM-DD\x20HH:mm:ss','getUsers','User','agent','admin','fullname','userpic','internal','lastLoginAt','allowmessenger','showWebBar','sort','-online','VoiceQueues','user','role','UserProfileSection','Agents','userProfileId','UserProfileResource','isEmpty','length','push','createdAt','FromId','ToId','read','all','html-pdf','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path'];(function(_0x57f10e,_0x5c156a){var _0x2c94d1=function(_0x352552){while(--_0x352552){_0x57f10e['push'](_0x57f10e['shift']());}};_0x2c94d1(++_0x5c156a);}(_0x483b,0xd5));var _0xb483=function(_0x11a687,_0x4417ea){_0x11a687=_0x11a687-0x0;var _0x4e49c3=_0x483b[_0x11a687];return _0x4e49c3;};'use strict';var pdf=require(_0xb483('0x0'));var emlformat=require('eml-format');var rimraf=require(_0xb483('0x1'));var zipdir=require(_0xb483('0x2'));var jsonpatch=require(_0xb483('0x3'));var rp=require(_0xb483('0x4'));var moment=require(_0xb483('0x5'));var BPromise=require(_0xb483('0x6'));var Mustache=require(_0xb483('0x7'));var util=require('util');var path=require(_0xb483('0x8'));var sox=require(_0xb483('0x9'));var csv=require('to-csv');var ejs=require(_0xb483('0xa'));var fs=require('fs');var _=require('lodash');var squel=require(_0xb483('0xb'));var crypto=require(_0xb483('0xc'));var jsforce=require(_0xb483('0xd'));var deskjs=require(_0xb483('0xe'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0xb483('0xf'));var Redis=require(_0xb483('0x10'));var authService=require(_0xb483('0x11'));var qs=require(_0xb483('0x12'));var as=require(_0xb483('0x13'));var hardwareService=require(_0xb483('0x14'));var logger=require(_0xb483('0x15'))(_0xb483('0x16'));var utils=require(_0xb483('0x17'));var config=require(_0xb483('0x18'));var db=require(_0xb483('0x19'))['db'];config[_0xb483('0x1a')]=_[_0xb483('0x1b')](config[_0xb483('0x1a')],{'host':_0xb483('0x1c'),'port':0x18eb});var socket=require(_0xb483('0x1d'))(new Redis(config['redis']));require(_0xb483('0x1e'))[_0xb483('0x1f')](socket);function respondWithStatusCode(_0x27d95c,_0x4d8b16){_0x4d8b16=_0x4d8b16||0xcc;return function(_0x59effa){if(_0x59effa){return _0x27d95c[_0xb483('0x20')](_0x4d8b16);}return _0x27d95c[_0xb483('0x21')](_0x4d8b16)[_0xb483('0x22')]();};}function respondWithResult(_0xe7db1,_0x18dba8){_0x18dba8=_0x18dba8||0xc8;return function(_0x438d50){if(_0x438d50){return _0xe7db1['status'](_0x18dba8)[_0xb483('0x23')](_0x438d50);}};}function respondWithFilteredResult(_0x1b26d4,_0x307f20){return function(_0x5578fb){if(_0x5578fb){var _0x2544ab=_0x5578fb[_0xb483('0x24')],_0x5a4b4e=_0x307f20[_0xb483('0x25')],_0x13dd61=_0x307f20[_0xb483('0x25')]+_0x307f20[_0xb483('0x26')],_0x156578;if(_0x13dd61>=_0x2544ab){_0x13dd61=_0x2544ab;_0x156578=0xc8;}else{_0x156578=0xce;}_0x1b26d4['status'](_0x156578);return _0x1b26d4[_0xb483('0x27')](_0xb483('0x28'),_0x5a4b4e+'-'+_0x13dd61+'/'+_0x2544ab)[_0xb483('0x23')](_0x5578fb);}return null;};}function patchUpdates(_0x4d8a87){return function(_0x108159){try{jsonpatch['apply'](_0x108159,_0x4d8a87,!![]);}catch(_0x2e4295){return BPromise['reject'](_0x2e4295);}return _0x108159['save']();};}function saveUpdates(_0x2324f3,_0x5e304b){return function(_0x5197ef){if(_0x5197ef){return _0x5197ef['update'](_0x2324f3)[_0xb483('0x29')](function(_0x13693d){return _0x13693d;});}return null;};}function removeEntity(_0x4319c2,_0x2800ec){return function(_0x5d044b){if(_0x5d044b){return _0x5d044b[_0xb483('0x2a')]()[_0xb483('0x29')](function(){_0x4319c2[_0xb483('0x21')](0xcc)[_0xb483('0x22')]();});}};}function handleEntityNotFound(_0x3d47ba,_0x113d0c){return function(_0x3e1d33){if(!_0x3e1d33){_0x3d47ba[_0xb483('0x20')](0x194);}return _0x3e1d33;};}function handleError(_0x487f5f,_0x5f0053){_0x5f0053=_0x5f0053||0x1f4;return function(_0x1403d9){logger['error'](_0x1403d9[_0xb483('0x2b')]);if(_0x1403d9[_0xb483('0x2c')]){delete _0x1403d9[_0xb483('0x2c')];}_0x487f5f[_0xb483('0x21')](_0x5f0053)[_0xb483('0x2d')](_0x1403d9);};}exports[_0xb483('0x2e')]=function(_0x124d29,_0xcdfc6b){var _0x169c82={},_0x1fbd91={},_0x4c6a96={'count':0x0,'rows':[]};var _0xe67737=_[_0xb483('0x2f')](db[_0xb483('0x30')][_0xb483('0x31')],function(_0x13787c){return{'name':_0x13787c[_0xb483('0x32')],'type':_0x13787c[_0xb483('0x33')][_0xb483('0x34')]};});_0x1fbd91[_0xb483('0x35')]=_[_0xb483('0x2f')](_0xe67737,_0xb483('0x2c'));_0x1fbd91[_0xb483('0x36')]=_[_0xb483('0x37')](_0x124d29[_0xb483('0x36')]);_0x1fbd91['filters']=_[_0xb483('0x38')](_0x1fbd91['model'],_0x1fbd91[_0xb483('0x36')]);_0x169c82['attributes']=_[_0xb483('0x38')](_0x1fbd91[_0xb483('0x35')],qs[_0xb483('0x39')](_0x124d29[_0xb483('0x36')][_0xb483('0x39')]));_0x169c82['attributes']=_0x169c82[_0xb483('0x3a')]['length']?_0x169c82[_0xb483('0x3a')]:_0x1fbd91[_0xb483('0x35')];if(!_0x124d29[_0xb483('0x36')][_0xb483('0x3b')]('nolimit')){_0x169c82[_0xb483('0x26')]=qs[_0xb483('0x26')](_0x124d29['query'][_0xb483('0x26')]);_0x169c82['offset']=qs['offset'](_0x124d29[_0xb483('0x36')][_0xb483('0x25')]);}_0x169c82[_0xb483('0x3c')]=qs['sort'](_0x124d29['query']['sort']);_0x169c82[_0xb483('0x3d')]=qs[_0xb483('0x3e')](_['pick'](_0x124d29[_0xb483('0x36')],_0x1fbd91['filters']),_0xe67737);if(_0x124d29[_0xb483('0x36')]['filter']){_0x169c82['where']=_[_0xb483('0x3f')](_0x169c82[_0xb483('0x3d')],{'$or':_[_0xb483('0x2f')](_0xe67737,function(_0x41ebc8){if(_0x41ebc8[_0xb483('0x33')]!==_0xb483('0x40')){var _0x3c24ea={};_0x3c24ea[_0x41ebc8[_0xb483('0x2c')]]={'$like':'%'+_0x124d29['query'][_0xb483('0x41')]+'%'};return _0x3c24ea;}})});}_0x169c82=_['merge']({},_0x169c82,_0x124d29[_0xb483('0x42')]);var _0x4199ba={'where':_0x169c82[_0xb483('0x3d')]};return db[_0xb483('0x30')][_0xb483('0x24')](_0x4199ba)[_0xb483('0x29')](function(_0x15dbc5){_0x4c6a96[_0xb483('0x24')]=_0x15dbc5;if(_0x124d29[_0xb483('0x36')]['includeAll']){_0x169c82[_0xb483('0x43')]=[{'all':!![]}];}return db[_0xb483('0x30')][_0xb483('0x44')](_0x169c82);})[_0xb483('0x29')](function(_0x2f1ab1){_0x4c6a96[_0xb483('0x45')]=_0x2f1ab1;return _0x4c6a96;})[_0xb483('0x29')](respondWithFilteredResult(_0xcdfc6b,_0x169c82))[_0xb483('0x46')](handleError(_0xcdfc6b,null));};exports[_0xb483('0x47')]=function(_0x1b9d72,_0x1f9551){var _0x547f2e={'raw':!![],'where':{'id':_0x1b9d72[_0xb483('0x48')]['id']}},_0x280942={};_0x280942[_0xb483('0x35')]=_[_0xb483('0x37')](db[_0xb483('0x30')][_0xb483('0x31')]);_0x280942['query']=_[_0xb483('0x37')](_0x1b9d72[_0xb483('0x36')]);_0x280942[_0xb483('0x3e')]=_[_0xb483('0x38')](_0x280942[_0xb483('0x35')],_0x280942[_0xb483('0x36')]);_0x547f2e[_0xb483('0x3a')]=_['intersection'](_0x280942[_0xb483('0x35')],qs[_0xb483('0x39')](_0x1b9d72[_0xb483('0x36')]['fields']));_0x547f2e[_0xb483('0x3a')]=_0x547f2e['attributes']['length']?_0x547f2e[_0xb483('0x3a')]:_0x280942[_0xb483('0x35')];if(_0x1b9d72[_0xb483('0x36')][_0xb483('0x49')]){_0x547f2e['include']=[{'all':!![]}];}_0x547f2e=_[_0xb483('0x3f')]({},_0x547f2e,_0x1b9d72[_0xb483('0x42')]);return db[_0xb483('0x30')][_0xb483('0x4a')](_0x547f2e)[_0xb483('0x29')](handleEntityNotFound(_0x1f9551,null))['then'](respondWithResult(_0x1f9551,null))[_0xb483('0x46')](handleError(_0x1f9551,null));};exports[_0xb483('0x4b')]=function(_0x4377b7,_0x19ce0c){return db['ChatInternalMessage'][_0xb483('0x4b')](_0x4377b7[_0xb483('0x4c')],{})[_0xb483('0x29')](respondWithResult(_0x19ce0c,0xc9))['catch'](handleError(_0x19ce0c,null));};exports['update']=function(_0x3b9972,_0x45b432){if(_0x3b9972['body']['id']){delete _0x3b9972['body']['id'];}return db['ChatInternalMessage'][_0xb483('0x4a')]({'where':{'id':_0x3b9972['params']['id']}})[_0xb483('0x29')](handleEntityNotFound(_0x45b432,null))[_0xb483('0x29')](saveUpdates(_0x3b9972['body'],null))[_0xb483('0x29')](respondWithResult(_0x45b432,null))['catch'](handleError(_0x45b432,null));};exports[_0xb483('0x2a')]=function(_0x2366da,_0x2a15e8){return db[_0xb483('0x30')]['find']({'where':{'id':_0x2366da[_0xb483('0x48')]['id']}})['then'](handleEntityNotFound(_0x2a15e8,null))[_0xb483('0x29')](removeEntity(_0x2a15e8,null))[_0xb483('0x46')](handleError(_0x2a15e8,null));};exports['describe']=function(_0x28831f,_0x206a76){return db[_0xb483('0x30')][_0xb483('0x4d')]()[_0xb483('0x29')](respondWithResult(_0x206a76,null))[_0xb483('0x46')](handleError(_0x206a76,null));};function wrapUser(_0x593745){return function(_0x1e4ec7){var _0x535791=_0x593745[_0xb483('0x4e')]({'plain':!![]});_0x535791[_0xb483('0x4f')]=[];if(_0x1e4ec7){_0x535791['lastMessageAt']=_0x1e4ec7['createdAt'];_0x535791[_0xb483('0x50')]=_0x1e4ec7;}else{_0x535791[_0xb483('0x51')]=moment(0x0)[_0xb483('0x52')](_0xb483('0x53'));_0x535791[_0xb483('0x50')]={};}return _0x535791;};}exports[_0xb483('0x54')]=function(_0x24c1b8,_0xafa31f,_0x2cb137){var _0x193a87=[];return db[_0xb483('0x55')][_0xb483('0x44')]({'where':{'role':[_0xb483('0x56'),_0xb483('0x57'),'user']},'attributes':['id',_0xb483('0x58'),_0xb483('0x2c'),'role',_0xb483('0x59'),_0xb483('0x5a'),'online',_0xb483('0x5b'),_0xb483('0x5c'),_0xb483('0x5d')],'order':qs[_0xb483('0x5e')](_0xb483('0x5f')),'include':[{'model':db['VoiceQueue'],'as':_0xb483('0x60'),'attributes':['id',_0xb483('0x2c'),_0xb483('0x33')],'through':{'attributes':[]}}]})[_0xb483('0x29')](function(_0x151a8c){if(_0x151a8c){var _0x1f7213=_0x24c1b8[_0xb483('0x61')][_0xb483('0x4e')]({'plain':!![]});if(!_0x1f7213)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x1f7213[_0xb483('0x62')]===_0xb483('0x61')){return db[_0xb483('0x63')]['find']({'where':{'name':_0xb483('0x64'),'userProfileId':_0x1f7213[_0xb483('0x65')]},'raw':!![]})[_0xb483('0x29')](function(_0xfeff23){if(_0xfeff23){if(_0xfeff23['autoAssociation']===0x0){return db[_0xb483('0x66')][_0xb483('0x44')]({'where':{'sectionId':_0xfeff23['id']},'raw':!![]})['then'](function(_0x3cb279){var _0x5e1a15=[];if(_[_0xb483('0x67')](_0x3cb279)){_0x5e1a15=_[_0xb483('0x41')](_0x151a8c,function(_0x396447){if(_0x396447[_0xb483('0x62')]!=='agent'){return _0x396447;}});return _0x5e1a15;}else{for(var _0x1c5c36=0x0;_0x1c5c36<_0x151a8c[_0xb483('0x68')];_0x1c5c36++){var _0x3deb06=_0x151a8c[_0x1c5c36];if(_0x3deb06[_0xb483('0x62')]===_0xb483('0x56')){var _0x24a53f=_['find'](_0x3cb279,function(_0x4309e4){return _0x4309e4['resourceId']===_0x3deb06['id'];});if(_0x24a53f)_0x5e1a15[_0xb483('0x69')](_0x3deb06);}else{_0x5e1a15['push'](_0x3deb06);}}return _0x5e1a15;}});}else{return _0x151a8c;}}else{var _0x5a9a6c=_['filter'](_0x151a8c,function(_0x4abdd9){if(_0x4abdd9[_0xb483('0x62')]!==_0xb483('0x56')){return _0x4abdd9;}});return _0x5a9a6c;}});}else{return _0x151a8c;}}})[_0xb483('0x29')](function(_0x5d0144){var _0x47957e=[];if(_0x5d0144){_0x193a87=_0x5d0144;for(var _0x4d1006=0x0;_0x4d1006<_0x5d0144['length'];_0x4d1006+=0x1){_0x193a87[_0x4d1006][_0xb483('0x4f')]=[];_0x47957e[_0xb483('0x69')](db[_0xb483('0x30')][_0xb483('0x4a')]({'where':{'FromId':[_0x24c1b8[_0xb483('0x61')]['id'],_0x5d0144[_0x4d1006]['id']],'ToId':[_0x24c1b8['user']['id'],_0x5d0144[_0x4d1006]['id']],'ChatGroupId':null},'attributes':['id',_0xb483('0x6a'),_0xb483('0x6b'),_0xb483('0x6c'),_0xb483('0x6d'),_0xb483('0x4c')],'order':qs['sort']('-createdAt'),'limit':0x1,'offset':0x0,'raw':!![]})[_0xb483('0x29')](wrapUser(_0x5d0144[_0x4d1006])));}return BPromise[_0xb483('0x6e')](_0x47957e);}return[];})['then'](function(_0xcb4e58){return{'rows':_0xcb4e58,'count':_0xcb4e58[_0xb483('0x68')]};})['then'](respondWithResult(_0xafa31f,null))[_0xb483('0x46')](handleError(_0xafa31f,null));};