Built motion from commit b5996064.|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 _0x2cfd=['../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','localhost','socket.io-emitter','register','status','end','json','offset','undefined','limit','count','Content-Range','apply','update','destroy','name','send','index','ChatGroup','rawAttributes','fieldName','type','key','model','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filter','merge','map','VIRTUAL','then','includeAll','include','findAll','rows','catch','params','keys','create','body','find','describe','getUnread','ChatInternalMessage','user','addMembers','omit','getMembers','findOne','User','pick','options','removeMembers','ids','addMessage','getMessages','$gte','YYYY-MM-DD\x20HH:mm:ss','eml-format','rimraf','zip-dir','request-promise','moment','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs'];(function(_0x3a7e01,_0x51204c){var _0x5b8398=function(_0x4dcfab){while(--_0x4dcfab){_0x3a7e01['push'](_0x3a7e01['shift']());}};_0x5b8398(++_0x51204c);}(_0x2cfd,0x15b));var _0xd2cf=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0x2cfd[_0x20a584];return _0x4b41a8;};'use strict';var emlformat=require(_0xd2cf('0x0'));var rimraf=require(_0xd2cf('0x1'));var zipdir=require(_0xd2cf('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xd2cf('0x3'));var moment=require(_0xd2cf('0x4'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0xd2cf('0x5'));var path=require(_0xd2cf('0x6'));var sox=require(_0xd2cf('0x7'));var csv=require(_0xd2cf('0x8'));var ejs=require(_0xd2cf('0x9'));var fs=require('fs');var fs_extra=require(_0xd2cf('0xa'));var _=require(_0xd2cf('0xb'));var squel=require(_0xd2cf('0xc'));var crypto=require(_0xd2cf('0xd'));var jsforce=require(_0xd2cf('0xe'));var deskjs=require(_0xd2cf('0xf'));var toCsv=require('to-csv');var querystring=require(_0xd2cf('0x10'));var Papa=require(_0xd2cf('0x11'));var Redis=require(_0xd2cf('0x12'));var authService=require(_0xd2cf('0x13'));var qs=require(_0xd2cf('0x14'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0xd2cf('0x15'))('api');var utils=require(_0xd2cf('0x16'));var config=require(_0xd2cf('0x17'));var licenseUtil=require(_0xd2cf('0x18'));var db=require(_0xd2cf('0x19'))['db'];config['redis']=_['defaults'](config['redis'],{'host':_0xd2cf('0x1a'),'port':0x18eb});var socket=require(_0xd2cf('0x1b'))(new Redis(config['redis']));require('./chatGroup.socket')[_0xd2cf('0x1c')](socket);function respondWithStatusCode(_0x1386ec,_0x4149ce){_0x4149ce=_0x4149ce||0xcc;return function(_0x277440){if(_0x277440){return _0x1386ec['sendStatus'](_0x4149ce);}return _0x1386ec[_0xd2cf('0x1d')](_0x4149ce)[_0xd2cf('0x1e')]();};}function respondWithResult(_0xcb5c64,_0x4424a8){_0x4424a8=_0x4424a8||0xc8;return function(_0x330a4a){if(_0x330a4a){return _0xcb5c64[_0xd2cf('0x1d')](_0x4424a8)[_0xd2cf('0x1f')](_0x330a4a);}};}function respondWithFilteredResult(_0x28b7db,_0x16b41b){return function(_0x17c9b7){if(_0x17c9b7){var _0x3d03c8=typeof _0x16b41b[_0xd2cf('0x20')]===_0xd2cf('0x21')&&typeof _0x16b41b[_0xd2cf('0x22')]===_0xd2cf('0x21');var _0x49e390=_0x17c9b7[_0xd2cf('0x23')];var _0x16221e=_0x3d03c8?0x0:_0x16b41b[_0xd2cf('0x20')];var _0x2387b1=_0x3d03c8?_0x17c9b7[_0xd2cf('0x23')]:_0x16b41b[_0xd2cf('0x20')]+_0x16b41b['limit'];var _0x1db341;if(_0x2387b1>=_0x49e390){_0x2387b1=_0x49e390;_0x1db341=0xc8;}else{_0x1db341=0xce;}_0x28b7db[_0xd2cf('0x1d')](_0x1db341);return _0x28b7db['set'](_0xd2cf('0x24'),_0x16221e+'-'+_0x2387b1+'/'+_0x49e390)[_0xd2cf('0x1f')](_0x17c9b7);}return null;};}function patchUpdates(_0x57e2aa){return function(_0x1dff23){try{jsonpatch[_0xd2cf('0x25')](_0x1dff23,_0x57e2aa,!![]);}catch(_0x4ea000){return BPromise['reject'](_0x4ea000);}return _0x1dff23['save']();};}function saveUpdates(_0x17ebc6,_0x422959){return function(_0x382d16){if(_0x382d16){return _0x382d16[_0xd2cf('0x26')](_0x17ebc6)['then'](function(_0x2e8d45){return _0x2e8d45;});}return null;};}function removeEntity(_0x47b3fb,_0x4d1af8){return function(_0x3e8ef9){if(_0x3e8ef9){return _0x3e8ef9[_0xd2cf('0x27')]()['then'](function(){_0x47b3fb[_0xd2cf('0x1d')](0xcc)[_0xd2cf('0x1e')]();});}};}function handleEntityNotFound(_0x5cd6a7,_0x38f6c3){return function(_0x5666ef){if(!_0x5666ef){_0x5cd6a7['sendStatus'](0x194);}return _0x5666ef;};}function handleError(_0x29c32a,_0x3caa69){_0x3caa69=_0x3caa69||0x1f4;return function(_0x5e4620){logger['error'](_0x5e4620['stack']);if(_0x5e4620[_0xd2cf('0x28')]){delete _0x5e4620['name'];}_0x29c32a[_0xd2cf('0x1d')](_0x3caa69)[_0xd2cf('0x29')](_0x5e4620);};}exports[_0xd2cf('0x2a')]=function(_0x725ae,_0x7729fa){var _0x3eb104={},_0x1c1c17={},_0x55da75={'count':0x0,'rows':[]};var _0x2d00fd=_['map'](db[_0xd2cf('0x2b')][_0xd2cf('0x2c')],function(_0x36233c){return{'name':_0x36233c[_0xd2cf('0x2d')],'type':_0x36233c[_0xd2cf('0x2e')][_0xd2cf('0x2f')]};});_0x1c1c17[_0xd2cf('0x30')]=_['map'](_0x2d00fd,'name');_0x1c1c17['query']=_['keys'](_0x725ae[_0xd2cf('0x31')]);_0x1c1c17[_0xd2cf('0x32')]=_[_0xd2cf('0x33')](_0x1c1c17[_0xd2cf('0x30')],_0x1c1c17[_0xd2cf('0x31')]);_0x3eb104[_0xd2cf('0x34')]=_[_0xd2cf('0x33')](_0x1c1c17[_0xd2cf('0x30')],qs[_0xd2cf('0x35')](_0x725ae[_0xd2cf('0x31')]['fields']));_0x3eb104[_0xd2cf('0x34')]=_0x3eb104['attributes'][_0xd2cf('0x36')]?_0x3eb104[_0xd2cf('0x34')]:_0x1c1c17['model'];if(!_0x725ae['query'][_0xd2cf('0x37')](_0xd2cf('0x38'))){_0x3eb104[_0xd2cf('0x22')]=qs['limit'](_0x725ae[_0xd2cf('0x31')][_0xd2cf('0x22')]);_0x3eb104[_0xd2cf('0x20')]=qs[_0xd2cf('0x20')](_0x725ae[_0xd2cf('0x31')][_0xd2cf('0x20')]);}_0x3eb104[_0xd2cf('0x39')]=qs[_0xd2cf('0x3a')](_0x725ae[_0xd2cf('0x31')][_0xd2cf('0x3a')]);_0x3eb104[_0xd2cf('0x3b')]=qs[_0xd2cf('0x32')](_['pick'](_0x725ae['query'],_0x1c1c17['filters']),_0x2d00fd);if(_0x725ae[_0xd2cf('0x31')][_0xd2cf('0x3c')]){_0x3eb104[_0xd2cf('0x3b')]=_[_0xd2cf('0x3d')](_0x3eb104[_0xd2cf('0x3b')],{'$or':_[_0xd2cf('0x3e')](_0x2d00fd,function(_0x268854){if(_0x268854['type']!==_0xd2cf('0x3f')){var _0x1b2a77={};_0x1b2a77[_0x268854[_0xd2cf('0x28')]]={'$like':'%'+_0x725ae[_0xd2cf('0x31')][_0xd2cf('0x3c')]+'%'};return _0x1b2a77;}})});}_0x3eb104=_[_0xd2cf('0x3d')]({},_0x3eb104,_0x725ae['options']);var _0x586f77={'where':_0x3eb104[_0xd2cf('0x3b')]};return db['ChatGroup'][_0xd2cf('0x23')](_0x586f77)[_0xd2cf('0x40')](function(_0xca667){_0x55da75[_0xd2cf('0x23')]=_0xca667;if(_0x725ae['query'][_0xd2cf('0x41')]){_0x3eb104[_0xd2cf('0x42')]=[{'all':!![]}];}return db[_0xd2cf('0x2b')][_0xd2cf('0x43')](_0x3eb104);})[_0xd2cf('0x40')](function(_0x38d3e7){_0x55da75[_0xd2cf('0x44')]=_0x38d3e7;return _0x55da75;})[_0xd2cf('0x40')](respondWithFilteredResult(_0x7729fa,_0x3eb104))[_0xd2cf('0x45')](handleError(_0x7729fa,null));};exports['show']=function(_0x96bcc5,_0x1a2f1c){var _0xb58767={'raw':!![],'where':{'id':_0x96bcc5[_0xd2cf('0x46')]['id']}},_0x495c27={};_0x495c27[_0xd2cf('0x30')]=_[_0xd2cf('0x47')](db['ChatGroup']['rawAttributes']);_0x495c27[_0xd2cf('0x31')]=_[_0xd2cf('0x47')](_0x96bcc5['query']);_0x495c27[_0xd2cf('0x32')]=_[_0xd2cf('0x33')](_0x495c27[_0xd2cf('0x30')],_0x495c27[_0xd2cf('0x31')]);_0xb58767[_0xd2cf('0x34')]=_[_0xd2cf('0x33')](_0x495c27[_0xd2cf('0x30')],qs[_0xd2cf('0x35')](_0x96bcc5[_0xd2cf('0x31')][_0xd2cf('0x35')]));_0xb58767[_0xd2cf('0x34')]=_0xb58767[_0xd2cf('0x34')][_0xd2cf('0x36')]?_0xb58767['attributes']:_0x495c27[_0xd2cf('0x30')];if(_0x96bcc5[_0xd2cf('0x31')][_0xd2cf('0x41')]){_0xb58767[_0xd2cf('0x42')]=[{'all':!![]}];}_0xb58767=_[_0xd2cf('0x3d')]({},_0xb58767,_0x96bcc5['options']);return db[_0xd2cf('0x2b')]['find'](_0xb58767)[_0xd2cf('0x40')](handleEntityNotFound(_0x1a2f1c,null))[_0xd2cf('0x40')](respondWithResult(_0x1a2f1c,null))[_0xd2cf('0x45')](handleError(_0x1a2f1c,null));};exports[_0xd2cf('0x48')]=function(_0xa79592,_0x431b6e){return db['ChatGroup'][_0xd2cf('0x48')](_0xa79592['body'],{})['then'](respondWithResult(_0x431b6e,0xc9))['catch'](handleError(_0x431b6e,null));};exports[_0xd2cf('0x26')]=function(_0x116632,_0x124ce3){if(_0x116632[_0xd2cf('0x49')]['id']){delete _0x116632[_0xd2cf('0x49')]['id'];}return db['ChatGroup'][_0xd2cf('0x4a')]({'where':{'id':_0x116632[_0xd2cf('0x46')]['id']}})['then'](handleEntityNotFound(_0x124ce3,null))[_0xd2cf('0x40')](saveUpdates(_0x116632[_0xd2cf('0x49')],null))[_0xd2cf('0x40')](respondWithResult(_0x124ce3,null))['catch'](handleError(_0x124ce3,null));};exports[_0xd2cf('0x27')]=function(_0x1508c2,_0x16bbe8){return db[_0xd2cf('0x2b')]['find']({'where':{'id':_0x1508c2[_0xd2cf('0x46')]['id']}})['then'](handleEntityNotFound(_0x16bbe8,null))[_0xd2cf('0x40')](removeEntity(_0x16bbe8,null))[_0xd2cf('0x45')](handleError(_0x16bbe8,null));};exports[_0xd2cf('0x4b')]=function(_0x465dde,_0x25e67d){return db['ChatGroup'][_0xd2cf('0x4b')]()[_0xd2cf('0x40')](respondWithResult(_0x25e67d,null))[_0xd2cf('0x45')](handleError(_0x25e67d,null));};exports[_0xd2cf('0x4c')]=function(_0x1a8204,_0xd93696,_0x526ca4){return db[_0xd2cf('0x4d')]['count']({'where':{'ChatGroupId':_0x1a8204[_0xd2cf('0x46')]['id'],'ToId':_0x1a8204[_0xd2cf('0x4e')]['id'],'read':![]}})['then'](function(_0x51c2b8){return{'id':_['toInteger'](_0x1a8204['params']['id']),'count':_0x51c2b8};})[_0xd2cf('0x40')](respondWithResult(_0xd93696,null))[_0xd2cf('0x45')](handleError(_0xd93696,null));};exports[_0xd2cf('0x4f')]=function(_0x545d8f,_0x5b3477,_0x23966f){return db[_0xd2cf('0x2b')]['find']({'where':{'id':_0x545d8f[_0xd2cf('0x46')]['id']}})[_0xd2cf('0x40')](handleEntityNotFound(_0x5b3477,null))[_0xd2cf('0x40')](function(_0x390717){if(_0x390717){return _0x390717[_0xd2cf('0x4f')](_0x545d8f[_0xd2cf('0x49')]['ids'],_[_0xd2cf('0x50')](_0x545d8f[_0xd2cf('0x49')],['ids','id'])||{});}})['then'](respondWithResult(_0x5b3477,null))[_0xd2cf('0x45')](handleError(_0x5b3477,null));};exports[_0xd2cf('0x51')]=function(_0x525ead,_0x2e4170,_0x3b2a16){var _0x36f252={};var _0x416d25={};var _0x39eb8a;var _0x5ee064;return db[_0xd2cf('0x2b')][_0xd2cf('0x52')]({'where':{'id':_0x525ead[_0xd2cf('0x46')]['id']}})['then'](handleEntityNotFound(_0x2e4170,null))[_0xd2cf('0x40')](function(_0x5127f1){if(_0x5127f1){_0x39eb8a=_0x5127f1;_0x416d25['model']=_[_0xd2cf('0x47')](db[_0xd2cf('0x53')][_0xd2cf('0x2c')]);_0x416d25[_0xd2cf('0x31')]=_[_0xd2cf('0x47')](_0x525ead[_0xd2cf('0x31')]);_0x416d25[_0xd2cf('0x32')]=_[_0xd2cf('0x33')](_0x416d25[_0xd2cf('0x30')],_0x416d25[_0xd2cf('0x31')]);_0x36f252[_0xd2cf('0x34')]=_[_0xd2cf('0x33')](_0x416d25[_0xd2cf('0x30')],qs[_0xd2cf('0x35')](_0x525ead['query'][_0xd2cf('0x35')]));_0x36f252[_0xd2cf('0x34')]=_0x36f252['attributes'][_0xd2cf('0x36')]?_0x36f252[_0xd2cf('0x34')]:_0x416d25['model'];_0x36f252['order']=qs[_0xd2cf('0x3a')](_0x525ead[_0xd2cf('0x31')][_0xd2cf('0x3a')]);_0x36f252[_0xd2cf('0x3b')]=qs[_0xd2cf('0x32')](_[_0xd2cf('0x54')](_0x525ead['query'],_0x416d25[_0xd2cf('0x32')]));if(_0x525ead[_0xd2cf('0x31')][_0xd2cf('0x3c')]){_0x36f252[_0xd2cf('0x3b')]=_[_0xd2cf('0x3d')](_0x36f252[_0xd2cf('0x3b')],{'$or':_[_0xd2cf('0x3e')](_0x36f252[_0xd2cf('0x34')],function(_0x293028){var _0x23c4f0={};_0x23c4f0[_0x293028]={'$like':'%'+_0x525ead[_0xd2cf('0x31')][_0xd2cf('0x3c')]+'%'};return _0x23c4f0;})});}_0x36f252=_[_0xd2cf('0x3d')]({},_0x36f252,_0x525ead[_0xd2cf('0x55')]);return _0x39eb8a[_0xd2cf('0x51')](_0x36f252);}})[_0xd2cf('0x40')](function(_0x411434){if(_0x411434){_0x5ee064=_0x411434[_0xd2cf('0x36')];if(!_0x525ead[_0xd2cf('0x31')][_0xd2cf('0x37')]('nolimit')){_0x36f252['limit']=qs[_0xd2cf('0x22')](_0x525ead[_0xd2cf('0x31')]['limit']);_0x36f252[_0xd2cf('0x20')]=qs['offset'](_0x525ead['query']['offset']);}return _0x39eb8a[_0xd2cf('0x51')](_0x36f252);}})[_0xd2cf('0x40')](function(_0x4d50f0){if(_0x4d50f0){return _0x4d50f0?{'count':_0x5ee064,'rows':_0x4d50f0}:null;}})[_0xd2cf('0x40')](respondWithResult(_0x2e4170,null))[_0xd2cf('0x45')](handleError(_0x2e4170,null));};exports['removeMembers']=function(_0x2d1a80,_0x300adc,_0x2d1764){return db[_0xd2cf('0x2b')][_0xd2cf('0x4a')]({'where':{'id':_0x2d1a80[_0xd2cf('0x46')]['id']}})['then'](handleEntityNotFound(_0x300adc,null))[_0xd2cf('0x40')](function(_0x29c3f1){if(_0x29c3f1){return _0x29c3f1[_0xd2cf('0x56')](_0x2d1a80[_0xd2cf('0x31')][_0xd2cf('0x57')]);}})[_0xd2cf('0x40')](respondWithStatusCode(_0x300adc,null))[_0xd2cf('0x45')](handleError(_0x300adc,null));};exports[_0xd2cf('0x58')]=function(_0x5d20b3,_0x407eea,_0x4ebfe0){if(_0x5d20b3[_0xd2cf('0x49')]['id']){delete _0x5d20b3[_0xd2cf('0x49')]['id'];}return db[_0xd2cf('0x2b')][_0xd2cf('0x4a')]({'where':{'id':_0x5d20b3[_0xd2cf('0x46')]['id']}})[_0xd2cf('0x40')](handleEntityNotFound(_0x407eea,null))['then'](function(_0x228160){if(_0x228160){_0x5d20b3[_0xd2cf('0x49')]['ChatGroupId']=_0x228160['id'];return db['ChatInternalMessage'][_0xd2cf('0x48')](_0x5d20b3[_0xd2cf('0x49')]);}})[_0xd2cf('0x40')](respondWithResult(_0x407eea,null))['catch'](handleError(_0x407eea,null));};exports[_0xd2cf('0x59')]=function(_0x3c5944,_0x25e27c,_0xeeddc9){var _0x54e098={};var _0x403963={};var _0xfbf86a;var _0x56393f;return db[_0xd2cf('0x2b')][_0xd2cf('0x52')]({'where':{'id':_0x3c5944[_0xd2cf('0x46')]['id']}})['then'](handleEntityNotFound(_0x25e27c,null))[_0xd2cf('0x40')](function(_0x1e8b1c){if(_0x1e8b1c){_0xfbf86a=_0x1e8b1c;_0x403963[_0xd2cf('0x30')]=_[_0xd2cf('0x47')](db['ChatInternalMessage'][_0xd2cf('0x2c')]);_0x403963[_0xd2cf('0x31')]=_['keys'](_0x3c5944[_0xd2cf('0x31')]);_0x403963[_0xd2cf('0x32')]=_[_0xd2cf('0x33')](_0x403963['model'],_0x403963['query']);_0x54e098[_0xd2cf('0x34')]=_[_0xd2cf('0x33')](_0x403963[_0xd2cf('0x30')],qs[_0xd2cf('0x35')](_0x3c5944['query']['fields']));_0x54e098[_0xd2cf('0x34')]=_0x54e098['attributes'][_0xd2cf('0x36')]?_0x54e098[_0xd2cf('0x34')]:_0x403963['model'];_0x54e098[_0xd2cf('0x39')]=qs['sort'](_0x3c5944[_0xd2cf('0x31')][_0xd2cf('0x3a')]);_0x54e098[_0xd2cf('0x3b')]=qs[_0xd2cf('0x32')](_[_0xd2cf('0x54')](_0x3c5944[_0xd2cf('0x31')],_0x403963[_0xd2cf('0x32')]));if(_0x3c5944[_0xd2cf('0x31')][_0xd2cf('0x3c')]){_0x54e098[_0xd2cf('0x3b')]=_['merge'](_0x54e098['where'],{'$or':_[_0xd2cf('0x3e')](_0x54e098['attributes'],function(_0x5c320c){var _0x8bb366={};_0x8bb366[_0x5c320c]={'$like':'%'+_0x3c5944[_0xd2cf('0x31')][_0xd2cf('0x3c')]+'%'};return _0x8bb366;})});}if(_0x3c5944[_0xd2cf('0x31')]['$gte']){var _0x131484=_0x3c5944[_0xd2cf('0x31')][_0xd2cf('0x5a')]['split'](',');var _0xd4269b={};_0xd4269b[_0x131484[0x0]]={'$gte':moment(_0x131484[0x1])['format'](_0xd2cf('0x5b'))};_0x54e098[_0xd2cf('0x3b')]=_['merge'](_0x54e098[_0xd2cf('0x3b')],_0xd4269b);}_0x54e098=_[_0xd2cf('0x3d')]({},_0x54e098,_0x3c5944[_0xd2cf('0x55')]);return _0xfbf86a[_0xd2cf('0x59')](_0x54e098);}})[_0xd2cf('0x40')](function(_0x120545){if(_0x120545){_0x56393f=_0x120545[_0xd2cf('0x36')];if(!_0x3c5944[_0xd2cf('0x31')]['hasOwnProperty']('nolimit')){_0x54e098[_0xd2cf('0x22')]=qs['limit'](_0x3c5944[_0xd2cf('0x31')][_0xd2cf('0x22')]);_0x54e098[_0xd2cf('0x20')]=qs[_0xd2cf('0x20')](_0x3c5944['query'][_0xd2cf('0x20')]);}return _0xfbf86a['getMessages'](_0x54e098);}})[_0xd2cf('0x40')](function(_0x3b011c){if(_0x3b011c){return _0x3b011c?{'count':_0x56393f,'rows':_0x3b011c}:null;}})['then'](respondWithResult(_0x25e27c,null))['catch'](handleError(_0x25e27c,null));};