Built motion from commit 9d1906d1.|2.5.40
[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 _0xbaa9=['rows','catch','show','params','includeAll','find','create','body','describe','getUnread','toInteger','addMembers','ids','omit','findOne','User','getMembers','removeMembers','addMessage','ChatGroupId','ChatInternalMessage','getMessages','$gte','split','format','YYYY-MM-DD\x20HH:mm:ss','hasOwnProperty','eml-format','rimraf','zip-dir','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','redis','localhost','socket.io-emitter','register','sendStatus','status','end','undefined','limit','count','offset','set','Content-Range','apply','reject','save','update','then','destroy','error','send','index','ChatGroup','rawAttributes','fieldName','type','key','model','map','name','query','keys','filters','intersection','fields','attributes','length','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','include','findAll'];(function(_0x42e578,_0x6701bd){var _0x147643=function(_0x58d12b){while(--_0x58d12b){_0x42e578['push'](_0x42e578['shift']());}};_0x147643(++_0x6701bd);}(_0xbaa9,0x81));var _0x9baa=function(_0x35bbc0,_0x3e17b2){_0x35bbc0=_0x35bbc0-0x0;var _0x55f43c=_0xbaa9[_0x35bbc0];return _0x55f43c;};'use strict';var emlformat=require(_0x9baa('0x0'));var rimraf=require(_0x9baa('0x1'));var zipdir=require(_0x9baa('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x9baa('0x3'));var BPromise=require(_0x9baa('0x4'));var Mustache=require(_0x9baa('0x5'));var util=require(_0x9baa('0x6'));var path=require(_0x9baa('0x7'));var sox=require(_0x9baa('0x8'));var csv=require(_0x9baa('0x9'));var ejs=require(_0x9baa('0xa'));var fs=require('fs');var fs_extra=require(_0x9baa('0xb'));var _=require(_0x9baa('0xc'));var squel=require(_0x9baa('0xd'));var crypto=require(_0x9baa('0xe'));var jsforce=require(_0x9baa('0xf'));var deskjs=require('desk.js');var toCsv=require(_0x9baa('0x9'));var querystring=require(_0x9baa('0x10'));var Papa=require(_0x9baa('0x11'));var Redis=require(_0x9baa('0x12'));var authService=require('../../components/auth/service');var qs=require(_0x9baa('0x13'));var as=require(_0x9baa('0x14'));var hardwareService=require(_0x9baa('0x15'));var logger=require(_0x9baa('0x16'))(_0x9baa('0x17'));var utils=require(_0x9baa('0x18'));var config=require(_0x9baa('0x19'));var licenseUtil=require(_0x9baa('0x1a'));var db=require('../../mysqldb')['db'];config['redis']=_['defaults'](config[_0x9baa('0x1b')],{'host':_0x9baa('0x1c'),'port':0x18eb});var socket=require(_0x9baa('0x1d'))(new Redis(config['redis']));require('./chatGroup.socket')[_0x9baa('0x1e')](socket);function respondWithStatusCode(_0x118b6d,_0x4d6247){_0x4d6247=_0x4d6247||0xcc;return function(_0x7d7ea9){if(_0x7d7ea9){return _0x118b6d[_0x9baa('0x1f')](_0x4d6247);}return _0x118b6d[_0x9baa('0x20')](_0x4d6247)[_0x9baa('0x21')]();};}function respondWithResult(_0x15dcb8,_0x2ef708){_0x2ef708=_0x2ef708||0xc8;return function(_0x34afbd){if(_0x34afbd){return _0x15dcb8[_0x9baa('0x20')](_0x2ef708)['json'](_0x34afbd);}};}function respondWithFilteredResult(_0x4d605b,_0x467307){return function(_0x2d2577){if(_0x2d2577){var _0x27c828=typeof _0x467307['offset']===_0x9baa('0x22')&&typeof _0x467307[_0x9baa('0x23')]==='undefined';var _0x2c416d=_0x2d2577[_0x9baa('0x24')];var _0x24e1b7=_0x27c828?0x0:_0x467307[_0x9baa('0x25')];var _0x3e1976=_0x27c828?_0x2d2577[_0x9baa('0x24')]:_0x467307[_0x9baa('0x25')]+_0x467307[_0x9baa('0x23')];var _0x53d0a4;if(_0x3e1976>=_0x2c416d){_0x3e1976=_0x2c416d;_0x53d0a4=0xc8;}else{_0x53d0a4=0xce;}_0x4d605b['status'](_0x53d0a4);return _0x4d605b[_0x9baa('0x26')](_0x9baa('0x27'),_0x24e1b7+'-'+_0x3e1976+'/'+_0x2c416d)['json'](_0x2d2577);}return null;};}function patchUpdates(_0x30176a){return function(_0x55ab59){try{jsonpatch[_0x9baa('0x28')](_0x55ab59,_0x30176a,!![]);}catch(_0x2a1e59){return BPromise[_0x9baa('0x29')](_0x2a1e59);}return _0x55ab59[_0x9baa('0x2a')]();};}function saveUpdates(_0x21625f,_0x553302){return function(_0x1196e9){if(_0x1196e9){return _0x1196e9[_0x9baa('0x2b')](_0x21625f)[_0x9baa('0x2c')](function(_0x14101a){return _0x14101a;});}return null;};}function removeEntity(_0x1d9bc7,_0x5804f0){return function(_0x276327){if(_0x276327){return _0x276327[_0x9baa('0x2d')]()[_0x9baa('0x2c')](function(){_0x1d9bc7[_0x9baa('0x20')](0xcc)[_0x9baa('0x21')]();});}};}function handleEntityNotFound(_0x2ce09e,_0x1a68bb){return function(_0x1a6bf0){if(!_0x1a6bf0){_0x2ce09e['sendStatus'](0x194);}return _0x1a6bf0;};}function handleError(_0x2ad7b5,_0x5ec90e){_0x5ec90e=_0x5ec90e||0x1f4;return function(_0x46f1d6){logger[_0x9baa('0x2e')](_0x46f1d6['stack']);if(_0x46f1d6['name']){delete _0x46f1d6['name'];}_0x2ad7b5[_0x9baa('0x20')](_0x5ec90e)[_0x9baa('0x2f')](_0x46f1d6);};}exports[_0x9baa('0x30')]=function(_0x134d28,_0x5b32e6){var _0x209b95={},_0x132c6a={},_0x1a059d={'count':0x0,'rows':[]};var _0x27b4a2=_['map'](db[_0x9baa('0x31')][_0x9baa('0x32')],function(_0x314f3e){return{'name':_0x314f3e[_0x9baa('0x33')],'type':_0x314f3e[_0x9baa('0x34')][_0x9baa('0x35')]};});_0x132c6a[_0x9baa('0x36')]=_[_0x9baa('0x37')](_0x27b4a2,_0x9baa('0x38'));_0x132c6a[_0x9baa('0x39')]=_[_0x9baa('0x3a')](_0x134d28[_0x9baa('0x39')]);_0x132c6a[_0x9baa('0x3b')]=_[_0x9baa('0x3c')](_0x132c6a[_0x9baa('0x36')],_0x132c6a[_0x9baa('0x39')]);_0x209b95['attributes']=_[_0x9baa('0x3c')](_0x132c6a[_0x9baa('0x36')],qs[_0x9baa('0x3d')](_0x134d28[_0x9baa('0x39')][_0x9baa('0x3d')]));_0x209b95[_0x9baa('0x3e')]=_0x209b95[_0x9baa('0x3e')][_0x9baa('0x3f')]?_0x209b95[_0x9baa('0x3e')]:_0x132c6a[_0x9baa('0x36')];if(!_0x134d28[_0x9baa('0x39')]['hasOwnProperty'](_0x9baa('0x40'))){_0x209b95['limit']=qs[_0x9baa('0x23')](_0x134d28['query'][_0x9baa('0x23')]);_0x209b95[_0x9baa('0x25')]=qs['offset'](_0x134d28[_0x9baa('0x39')][_0x9baa('0x25')]);}_0x209b95[_0x9baa('0x41')]=qs[_0x9baa('0x42')](_0x134d28['query'][_0x9baa('0x42')]);_0x209b95[_0x9baa('0x43')]=qs[_0x9baa('0x3b')](_[_0x9baa('0x44')](_0x134d28[_0x9baa('0x39')],_0x132c6a[_0x9baa('0x3b')]),_0x27b4a2);if(_0x134d28[_0x9baa('0x39')][_0x9baa('0x45')]){_0x209b95[_0x9baa('0x43')]=_[_0x9baa('0x46')](_0x209b95[_0x9baa('0x43')],{'$or':_[_0x9baa('0x37')](_0x27b4a2,function(_0x249f93){if(_0x249f93['type']!==_0x9baa('0x47')){var _0x1f6d19={};_0x1f6d19[_0x249f93[_0x9baa('0x38')]]={'$like':'%'+_0x134d28[_0x9baa('0x39')][_0x9baa('0x45')]+'%'};return _0x1f6d19;}})});}_0x209b95=_['merge']({},_0x209b95,_0x134d28[_0x9baa('0x48')]);var _0x285ab6={'where':_0x209b95[_0x9baa('0x43')]};return db[_0x9baa('0x31')][_0x9baa('0x24')](_0x285ab6)[_0x9baa('0x2c')](function(_0x587107){_0x1a059d[_0x9baa('0x24')]=_0x587107;if(_0x134d28['query']['includeAll']){_0x209b95[_0x9baa('0x49')]=[{'all':!![]}];}return db[_0x9baa('0x31')][_0x9baa('0x4a')](_0x209b95);})[_0x9baa('0x2c')](function(_0x12ac95){_0x1a059d[_0x9baa('0x4b')]=_0x12ac95;return _0x1a059d;})[_0x9baa('0x2c')](respondWithFilteredResult(_0x5b32e6,_0x209b95))[_0x9baa('0x4c')](handleError(_0x5b32e6,null));};exports[_0x9baa('0x4d')]=function(_0x144f00,_0x41181a){var _0x20e562={'raw':!![],'where':{'id':_0x144f00[_0x9baa('0x4e')]['id']}},_0x5f1a49={};_0x5f1a49[_0x9baa('0x36')]=_[_0x9baa('0x3a')](db[_0x9baa('0x31')]['rawAttributes']);_0x5f1a49[_0x9baa('0x39')]=_[_0x9baa('0x3a')](_0x144f00[_0x9baa('0x39')]);_0x5f1a49['filters']=_[_0x9baa('0x3c')](_0x5f1a49['model'],_0x5f1a49['query']);_0x20e562['attributes']=_['intersection'](_0x5f1a49[_0x9baa('0x36')],qs[_0x9baa('0x3d')](_0x144f00[_0x9baa('0x39')][_0x9baa('0x3d')]));_0x20e562[_0x9baa('0x3e')]=_0x20e562[_0x9baa('0x3e')][_0x9baa('0x3f')]?_0x20e562[_0x9baa('0x3e')]:_0x5f1a49[_0x9baa('0x36')];if(_0x144f00[_0x9baa('0x39')][_0x9baa('0x4f')]){_0x20e562[_0x9baa('0x49')]=[{'all':!![]}];}_0x20e562=_[_0x9baa('0x46')]({},_0x20e562,_0x144f00[_0x9baa('0x48')]);return db[_0x9baa('0x31')][_0x9baa('0x50')](_0x20e562)[_0x9baa('0x2c')](handleEntityNotFound(_0x41181a,null))[_0x9baa('0x2c')](respondWithResult(_0x41181a,null))[_0x9baa('0x4c')](handleError(_0x41181a,null));};exports[_0x9baa('0x51')]=function(_0x520aa8,_0x3fdfc7){return db[_0x9baa('0x31')]['create'](_0x520aa8['body'],{})[_0x9baa('0x2c')](respondWithResult(_0x3fdfc7,0xc9))[_0x9baa('0x4c')](handleError(_0x3fdfc7,null));};exports[_0x9baa('0x2b')]=function(_0x39f952,_0x5250ca){if(_0x39f952[_0x9baa('0x52')]['id']){delete _0x39f952[_0x9baa('0x52')]['id'];}return db[_0x9baa('0x31')][_0x9baa('0x50')]({'where':{'id':_0x39f952[_0x9baa('0x4e')]['id']}})['then'](handleEntityNotFound(_0x5250ca,null))['then'](saveUpdates(_0x39f952[_0x9baa('0x52')],null))[_0x9baa('0x2c')](respondWithResult(_0x5250ca,null))[_0x9baa('0x4c')](handleError(_0x5250ca,null));};exports[_0x9baa('0x2d')]=function(_0x2caff9,_0x4aac42){return db[_0x9baa('0x31')][_0x9baa('0x50')]({'where':{'id':_0x2caff9[_0x9baa('0x4e')]['id']}})[_0x9baa('0x2c')](handleEntityNotFound(_0x4aac42,null))['then'](removeEntity(_0x4aac42,null))['catch'](handleError(_0x4aac42,null));};exports[_0x9baa('0x53')]=function(_0xb54ad9,_0x7e997c){return db[_0x9baa('0x31')]['describe']()['then'](respondWithResult(_0x7e997c,null))[_0x9baa('0x4c')](handleError(_0x7e997c,null));};exports[_0x9baa('0x54')]=function(_0x29a6a9,_0x8601b5,_0x291a1b){return db['ChatInternalMessage'][_0x9baa('0x24')]({'where':{'ChatGroupId':_0x29a6a9[_0x9baa('0x4e')]['id'],'ToId':_0x29a6a9['user']['id'],'read':![]}})[_0x9baa('0x2c')](function(_0x4fe13a){return{'id':_[_0x9baa('0x55')](_0x29a6a9[_0x9baa('0x4e')]['id']),'count':_0x4fe13a};})[_0x9baa('0x2c')](respondWithResult(_0x8601b5,null))['catch'](handleError(_0x8601b5,null));};exports['addMembers']=function(_0x3ef23f,_0x4e60be,_0x31e0c9){return db[_0x9baa('0x31')]['find']({'where':{'id':_0x3ef23f[_0x9baa('0x4e')]['id']}})[_0x9baa('0x2c')](handleEntityNotFound(_0x4e60be,null))[_0x9baa('0x2c')](function(_0x21c1ab){if(_0x21c1ab){return _0x21c1ab[_0x9baa('0x56')](_0x3ef23f[_0x9baa('0x52')][_0x9baa('0x57')],_[_0x9baa('0x58')](_0x3ef23f[_0x9baa('0x52')],[_0x9baa('0x57'),'id'])||{});}})[_0x9baa('0x2c')](respondWithResult(_0x4e60be,null))['catch'](handleError(_0x4e60be,null));};exports['getMembers']=function(_0x11be16,_0x2890e9,_0x1c23e1){var _0x1f290e={};var _0x1de71d={};var _0x574759;var _0x485884;return db[_0x9baa('0x31')][_0x9baa('0x59')]({'where':{'id':_0x11be16[_0x9baa('0x4e')]['id']}})[_0x9baa('0x2c')](handleEntityNotFound(_0x2890e9,null))[_0x9baa('0x2c')](function(_0x2e9efb){if(_0x2e9efb){_0x574759=_0x2e9efb;_0x1de71d['model']=_[_0x9baa('0x3a')](db[_0x9baa('0x5a')][_0x9baa('0x32')]);_0x1de71d['query']=_[_0x9baa('0x3a')](_0x11be16[_0x9baa('0x39')]);_0x1de71d[_0x9baa('0x3b')]=_['intersection'](_0x1de71d[_0x9baa('0x36')],_0x1de71d[_0x9baa('0x39')]);_0x1f290e[_0x9baa('0x3e')]=_[_0x9baa('0x3c')](_0x1de71d[_0x9baa('0x36')],qs['fields'](_0x11be16[_0x9baa('0x39')][_0x9baa('0x3d')]));_0x1f290e['attributes']=_0x1f290e[_0x9baa('0x3e')][_0x9baa('0x3f')]?_0x1f290e[_0x9baa('0x3e')]:_0x1de71d[_0x9baa('0x36')];_0x1f290e['order']=qs[_0x9baa('0x42')](_0x11be16[_0x9baa('0x39')][_0x9baa('0x42')]);_0x1f290e[_0x9baa('0x43')]=qs[_0x9baa('0x3b')](_[_0x9baa('0x44')](_0x11be16[_0x9baa('0x39')],_0x1de71d[_0x9baa('0x3b')]));if(_0x11be16[_0x9baa('0x39')][_0x9baa('0x45')]){_0x1f290e['where']=_[_0x9baa('0x46')](_0x1f290e[_0x9baa('0x43')],{'$or':_['map'](_0x1f290e['attributes'],function(_0x4e3635){var _0x1acba4={};_0x1acba4[_0x4e3635]={'$like':'%'+_0x11be16[_0x9baa('0x39')]['filter']+'%'};return _0x1acba4;})});}_0x1f290e=_[_0x9baa('0x46')]({},_0x1f290e,_0x11be16[_0x9baa('0x48')]);return _0x574759[_0x9baa('0x5b')](_0x1f290e);}})[_0x9baa('0x2c')](function(_0x267d1d){if(_0x267d1d){_0x485884=_0x267d1d[_0x9baa('0x3f')];if(!_0x11be16[_0x9baa('0x39')]['hasOwnProperty'](_0x9baa('0x40'))){_0x1f290e[_0x9baa('0x23')]=qs[_0x9baa('0x23')](_0x11be16[_0x9baa('0x39')][_0x9baa('0x23')]);_0x1f290e[_0x9baa('0x25')]=qs['offset'](_0x11be16[_0x9baa('0x39')][_0x9baa('0x25')]);}return _0x574759['getMembers'](_0x1f290e);}})[_0x9baa('0x2c')](function(_0x4d610b){if(_0x4d610b){return _0x4d610b?{'count':_0x485884,'rows':_0x4d610b}:null;}})['then'](respondWithResult(_0x2890e9,null))[_0x9baa('0x4c')](handleError(_0x2890e9,null));};exports['removeMembers']=function(_0x62e6c3,_0x123ed5,_0x334e50){return db[_0x9baa('0x31')]['find']({'where':{'id':_0x62e6c3[_0x9baa('0x4e')]['id']}})['then'](handleEntityNotFound(_0x123ed5,null))['then'](function(_0x1061a8){if(_0x1061a8){return _0x1061a8[_0x9baa('0x5c')](_0x62e6c3[_0x9baa('0x39')][_0x9baa('0x57')]);}})[_0x9baa('0x2c')](respondWithStatusCode(_0x123ed5,null))[_0x9baa('0x4c')](handleError(_0x123ed5,null));};exports[_0x9baa('0x5d')]=function(_0x315ad5,_0x58c4d4,_0x4a9967){if(_0x315ad5['body']['id']){delete _0x315ad5[_0x9baa('0x52')]['id'];}return db[_0x9baa('0x31')][_0x9baa('0x50')]({'where':{'id':_0x315ad5[_0x9baa('0x4e')]['id']}})[_0x9baa('0x2c')](handleEntityNotFound(_0x58c4d4,null))[_0x9baa('0x2c')](function(_0x25e8d3){if(_0x25e8d3){_0x315ad5[_0x9baa('0x52')][_0x9baa('0x5e')]=_0x25e8d3['id'];return db[_0x9baa('0x5f')][_0x9baa('0x51')](_0x315ad5[_0x9baa('0x52')]);}})[_0x9baa('0x2c')](respondWithResult(_0x58c4d4,null))['catch'](handleError(_0x58c4d4,null));};exports[_0x9baa('0x60')]=function(_0x217d7a,_0x221f9c,_0x16f557){var _0x50b018={};var _0xbdf6b3={};var _0x36a696;var _0x20fa01;return db['ChatGroup'][_0x9baa('0x59')]({'where':{'id':_0x217d7a['params']['id']}})['then'](handleEntityNotFound(_0x221f9c,null))[_0x9baa('0x2c')](function(_0x23402d){if(_0x23402d){_0x36a696=_0x23402d;_0xbdf6b3[_0x9baa('0x36')]=_[_0x9baa('0x3a')](db[_0x9baa('0x5f')][_0x9baa('0x32')]);_0xbdf6b3[_0x9baa('0x39')]=_[_0x9baa('0x3a')](_0x217d7a[_0x9baa('0x39')]);_0xbdf6b3['filters']=_[_0x9baa('0x3c')](_0xbdf6b3['model'],_0xbdf6b3[_0x9baa('0x39')]);_0x50b018[_0x9baa('0x3e')]=_[_0x9baa('0x3c')](_0xbdf6b3[_0x9baa('0x36')],qs[_0x9baa('0x3d')](_0x217d7a[_0x9baa('0x39')][_0x9baa('0x3d')]));_0x50b018[_0x9baa('0x3e')]=_0x50b018[_0x9baa('0x3e')][_0x9baa('0x3f')]?_0x50b018[_0x9baa('0x3e')]:_0xbdf6b3[_0x9baa('0x36')];_0x50b018[_0x9baa('0x41')]=qs[_0x9baa('0x42')](_0x217d7a['query'][_0x9baa('0x42')]);_0x50b018[_0x9baa('0x43')]=qs['filters'](_[_0x9baa('0x44')](_0x217d7a[_0x9baa('0x39')],_0xbdf6b3[_0x9baa('0x3b')]));if(_0x217d7a[_0x9baa('0x39')][_0x9baa('0x45')]){_0x50b018['where']=_['merge'](_0x50b018[_0x9baa('0x43')],{'$or':_[_0x9baa('0x37')](_0x50b018[_0x9baa('0x3e')],function(_0xf4294d){var _0x124d2e={};_0x124d2e[_0xf4294d]={'$like':'%'+_0x217d7a['query']['filter']+'%'};return _0x124d2e;})});}if(_0x217d7a[_0x9baa('0x39')][_0x9baa('0x61')]){var _0x3892cc=_0x217d7a[_0x9baa('0x39')][_0x9baa('0x61')][_0x9baa('0x62')](',');var _0x30c126={};_0x30c126[_0x3892cc[0x0]]={'$gte':moment(_0x3892cc[0x1])[_0x9baa('0x63')](_0x9baa('0x64'))};_0x50b018[_0x9baa('0x43')]=_[_0x9baa('0x46')](_0x50b018[_0x9baa('0x43')],_0x30c126);}_0x50b018=_['merge']({},_0x50b018,_0x217d7a[_0x9baa('0x48')]);return _0x36a696[_0x9baa('0x60')](_0x50b018);}})[_0x9baa('0x2c')](function(_0x30068e){if(_0x30068e){_0x20fa01=_0x30068e[_0x9baa('0x3f')];if(!_0x217d7a['query'][_0x9baa('0x65')]('nolimit')){_0x50b018[_0x9baa('0x23')]=qs[_0x9baa('0x23')](_0x217d7a[_0x9baa('0x39')][_0x9baa('0x23')]);_0x50b018['offset']=qs[_0x9baa('0x25')](_0x217d7a[_0x9baa('0x39')]['offset']);}return _0x36a696[_0x9baa('0x60')](_0x50b018);}})['then'](function(_0x3ae237){if(_0x3ae237){return _0x3ae237?{'count':_0x20fa01,'rows':_0x3ae237}:null;}})[_0x9baa('0x2c')](respondWithResult(_0x221f9c,null))[_0x9baa('0x4c')](handleError(_0x221f9c,null));};