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 _0xe9ec=['bluebird','mustache','util','path','sox','fs-extra','lodash','squel','crypto','desk.js','to-csv','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','../../config/license/util','defaults','redis','localhost','register','status','end','limit','undefined','count','offset','Content-Range','json','apply','reject','update','then','destroy','sendStatus','stack','send','index','map','ChatGroup','rawAttributes','fieldName','type','key','model','name','query','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','filters','pick','filter','where','merge','VIRTUAL','includeAll','findAll','rows','catch','params','keys','include','options','find','create','body','describe','toInteger','addMembers','ids','omit','getMembers','findOne','removeMembers','ChatInternalMessage','getMessages','$gte','format','YYYY-MM-DD\x20HH:mm:ss','eml-format','zip-dir','fast-json-patch','request-promise','moment'];(function(_0x6d3aa,_0x452556){var _0x3457f1=function(_0x1a7234){while(--_0x1a7234){_0x6d3aa['push'](_0x6d3aa['shift']());}};_0x3457f1(++_0x452556);}(_0xe9ec,0x1c2));var _0xce9e=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0xe9ec[_0x20a584];return _0x4b41a8;};'use strict';var emlformat=require(_0xce9e('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xce9e('0x1'));var jsonpatch=require(_0xce9e('0x2'));var rp=require(_0xce9e('0x3'));var moment=require(_0xce9e('0x4'));var BPromise=require(_0xce9e('0x5'));var Mustache=require(_0xce9e('0x6'));var util=require(_0xce9e('0x7'));var path=require(_0xce9e('0x8'));var sox=require(_0xce9e('0x9'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xce9e('0xa'));var _=require(_0xce9e('0xb'));var squel=require(_0xce9e('0xc'));var crypto=require(_0xce9e('0xd'));var jsforce=require('jsforce');var deskjs=require(_0xce9e('0xe'));var toCsv=require(_0xce9e('0xf'));var querystring=require(_0xce9e('0x10'));var Papa=require(_0xce9e('0x11'));var Redis=require('ioredis');var authService=require(_0xce9e('0x12'));var qs=require(_0xce9e('0x13'));var as=require(_0xce9e('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xce9e('0x15'))('api');var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0xce9e('0x16'));var db=require('../../mysqldb')['db'];config['redis']=_[_0xce9e('0x17')](config[_0xce9e('0x18')],{'host':_0xce9e('0x19'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xce9e('0x18')]));require('./chatGroup.socket')[_0xce9e('0x1a')](socket);function respondWithStatusCode(_0x5dfc31,_0x2d51e2){_0x2d51e2=_0x2d51e2||0xcc;return function(_0x550fb6){if(_0x550fb6){return _0x5dfc31['sendStatus'](_0x2d51e2);}return _0x5dfc31[_0xce9e('0x1b')](_0x2d51e2)[_0xce9e('0x1c')]();};}function respondWithResult(_0x2ee224,_0x1a77b9){_0x1a77b9=_0x1a77b9||0xc8;return function(_0x40d522){if(_0x40d522){return _0x2ee224[_0xce9e('0x1b')](_0x1a77b9)['json'](_0x40d522);}};}function respondWithFilteredResult(_0x4ca4ff,_0xed8e13){return function(_0x2e26bd){if(_0x2e26bd){var _0x3148f8=typeof _0xed8e13['offset']==='undefined'&&typeof _0xed8e13[_0xce9e('0x1d')]===_0xce9e('0x1e');var _0x2a99f7=_0x2e26bd[_0xce9e('0x1f')];var _0x154268=_0x3148f8?0x0:_0xed8e13[_0xce9e('0x20')];var _0x33a1f3=_0x3148f8?_0x2e26bd[_0xce9e('0x1f')]:_0xed8e13[_0xce9e('0x20')]+_0xed8e13[_0xce9e('0x1d')];var _0x50e7c0;if(_0x33a1f3>=_0x2a99f7){_0x33a1f3=_0x2a99f7;_0x50e7c0=0xc8;}else{_0x50e7c0=0xce;}_0x4ca4ff[_0xce9e('0x1b')](_0x50e7c0);return _0x4ca4ff['set'](_0xce9e('0x21'),_0x154268+'-'+_0x33a1f3+'/'+_0x2a99f7)[_0xce9e('0x22')](_0x2e26bd);}return null;};}function patchUpdates(_0x2e1bc8){return function(_0x4acf75){try{jsonpatch[_0xce9e('0x23')](_0x4acf75,_0x2e1bc8,!![]);}catch(_0x50d28e){return BPromise[_0xce9e('0x24')](_0x50d28e);}return _0x4acf75['save']();};}function saveUpdates(_0xc6fd85,_0x27d837){return function(_0x58cc20){if(_0x58cc20){return _0x58cc20[_0xce9e('0x25')](_0xc6fd85)[_0xce9e('0x26')](function(_0x374647){return _0x374647;});}return null;};}function removeEntity(_0x5c7571,_0x5a8142){return function(_0x4b12d0){if(_0x4b12d0){return _0x4b12d0[_0xce9e('0x27')]()[_0xce9e('0x26')](function(){_0x5c7571[_0xce9e('0x1b')](0xcc)['end']();});}};}function handleEntityNotFound(_0x2e476c,_0x18bb07){return function(_0x4acaa6){if(!_0x4acaa6){_0x2e476c[_0xce9e('0x28')](0x194);}return _0x4acaa6;};}function handleError(_0xf64f19,_0x4e210c){_0x4e210c=_0x4e210c||0x1f4;return function(_0x95a25d){logger['error'](_0x95a25d[_0xce9e('0x29')]);if(_0x95a25d['name']){delete _0x95a25d['name'];}_0xf64f19['status'](_0x4e210c)[_0xce9e('0x2a')](_0x95a25d);};}exports[_0xce9e('0x2b')]=function(_0x5cfd14,_0xa7345d){var _0x5e05b5={},_0xe00715={},_0x4984a7={'count':0x0,'rows':[]};var _0x10e2c1=_[_0xce9e('0x2c')](db[_0xce9e('0x2d')][_0xce9e('0x2e')],function(_0x1e23a5){return{'name':_0x1e23a5[_0xce9e('0x2f')],'type':_0x1e23a5[_0xce9e('0x30')][_0xce9e('0x31')]};});_0xe00715[_0xce9e('0x32')]=_['map'](_0x10e2c1,_0xce9e('0x33'));_0xe00715[_0xce9e('0x34')]=_['keys'](_0x5cfd14[_0xce9e('0x34')]);_0xe00715['filters']=_[_0xce9e('0x35')](_0xe00715[_0xce9e('0x32')],_0xe00715[_0xce9e('0x34')]);_0x5e05b5[_0xce9e('0x36')]=_[_0xce9e('0x35')](_0xe00715['model'],qs[_0xce9e('0x37')](_0x5cfd14['query'][_0xce9e('0x37')]));_0x5e05b5[_0xce9e('0x36')]=_0x5e05b5[_0xce9e('0x36')][_0xce9e('0x38')]?_0x5e05b5[_0xce9e('0x36')]:_0xe00715['model'];if(!_0x5cfd14[_0xce9e('0x34')][_0xce9e('0x39')](_0xce9e('0x3a'))){_0x5e05b5[_0xce9e('0x1d')]=qs['limit'](_0x5cfd14[_0xce9e('0x34')]['limit']);_0x5e05b5[_0xce9e('0x20')]=qs[_0xce9e('0x20')](_0x5cfd14['query'][_0xce9e('0x20')]);}_0x5e05b5[_0xce9e('0x3b')]=qs[_0xce9e('0x3c')](_0x5cfd14[_0xce9e('0x34')][_0xce9e('0x3c')]);_0x5e05b5['where']=qs[_0xce9e('0x3d')](_[_0xce9e('0x3e')](_0x5cfd14[_0xce9e('0x34')],_0xe00715[_0xce9e('0x3d')]),_0x10e2c1);if(_0x5cfd14[_0xce9e('0x34')][_0xce9e('0x3f')]){_0x5e05b5[_0xce9e('0x40')]=_[_0xce9e('0x41')](_0x5e05b5['where'],{'$or':_['map'](_0x10e2c1,function(_0x2865c1){if(_0x2865c1[_0xce9e('0x30')]!==_0xce9e('0x42')){var _0x343dee={};_0x343dee[_0x2865c1['name']]={'$like':'%'+_0x5cfd14[_0xce9e('0x34')][_0xce9e('0x3f')]+'%'};return _0x343dee;}})});}_0x5e05b5=_['merge']({},_0x5e05b5,_0x5cfd14['options']);var _0x5e1570={'where':_0x5e05b5[_0xce9e('0x40')]};return db['ChatGroup'][_0xce9e('0x1f')](_0x5e1570)[_0xce9e('0x26')](function(_0x834ede){_0x4984a7[_0xce9e('0x1f')]=_0x834ede;if(_0x5cfd14['query'][_0xce9e('0x43')]){_0x5e05b5['include']=[{'all':!![]}];}return db[_0xce9e('0x2d')][_0xce9e('0x44')](_0x5e05b5);})[_0xce9e('0x26')](function(_0x52d282){_0x4984a7[_0xce9e('0x45')]=_0x52d282;return _0x4984a7;})[_0xce9e('0x26')](respondWithFilteredResult(_0xa7345d,_0x5e05b5))[_0xce9e('0x46')](handleError(_0xa7345d,null));};exports['show']=function(_0x4cd2ef,_0x58e980){var _0x58da99={'raw':!![],'where':{'id':_0x4cd2ef[_0xce9e('0x47')]['id']}},_0xe3c207={};_0xe3c207[_0xce9e('0x32')]=_[_0xce9e('0x48')](db[_0xce9e('0x2d')][_0xce9e('0x2e')]);_0xe3c207[_0xce9e('0x34')]=_[_0xce9e('0x48')](_0x4cd2ef[_0xce9e('0x34')]);_0xe3c207[_0xce9e('0x3d')]=_[_0xce9e('0x35')](_0xe3c207[_0xce9e('0x32')],_0xe3c207[_0xce9e('0x34')]);_0x58da99[_0xce9e('0x36')]=_['intersection'](_0xe3c207['model'],qs[_0xce9e('0x37')](_0x4cd2ef[_0xce9e('0x34')][_0xce9e('0x37')]));_0x58da99[_0xce9e('0x36')]=_0x58da99[_0xce9e('0x36')][_0xce9e('0x38')]?_0x58da99['attributes']:_0xe3c207[_0xce9e('0x32')];if(_0x4cd2ef[_0xce9e('0x34')][_0xce9e('0x43')]){_0x58da99[_0xce9e('0x49')]=[{'all':!![]}];}_0x58da99=_[_0xce9e('0x41')]({},_0x58da99,_0x4cd2ef[_0xce9e('0x4a')]);return db[_0xce9e('0x2d')][_0xce9e('0x4b')](_0x58da99)[_0xce9e('0x26')](handleEntityNotFound(_0x58e980,null))[_0xce9e('0x26')](respondWithResult(_0x58e980,null))[_0xce9e('0x46')](handleError(_0x58e980,null));};exports[_0xce9e('0x4c')]=function(_0x5b85b0,_0x3e2d7d){return db[_0xce9e('0x2d')][_0xce9e('0x4c')](_0x5b85b0[_0xce9e('0x4d')],{})[_0xce9e('0x26')](respondWithResult(_0x3e2d7d,0xc9))[_0xce9e('0x46')](handleError(_0x3e2d7d,null));};exports[_0xce9e('0x25')]=function(_0x5c77c5,_0x13108f){if(_0x5c77c5[_0xce9e('0x4d')]['id']){delete _0x5c77c5[_0xce9e('0x4d')]['id'];}return db[_0xce9e('0x2d')][_0xce9e('0x4b')]({'where':{'id':_0x5c77c5[_0xce9e('0x47')]['id']}})['then'](handleEntityNotFound(_0x13108f,null))['then'](saveUpdates(_0x5c77c5[_0xce9e('0x4d')],null))[_0xce9e('0x26')](respondWithResult(_0x13108f,null))['catch'](handleError(_0x13108f,null));};exports['destroy']=function(_0x2083b0,_0x5241ec){return db['ChatGroup'][_0xce9e('0x4b')]({'where':{'id':_0x2083b0[_0xce9e('0x47')]['id']}})['then'](handleEntityNotFound(_0x5241ec,null))[_0xce9e('0x26')](removeEntity(_0x5241ec,null))['catch'](handleError(_0x5241ec,null));};exports[_0xce9e('0x4e')]=function(_0x384da5,_0xc6cf8){return db['ChatGroup']['describe']()[_0xce9e('0x26')](respondWithResult(_0xc6cf8,null))[_0xce9e('0x46')](handleError(_0xc6cf8,null));};exports['getUnread']=function(_0x4d6242,_0x5ba239,_0x351437){return db['ChatInternalMessage'][_0xce9e('0x1f')]({'where':{'ChatGroupId':_0x4d6242[_0xce9e('0x47')]['id'],'ToId':_0x4d6242['user']['id'],'read':![]}})[_0xce9e('0x26')](function(_0xbdec12){return{'id':_[_0xce9e('0x4f')](_0x4d6242[_0xce9e('0x47')]['id']),'count':_0xbdec12};})['then'](respondWithResult(_0x5ba239,null))[_0xce9e('0x46')](handleError(_0x5ba239,null));};exports['addMembers']=function(_0xeeeaa0,_0x56bb76,_0x99fc0a){return db[_0xce9e('0x2d')][_0xce9e('0x4b')]({'where':{'id':_0xeeeaa0[_0xce9e('0x47')]['id']}})[_0xce9e('0x26')](handleEntityNotFound(_0x56bb76,null))['then'](function(_0x1d080c){if(_0x1d080c){return _0x1d080c[_0xce9e('0x50')](_0xeeeaa0[_0xce9e('0x4d')][_0xce9e('0x51')],_[_0xce9e('0x52')](_0xeeeaa0[_0xce9e('0x4d')],[_0xce9e('0x51'),'id'])||{});}})[_0xce9e('0x26')](respondWithResult(_0x56bb76,null))[_0xce9e('0x46')](handleError(_0x56bb76,null));};exports[_0xce9e('0x53')]=function(_0xb404f7,_0xea8ae,_0x2def06){var _0x136af9={};var _0x3dede1={};var _0x51099d;var _0x4fa4f2;return db[_0xce9e('0x2d')][_0xce9e('0x54')]({'where':{'id':_0xb404f7[_0xce9e('0x47')]['id']}})[_0xce9e('0x26')](handleEntityNotFound(_0xea8ae,null))['then'](function(_0x41d243){if(_0x41d243){_0x51099d=_0x41d243;_0x3dede1['model']=_[_0xce9e('0x48')](db['User'][_0xce9e('0x2e')]);_0x3dede1[_0xce9e('0x34')]=_[_0xce9e('0x48')](_0xb404f7[_0xce9e('0x34')]);_0x3dede1[_0xce9e('0x3d')]=_[_0xce9e('0x35')](_0x3dede1[_0xce9e('0x32')],_0x3dede1[_0xce9e('0x34')]);_0x136af9['attributes']=_[_0xce9e('0x35')](_0x3dede1[_0xce9e('0x32')],qs[_0xce9e('0x37')](_0xb404f7[_0xce9e('0x34')][_0xce9e('0x37')]));_0x136af9[_0xce9e('0x36')]=_0x136af9[_0xce9e('0x36')][_0xce9e('0x38')]?_0x136af9[_0xce9e('0x36')]:_0x3dede1[_0xce9e('0x32')];_0x136af9[_0xce9e('0x3b')]=qs[_0xce9e('0x3c')](_0xb404f7[_0xce9e('0x34')][_0xce9e('0x3c')]);_0x136af9['where']=qs[_0xce9e('0x3d')](_[_0xce9e('0x3e')](_0xb404f7[_0xce9e('0x34')],_0x3dede1[_0xce9e('0x3d')]));if(_0xb404f7[_0xce9e('0x34')][_0xce9e('0x3f')]){_0x136af9['where']=_[_0xce9e('0x41')](_0x136af9['where'],{'$or':_[_0xce9e('0x2c')](_0x136af9[_0xce9e('0x36')],function(_0x5b93db){var _0x26b49a={};_0x26b49a[_0x5b93db]={'$like':'%'+_0xb404f7['query'][_0xce9e('0x3f')]+'%'};return _0x26b49a;})});}_0x136af9=_[_0xce9e('0x41')]({},_0x136af9,_0xb404f7[_0xce9e('0x4a')]);return _0x51099d[_0xce9e('0x53')](_0x136af9);}})[_0xce9e('0x26')](function(_0x57c177){if(_0x57c177){_0x4fa4f2=_0x57c177[_0xce9e('0x38')];if(!_0xb404f7[_0xce9e('0x34')][_0xce9e('0x39')](_0xce9e('0x3a'))){_0x136af9['limit']=qs[_0xce9e('0x1d')](_0xb404f7[_0xce9e('0x34')][_0xce9e('0x1d')]);_0x136af9['offset']=qs['offset'](_0xb404f7[_0xce9e('0x34')][_0xce9e('0x20')]);}return _0x51099d['getMembers'](_0x136af9);}})['then'](function(_0x54864b){if(_0x54864b){return _0x54864b?{'count':_0x4fa4f2,'rows':_0x54864b}:null;}})[_0xce9e('0x26')](respondWithResult(_0xea8ae,null))['catch'](handleError(_0xea8ae,null));};exports[_0xce9e('0x55')]=function(_0x494710,_0x280baa,_0x53d5b5){return db[_0xce9e('0x2d')][_0xce9e('0x4b')]({'where':{'id':_0x494710['params']['id']}})[_0xce9e('0x26')](handleEntityNotFound(_0x280baa,null))[_0xce9e('0x26')](function(_0x6d07a9){if(_0x6d07a9){return _0x6d07a9[_0xce9e('0x55')](_0x494710[_0xce9e('0x34')][_0xce9e('0x51')]);}})[_0xce9e('0x26')](respondWithStatusCode(_0x280baa,null))[_0xce9e('0x46')](handleError(_0x280baa,null));};exports['addMessage']=function(_0x23721d,_0x5e9288,_0x37d23e){if(_0x23721d[_0xce9e('0x4d')]['id']){delete _0x23721d['body']['id'];}return db[_0xce9e('0x2d')][_0xce9e('0x4b')]({'where':{'id':_0x23721d[_0xce9e('0x47')]['id']}})[_0xce9e('0x26')](handleEntityNotFound(_0x5e9288,null))['then'](function(_0x3f97dc){if(_0x3f97dc){_0x23721d['body']['ChatGroupId']=_0x3f97dc['id'];return db[_0xce9e('0x56')][_0xce9e('0x4c')](_0x23721d['body']);}})[_0xce9e('0x26')](respondWithResult(_0x5e9288,null))[_0xce9e('0x46')](handleError(_0x5e9288,null));};exports[_0xce9e('0x57')]=function(_0x2ba7cc,_0x3e0f87,_0x328257){var _0x166b75={};var _0x537bb9={};var _0x4c1f88;var _0x37d8da;return db[_0xce9e('0x2d')][_0xce9e('0x54')]({'where':{'id':_0x2ba7cc['params']['id']}})['then'](handleEntityNotFound(_0x3e0f87,null))[_0xce9e('0x26')](function(_0x32c774){if(_0x32c774){_0x4c1f88=_0x32c774;_0x537bb9[_0xce9e('0x32')]=_[_0xce9e('0x48')](db['ChatInternalMessage'][_0xce9e('0x2e')]);_0x537bb9['query']=_[_0xce9e('0x48')](_0x2ba7cc[_0xce9e('0x34')]);_0x537bb9[_0xce9e('0x3d')]=_['intersection'](_0x537bb9[_0xce9e('0x32')],_0x537bb9[_0xce9e('0x34')]);_0x166b75[_0xce9e('0x36')]=_['intersection'](_0x537bb9[_0xce9e('0x32')],qs['fields'](_0x2ba7cc['query'][_0xce9e('0x37')]));_0x166b75['attributes']=_0x166b75[_0xce9e('0x36')][_0xce9e('0x38')]?_0x166b75[_0xce9e('0x36')]:_0x537bb9[_0xce9e('0x32')];_0x166b75[_0xce9e('0x3b')]=qs[_0xce9e('0x3c')](_0x2ba7cc[_0xce9e('0x34')]['sort']);_0x166b75['where']=qs[_0xce9e('0x3d')](_[_0xce9e('0x3e')](_0x2ba7cc['query'],_0x537bb9[_0xce9e('0x3d')]));if(_0x2ba7cc[_0xce9e('0x34')][_0xce9e('0x3f')]){_0x166b75[_0xce9e('0x40')]=_['merge'](_0x166b75[_0xce9e('0x40')],{'$or':_[_0xce9e('0x2c')](_0x166b75[_0xce9e('0x36')],function(_0x3e79ce){var _0x342529={};_0x342529[_0x3e79ce]={'$like':'%'+_0x2ba7cc[_0xce9e('0x34')][_0xce9e('0x3f')]+'%'};return _0x342529;})});}if(_0x2ba7cc[_0xce9e('0x34')][_0xce9e('0x58')]){var _0x321c67=_0x2ba7cc['query'][_0xce9e('0x58')]['split'](',');var _0x1ed78d={};_0x1ed78d[_0x321c67[0x0]]={'$gte':moment(_0x321c67[0x1])[_0xce9e('0x59')](_0xce9e('0x5a'))};_0x166b75['where']=_[_0xce9e('0x41')](_0x166b75['where'],_0x1ed78d);}_0x166b75=_[_0xce9e('0x41')]({},_0x166b75,_0x2ba7cc[_0xce9e('0x4a')]);return _0x4c1f88[_0xce9e('0x57')](_0x166b75);}})[_0xce9e('0x26')](function(_0x2ff574){if(_0x2ff574){_0x37d8da=_0x2ff574['length'];if(!_0x2ba7cc[_0xce9e('0x34')][_0xce9e('0x39')]('nolimit')){_0x166b75[_0xce9e('0x1d')]=qs[_0xce9e('0x1d')](_0x2ba7cc[_0xce9e('0x34')]['limit']);_0x166b75[_0xce9e('0x20')]=qs[_0xce9e('0x20')](_0x2ba7cc['query'][_0xce9e('0x20')]);}return _0x4c1f88[_0xce9e('0x57')](_0x166b75);}})[_0xce9e('0x26')](function(_0x4a7b9e){if(_0x4a7b9e){return _0x4a7b9e?{'count':_0x37d8da,'rows':_0x4a7b9e}:null;}})[_0xce9e('0x26')](respondWithResult(_0x3e0f87,null))[_0xce9e('0x46')](handleError(_0x3e0f87,null));};