Built motion from commit 3c2ce842.|2.6.31
[motion2.git] / server / api / chatGroup / chatGroup.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 _0x7ed2=['find','create','body','describe','getUnread','ChatInternalMessage','user','addMembers','ids','omit','getMembers','findOne','User','removeMembers','ChatGroupId','getMessages','order','$gte','split','format','YYYY-MM-DD\x20HH:mm:ss','rimraf','zip-dir','fast-json-patch','request-promise','moment','path','sox','to-csv','ejs','lodash','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','./chatGroup.socket','register','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','update','destroy','then','sendStatus','error','name','send','map','ChatGroup','rawAttributes','type','key','model','query','keys','filters','intersection','attributes','length','hasOwnProperty','nolimit','sort','where','pick','filter','VIRTUAL','merge','include','findAll','catch','show','params','fields','includeAll','options'];(function(_0x3877c1,_0x238c29){var _0x59056a=function(_0x3567cd){while(--_0x3567cd){_0x3877c1['push'](_0x3877c1['shift']());}};_0x59056a(++_0x238c29);}(_0x7ed2,0x18d));var _0x27ed=function(_0x404285,_0x5ceb1b){_0x404285=_0x404285-0x0;var _0x11c5eb=_0x7ed2[_0x404285];return _0x11c5eb;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x27ed('0x0'));var zipdir=require(_0x27ed('0x1'));var jsonpatch=require(_0x27ed('0x2'));var rp=require(_0x27ed('0x3'));var moment=require(_0x27ed('0x4'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require('util');var path=require(_0x27ed('0x5'));var sox=require(_0x27ed('0x6'));var csv=require(_0x27ed('0x7'));var ejs=require(_0x27ed('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x27ed('0x9'));var squel=require('squel');var crypto=require(_0x27ed('0xa'));var jsforce=require('jsforce');var deskjs=require(_0x27ed('0xb'));var toCsv=require(_0x27ed('0x7'));var querystring=require(_0x27ed('0xc'));var Papa=require(_0x27ed('0xd'));var Redis=require(_0x27ed('0xe'));var authService=require(_0x27ed('0xf'));var qs=require('../../components/parsers/qs');var as=require(_0x27ed('0x10'));var hardwareService=require(_0x27ed('0x11'));var logger=require('../../config/logger')(_0x27ed('0x12'));var utils=require(_0x27ed('0x13'));var config=require(_0x27ed('0x14'));var licenseUtil=require(_0x27ed('0x15'));var db=require(_0x27ed('0x16'))['db'];config[_0x27ed('0x17')]=_[_0x27ed('0x18')](config[_0x27ed('0x17')],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require(_0x27ed('0x19'))[_0x27ed('0x1a')](socket);function respondWithStatusCode(_0x539ba6,_0x50d611){_0x50d611=_0x50d611||0xcc;return function(_0x226dce){if(_0x226dce){return _0x539ba6['sendStatus'](_0x50d611);}return _0x539ba6[_0x27ed('0x1b')](_0x50d611)[_0x27ed('0x1c')]();};}function respondWithResult(_0x47b48b,_0x34e4aa){_0x34e4aa=_0x34e4aa||0xc8;return function(_0x3f211d){if(_0x3f211d){return _0x47b48b[_0x27ed('0x1b')](_0x34e4aa)[_0x27ed('0x1d')](_0x3f211d);}};}function respondWithFilteredResult(_0x5e0f0c,_0x723837){return function(_0x173180){if(_0x173180){var _0x5577f1=typeof _0x723837[_0x27ed('0x1e')]===_0x27ed('0x1f')&&typeof _0x723837[_0x27ed('0x20')]===_0x27ed('0x1f');var _0x2dd015=_0x173180[_0x27ed('0x21')];var _0xd1b0a0=_0x5577f1?0x0:_0x723837['offset'];var _0x38c7e0=_0x5577f1?_0x173180['count']:_0x723837['offset']+_0x723837[_0x27ed('0x20')];var _0x1df259;if(_0x38c7e0>=_0x2dd015){_0x38c7e0=_0x2dd015;_0x1df259=0xc8;}else{_0x1df259=0xce;}_0x5e0f0c[_0x27ed('0x1b')](_0x1df259);return _0x5e0f0c[_0x27ed('0x22')](_0x27ed('0x23'),_0xd1b0a0+'-'+_0x38c7e0+'/'+_0x2dd015)[_0x27ed('0x1d')](_0x173180);}return null;};}function patchUpdates(_0x5109d3){return function(_0x454ff8){try{jsonpatch[_0x27ed('0x24')](_0x454ff8,_0x5109d3,!![]);}catch(_0x4fad34){return BPromise[_0x27ed('0x25')](_0x4fad34);}return _0x454ff8['save']();};}function saveUpdates(_0x4ed974,_0x1fdb44){return function(_0x155e0b){if(_0x155e0b){return _0x155e0b[_0x27ed('0x26')](_0x4ed974)['then'](function(_0x1eb982){return _0x1eb982;});}return null;};}function removeEntity(_0x2a1448,_0x359e50){return function(_0x362bbb){if(_0x362bbb){return _0x362bbb[_0x27ed('0x27')]()[_0x27ed('0x28')](function(){_0x2a1448[_0x27ed('0x1b')](0xcc)['end']();});}};}function handleEntityNotFound(_0x3b1b1f,_0x41879d){return function(_0x19594d){if(!_0x19594d){_0x3b1b1f[_0x27ed('0x29')](0x194);}return _0x19594d;};}function handleError(_0x1ec560,_0x2fbf83){_0x2fbf83=_0x2fbf83||0x1f4;return function(_0x566534){logger[_0x27ed('0x2a')](_0x566534['stack']);if(_0x566534[_0x27ed('0x2b')]){delete _0x566534[_0x27ed('0x2b')];}_0x1ec560['status'](_0x2fbf83)[_0x27ed('0x2c')](_0x566534);};}exports['index']=function(_0x1cbe5a,_0x3f51bf){var _0x353129={},_0x921f2f={},_0x1aa210={'count':0x0,'rows':[]};var _0x4610a6=_[_0x27ed('0x2d')](db[_0x27ed('0x2e')][_0x27ed('0x2f')],function(_0x4735f4){return{'name':_0x4735f4['fieldName'],'type':_0x4735f4[_0x27ed('0x30')][_0x27ed('0x31')]};});_0x921f2f[_0x27ed('0x32')]=_['map'](_0x4610a6,_0x27ed('0x2b'));_0x921f2f[_0x27ed('0x33')]=_[_0x27ed('0x34')](_0x1cbe5a[_0x27ed('0x33')]);_0x921f2f[_0x27ed('0x35')]=_[_0x27ed('0x36')](_0x921f2f[_0x27ed('0x32')],_0x921f2f['query']);_0x353129[_0x27ed('0x37')]=_['intersection'](_0x921f2f[_0x27ed('0x32')],qs['fields'](_0x1cbe5a[_0x27ed('0x33')]['fields']));_0x353129['attributes']=_0x353129[_0x27ed('0x37')][_0x27ed('0x38')]?_0x353129[_0x27ed('0x37')]:_0x921f2f[_0x27ed('0x32')];if(!_0x1cbe5a[_0x27ed('0x33')][_0x27ed('0x39')](_0x27ed('0x3a'))){_0x353129[_0x27ed('0x20')]=qs[_0x27ed('0x20')](_0x1cbe5a[_0x27ed('0x33')][_0x27ed('0x20')]);_0x353129[_0x27ed('0x1e')]=qs[_0x27ed('0x1e')](_0x1cbe5a[_0x27ed('0x33')][_0x27ed('0x1e')]);}_0x353129['order']=qs['sort'](_0x1cbe5a['query'][_0x27ed('0x3b')]);_0x353129[_0x27ed('0x3c')]=qs['filters'](_[_0x27ed('0x3d')](_0x1cbe5a['query'],_0x921f2f[_0x27ed('0x35')]),_0x4610a6);if(_0x1cbe5a['query'][_0x27ed('0x3e')]){_0x353129[_0x27ed('0x3c')]=_['merge'](_0x353129[_0x27ed('0x3c')],{'$or':_[_0x27ed('0x2d')](_0x4610a6,function(_0x34ce08){if(_0x34ce08['type']!==_0x27ed('0x3f')){var _0x32e556={};_0x32e556[_0x34ce08['name']]={'$like':'%'+_0x1cbe5a['query']['filter']+'%'};return _0x32e556;}})});}_0x353129=_[_0x27ed('0x40')]({},_0x353129,_0x1cbe5a['options']);var _0x298aed={'where':_0x353129['where']};return db[_0x27ed('0x2e')][_0x27ed('0x21')](_0x298aed)[_0x27ed('0x28')](function(_0x591bdb){_0x1aa210['count']=_0x591bdb;if(_0x1cbe5a['query']['includeAll']){_0x353129[_0x27ed('0x41')]=[{'all':!![]}];}return db[_0x27ed('0x2e')][_0x27ed('0x42')](_0x353129);})[_0x27ed('0x28')](function(_0x28d4ce){_0x1aa210['rows']=_0x28d4ce;return _0x1aa210;})[_0x27ed('0x28')](respondWithFilteredResult(_0x3f51bf,_0x353129))[_0x27ed('0x43')](handleError(_0x3f51bf,null));};exports[_0x27ed('0x44')]=function(_0xe85aa0,_0xebec4f){var _0x356ca2={'raw':!![],'where':{'id':_0xe85aa0[_0x27ed('0x45')]['id']}},_0x12e02f={};_0x12e02f[_0x27ed('0x32')]=_[_0x27ed('0x34')](db[_0x27ed('0x2e')]['rawAttributes']);_0x12e02f[_0x27ed('0x33')]=_[_0x27ed('0x34')](_0xe85aa0[_0x27ed('0x33')]);_0x12e02f[_0x27ed('0x35')]=_['intersection'](_0x12e02f[_0x27ed('0x32')],_0x12e02f[_0x27ed('0x33')]);_0x356ca2['attributes']=_[_0x27ed('0x36')](_0x12e02f[_0x27ed('0x32')],qs[_0x27ed('0x46')](_0xe85aa0[_0x27ed('0x33')][_0x27ed('0x46')]));_0x356ca2['attributes']=_0x356ca2[_0x27ed('0x37')][_0x27ed('0x38')]?_0x356ca2[_0x27ed('0x37')]:_0x12e02f[_0x27ed('0x32')];if(_0xe85aa0['query'][_0x27ed('0x47')]){_0x356ca2['include']=[{'all':!![]}];}_0x356ca2=_[_0x27ed('0x40')]({},_0x356ca2,_0xe85aa0[_0x27ed('0x48')]);return db[_0x27ed('0x2e')][_0x27ed('0x49')](_0x356ca2)[_0x27ed('0x28')](handleEntityNotFound(_0xebec4f,null))[_0x27ed('0x28')](respondWithResult(_0xebec4f,null))[_0x27ed('0x43')](handleError(_0xebec4f,null));};exports[_0x27ed('0x4a')]=function(_0x33322d,_0x34a17c){return db['ChatGroup']['create'](_0x33322d[_0x27ed('0x4b')],{})[_0x27ed('0x28')](respondWithResult(_0x34a17c,0xc9))[_0x27ed('0x43')](handleError(_0x34a17c,null));};exports[_0x27ed('0x26')]=function(_0x34860b,_0xa140b0){if(_0x34860b[_0x27ed('0x4b')]['id']){delete _0x34860b['body']['id'];}return db[_0x27ed('0x2e')][_0x27ed('0x49')]({'where':{'id':_0x34860b[_0x27ed('0x45')]['id']}})[_0x27ed('0x28')](handleEntityNotFound(_0xa140b0,null))[_0x27ed('0x28')](saveUpdates(_0x34860b[_0x27ed('0x4b')],null))[_0x27ed('0x28')](respondWithResult(_0xa140b0,null))[_0x27ed('0x43')](handleError(_0xa140b0,null));};exports[_0x27ed('0x27')]=function(_0x16615b,_0x239eaf){return db[_0x27ed('0x2e')][_0x27ed('0x49')]({'where':{'id':_0x16615b[_0x27ed('0x45')]['id']}})['then'](handleEntityNotFound(_0x239eaf,null))[_0x27ed('0x28')](removeEntity(_0x239eaf,null))[_0x27ed('0x43')](handleError(_0x239eaf,null));};exports['describe']=function(_0x69657e,_0x328312){return db['ChatGroup'][_0x27ed('0x4c')]()[_0x27ed('0x28')](respondWithResult(_0x328312,null))[_0x27ed('0x43')](handleError(_0x328312,null));};exports[_0x27ed('0x4d')]=function(_0x2fc36b,_0x3b1009,_0x47fbd1){return db[_0x27ed('0x4e')][_0x27ed('0x21')]({'where':{'ChatGroupId':_0x2fc36b[_0x27ed('0x45')]['id'],'ToId':_0x2fc36b[_0x27ed('0x4f')]['id'],'read':![]}})[_0x27ed('0x28')](function(_0x5c232a){return{'id':_['toInteger'](_0x2fc36b[_0x27ed('0x45')]['id']),'count':_0x5c232a};})[_0x27ed('0x28')](respondWithResult(_0x3b1009,null))[_0x27ed('0x43')](handleError(_0x3b1009,null));};exports[_0x27ed('0x50')]=function(_0x302974,_0x56160f,_0x14bcf6){return db[_0x27ed('0x2e')][_0x27ed('0x49')]({'where':{'id':_0x302974[_0x27ed('0x45')]['id']}})['then'](handleEntityNotFound(_0x56160f,null))['then'](function(_0x625afb){if(_0x625afb){return _0x625afb[_0x27ed('0x50')](_0x302974[_0x27ed('0x4b')][_0x27ed('0x51')],_[_0x27ed('0x52')](_0x302974[_0x27ed('0x4b')],[_0x27ed('0x51'),'id'])||{});}})[_0x27ed('0x28')](respondWithResult(_0x56160f,null))[_0x27ed('0x43')](handleError(_0x56160f,null));};exports[_0x27ed('0x53')]=function(_0x797474,_0x435e4f,_0x22ff87){var _0x22ec29={};var _0x3d2b5f={};var _0x55c0a4;var _0x505a58;return db[_0x27ed('0x2e')][_0x27ed('0x54')]({'where':{'id':_0x797474['params']['id']}})[_0x27ed('0x28')](handleEntityNotFound(_0x435e4f,null))[_0x27ed('0x28')](function(_0x371fa){if(_0x371fa){_0x55c0a4=_0x371fa;_0x3d2b5f[_0x27ed('0x32')]=_[_0x27ed('0x34')](db[_0x27ed('0x55')]['rawAttributes']);_0x3d2b5f['query']=_[_0x27ed('0x34')](_0x797474[_0x27ed('0x33')]);_0x3d2b5f[_0x27ed('0x35')]=_[_0x27ed('0x36')](_0x3d2b5f[_0x27ed('0x32')],_0x3d2b5f['query']);_0x22ec29[_0x27ed('0x37')]=_[_0x27ed('0x36')](_0x3d2b5f['model'],qs[_0x27ed('0x46')](_0x797474['query'][_0x27ed('0x46')]));_0x22ec29[_0x27ed('0x37')]=_0x22ec29[_0x27ed('0x37')]['length']?_0x22ec29[_0x27ed('0x37')]:_0x3d2b5f[_0x27ed('0x32')];_0x22ec29['order']=qs[_0x27ed('0x3b')](_0x797474[_0x27ed('0x33')]['sort']);_0x22ec29['where']=qs[_0x27ed('0x35')](_['pick'](_0x797474['query'],_0x3d2b5f[_0x27ed('0x35')]));if(_0x797474[_0x27ed('0x33')][_0x27ed('0x3e')]){_0x22ec29[_0x27ed('0x3c')]=_[_0x27ed('0x40')](_0x22ec29[_0x27ed('0x3c')],{'$or':_['map'](_0x22ec29[_0x27ed('0x37')],function(_0x270e33){var _0x8ca490={};_0x8ca490[_0x270e33]={'$like':'%'+_0x797474[_0x27ed('0x33')][_0x27ed('0x3e')]+'%'};return _0x8ca490;})});}_0x22ec29=_[_0x27ed('0x40')]({},_0x22ec29,_0x797474['options']);return _0x55c0a4[_0x27ed('0x53')](_0x22ec29);}})[_0x27ed('0x28')](function(_0x20ec7d){if(_0x20ec7d){_0x505a58=_0x20ec7d[_0x27ed('0x38')];if(!_0x797474[_0x27ed('0x33')]['hasOwnProperty']('nolimit')){_0x22ec29['limit']=qs['limit'](_0x797474[_0x27ed('0x33')][_0x27ed('0x20')]);_0x22ec29['offset']=qs[_0x27ed('0x1e')](_0x797474['query'][_0x27ed('0x1e')]);}return _0x55c0a4['getMembers'](_0x22ec29);}})[_0x27ed('0x28')](function(_0x2ad31f){if(_0x2ad31f){return _0x2ad31f?{'count':_0x505a58,'rows':_0x2ad31f}:null;}})['then'](respondWithResult(_0x435e4f,null))[_0x27ed('0x43')](handleError(_0x435e4f,null));};exports['removeMembers']=function(_0x17482d,_0x34b96d,_0x18785e){return db[_0x27ed('0x2e')][_0x27ed('0x49')]({'where':{'id':_0x17482d['params']['id']}})[_0x27ed('0x28')](handleEntityNotFound(_0x34b96d,null))[_0x27ed('0x28')](function(_0x568e35){if(_0x568e35){return _0x568e35[_0x27ed('0x56')](_0x17482d[_0x27ed('0x33')][_0x27ed('0x51')]);}})[_0x27ed('0x28')](respondWithStatusCode(_0x34b96d,null))[_0x27ed('0x43')](handleError(_0x34b96d,null));};exports['addMessage']=function(_0x4537e4,_0x2b4119,_0x44f4f9){if(_0x4537e4['body']['id']){delete _0x4537e4[_0x27ed('0x4b')]['id'];}return db[_0x27ed('0x2e')]['find']({'where':{'id':_0x4537e4[_0x27ed('0x45')]['id']}})[_0x27ed('0x28')](handleEntityNotFound(_0x2b4119,null))[_0x27ed('0x28')](function(_0x4291c9){if(_0x4291c9){_0x4537e4[_0x27ed('0x4b')][_0x27ed('0x57')]=_0x4291c9['id'];return db[_0x27ed('0x4e')]['create'](_0x4537e4[_0x27ed('0x4b')]);}})['then'](respondWithResult(_0x2b4119,null))[_0x27ed('0x43')](handleError(_0x2b4119,null));};exports[_0x27ed('0x58')]=function(_0x5bbafe,_0xfcb4ac,_0x1765b6){var _0x273501={};var _0x56c74d={};var _0x1a50d3;var _0x33d56b;return db[_0x27ed('0x2e')][_0x27ed('0x54')]({'where':{'id':_0x5bbafe[_0x27ed('0x45')]['id']}})[_0x27ed('0x28')](handleEntityNotFound(_0xfcb4ac,null))[_0x27ed('0x28')](function(_0x1ef800){if(_0x1ef800){_0x1a50d3=_0x1ef800;_0x56c74d[_0x27ed('0x32')]=_[_0x27ed('0x34')](db[_0x27ed('0x4e')][_0x27ed('0x2f')]);_0x56c74d['query']=_[_0x27ed('0x34')](_0x5bbafe[_0x27ed('0x33')]);_0x56c74d[_0x27ed('0x35')]=_[_0x27ed('0x36')](_0x56c74d[_0x27ed('0x32')],_0x56c74d[_0x27ed('0x33')]);_0x273501[_0x27ed('0x37')]=_[_0x27ed('0x36')](_0x56c74d[_0x27ed('0x32')],qs[_0x27ed('0x46')](_0x5bbafe[_0x27ed('0x33')][_0x27ed('0x46')]));_0x273501[_0x27ed('0x37')]=_0x273501[_0x27ed('0x37')][_0x27ed('0x38')]?_0x273501['attributes']:_0x56c74d[_0x27ed('0x32')];_0x273501[_0x27ed('0x59')]=qs[_0x27ed('0x3b')](_0x5bbafe[_0x27ed('0x33')][_0x27ed('0x3b')]);_0x273501[_0x27ed('0x3c')]=qs[_0x27ed('0x35')](_[_0x27ed('0x3d')](_0x5bbafe[_0x27ed('0x33')],_0x56c74d[_0x27ed('0x35')]));if(_0x5bbafe['query'][_0x27ed('0x3e')]){_0x273501[_0x27ed('0x3c')]=_[_0x27ed('0x40')](_0x273501[_0x27ed('0x3c')],{'$or':_[_0x27ed('0x2d')](_0x273501[_0x27ed('0x37')],function(_0x54a88){var _0x5d47e3={};_0x5d47e3[_0x54a88]={'$like':'%'+_0x5bbafe[_0x27ed('0x33')][_0x27ed('0x3e')]+'%'};return _0x5d47e3;})});}if(_0x5bbafe[_0x27ed('0x33')][_0x27ed('0x5a')]){var _0x5b3661=_0x5bbafe[_0x27ed('0x33')][_0x27ed('0x5a')][_0x27ed('0x5b')](',');var _0x4837cf={};_0x4837cf[_0x5b3661[0x0]]={'$gte':moment(_0x5b3661[0x1])[_0x27ed('0x5c')](_0x27ed('0x5d'))};_0x273501[_0x27ed('0x3c')]=_['merge'](_0x273501[_0x27ed('0x3c')],_0x4837cf);}_0x273501=_[_0x27ed('0x40')]({},_0x273501,_0x5bbafe['options']);return _0x1a50d3[_0x27ed('0x58')](_0x273501);}})[_0x27ed('0x28')](function(_0x3b19cd){if(_0x3b19cd){_0x33d56b=_0x3b19cd[_0x27ed('0x38')];if(!_0x5bbafe['query'][_0x27ed('0x39')]('nolimit')){_0x273501[_0x27ed('0x20')]=qs[_0x27ed('0x20')](_0x5bbafe[_0x27ed('0x33')][_0x27ed('0x20')]);_0x273501[_0x27ed('0x1e')]=qs['offset'](_0x5bbafe[_0x27ed('0x33')][_0x27ed('0x1e')]);}return _0x1a50d3[_0x27ed('0x58')](_0x273501);}})[_0x27ed('0x28')](function(_0x2db126){if(_0x2db126){return _0x2db126?{'count':_0x33d56b,'rows':_0x2db126}:null;}})['then'](respondWithResult(_0xfcb4ac,null))[_0x27ed('0x43')](handleError(_0xfcb4ac,null));};