Built motion from commit c116dc8b.|2.6.30
[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 _0x4f2a=['jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','localhost','socket.io-emitter','./chatGroup.socket','register','sendStatus','status','end','offset','undefined','limit','count','set','Content-Range','json','apply','reject','save','update','then','name','send','index','map','ChatGroup','rawAttributes','fieldName','type','key','query','filters','model','attributes','intersection','fields','length','hasOwnProperty','nolimit','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','params','keys','create','body','destroy','find','describe','getUnread','ChatInternalMessage','user','toInteger','addMembers','ids','omit','getMembers','User','order','removeMembers','addMessage','getMessages','findOne','$gte','format','YYYY-MM-DD\x20HH:mm:ss','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','crypto'];(function(_0x13169c,_0x2c2300){var _0x1cc09e=function(_0x4c6dbe){while(--_0x4c6dbe){_0x13169c['push'](_0x13169c['shift']());}};_0x1cc09e(++_0x2c2300);}(_0x4f2a,0x195));var _0xa4f2=function(_0x446208,_0xb483fb){_0x446208=_0x446208-0x0;var _0xe49563=_0x4f2a[_0x446208];return _0xe49563;};'use strict';var emlformat=require(_0xa4f2('0x0'));var rimraf=require(_0xa4f2('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xa4f2('0x2'));var rp=require(_0xa4f2('0x3'));var moment=require(_0xa4f2('0x4'));var BPromise=require(_0xa4f2('0x5'));var Mustache=require(_0xa4f2('0x6'));var util=require(_0xa4f2('0x7'));var path=require(_0xa4f2('0x8'));var sox=require(_0xa4f2('0x9'));var csv=require(_0xa4f2('0xa'));var ejs=require(_0xa4f2('0xb'));var fs=require('fs');var fs_extra=require(_0xa4f2('0xc'));var _=require(_0xa4f2('0xd'));var squel=require('squel');var crypto=require(_0xa4f2('0xe'));var jsforce=require(_0xa4f2('0xf'));var deskjs=require(_0xa4f2('0x10'));var toCsv=require(_0xa4f2('0xa'));var querystring=require(_0xa4f2('0x11'));var Papa=require(_0xa4f2('0x12'));var Redis=require(_0xa4f2('0x13'));var authService=require(_0xa4f2('0x14'));var qs=require(_0xa4f2('0x15'));var as=require(_0xa4f2('0x16'));var hardwareService=require(_0xa4f2('0x17'));var logger=require(_0xa4f2('0x18'))(_0xa4f2('0x19'));var utils=require(_0xa4f2('0x1a'));var config=require(_0xa4f2('0x1b'));var licenseUtil=require(_0xa4f2('0x1c'));var db=require(_0xa4f2('0x1d'))['db'];config[_0xa4f2('0x1e')]=_['defaults'](config[_0xa4f2('0x1e')],{'host':_0xa4f2('0x1f'),'port':0x18eb});var socket=require(_0xa4f2('0x20'))(new Redis(config[_0xa4f2('0x1e')]));require(_0xa4f2('0x21'))[_0xa4f2('0x22')](socket);function respondWithStatusCode(_0x454634,_0x4776a8){_0x4776a8=_0x4776a8||0xcc;return function(_0x401bee){if(_0x401bee){return _0x454634[_0xa4f2('0x23')](_0x4776a8);}return _0x454634[_0xa4f2('0x24')](_0x4776a8)[_0xa4f2('0x25')]();};}function respondWithResult(_0xc47dea,_0x1330b9){_0x1330b9=_0x1330b9||0xc8;return function(_0x130e5f){if(_0x130e5f){return _0xc47dea[_0xa4f2('0x24')](_0x1330b9)['json'](_0x130e5f);}};}function respondWithFilteredResult(_0x35e2dd,_0x30dd17){return function(_0x4d08aa){if(_0x4d08aa){var _0xe11dc8=typeof _0x30dd17[_0xa4f2('0x26')]===_0xa4f2('0x27')&&typeof _0x30dd17[_0xa4f2('0x28')]===_0xa4f2('0x27');var _0x11b45f=_0x4d08aa[_0xa4f2('0x29')];var _0x445fbe=_0xe11dc8?0x0:_0x30dd17['offset'];var _0x41a35a=_0xe11dc8?_0x4d08aa[_0xa4f2('0x29')]:_0x30dd17['offset']+_0x30dd17['limit'];var _0x340642;if(_0x41a35a>=_0x11b45f){_0x41a35a=_0x11b45f;_0x340642=0xc8;}else{_0x340642=0xce;}_0x35e2dd[_0xa4f2('0x24')](_0x340642);return _0x35e2dd[_0xa4f2('0x2a')](_0xa4f2('0x2b'),_0x445fbe+'-'+_0x41a35a+'/'+_0x11b45f)[_0xa4f2('0x2c')](_0x4d08aa);}return null;};}function patchUpdates(_0x19b1b3){return function(_0xe619e5){try{jsonpatch[_0xa4f2('0x2d')](_0xe619e5,_0x19b1b3,!![]);}catch(_0x3bb3a4){return BPromise[_0xa4f2('0x2e')](_0x3bb3a4);}return _0xe619e5[_0xa4f2('0x2f')]();};}function saveUpdates(_0x5e5354,_0xe1d8ee){return function(_0x29177b){if(_0x29177b){return _0x29177b[_0xa4f2('0x30')](_0x5e5354)[_0xa4f2('0x31')](function(_0x44da25){return _0x44da25;});}return null;};}function removeEntity(_0x572e74,_0xdd3bcb){return function(_0x2830b5){if(_0x2830b5){return _0x2830b5['destroy']()[_0xa4f2('0x31')](function(){_0x572e74[_0xa4f2('0x24')](0xcc)[_0xa4f2('0x25')]();});}};}function handleEntityNotFound(_0x394698,_0x48584d){return function(_0x5d1994){if(!_0x5d1994){_0x394698[_0xa4f2('0x23')](0x194);}return _0x5d1994;};}function handleError(_0x397583,_0x2ef193){_0x2ef193=_0x2ef193||0x1f4;return function(_0x505fb9){logger['error'](_0x505fb9['stack']);if(_0x505fb9[_0xa4f2('0x32')]){delete _0x505fb9['name'];}_0x397583[_0xa4f2('0x24')](_0x2ef193)[_0xa4f2('0x33')](_0x505fb9);};}exports[_0xa4f2('0x34')]=function(_0x42a0bf,_0x106632){var _0x69f304={},_0x34f999={},_0x29cca6={'count':0x0,'rows':[]};var _0x3e125b=_[_0xa4f2('0x35')](db[_0xa4f2('0x36')][_0xa4f2('0x37')],function(_0x1e8420){return{'name':_0x1e8420[_0xa4f2('0x38')],'type':_0x1e8420[_0xa4f2('0x39')][_0xa4f2('0x3a')]};});_0x34f999['model']=_[_0xa4f2('0x35')](_0x3e125b,_0xa4f2('0x32'));_0x34f999[_0xa4f2('0x3b')]=_['keys'](_0x42a0bf[_0xa4f2('0x3b')]);_0x34f999[_0xa4f2('0x3c')]=_['intersection'](_0x34f999[_0xa4f2('0x3d')],_0x34f999[_0xa4f2('0x3b')]);_0x69f304[_0xa4f2('0x3e')]=_[_0xa4f2('0x3f')](_0x34f999['model'],qs[_0xa4f2('0x40')](_0x42a0bf['query'][_0xa4f2('0x40')]));_0x69f304[_0xa4f2('0x3e')]=_0x69f304[_0xa4f2('0x3e')][_0xa4f2('0x41')]?_0x69f304[_0xa4f2('0x3e')]:_0x34f999[_0xa4f2('0x3d')];if(!_0x42a0bf[_0xa4f2('0x3b')][_0xa4f2('0x42')](_0xa4f2('0x43'))){_0x69f304[_0xa4f2('0x28')]=qs['limit'](_0x42a0bf['query']['limit']);_0x69f304['offset']=qs[_0xa4f2('0x26')](_0x42a0bf[_0xa4f2('0x3b')][_0xa4f2('0x26')]);}_0x69f304['order']=qs[_0xa4f2('0x44')](_0x42a0bf[_0xa4f2('0x3b')][_0xa4f2('0x44')]);_0x69f304[_0xa4f2('0x45')]=qs['filters'](_[_0xa4f2('0x46')](_0x42a0bf[_0xa4f2('0x3b')],_0x34f999[_0xa4f2('0x3c')]),_0x3e125b);if(_0x42a0bf['query'][_0xa4f2('0x47')]){_0x69f304[_0xa4f2('0x45')]=_[_0xa4f2('0x48')](_0x69f304[_0xa4f2('0x45')],{'$or':_[_0xa4f2('0x35')](_0x3e125b,function(_0x52ef3c){if(_0x52ef3c['type']!==_0xa4f2('0x49')){var _0x4042ab={};_0x4042ab[_0x52ef3c['name']]={'$like':'%'+_0x42a0bf[_0xa4f2('0x3b')]['filter']+'%'};return _0x4042ab;}})});}_0x69f304=_[_0xa4f2('0x48')]({},_0x69f304,_0x42a0bf[_0xa4f2('0x4a')]);var _0x7c524c={'where':_0x69f304[_0xa4f2('0x45')]};return db[_0xa4f2('0x36')][_0xa4f2('0x29')](_0x7c524c)[_0xa4f2('0x31')](function(_0xcbc18){_0x29cca6[_0xa4f2('0x29')]=_0xcbc18;if(_0x42a0bf[_0xa4f2('0x3b')][_0xa4f2('0x4b')]){_0x69f304[_0xa4f2('0x4c')]=[{'all':!![]}];}return db['ChatGroup'][_0xa4f2('0x4d')](_0x69f304);})[_0xa4f2('0x31')](function(_0x3aae56){_0x29cca6[_0xa4f2('0x4e')]=_0x3aae56;return _0x29cca6;})[_0xa4f2('0x31')](respondWithFilteredResult(_0x106632,_0x69f304))[_0xa4f2('0x4f')](handleError(_0x106632,null));};exports[_0xa4f2('0x50')]=function(_0x1cae23,_0x21707f){var _0x260143={'raw':!![],'where':{'id':_0x1cae23[_0xa4f2('0x51')]['id']}},_0x17189c={};_0x17189c['model']=_[_0xa4f2('0x52')](db[_0xa4f2('0x36')][_0xa4f2('0x37')]);_0x17189c[_0xa4f2('0x3b')]=_[_0xa4f2('0x52')](_0x1cae23[_0xa4f2('0x3b')]);_0x17189c[_0xa4f2('0x3c')]=_['intersection'](_0x17189c['model'],_0x17189c['query']);_0x260143[_0xa4f2('0x3e')]=_[_0xa4f2('0x3f')](_0x17189c['model'],qs[_0xa4f2('0x40')](_0x1cae23['query'][_0xa4f2('0x40')]));_0x260143['attributes']=_0x260143[_0xa4f2('0x3e')][_0xa4f2('0x41')]?_0x260143[_0xa4f2('0x3e')]:_0x17189c[_0xa4f2('0x3d')];if(_0x1cae23[_0xa4f2('0x3b')][_0xa4f2('0x4b')]){_0x260143[_0xa4f2('0x4c')]=[{'all':!![]}];}_0x260143=_[_0xa4f2('0x48')]({},_0x260143,_0x1cae23[_0xa4f2('0x4a')]);return db[_0xa4f2('0x36')]['find'](_0x260143)[_0xa4f2('0x31')](handleEntityNotFound(_0x21707f,null))['then'](respondWithResult(_0x21707f,null))['catch'](handleError(_0x21707f,null));};exports[_0xa4f2('0x53')]=function(_0x4faa65,_0x9d2cfb){return db['ChatGroup'][_0xa4f2('0x53')](_0x4faa65[_0xa4f2('0x54')],{})['then'](respondWithResult(_0x9d2cfb,0xc9))[_0xa4f2('0x4f')](handleError(_0x9d2cfb,null));};exports[_0xa4f2('0x30')]=function(_0x49f4cf,_0xf09bea){if(_0x49f4cf[_0xa4f2('0x54')]['id']){delete _0x49f4cf[_0xa4f2('0x54')]['id'];}return db['ChatGroup']['find']({'where':{'id':_0x49f4cf[_0xa4f2('0x51')]['id']}})[_0xa4f2('0x31')](handleEntityNotFound(_0xf09bea,null))[_0xa4f2('0x31')](saveUpdates(_0x49f4cf[_0xa4f2('0x54')],null))[_0xa4f2('0x31')](respondWithResult(_0xf09bea,null))[_0xa4f2('0x4f')](handleError(_0xf09bea,null));};exports[_0xa4f2('0x55')]=function(_0x23c35a,_0x3ab33a){return db[_0xa4f2('0x36')][_0xa4f2('0x56')]({'where':{'id':_0x23c35a['params']['id']}})[_0xa4f2('0x31')](handleEntityNotFound(_0x3ab33a,null))['then'](removeEntity(_0x3ab33a,null))[_0xa4f2('0x4f')](handleError(_0x3ab33a,null));};exports[_0xa4f2('0x57')]=function(_0x38c2a3,_0x2f0e10){return db[_0xa4f2('0x36')]['describe']()[_0xa4f2('0x31')](respondWithResult(_0x2f0e10,null))[_0xa4f2('0x4f')](handleError(_0x2f0e10,null));};exports[_0xa4f2('0x58')]=function(_0x333aa5,_0x17d8af,_0x4792e9){return db[_0xa4f2('0x59')][_0xa4f2('0x29')]({'where':{'ChatGroupId':_0x333aa5[_0xa4f2('0x51')]['id'],'ToId':_0x333aa5[_0xa4f2('0x5a')]['id'],'read':![]}})[_0xa4f2('0x31')](function(_0x215964){return{'id':_[_0xa4f2('0x5b')](_0x333aa5[_0xa4f2('0x51')]['id']),'count':_0x215964};})[_0xa4f2('0x31')](respondWithResult(_0x17d8af,null))[_0xa4f2('0x4f')](handleError(_0x17d8af,null));};exports['addMembers']=function(_0x45ed57,_0x178862,_0x835bb7){return db[_0xa4f2('0x36')][_0xa4f2('0x56')]({'where':{'id':_0x45ed57['params']['id']}})[_0xa4f2('0x31')](handleEntityNotFound(_0x178862,null))[_0xa4f2('0x31')](function(_0x8256dd){if(_0x8256dd){return _0x8256dd[_0xa4f2('0x5c')](_0x45ed57[_0xa4f2('0x54')][_0xa4f2('0x5d')],_[_0xa4f2('0x5e')](_0x45ed57[_0xa4f2('0x54')],[_0xa4f2('0x5d'),'id'])||{});}})[_0xa4f2('0x31')](respondWithResult(_0x178862,null))[_0xa4f2('0x4f')](handleError(_0x178862,null));};exports[_0xa4f2('0x5f')]=function(_0x128940,_0x4ac257,_0x43c085){var _0x15a6c={};var _0x320a44={};var _0x4588b;var _0x247e41;return db[_0xa4f2('0x36')]['findOne']({'where':{'id':_0x128940['params']['id']}})['then'](handleEntityNotFound(_0x4ac257,null))[_0xa4f2('0x31')](function(_0x5db286){if(_0x5db286){_0x4588b=_0x5db286;_0x320a44[_0xa4f2('0x3d')]=_['keys'](db[_0xa4f2('0x60')]['rawAttributes']);_0x320a44[_0xa4f2('0x3b')]=_['keys'](_0x128940[_0xa4f2('0x3b')]);_0x320a44['filters']=_['intersection'](_0x320a44[_0xa4f2('0x3d')],_0x320a44['query']);_0x15a6c[_0xa4f2('0x3e')]=_[_0xa4f2('0x3f')](_0x320a44['model'],qs['fields'](_0x128940[_0xa4f2('0x3b')]['fields']));_0x15a6c[_0xa4f2('0x3e')]=_0x15a6c[_0xa4f2('0x3e')][_0xa4f2('0x41')]?_0x15a6c[_0xa4f2('0x3e')]:_0x320a44[_0xa4f2('0x3d')];_0x15a6c[_0xa4f2('0x61')]=qs['sort'](_0x128940[_0xa4f2('0x3b')][_0xa4f2('0x44')]);_0x15a6c[_0xa4f2('0x45')]=qs[_0xa4f2('0x3c')](_[_0xa4f2('0x46')](_0x128940[_0xa4f2('0x3b')],_0x320a44[_0xa4f2('0x3c')]));if(_0x128940[_0xa4f2('0x3b')]['filter']){_0x15a6c['where']=_[_0xa4f2('0x48')](_0x15a6c[_0xa4f2('0x45')],{'$or':_['map'](_0x15a6c['attributes'],function(_0x1f8fe4){var _0x407269={};_0x407269[_0x1f8fe4]={'$like':'%'+_0x128940['query']['filter']+'%'};return _0x407269;})});}_0x15a6c=_[_0xa4f2('0x48')]({},_0x15a6c,_0x128940[_0xa4f2('0x4a')]);return _0x4588b[_0xa4f2('0x5f')](_0x15a6c);}})[_0xa4f2('0x31')](function(_0x332bd9){if(_0x332bd9){_0x247e41=_0x332bd9[_0xa4f2('0x41')];if(!_0x128940[_0xa4f2('0x3b')][_0xa4f2('0x42')](_0xa4f2('0x43'))){_0x15a6c[_0xa4f2('0x28')]=qs['limit'](_0x128940['query'][_0xa4f2('0x28')]);_0x15a6c[_0xa4f2('0x26')]=qs['offset'](_0x128940[_0xa4f2('0x3b')][_0xa4f2('0x26')]);}return _0x4588b[_0xa4f2('0x5f')](_0x15a6c);}})[_0xa4f2('0x31')](function(_0x15f940){if(_0x15f940){return _0x15f940?{'count':_0x247e41,'rows':_0x15f940}:null;}})['then'](respondWithResult(_0x4ac257,null))[_0xa4f2('0x4f')](handleError(_0x4ac257,null));};exports[_0xa4f2('0x62')]=function(_0x5ad157,_0x475044,_0x3040f3){return db[_0xa4f2('0x36')][_0xa4f2('0x56')]({'where':{'id':_0x5ad157[_0xa4f2('0x51')]['id']}})[_0xa4f2('0x31')](handleEntityNotFound(_0x475044,null))[_0xa4f2('0x31')](function(_0x91a3ca){if(_0x91a3ca){return _0x91a3ca[_0xa4f2('0x62')](_0x5ad157[_0xa4f2('0x3b')][_0xa4f2('0x5d')]);}})[_0xa4f2('0x31')](respondWithStatusCode(_0x475044,null))[_0xa4f2('0x4f')](handleError(_0x475044,null));};exports[_0xa4f2('0x63')]=function(_0x5c45a6,_0xe978e5,_0x5976a0){if(_0x5c45a6['body']['id']){delete _0x5c45a6['body']['id'];}return db['ChatGroup'][_0xa4f2('0x56')]({'where':{'id':_0x5c45a6['params']['id']}})['then'](handleEntityNotFound(_0xe978e5,null))['then'](function(_0x646450){if(_0x646450){_0x5c45a6[_0xa4f2('0x54')]['ChatGroupId']=_0x646450['id'];return db[_0xa4f2('0x59')][_0xa4f2('0x53')](_0x5c45a6[_0xa4f2('0x54')]);}})['then'](respondWithResult(_0xe978e5,null))[_0xa4f2('0x4f')](handleError(_0xe978e5,null));};exports[_0xa4f2('0x64')]=function(_0x29fa42,_0x10c84e,_0x33979e){var _0x89c509={};var _0x148fb7={};var _0x2a48f0;var _0x2c52af;return db[_0xa4f2('0x36')][_0xa4f2('0x65')]({'where':{'id':_0x29fa42[_0xa4f2('0x51')]['id']}})[_0xa4f2('0x31')](handleEntityNotFound(_0x10c84e,null))[_0xa4f2('0x31')](function(_0xbf9849){if(_0xbf9849){_0x2a48f0=_0xbf9849;_0x148fb7[_0xa4f2('0x3d')]=_[_0xa4f2('0x52')](db['ChatInternalMessage'][_0xa4f2('0x37')]);_0x148fb7[_0xa4f2('0x3b')]=_['keys'](_0x29fa42[_0xa4f2('0x3b')]);_0x148fb7[_0xa4f2('0x3c')]=_[_0xa4f2('0x3f')](_0x148fb7['model'],_0x148fb7[_0xa4f2('0x3b')]);_0x89c509[_0xa4f2('0x3e')]=_[_0xa4f2('0x3f')](_0x148fb7[_0xa4f2('0x3d')],qs[_0xa4f2('0x40')](_0x29fa42['query'][_0xa4f2('0x40')]));_0x89c509[_0xa4f2('0x3e')]=_0x89c509[_0xa4f2('0x3e')]['length']?_0x89c509['attributes']:_0x148fb7['model'];_0x89c509[_0xa4f2('0x61')]=qs[_0xa4f2('0x44')](_0x29fa42['query'][_0xa4f2('0x44')]);_0x89c509['where']=qs[_0xa4f2('0x3c')](_[_0xa4f2('0x46')](_0x29fa42[_0xa4f2('0x3b')],_0x148fb7[_0xa4f2('0x3c')]));if(_0x29fa42['query'][_0xa4f2('0x47')]){_0x89c509[_0xa4f2('0x45')]=_[_0xa4f2('0x48')](_0x89c509[_0xa4f2('0x45')],{'$or':_[_0xa4f2('0x35')](_0x89c509[_0xa4f2('0x3e')],function(_0x40352b){var _0x45a466={};_0x45a466[_0x40352b]={'$like':'%'+_0x29fa42[_0xa4f2('0x3b')][_0xa4f2('0x47')]+'%'};return _0x45a466;})});}if(_0x29fa42[_0xa4f2('0x3b')][_0xa4f2('0x66')]){var _0x5d4c50=_0x29fa42[_0xa4f2('0x3b')][_0xa4f2('0x66')]['split'](',');var _0x110e99={};_0x110e99[_0x5d4c50[0x0]]={'$gte':moment(_0x5d4c50[0x1])[_0xa4f2('0x67')](_0xa4f2('0x68'))};_0x89c509['where']=_[_0xa4f2('0x48')](_0x89c509[_0xa4f2('0x45')],_0x110e99);}_0x89c509=_['merge']({},_0x89c509,_0x29fa42[_0xa4f2('0x4a')]);return _0x2a48f0['getMessages'](_0x89c509);}})[_0xa4f2('0x31')](function(_0x1ca3c2){if(_0x1ca3c2){_0x2c52af=_0x1ca3c2[_0xa4f2('0x41')];if(!_0x29fa42[_0xa4f2('0x3b')]['hasOwnProperty'](_0xa4f2('0x43'))){_0x89c509[_0xa4f2('0x28')]=qs['limit'](_0x29fa42['query'][_0xa4f2('0x28')]);_0x89c509['offset']=qs[_0xa4f2('0x26')](_0x29fa42['query']['offset']);}return _0x2a48f0[_0xa4f2('0x64')](_0x89c509);}})[_0xa4f2('0x31')](function(_0x1fc6ea){if(_0x1fc6ea){return _0x1fc6ea?{'count':_0x2c52af,'rows':_0x1fc6ea}:null;}})[_0xa4f2('0x31')](respondWithResult(_0x10c84e,null))[_0xa4f2('0x4f')](handleError(_0x10c84e,null));};