b30df344e8a9a47df9cb81dc9f65df209a986191
[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 _0xf626=['status','end','offset','undefined','count','Content-Range','json','apply','reject','save','update','then','destroy','error','name','send','ChatGroup','rawAttributes','fieldName','type','key','model','map','query','filters','intersection','attributes','length','hasOwnProperty','nolimit','limit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','params','keys','fields','find','create','body','describe','user','toInteger','addMembers','ids','getMembers','User','removeMembers','addMessage','ChatInternalMessage','getMessages','findOne','$gte','format','YYYY-MM-DD\x20HH:mm:ss','rimraf','zip-dir','fast-json-patch','moment','bluebird','util','path','to-csv','lodash','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','redis','defaults','localhost','socket.io-emitter','./chatGroup.socket','sendStatus'];(function(_0x2b10c6,_0x185590){var _0x3789d2=function(_0x272987){while(--_0x272987){_0x2b10c6['push'](_0x2b10c6['shift']());}};_0x3789d2(++_0x185590);}(_0xf626,0x1be));var _0x6f62=function(_0x59a2a0,_0x487aaa){_0x59a2a0=_0x59a2a0-0x0;var _0x10e546=_0xf626[_0x59a2a0];return _0x10e546;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x6f62('0x0'));var zipdir=require(_0x6f62('0x1'));var jsonpatch=require(_0x6f62('0x2'));var rp=require('request-promise');var moment=require(_0x6f62('0x3'));var BPromise=require(_0x6f62('0x4'));var Mustache=require('mustache');var util=require(_0x6f62('0x5'));var path=require(_0x6f62('0x6'));var sox=require('sox');var csv=require(_0x6f62('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x6f62('0x8'));var squel=require('squel');var crypto=require(_0x6f62('0x9'));var jsforce=require(_0x6f62('0xa'));var deskjs=require(_0x6f62('0xb'));var toCsv=require('to-csv');var querystring=require(_0x6f62('0xc'));var Papa=require(_0x6f62('0xd'));var Redis=require('ioredis');var authService=require(_0x6f62('0xe'));var qs=require(_0x6f62('0xf'));var as=require(_0x6f62('0x10'));var hardwareService=require(_0x6f62('0x11'));var logger=require(_0x6f62('0x12'))(_0x6f62('0x13'));var utils=require(_0x6f62('0x14'));var config=require(_0x6f62('0x15'));var licenseUtil=require(_0x6f62('0x16'));var db=require('../../mysqldb')['db'];config[_0x6f62('0x17')]=_[_0x6f62('0x18')](config[_0x6f62('0x17')],{'host':_0x6f62('0x19'),'port':0x18eb});var socket=require(_0x6f62('0x1a'))(new Redis(config[_0x6f62('0x17')]));require(_0x6f62('0x1b'))['register'](socket);function respondWithStatusCode(_0x346e84,_0x247f5b){_0x247f5b=_0x247f5b||0xcc;return function(_0x16e941){if(_0x16e941){return _0x346e84[_0x6f62('0x1c')](_0x247f5b);}return _0x346e84[_0x6f62('0x1d')](_0x247f5b)[_0x6f62('0x1e')]();};}function respondWithResult(_0x25129d,_0x426414){_0x426414=_0x426414||0xc8;return function(_0x1aa848){if(_0x1aa848){return _0x25129d[_0x6f62('0x1d')](_0x426414)['json'](_0x1aa848);}};}function respondWithFilteredResult(_0x36349e,_0x7e6049){return function(_0x5cbc34){if(_0x5cbc34){var _0x468f60=typeof _0x7e6049[_0x6f62('0x1f')]==='undefined'&&typeof _0x7e6049['limit']===_0x6f62('0x20');var _0x425afb=_0x5cbc34[_0x6f62('0x21')];var _0x3d820a=_0x468f60?0x0:_0x7e6049[_0x6f62('0x1f')];var _0xca6cdc=_0x468f60?_0x5cbc34[_0x6f62('0x21')]:_0x7e6049[_0x6f62('0x1f')]+_0x7e6049['limit'];var _0x2fc490;if(_0xca6cdc>=_0x425afb){_0xca6cdc=_0x425afb;_0x2fc490=0xc8;}else{_0x2fc490=0xce;}_0x36349e[_0x6f62('0x1d')](_0x2fc490);return _0x36349e['set'](_0x6f62('0x22'),_0x3d820a+'-'+_0xca6cdc+'/'+_0x425afb)[_0x6f62('0x23')](_0x5cbc34);}return null;};}function patchUpdates(_0x3819b6){return function(_0x39221c){try{jsonpatch[_0x6f62('0x24')](_0x39221c,_0x3819b6,!![]);}catch(_0x257a8a){return BPromise[_0x6f62('0x25')](_0x257a8a);}return _0x39221c[_0x6f62('0x26')]();};}function saveUpdates(_0x361dc8,_0x4bd646){return function(_0x10b0dd){if(_0x10b0dd){return _0x10b0dd[_0x6f62('0x27')](_0x361dc8)[_0x6f62('0x28')](function(_0x4185e2){return _0x4185e2;});}return null;};}function removeEntity(_0x5816bb,_0x462146){return function(_0x37fa30){if(_0x37fa30){return _0x37fa30[_0x6f62('0x29')]()[_0x6f62('0x28')](function(){_0x5816bb[_0x6f62('0x1d')](0xcc)[_0x6f62('0x1e')]();});}};}function handleEntityNotFound(_0x252f61,_0x127ca0){return function(_0xaf0c40){if(!_0xaf0c40){_0x252f61[_0x6f62('0x1c')](0x194);}return _0xaf0c40;};}function handleError(_0x2a4706,_0x57693c){_0x57693c=_0x57693c||0x1f4;return function(_0x1b8533){logger[_0x6f62('0x2a')](_0x1b8533['stack']);if(_0x1b8533[_0x6f62('0x2b')]){delete _0x1b8533[_0x6f62('0x2b')];}_0x2a4706[_0x6f62('0x1d')](_0x57693c)[_0x6f62('0x2c')](_0x1b8533);};}exports['index']=function(_0x1e8cd1,_0x28f08c){var _0x39f6ab={},_0x294be6={},_0x153480={'count':0x0,'rows':[]};var _0x1aa4bf=_['map'](db[_0x6f62('0x2d')][_0x6f62('0x2e')],function(_0xf73b20){return{'name':_0xf73b20[_0x6f62('0x2f')],'type':_0xf73b20[_0x6f62('0x30')][_0x6f62('0x31')]};});_0x294be6[_0x6f62('0x32')]=_[_0x6f62('0x33')](_0x1aa4bf,_0x6f62('0x2b'));_0x294be6[_0x6f62('0x34')]=_['keys'](_0x1e8cd1[_0x6f62('0x34')]);_0x294be6[_0x6f62('0x35')]=_[_0x6f62('0x36')](_0x294be6[_0x6f62('0x32')],_0x294be6['query']);_0x39f6ab[_0x6f62('0x37')]=_[_0x6f62('0x36')](_0x294be6[_0x6f62('0x32')],qs['fields'](_0x1e8cd1[_0x6f62('0x34')]['fields']));_0x39f6ab[_0x6f62('0x37')]=_0x39f6ab[_0x6f62('0x37')][_0x6f62('0x38')]?_0x39f6ab[_0x6f62('0x37')]:_0x294be6[_0x6f62('0x32')];if(!_0x1e8cd1[_0x6f62('0x34')][_0x6f62('0x39')](_0x6f62('0x3a'))){_0x39f6ab[_0x6f62('0x3b')]=qs['limit'](_0x1e8cd1[_0x6f62('0x34')][_0x6f62('0x3b')]);_0x39f6ab['offset']=qs[_0x6f62('0x1f')](_0x1e8cd1[_0x6f62('0x34')][_0x6f62('0x1f')]);}_0x39f6ab[_0x6f62('0x3c')]=qs[_0x6f62('0x3d')](_0x1e8cd1[_0x6f62('0x34')][_0x6f62('0x3d')]);_0x39f6ab[_0x6f62('0x3e')]=qs['filters'](_[_0x6f62('0x3f')](_0x1e8cd1[_0x6f62('0x34')],_0x294be6['filters']),_0x1aa4bf);if(_0x1e8cd1[_0x6f62('0x34')][_0x6f62('0x40')]){_0x39f6ab[_0x6f62('0x3e')]=_[_0x6f62('0x41')](_0x39f6ab['where'],{'$or':_['map'](_0x1aa4bf,function(_0x45c099){if(_0x45c099[_0x6f62('0x30')]!==_0x6f62('0x42')){var _0x44c2ab={};_0x44c2ab[_0x45c099[_0x6f62('0x2b')]]={'$like':'%'+_0x1e8cd1[_0x6f62('0x34')][_0x6f62('0x40')]+'%'};return _0x44c2ab;}})});}_0x39f6ab=_[_0x6f62('0x41')]({},_0x39f6ab,_0x1e8cd1[_0x6f62('0x43')]);var _0x361fa3={'where':_0x39f6ab['where']};return db[_0x6f62('0x2d')]['count'](_0x361fa3)[_0x6f62('0x28')](function(_0x580a3b){_0x153480[_0x6f62('0x21')]=_0x580a3b;if(_0x1e8cd1[_0x6f62('0x34')][_0x6f62('0x44')]){_0x39f6ab[_0x6f62('0x45')]=[{'all':!![]}];}return db['ChatGroup'][_0x6f62('0x46')](_0x39f6ab);})['then'](function(_0x3333e9){_0x153480[_0x6f62('0x47')]=_0x3333e9;return _0x153480;})[_0x6f62('0x28')](respondWithFilteredResult(_0x28f08c,_0x39f6ab))[_0x6f62('0x48')](handleError(_0x28f08c,null));};exports[_0x6f62('0x49')]=function(_0x1a11b1,_0x326f62){var _0x151718={'raw':!![],'where':{'id':_0x1a11b1[_0x6f62('0x4a')]['id']}},_0x1f6918={};_0x1f6918[_0x6f62('0x32')]=_[_0x6f62('0x4b')](db[_0x6f62('0x2d')][_0x6f62('0x2e')]);_0x1f6918[_0x6f62('0x34')]=_['keys'](_0x1a11b1[_0x6f62('0x34')]);_0x1f6918['filters']=_['intersection'](_0x1f6918[_0x6f62('0x32')],_0x1f6918[_0x6f62('0x34')]);_0x151718[_0x6f62('0x37')]=_[_0x6f62('0x36')](_0x1f6918[_0x6f62('0x32')],qs['fields'](_0x1a11b1[_0x6f62('0x34')][_0x6f62('0x4c')]));_0x151718[_0x6f62('0x37')]=_0x151718[_0x6f62('0x37')][_0x6f62('0x38')]?_0x151718[_0x6f62('0x37')]:_0x1f6918[_0x6f62('0x32')];if(_0x1a11b1[_0x6f62('0x34')]['includeAll']){_0x151718[_0x6f62('0x45')]=[{'all':!![]}];}_0x151718=_[_0x6f62('0x41')]({},_0x151718,_0x1a11b1[_0x6f62('0x43')]);return db[_0x6f62('0x2d')][_0x6f62('0x4d')](_0x151718)[_0x6f62('0x28')](handleEntityNotFound(_0x326f62,null))[_0x6f62('0x28')](respondWithResult(_0x326f62,null))['catch'](handleError(_0x326f62,null));};exports['create']=function(_0x48c5ca,_0xd06fb){return db[_0x6f62('0x2d')][_0x6f62('0x4e')](_0x48c5ca['body'],{})[_0x6f62('0x28')](respondWithResult(_0xd06fb,0xc9))[_0x6f62('0x48')](handleError(_0xd06fb,null));};exports[_0x6f62('0x27')]=function(_0x3348a2,_0x2b7bbc){if(_0x3348a2[_0x6f62('0x4f')]['id']){delete _0x3348a2[_0x6f62('0x4f')]['id'];}return db[_0x6f62('0x2d')][_0x6f62('0x4d')]({'where':{'id':_0x3348a2[_0x6f62('0x4a')]['id']}})['then'](handleEntityNotFound(_0x2b7bbc,null))[_0x6f62('0x28')](saveUpdates(_0x3348a2[_0x6f62('0x4f')],null))[_0x6f62('0x28')](respondWithResult(_0x2b7bbc,null))['catch'](handleError(_0x2b7bbc,null));};exports['destroy']=function(_0x446aea,_0x2655e7){return db['ChatGroup']['find']({'where':{'id':_0x446aea[_0x6f62('0x4a')]['id']}})[_0x6f62('0x28')](handleEntityNotFound(_0x2655e7,null))['then'](removeEntity(_0x2655e7,null))['catch'](handleError(_0x2655e7,null));};exports[_0x6f62('0x50')]=function(_0xdd10a1,_0x43f78c){return db[_0x6f62('0x2d')][_0x6f62('0x50')]()[_0x6f62('0x28')](respondWithResult(_0x43f78c,null))[_0x6f62('0x48')](handleError(_0x43f78c,null));};exports['getUnread']=function(_0x2beaac,_0x2ded7f,_0x479aeb){return db['ChatInternalMessage'][_0x6f62('0x21')]({'where':{'ChatGroupId':_0x2beaac[_0x6f62('0x4a')]['id'],'ToId':_0x2beaac[_0x6f62('0x51')]['id'],'read':![]}})[_0x6f62('0x28')](function(_0x9f743e){return{'id':_[_0x6f62('0x52')](_0x2beaac[_0x6f62('0x4a')]['id']),'count':_0x9f743e};})['then'](respondWithResult(_0x2ded7f,null))[_0x6f62('0x48')](handleError(_0x2ded7f,null));};exports['addMembers']=function(_0x3c867a,_0x1112ba,_0x1b53c4){return db[_0x6f62('0x2d')][_0x6f62('0x4d')]({'where':{'id':_0x3c867a['params']['id']}})[_0x6f62('0x28')](handleEntityNotFound(_0x1112ba,null))[_0x6f62('0x28')](function(_0x1e87ff){if(_0x1e87ff){return _0x1e87ff[_0x6f62('0x53')](_0x3c867a[_0x6f62('0x4f')][_0x6f62('0x54')],_['omit'](_0x3c867a[_0x6f62('0x4f')],[_0x6f62('0x54'),'id'])||{});}})['then'](respondWithResult(_0x1112ba,null))[_0x6f62('0x48')](handleError(_0x1112ba,null));};exports[_0x6f62('0x55')]=function(_0xfe5f2b,_0x481128,_0x1e5234){var _0x4e9323={};var _0x460447={};var _0x772cc0;var _0x293dbb;return db['ChatGroup']['findOne']({'where':{'id':_0xfe5f2b['params']['id']}})[_0x6f62('0x28')](handleEntityNotFound(_0x481128,null))[_0x6f62('0x28')](function(_0x32b83b){if(_0x32b83b){_0x772cc0=_0x32b83b;_0x460447[_0x6f62('0x32')]=_[_0x6f62('0x4b')](db[_0x6f62('0x56')]['rawAttributes']);_0x460447[_0x6f62('0x34')]=_[_0x6f62('0x4b')](_0xfe5f2b[_0x6f62('0x34')]);_0x460447[_0x6f62('0x35')]=_[_0x6f62('0x36')](_0x460447['model'],_0x460447['query']);_0x4e9323[_0x6f62('0x37')]=_[_0x6f62('0x36')](_0x460447[_0x6f62('0x32')],qs[_0x6f62('0x4c')](_0xfe5f2b[_0x6f62('0x34')][_0x6f62('0x4c')]));_0x4e9323['attributes']=_0x4e9323['attributes'][_0x6f62('0x38')]?_0x4e9323[_0x6f62('0x37')]:_0x460447[_0x6f62('0x32')];_0x4e9323[_0x6f62('0x3c')]=qs['sort'](_0xfe5f2b[_0x6f62('0x34')]['sort']);_0x4e9323[_0x6f62('0x3e')]=qs[_0x6f62('0x35')](_['pick'](_0xfe5f2b[_0x6f62('0x34')],_0x460447[_0x6f62('0x35')]));if(_0xfe5f2b['query'][_0x6f62('0x40')]){_0x4e9323[_0x6f62('0x3e')]=_[_0x6f62('0x41')](_0x4e9323['where'],{'$or':_['map'](_0x4e9323[_0x6f62('0x37')],function(_0x53f872){var _0x29cb5d={};_0x29cb5d[_0x53f872]={'$like':'%'+_0xfe5f2b[_0x6f62('0x34')][_0x6f62('0x40')]+'%'};return _0x29cb5d;})});}_0x4e9323=_[_0x6f62('0x41')]({},_0x4e9323,_0xfe5f2b[_0x6f62('0x43')]);return _0x772cc0[_0x6f62('0x55')](_0x4e9323);}})['then'](function(_0x42b4fc){if(_0x42b4fc){_0x293dbb=_0x42b4fc[_0x6f62('0x38')];if(!_0xfe5f2b[_0x6f62('0x34')][_0x6f62('0x39')](_0x6f62('0x3a'))){_0x4e9323[_0x6f62('0x3b')]=qs[_0x6f62('0x3b')](_0xfe5f2b['query']['limit']);_0x4e9323[_0x6f62('0x1f')]=qs[_0x6f62('0x1f')](_0xfe5f2b[_0x6f62('0x34')][_0x6f62('0x1f')]);}return _0x772cc0[_0x6f62('0x55')](_0x4e9323);}})[_0x6f62('0x28')](function(_0x4d67f7){if(_0x4d67f7){return _0x4d67f7?{'count':_0x293dbb,'rows':_0x4d67f7}:null;}})[_0x6f62('0x28')](respondWithResult(_0x481128,null))[_0x6f62('0x48')](handleError(_0x481128,null));};exports[_0x6f62('0x57')]=function(_0x34603d,_0x1ad332,_0x5daecf){return db[_0x6f62('0x2d')][_0x6f62('0x4d')]({'where':{'id':_0x34603d['params']['id']}})['then'](handleEntityNotFound(_0x1ad332,null))[_0x6f62('0x28')](function(_0x2f3e4e){if(_0x2f3e4e){return _0x2f3e4e['removeMembers'](_0x34603d[_0x6f62('0x34')][_0x6f62('0x54')]);}})['then'](respondWithStatusCode(_0x1ad332,null))[_0x6f62('0x48')](handleError(_0x1ad332,null));};exports[_0x6f62('0x58')]=function(_0x4c51f7,_0x409d28,_0x30247a){if(_0x4c51f7[_0x6f62('0x4f')]['id']){delete _0x4c51f7['body']['id'];}return db['ChatGroup'][_0x6f62('0x4d')]({'where':{'id':_0x4c51f7['params']['id']}})['then'](handleEntityNotFound(_0x409d28,null))[_0x6f62('0x28')](function(_0x56d8ff){if(_0x56d8ff){_0x4c51f7[_0x6f62('0x4f')]['ChatGroupId']=_0x56d8ff['id'];return db[_0x6f62('0x59')][_0x6f62('0x4e')](_0x4c51f7['body']);}})[_0x6f62('0x28')](respondWithResult(_0x409d28,null))[_0x6f62('0x48')](handleError(_0x409d28,null));};exports[_0x6f62('0x5a')]=function(_0x380287,_0x2d662a,_0x352231){var _0x1f6395={};var _0x19e23c={};var _0x57cf71;var _0x1e06db;return db[_0x6f62('0x2d')][_0x6f62('0x5b')]({'where':{'id':_0x380287[_0x6f62('0x4a')]['id']}})[_0x6f62('0x28')](handleEntityNotFound(_0x2d662a,null))[_0x6f62('0x28')](function(_0x109a7a){if(_0x109a7a){_0x57cf71=_0x109a7a;_0x19e23c['model']=_[_0x6f62('0x4b')](db[_0x6f62('0x59')][_0x6f62('0x2e')]);_0x19e23c[_0x6f62('0x34')]=_[_0x6f62('0x4b')](_0x380287[_0x6f62('0x34')]);_0x19e23c[_0x6f62('0x35')]=_[_0x6f62('0x36')](_0x19e23c[_0x6f62('0x32')],_0x19e23c[_0x6f62('0x34')]);_0x1f6395[_0x6f62('0x37')]=_[_0x6f62('0x36')](_0x19e23c[_0x6f62('0x32')],qs[_0x6f62('0x4c')](_0x380287[_0x6f62('0x34')]['fields']));_0x1f6395[_0x6f62('0x37')]=_0x1f6395[_0x6f62('0x37')][_0x6f62('0x38')]?_0x1f6395[_0x6f62('0x37')]:_0x19e23c[_0x6f62('0x32')];_0x1f6395[_0x6f62('0x3c')]=qs[_0x6f62('0x3d')](_0x380287[_0x6f62('0x34')]['sort']);_0x1f6395[_0x6f62('0x3e')]=qs[_0x6f62('0x35')](_[_0x6f62('0x3f')](_0x380287[_0x6f62('0x34')],_0x19e23c[_0x6f62('0x35')]));if(_0x380287[_0x6f62('0x34')][_0x6f62('0x40')]){_0x1f6395[_0x6f62('0x3e')]=_['merge'](_0x1f6395[_0x6f62('0x3e')],{'$or':_[_0x6f62('0x33')](_0x1f6395[_0x6f62('0x37')],function(_0x2bb486){var _0x3ad3bf={};_0x3ad3bf[_0x2bb486]={'$like':'%'+_0x380287[_0x6f62('0x34')][_0x6f62('0x40')]+'%'};return _0x3ad3bf;})});}if(_0x380287['query']['$gte']){var _0x404f25=_0x380287[_0x6f62('0x34')][_0x6f62('0x5c')]['split'](',');var _0x208836={};_0x208836[_0x404f25[0x0]]={'$gte':moment(_0x404f25[0x1])[_0x6f62('0x5d')](_0x6f62('0x5e'))};_0x1f6395[_0x6f62('0x3e')]=_['merge'](_0x1f6395[_0x6f62('0x3e')],_0x208836);}_0x1f6395=_[_0x6f62('0x41')]({},_0x1f6395,_0x380287[_0x6f62('0x43')]);return _0x57cf71[_0x6f62('0x5a')](_0x1f6395);}})[_0x6f62('0x28')](function(_0x4b4d77){if(_0x4b4d77){_0x1e06db=_0x4b4d77[_0x6f62('0x38')];if(!_0x380287[_0x6f62('0x34')][_0x6f62('0x39')]('nolimit')){_0x1f6395['limit']=qs['limit'](_0x380287['query'][_0x6f62('0x3b')]);_0x1f6395[_0x6f62('0x1f')]=qs[_0x6f62('0x1f')](_0x380287[_0x6f62('0x34')][_0x6f62('0x1f')]);}return _0x57cf71[_0x6f62('0x5a')](_0x1f6395);}})[_0x6f62('0x28')](function(_0xe662bf){if(_0xe662bf){return _0xe662bf?{'count':_0x1e06db,'rows':_0xe662bf}:null;}})[_0x6f62('0x28')](respondWithResult(_0x2d662a,null))[_0x6f62('0x48')](handleError(_0x2d662a,null));};