Built motion from commit 56a37f2a.|2.6.21
[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 _0x63e3=['../../config/environment','../../config/license/util','redis','defaults','localhost','socket.io-emitter','./chatGroup.socket','register','status','end','json','offset','undefined','limit','count','set','apply','reject','update','destroy','then','sendStatus','error','stack','name','send','index','map','ChatGroup','rawAttributes','type','key','query','filters','intersection','attributes','fields','nolimit','sort','where','filter','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','keys','model','merge','find','create','body','params','describe','ChatInternalMessage','user','toInteger','addMembers','ids','omit','getMembers','findOne','User','length','order','pick','hasOwnProperty','removeMembers','addMessage','ChatGroupId','getMessages','$gte','format','YYYY-MM-DD\x20HH:mm:ss','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','util','sox','to-csv','ejs','lodash','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/utils'];(function(_0x2c91e9,_0x2fb965){var _0x13f0ff=function(_0xb39edf){while(--_0xb39edf){_0x2c91e9['push'](_0x2c91e9['shift']());}};_0x13f0ff(++_0x2fb965);}(_0x63e3,0xae));var _0x363e=function(_0x1f9f37,_0x18776e){_0x1f9f37=_0x1f9f37-0x0;var _0x21c080=_0x63e3[_0x1f9f37];return _0x21c080;};'use strict';var emlformat=require(_0x363e('0x0'));var rimraf=require(_0x363e('0x1'));var zipdir=require(_0x363e('0x2'));var jsonpatch=require(_0x363e('0x3'));var rp=require('request-promise');var moment=require(_0x363e('0x4'));var BPromise=require(_0x363e('0x5'));var Mustache=require('mustache');var util=require(_0x363e('0x6'));var path=require('path');var sox=require(_0x363e('0x7'));var csv=require(_0x363e('0x8'));var ejs=require(_0x363e('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x363e('0xa'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x363e('0xb'));var deskjs=require(_0x363e('0xc'));var toCsv=require(_0x363e('0x8'));var querystring=require(_0x363e('0xd'));var Papa=require(_0x363e('0xe'));var Redis=require('ioredis');var authService=require(_0x363e('0xf'));var qs=require(_0x363e('0x10'));var as=require(_0x363e('0x11'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x363e('0x12'));var utils=require(_0x363e('0x13'));var config=require(_0x363e('0x14'));var licenseUtil=require(_0x363e('0x15'));var db=require('../../mysqldb')['db'];config[_0x363e('0x16')]=_[_0x363e('0x17')](config['redis'],{'host':_0x363e('0x18'),'port':0x18eb});var socket=require(_0x363e('0x19'))(new Redis(config[_0x363e('0x16')]));require(_0x363e('0x1a'))[_0x363e('0x1b')](socket);function respondWithStatusCode(_0x5e3786,_0x152f73){_0x152f73=_0x152f73||0xcc;return function(_0x3b433a){if(_0x3b433a){return _0x5e3786['sendStatus'](_0x152f73);}return _0x5e3786[_0x363e('0x1c')](_0x152f73)[_0x363e('0x1d')]();};}function respondWithResult(_0x24c98d,_0x10477a){_0x10477a=_0x10477a||0xc8;return function(_0x1edc28){if(_0x1edc28){return _0x24c98d[_0x363e('0x1c')](_0x10477a)[_0x363e('0x1e')](_0x1edc28);}};}function respondWithFilteredResult(_0x57a9a3,_0x346c83){return function(_0x3da329){if(_0x3da329){var _0x367e5b=typeof _0x346c83[_0x363e('0x1f')]===_0x363e('0x20')&&typeof _0x346c83[_0x363e('0x21')]===_0x363e('0x20');var _0x526a51=_0x3da329[_0x363e('0x22')];var _0x61002=_0x367e5b?0x0:_0x346c83[_0x363e('0x1f')];var _0x25391f=_0x367e5b?_0x3da329['count']:_0x346c83[_0x363e('0x1f')]+_0x346c83[_0x363e('0x21')];var _0x2130f2;if(_0x25391f>=_0x526a51){_0x25391f=_0x526a51;_0x2130f2=0xc8;}else{_0x2130f2=0xce;}_0x57a9a3[_0x363e('0x1c')](_0x2130f2);return _0x57a9a3[_0x363e('0x23')]('Content-Range',_0x61002+'-'+_0x25391f+'/'+_0x526a51)[_0x363e('0x1e')](_0x3da329);}return null;};}function patchUpdates(_0x1fa772){return function(_0xbff830){try{jsonpatch[_0x363e('0x24')](_0xbff830,_0x1fa772,!![]);}catch(_0x366ac7){return BPromise[_0x363e('0x25')](_0x366ac7);}return _0xbff830['save']();};}function saveUpdates(_0x33c2cd,_0x601d1c){return function(_0x2bd132){if(_0x2bd132){return _0x2bd132[_0x363e('0x26')](_0x33c2cd)['then'](function(_0x4aa09d){return _0x4aa09d;});}return null;};}function removeEntity(_0x1cf864,_0x3fb5dc){return function(_0x447a97){if(_0x447a97){return _0x447a97[_0x363e('0x27')]()[_0x363e('0x28')](function(){_0x1cf864[_0x363e('0x1c')](0xcc)[_0x363e('0x1d')]();});}};}function handleEntityNotFound(_0x3acce4,_0x2e8ead){return function(_0x2953ba){if(!_0x2953ba){_0x3acce4[_0x363e('0x29')](0x194);}return _0x2953ba;};}function handleError(_0x3ac8e7,_0x31194e){_0x31194e=_0x31194e||0x1f4;return function(_0x406e62){logger[_0x363e('0x2a')](_0x406e62[_0x363e('0x2b')]);if(_0x406e62[_0x363e('0x2c')]){delete _0x406e62[_0x363e('0x2c')];}_0x3ac8e7[_0x363e('0x1c')](_0x31194e)[_0x363e('0x2d')](_0x406e62);};}exports[_0x363e('0x2e')]=function(_0x4d085c,_0x325fc3){var _0x13a78b={},_0x5e1400={},_0x339b46={'count':0x0,'rows':[]};var _0x5474ee=_[_0x363e('0x2f')](db[_0x363e('0x30')][_0x363e('0x31')],function(_0x121978){return{'name':_0x121978['fieldName'],'type':_0x121978[_0x363e('0x32')][_0x363e('0x33')]};});_0x5e1400['model']=_[_0x363e('0x2f')](_0x5474ee,_0x363e('0x2c'));_0x5e1400[_0x363e('0x34')]=_['keys'](_0x4d085c[_0x363e('0x34')]);_0x5e1400[_0x363e('0x35')]=_[_0x363e('0x36')](_0x5e1400['model'],_0x5e1400[_0x363e('0x34')]);_0x13a78b[_0x363e('0x37')]=_['intersection'](_0x5e1400['model'],qs[_0x363e('0x38')](_0x4d085c[_0x363e('0x34')][_0x363e('0x38')]));_0x13a78b[_0x363e('0x37')]=_0x13a78b[_0x363e('0x37')]['length']?_0x13a78b[_0x363e('0x37')]:_0x5e1400['model'];if(!_0x4d085c['query']['hasOwnProperty'](_0x363e('0x39'))){_0x13a78b['limit']=qs['limit'](_0x4d085c[_0x363e('0x34')]['limit']);_0x13a78b['offset']=qs['offset'](_0x4d085c[_0x363e('0x34')]['offset']);}_0x13a78b['order']=qs['sort'](_0x4d085c['query'][_0x363e('0x3a')]);_0x13a78b[_0x363e('0x3b')]=qs[_0x363e('0x35')](_['pick'](_0x4d085c[_0x363e('0x34')],_0x5e1400[_0x363e('0x35')]),_0x5474ee);if(_0x4d085c[_0x363e('0x34')][_0x363e('0x3c')]){_0x13a78b[_0x363e('0x3b')]=_['merge'](_0x13a78b[_0x363e('0x3b')],{'$or':_[_0x363e('0x2f')](_0x5474ee,function(_0x59b9f1){if(_0x59b9f1['type']!==_0x363e('0x3d')){var _0x49edc7={};_0x49edc7[_0x59b9f1[_0x363e('0x2c')]]={'$like':'%'+_0x4d085c['query']['filter']+'%'};return _0x49edc7;}})});}_0x13a78b=_['merge']({},_0x13a78b,_0x4d085c[_0x363e('0x3e')]);var _0x560c08={'where':_0x13a78b[_0x363e('0x3b')]};return db[_0x363e('0x30')]['count'](_0x560c08)[_0x363e('0x28')](function(_0x105494){_0x339b46['count']=_0x105494;if(_0x4d085c[_0x363e('0x34')][_0x363e('0x3f')]){_0x13a78b[_0x363e('0x40')]=[{'all':!![]}];}return db[_0x363e('0x30')][_0x363e('0x41')](_0x13a78b);})[_0x363e('0x28')](function(_0xddac23){_0x339b46[_0x363e('0x42')]=_0xddac23;return _0x339b46;})[_0x363e('0x28')](respondWithFilteredResult(_0x325fc3,_0x13a78b))[_0x363e('0x43')](handleError(_0x325fc3,null));};exports[_0x363e('0x44')]=function(_0x53db1d,_0x2f4b92){var _0x7cfca5={'raw':!![],'where':{'id':_0x53db1d['params']['id']}},_0xb07fbd={};_0xb07fbd['model']=_['keys'](db[_0x363e('0x30')][_0x363e('0x31')]);_0xb07fbd[_0x363e('0x34')]=_[_0x363e('0x45')](_0x53db1d[_0x363e('0x34')]);_0xb07fbd[_0x363e('0x35')]=_[_0x363e('0x36')](_0xb07fbd[_0x363e('0x46')],_0xb07fbd[_0x363e('0x34')]);_0x7cfca5[_0x363e('0x37')]=_[_0x363e('0x36')](_0xb07fbd[_0x363e('0x46')],qs[_0x363e('0x38')](_0x53db1d[_0x363e('0x34')][_0x363e('0x38')]));_0x7cfca5[_0x363e('0x37')]=_0x7cfca5[_0x363e('0x37')]['length']?_0x7cfca5[_0x363e('0x37')]:_0xb07fbd[_0x363e('0x46')];if(_0x53db1d[_0x363e('0x34')][_0x363e('0x3f')]){_0x7cfca5[_0x363e('0x40')]=[{'all':!![]}];}_0x7cfca5=_[_0x363e('0x47')]({},_0x7cfca5,_0x53db1d[_0x363e('0x3e')]);return db[_0x363e('0x30')][_0x363e('0x48')](_0x7cfca5)[_0x363e('0x28')](handleEntityNotFound(_0x2f4b92,null))[_0x363e('0x28')](respondWithResult(_0x2f4b92,null))[_0x363e('0x43')](handleError(_0x2f4b92,null));};exports[_0x363e('0x49')]=function(_0x50977d,_0xb7259f){return db[_0x363e('0x30')][_0x363e('0x49')](_0x50977d[_0x363e('0x4a')],{})['then'](respondWithResult(_0xb7259f,0xc9))[_0x363e('0x43')](handleError(_0xb7259f,null));};exports[_0x363e('0x26')]=function(_0x5d82d5,_0x2b5c31){if(_0x5d82d5[_0x363e('0x4a')]['id']){delete _0x5d82d5[_0x363e('0x4a')]['id'];}return db[_0x363e('0x30')][_0x363e('0x48')]({'where':{'id':_0x5d82d5['params']['id']}})[_0x363e('0x28')](handleEntityNotFound(_0x2b5c31,null))[_0x363e('0x28')](saveUpdates(_0x5d82d5['body'],null))[_0x363e('0x28')](respondWithResult(_0x2b5c31,null))[_0x363e('0x43')](handleError(_0x2b5c31,null));};exports[_0x363e('0x27')]=function(_0x2cb414,_0x564656){return db[_0x363e('0x30')]['find']({'where':{'id':_0x2cb414[_0x363e('0x4b')]['id']}})[_0x363e('0x28')](handleEntityNotFound(_0x564656,null))['then'](removeEntity(_0x564656,null))[_0x363e('0x43')](handleError(_0x564656,null));};exports['describe']=function(_0x45929e,_0x5e8556){return db[_0x363e('0x30')][_0x363e('0x4c')]()[_0x363e('0x28')](respondWithResult(_0x5e8556,null))[_0x363e('0x43')](handleError(_0x5e8556,null));};exports['getUnread']=function(_0x47f98d,_0x54c651,_0x3955be){return db[_0x363e('0x4d')][_0x363e('0x22')]({'where':{'ChatGroupId':_0x47f98d[_0x363e('0x4b')]['id'],'ToId':_0x47f98d[_0x363e('0x4e')]['id'],'read':![]}})[_0x363e('0x28')](function(_0x16be4d){return{'id':_[_0x363e('0x4f')](_0x47f98d[_0x363e('0x4b')]['id']),'count':_0x16be4d};})[_0x363e('0x28')](respondWithResult(_0x54c651,null))[_0x363e('0x43')](handleError(_0x54c651,null));};exports[_0x363e('0x50')]=function(_0x3b4c19,_0x4f9c3c,_0x56e709){return db[_0x363e('0x30')]['find']({'where':{'id':_0x3b4c19[_0x363e('0x4b')]['id']}})[_0x363e('0x28')](handleEntityNotFound(_0x4f9c3c,null))[_0x363e('0x28')](function(_0x283e2f){if(_0x283e2f){return _0x283e2f[_0x363e('0x50')](_0x3b4c19[_0x363e('0x4a')][_0x363e('0x51')],_[_0x363e('0x52')](_0x3b4c19['body'],[_0x363e('0x51'),'id'])||{});}})['then'](respondWithResult(_0x4f9c3c,null))[_0x363e('0x43')](handleError(_0x4f9c3c,null));};exports[_0x363e('0x53')]=function(_0x57569f,_0xdf4151,_0x1158e0){var _0x3c2dda={};var _0x4547a2={};var _0x5389e2;var _0xdbd5ee;return db[_0x363e('0x30')][_0x363e('0x54')]({'where':{'id':_0x57569f['params']['id']}})[_0x363e('0x28')](handleEntityNotFound(_0xdf4151,null))['then'](function(_0x328a2b){if(_0x328a2b){_0x5389e2=_0x328a2b;_0x4547a2['model']=_[_0x363e('0x45')](db[_0x363e('0x55')][_0x363e('0x31')]);_0x4547a2[_0x363e('0x34')]=_[_0x363e('0x45')](_0x57569f[_0x363e('0x34')]);_0x4547a2[_0x363e('0x35')]=_[_0x363e('0x36')](_0x4547a2[_0x363e('0x46')],_0x4547a2[_0x363e('0x34')]);_0x3c2dda[_0x363e('0x37')]=_[_0x363e('0x36')](_0x4547a2[_0x363e('0x46')],qs[_0x363e('0x38')](_0x57569f[_0x363e('0x34')][_0x363e('0x38')]));_0x3c2dda['attributes']=_0x3c2dda[_0x363e('0x37')][_0x363e('0x56')]?_0x3c2dda[_0x363e('0x37')]:_0x4547a2['model'];_0x3c2dda[_0x363e('0x57')]=qs[_0x363e('0x3a')](_0x57569f[_0x363e('0x34')]['sort']);_0x3c2dda['where']=qs[_0x363e('0x35')](_[_0x363e('0x58')](_0x57569f[_0x363e('0x34')],_0x4547a2[_0x363e('0x35')]));if(_0x57569f[_0x363e('0x34')][_0x363e('0x3c')]){_0x3c2dda[_0x363e('0x3b')]=_[_0x363e('0x47')](_0x3c2dda['where'],{'$or':_[_0x363e('0x2f')](_0x3c2dda[_0x363e('0x37')],function(_0x581eec){var _0x483a60={};_0x483a60[_0x581eec]={'$like':'%'+_0x57569f['query'][_0x363e('0x3c')]+'%'};return _0x483a60;})});}_0x3c2dda=_['merge']({},_0x3c2dda,_0x57569f[_0x363e('0x3e')]);return _0x5389e2[_0x363e('0x53')](_0x3c2dda);}})['then'](function(_0x3d430d){if(_0x3d430d){_0xdbd5ee=_0x3d430d[_0x363e('0x56')];if(!_0x57569f[_0x363e('0x34')][_0x363e('0x59')]('nolimit')){_0x3c2dda['limit']=qs[_0x363e('0x21')](_0x57569f[_0x363e('0x34')][_0x363e('0x21')]);_0x3c2dda[_0x363e('0x1f')]=qs[_0x363e('0x1f')](_0x57569f[_0x363e('0x34')][_0x363e('0x1f')]);}return _0x5389e2[_0x363e('0x53')](_0x3c2dda);}})[_0x363e('0x28')](function(_0x4ee198){if(_0x4ee198){return _0x4ee198?{'count':_0xdbd5ee,'rows':_0x4ee198}:null;}})[_0x363e('0x28')](respondWithResult(_0xdf4151,null))['catch'](handleError(_0xdf4151,null));};exports['removeMembers']=function(_0x12292a,_0x329ffe,_0x21a218){return db[_0x363e('0x30')][_0x363e('0x48')]({'where':{'id':_0x12292a[_0x363e('0x4b')]['id']}})[_0x363e('0x28')](handleEntityNotFound(_0x329ffe,null))[_0x363e('0x28')](function(_0x1b434c){if(_0x1b434c){return _0x1b434c[_0x363e('0x5a')](_0x12292a[_0x363e('0x34')][_0x363e('0x51')]);}})[_0x363e('0x28')](respondWithStatusCode(_0x329ffe,null))['catch'](handleError(_0x329ffe,null));};exports[_0x363e('0x5b')]=function(_0x418a00,_0x25a587,_0x85d180){if(_0x418a00[_0x363e('0x4a')]['id']){delete _0x418a00[_0x363e('0x4a')]['id'];}return db[_0x363e('0x30')][_0x363e('0x48')]({'where':{'id':_0x418a00[_0x363e('0x4b')]['id']}})[_0x363e('0x28')](handleEntityNotFound(_0x25a587,null))[_0x363e('0x28')](function(_0x4f5d50){if(_0x4f5d50){_0x418a00['body'][_0x363e('0x5c')]=_0x4f5d50['id'];return db[_0x363e('0x4d')][_0x363e('0x49')](_0x418a00[_0x363e('0x4a')]);}})[_0x363e('0x28')](respondWithResult(_0x25a587,null))[_0x363e('0x43')](handleError(_0x25a587,null));};exports[_0x363e('0x5d')]=function(_0x761510,_0x293ce0,_0x43bf51){var _0x29b8b1={};var _0x3578c8={};var _0x1b38e7;var _0x36582d;return db[_0x363e('0x30')]['findOne']({'where':{'id':_0x761510[_0x363e('0x4b')]['id']}})[_0x363e('0x28')](handleEntityNotFound(_0x293ce0,null))['then'](function(_0xb9d3cf){if(_0xb9d3cf){_0x1b38e7=_0xb9d3cf;_0x3578c8[_0x363e('0x46')]=_[_0x363e('0x45')](db[_0x363e('0x4d')][_0x363e('0x31')]);_0x3578c8[_0x363e('0x34')]=_[_0x363e('0x45')](_0x761510['query']);_0x3578c8['filters']=_[_0x363e('0x36')](_0x3578c8['model'],_0x3578c8[_0x363e('0x34')]);_0x29b8b1[_0x363e('0x37')]=_[_0x363e('0x36')](_0x3578c8['model'],qs[_0x363e('0x38')](_0x761510[_0x363e('0x34')][_0x363e('0x38')]));_0x29b8b1['attributes']=_0x29b8b1['attributes'][_0x363e('0x56')]?_0x29b8b1[_0x363e('0x37')]:_0x3578c8['model'];_0x29b8b1[_0x363e('0x57')]=qs[_0x363e('0x3a')](_0x761510[_0x363e('0x34')][_0x363e('0x3a')]);_0x29b8b1[_0x363e('0x3b')]=qs[_0x363e('0x35')](_['pick'](_0x761510[_0x363e('0x34')],_0x3578c8[_0x363e('0x35')]));if(_0x761510['query'][_0x363e('0x3c')]){_0x29b8b1['where']=_[_0x363e('0x47')](_0x29b8b1[_0x363e('0x3b')],{'$or':_[_0x363e('0x2f')](_0x29b8b1[_0x363e('0x37')],function(_0x1f5b9d){var _0x29f89b={};_0x29f89b[_0x1f5b9d]={'$like':'%'+_0x761510[_0x363e('0x34')]['filter']+'%'};return _0x29f89b;})});}if(_0x761510[_0x363e('0x34')][_0x363e('0x5e')]){var _0x31add2=_0x761510[_0x363e('0x34')][_0x363e('0x5e')]['split'](',');var _0x3a136c={};_0x3a136c[_0x31add2[0x0]]={'$gte':moment(_0x31add2[0x1])[_0x363e('0x5f')](_0x363e('0x60'))};_0x29b8b1['where']=_[_0x363e('0x47')](_0x29b8b1[_0x363e('0x3b')],_0x3a136c);}_0x29b8b1=_['merge']({},_0x29b8b1,_0x761510['options']);return _0x1b38e7[_0x363e('0x5d')](_0x29b8b1);}})[_0x363e('0x28')](function(_0x2a1d86){if(_0x2a1d86){_0x36582d=_0x2a1d86[_0x363e('0x56')];if(!_0x761510[_0x363e('0x34')]['hasOwnProperty'](_0x363e('0x39'))){_0x29b8b1[_0x363e('0x21')]=qs[_0x363e('0x21')](_0x761510[_0x363e('0x34')][_0x363e('0x21')]);_0x29b8b1[_0x363e('0x1f')]=qs['offset'](_0x761510[_0x363e('0x34')]['offset']);}return _0x1b38e7[_0x363e('0x5d')](_0x29b8b1);}})[_0x363e('0x28')](function(_0x53f201){if(_0x53f201){return _0x53f201?{'count':_0x36582d,'rows':_0x53f201}:null;}})[_0x363e('0x28')](respondWithResult(_0x293ce0,null))['catch'](handleError(_0x293ce0,null));};