Built motion from commit 1fa89557.|2.6.10
[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 _0x7683=['update','then','sendStatus','error','stack','name','index','map','ChatInternalMessage','rawAttributes','fieldName','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','pick','filter','merge','type','VIRTUAL','includeAll','include','findAll','rows','catch','show','options','find','create','body','params','describe','get','lastMessageAt','format','YYYY-MM-DD\x20HH:mm:ss','lastMessage','getUsers','User','agent','admin','user','fullname','userpic','internal','allowmessenger','showWebBar','-online','VoiceQueue','VoiceQueues','role','UserProfileSection','Agents','userProfileId','autoAssociation','UserProfileResource','isEmpty','push','messages','FromId','read','-createdAt','all','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','sox','fs-extra','lodash','squel','crypto','jsforce','desk.js','to-csv','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','register','end','status','json','offset','limit','undefined','count','Content-Range','apply','save'];(function(_0x199572,_0x33e667){var _0x13cfa3=function(_0x53c075){while(--_0x53c075){_0x199572['push'](_0x199572['shift']());}};_0x13cfa3(++_0x33e667);}(_0x7683,0xba));var _0x3768=function(_0xfb42e6,_0x5f5d4b){_0xfb42e6=_0xfb42e6-0x0;var _0x27265b=_0x7683[_0xfb42e6];return _0x27265b;};'use strict';var emlformat=require(_0x3768('0x0'));var rimraf=require(_0x3768('0x1'));var zipdir=require(_0x3768('0x2'));var jsonpatch=require(_0x3768('0x3'));var rp=require(_0x3768('0x4'));var moment=require('moment');var BPromise=require(_0x3768('0x5'));var Mustache=require(_0x3768('0x6'));var util=require(_0x3768('0x7'));var path=require('path');var sox=require(_0x3768('0x8'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x3768('0x9'));var _=require(_0x3768('0xa'));var squel=require(_0x3768('0xb'));var crypto=require(_0x3768('0xc'));var jsforce=require(_0x3768('0xd'));var deskjs=require(_0x3768('0xe'));var toCsv=require(_0x3768('0xf'));var querystring=require('querystring');var Papa=require(_0x3768('0x10'));var Redis=require(_0x3768('0x11'));var authService=require(_0x3768('0x12'));var qs=require(_0x3768('0x13'));var as=require(_0x3768('0x14'));var hardwareService=require(_0x3768('0x15'));var logger=require(_0x3768('0x16'))(_0x3768('0x17'));var utils=require('../../config/utils');var config=require(_0x3768('0x18'));var licenseUtil=require(_0x3768('0x19'));var db=require(_0x3768('0x1a'))['db'];config[_0x3768('0x1b')]=_[_0x3768('0x1c')](config['redis'],{'host':_0x3768('0x1d'),'port':0x18eb});var socket=require(_0x3768('0x1e'))(new Redis(config[_0x3768('0x1b')]));require('./chatInternalMessage.socket')[_0x3768('0x1f')](socket);function respondWithStatusCode(_0x589861,_0x9de183){_0x9de183=_0x9de183||0xcc;return function(_0x1a8e76){if(_0x1a8e76){return _0x589861['sendStatus'](_0x9de183);}return _0x589861['status'](_0x9de183)[_0x3768('0x20')]();};}function respondWithResult(_0x137431,_0x9555){_0x9555=_0x9555||0xc8;return function(_0x16dbaa){if(_0x16dbaa){return _0x137431[_0x3768('0x21')](_0x9555)[_0x3768('0x22')](_0x16dbaa);}};}function respondWithFilteredResult(_0x3583db,_0x3a6992){return function(_0x363aee){if(_0x363aee){var _0x53ad0f=typeof _0x3a6992[_0x3768('0x23')]==='undefined'&&typeof _0x3a6992[_0x3768('0x24')]===_0x3768('0x25');var _0xbd93eb=_0x363aee[_0x3768('0x26')];var _0x449487=_0x53ad0f?0x0:_0x3a6992['offset'];var _0x2f0a29=_0x53ad0f?_0x363aee['count']:_0x3a6992['offset']+_0x3a6992[_0x3768('0x24')];var _0x495a67;if(_0x2f0a29>=_0xbd93eb){_0x2f0a29=_0xbd93eb;_0x495a67=0xc8;}else{_0x495a67=0xce;}_0x3583db[_0x3768('0x21')](_0x495a67);return _0x3583db['set'](_0x3768('0x27'),_0x449487+'-'+_0x2f0a29+'/'+_0xbd93eb)['json'](_0x363aee);}return null;};}function patchUpdates(_0x28a427){return function(_0x3477b5){try{jsonpatch[_0x3768('0x28')](_0x3477b5,_0x28a427,!![]);}catch(_0x1fd630){return BPromise['reject'](_0x1fd630);}return _0x3477b5[_0x3768('0x29')]();};}function saveUpdates(_0x78a393,_0x24f38f){return function(_0x4fa90d){if(_0x4fa90d){return _0x4fa90d[_0x3768('0x2a')](_0x78a393)[_0x3768('0x2b')](function(_0x5a719d){return _0x5a719d;});}return null;};}function removeEntity(_0x4231f7,_0x2503e7){return function(_0x356c76){if(_0x356c76){return _0x356c76['destroy']()['then'](function(){_0x4231f7[_0x3768('0x21')](0xcc)['end']();});}};}function handleEntityNotFound(_0x2ff210,_0x19f622){return function(_0x2989c5){if(!_0x2989c5){_0x2ff210[_0x3768('0x2c')](0x194);}return _0x2989c5;};}function handleError(_0x37a40f,_0x2509ab){_0x2509ab=_0x2509ab||0x1f4;return function(_0x4cf5a2){logger[_0x3768('0x2d')](_0x4cf5a2[_0x3768('0x2e')]);if(_0x4cf5a2[_0x3768('0x2f')]){delete _0x4cf5a2['name'];}_0x37a40f[_0x3768('0x21')](_0x2509ab)['send'](_0x4cf5a2);};}exports[_0x3768('0x30')]=function(_0x26b553,_0x1b1682){var _0x43e678={},_0x26b35e={},_0x147b12={'count':0x0,'rows':[]};var _0x452176=_[_0x3768('0x31')](db[_0x3768('0x32')][_0x3768('0x33')],function(_0x2ed988){return{'name':_0x2ed988[_0x3768('0x34')],'type':_0x2ed988['type'][_0x3768('0x35')]};});_0x26b35e[_0x3768('0x36')]=_[_0x3768('0x31')](_0x452176,_0x3768('0x2f'));_0x26b35e[_0x3768('0x37')]=_[_0x3768('0x38')](_0x26b553[_0x3768('0x37')]);_0x26b35e[_0x3768('0x39')]=_[_0x3768('0x3a')](_0x26b35e[_0x3768('0x36')],_0x26b35e[_0x3768('0x37')]);_0x43e678[_0x3768('0x3b')]=_[_0x3768('0x3a')](_0x26b35e[_0x3768('0x36')],qs['fields'](_0x26b553[_0x3768('0x37')][_0x3768('0x3c')]));_0x43e678[_0x3768('0x3b')]=_0x43e678[_0x3768('0x3b')][_0x3768('0x3d')]?_0x43e678[_0x3768('0x3b')]:_0x26b35e[_0x3768('0x36')];if(!_0x26b553['query'][_0x3768('0x3e')]('nolimit')){_0x43e678['limit']=qs['limit'](_0x26b553[_0x3768('0x37')][_0x3768('0x24')]);_0x43e678['offset']=qs[_0x3768('0x23')](_0x26b553[_0x3768('0x37')][_0x3768('0x23')]);}_0x43e678[_0x3768('0x3f')]=qs[_0x3768('0x40')](_0x26b553['query'][_0x3768('0x40')]);_0x43e678[_0x3768('0x41')]=qs[_0x3768('0x39')](_[_0x3768('0x42')](_0x26b553[_0x3768('0x37')],_0x26b35e[_0x3768('0x39')]),_0x452176);if(_0x26b553[_0x3768('0x37')][_0x3768('0x43')]){_0x43e678[_0x3768('0x41')]=_[_0x3768('0x44')](_0x43e678['where'],{'$or':_[_0x3768('0x31')](_0x452176,function(_0x525a8a){if(_0x525a8a[_0x3768('0x45')]!==_0x3768('0x46')){var _0x920c0d={};_0x920c0d[_0x525a8a[_0x3768('0x2f')]]={'$like':'%'+_0x26b553[_0x3768('0x37')][_0x3768('0x43')]+'%'};return _0x920c0d;}})});}_0x43e678=_[_0x3768('0x44')]({},_0x43e678,_0x26b553['options']);var _0x53a799={'where':_0x43e678['where']};return db[_0x3768('0x32')][_0x3768('0x26')](_0x53a799)[_0x3768('0x2b')](function(_0x5ded8d){_0x147b12[_0x3768('0x26')]=_0x5ded8d;if(_0x26b553[_0x3768('0x37')][_0x3768('0x47')]){_0x43e678[_0x3768('0x48')]=[{'all':!![]}];}return db[_0x3768('0x32')][_0x3768('0x49')](_0x43e678);})['then'](function(_0x46bc4c){_0x147b12[_0x3768('0x4a')]=_0x46bc4c;return _0x147b12;})[_0x3768('0x2b')](respondWithFilteredResult(_0x1b1682,_0x43e678))[_0x3768('0x4b')](handleError(_0x1b1682,null));};exports[_0x3768('0x4c')]=function(_0x3ffb1f,_0x4e7d18){var _0x171241={'raw':!![],'where':{'id':_0x3ffb1f['params']['id']}},_0x42ffa3={};_0x42ffa3[_0x3768('0x36')]=_[_0x3768('0x38')](db[_0x3768('0x32')][_0x3768('0x33')]);_0x42ffa3['query']=_[_0x3768('0x38')](_0x3ffb1f[_0x3768('0x37')]);_0x42ffa3[_0x3768('0x39')]=_[_0x3768('0x3a')](_0x42ffa3['model'],_0x42ffa3[_0x3768('0x37')]);_0x171241[_0x3768('0x3b')]=_['intersection'](_0x42ffa3[_0x3768('0x36')],qs['fields'](_0x3ffb1f['query']['fields']));_0x171241[_0x3768('0x3b')]=_0x171241[_0x3768('0x3b')][_0x3768('0x3d')]?_0x171241['attributes']:_0x42ffa3[_0x3768('0x36')];if(_0x3ffb1f[_0x3768('0x37')][_0x3768('0x47')]){_0x171241[_0x3768('0x48')]=[{'all':!![]}];}_0x171241=_[_0x3768('0x44')]({},_0x171241,_0x3ffb1f[_0x3768('0x4d')]);return db[_0x3768('0x32')][_0x3768('0x4e')](_0x171241)[_0x3768('0x2b')](handleEntityNotFound(_0x4e7d18,null))[_0x3768('0x2b')](respondWithResult(_0x4e7d18,null))['catch'](handleError(_0x4e7d18,null));};exports[_0x3768('0x4f')]=function(_0x2f7239,_0x3c8c30){return db[_0x3768('0x32')][_0x3768('0x4f')](_0x2f7239[_0x3768('0x50')],{})[_0x3768('0x2b')](respondWithResult(_0x3c8c30,0xc9))['catch'](handleError(_0x3c8c30,null));};exports[_0x3768('0x2a')]=function(_0x332c9d,_0x5d653a){if(_0x332c9d[_0x3768('0x50')]['id']){delete _0x332c9d[_0x3768('0x50')]['id'];}return db[_0x3768('0x32')]['find']({'where':{'id':_0x332c9d['params']['id']}})[_0x3768('0x2b')](handleEntityNotFound(_0x5d653a,null))['then'](saveUpdates(_0x332c9d['body'],null))[_0x3768('0x2b')](respondWithResult(_0x5d653a,null))[_0x3768('0x4b')](handleError(_0x5d653a,null));};exports['destroy']=function(_0x471b0a,_0x27478b){return db[_0x3768('0x32')]['find']({'where':{'id':_0x471b0a[_0x3768('0x51')]['id']}})[_0x3768('0x2b')](handleEntityNotFound(_0x27478b,null))[_0x3768('0x2b')](removeEntity(_0x27478b,null))['catch'](handleError(_0x27478b,null));};exports['describe']=function(_0x4945d7,_0x58d846){return db['ChatInternalMessage'][_0x3768('0x52')]()[_0x3768('0x2b')](respondWithResult(_0x58d846,null))[_0x3768('0x4b')](handleError(_0x58d846,null));};function wrapUser(_0xe7f9a6){return function(_0x4abf19){var _0x1487b7=_0xe7f9a6[_0x3768('0x53')]({'plain':!![]});_0x1487b7['messages']=[];if(_0x4abf19){_0x1487b7[_0x3768('0x54')]=_0x4abf19['createdAt'];_0x1487b7['lastMessage']=_0x4abf19;}else{_0x1487b7[_0x3768('0x54')]=moment(0x0)[_0x3768('0x55')](_0x3768('0x56'));_0x1487b7[_0x3768('0x57')]={};}return _0x1487b7;};}exports[_0x3768('0x58')]=function(_0x58fe89,_0x587d8a,_0x135486){var _0x4d908a=[];return db[_0x3768('0x59')]['findAll']({'where':{'role':[_0x3768('0x5a'),_0x3768('0x5b'),_0x3768('0x5c')]},'attributes':['id',_0x3768('0x5d'),_0x3768('0x2f'),'role',_0x3768('0x5e'),_0x3768('0x5f'),'online','lastLoginAt',_0x3768('0x60'),_0x3768('0x61')],'order':qs[_0x3768('0x40')](_0x3768('0x62')),'include':[{'model':db[_0x3768('0x63')],'as':_0x3768('0x64'),'attributes':['id',_0x3768('0x2f'),_0x3768('0x45')],'through':{'attributes':[]}}]})['then'](function(_0x55ba0d){if(_0x55ba0d){var _0x450b15=_0x58fe89[_0x3768('0x5c')][_0x3768('0x53')]({'plain':!![]});if(!_0x450b15)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x450b15[_0x3768('0x65')]===_0x3768('0x5c')){return db[_0x3768('0x66')]['find']({'where':{'name':_0x3768('0x67'),'userProfileId':_0x450b15[_0x3768('0x68')]},'raw':!![]})['then'](function(_0xbe0c19){if(_0xbe0c19){if(_0xbe0c19[_0x3768('0x69')]===0x0){return db[_0x3768('0x6a')][_0x3768('0x49')]({'where':{'sectionId':_0xbe0c19['id']},'raw':!![]})['then'](function(_0x40fd42){var _0x88d07d=[];if(_[_0x3768('0x6b')](_0x40fd42)){_0x88d07d=_['filter'](_0x55ba0d,function(_0x102865){if(_0x102865['role']!==_0x3768('0x5a')){return _0x102865;}});return _0x88d07d;}else{for(var _0x5113e9=0x0;_0x5113e9<_0x55ba0d['length'];_0x5113e9++){var _0x3849c8=_0x55ba0d[_0x5113e9];if(_0x3849c8['role']===_0x3768('0x5a')){var _0x247669=_[_0x3768('0x4e')](_0x40fd42,function(_0x2c1e18){return _0x2c1e18['resourceId']===_0x3849c8['id'];});if(_0x247669)_0x88d07d[_0x3768('0x6c')](_0x3849c8);}else{_0x88d07d[_0x3768('0x6c')](_0x3849c8);}}return _0x88d07d;}});}else{return _0x55ba0d;}}else{var _0x3e6bb9=_['filter'](_0x55ba0d,function(_0x174eb2){if(_0x174eb2['role']!==_0x3768('0x5a')){return _0x174eb2;}});return _0x3e6bb9;}});}else{return _0x55ba0d;}}})[_0x3768('0x2b')](function(_0x132e5c){var _0x445b1a=[];if(_0x132e5c){_0x4d908a=_0x132e5c;for(var _0xaf1c1d=0x0;_0xaf1c1d<_0x132e5c[_0x3768('0x3d')];_0xaf1c1d+=0x1){_0x4d908a[_0xaf1c1d][_0x3768('0x6d')]=[];_0x445b1a['push'](db[_0x3768('0x32')][_0x3768('0x4e')]({'where':{'FromId':[_0x58fe89[_0x3768('0x5c')]['id'],_0x132e5c[_0xaf1c1d]['id']],'ToId':[_0x58fe89[_0x3768('0x5c')]['id'],_0x132e5c[_0xaf1c1d]['id']],'ChatGroupId':null},'attributes':['id','createdAt',_0x3768('0x6e'),'ToId',_0x3768('0x6f'),'body'],'order':qs[_0x3768('0x40')](_0x3768('0x70')),'limit':0x1,'offset':0x0,'raw':!![]})[_0x3768('0x2b')](wrapUser(_0x132e5c[_0xaf1c1d])));}return BPromise[_0x3768('0x71')](_0x445b1a);}return[];})[_0x3768('0x2b')](function(_0x2d5cb9){return{'rows':_0x2d5cb9,'count':_0x2d5cb9['length']};})['then'](respondWithResult(_0x587d8a,null))[_0x3768('0x4b')](handleError(_0x587d8a,null));};