Built motion from commit eddce310.|2.6.12
[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 _0x2561=['type','key','model','map','query','filters','intersection','attributes','fields','length','order','sort','where','pick','filter','merge','VIRTUAL','options','ChatGroup','include','findAll','rows','catch','show','params','keys','includeAll','find','create','body','describe','getUnread','ChatInternalMessage','user','toInteger','addMembers','ids','omit','getMembers','findOne','User','hasOwnProperty','nolimit','removeMembers','addMessage','ChatGroupId','getMessages','$gte','split','format','YYYY-MM-DD\x20HH:mm:ss','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','to-csv','ejs','crypto','jsforce','desk.js','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','redis','defaults','localhost','./chatGroup.socket','register','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','reject','save','update','then','destroy','error','stack','name','send','index','rawAttributes','fieldName'];(function(_0xc4001c,_0x1bf8f0){var _0x49f7bc=function(_0x1059b8){while(--_0x1059b8){_0xc4001c['push'](_0xc4001c['shift']());}};_0x49f7bc(++_0x1bf8f0);}(_0x2561,0x162));var _0x1256=function(_0x27af45,_0x1b57aa){_0x27af45=_0x27af45-0x0;var _0x18df21=_0x2561[_0x27af45];return _0x18df21;};'use strict';var emlformat=require(_0x1256('0x0'));var rimraf=require(_0x1256('0x1'));var zipdir=require(_0x1256('0x2'));var jsonpatch=require(_0x1256('0x3'));var rp=require(_0x1256('0x4'));var moment=require('moment');var BPromise=require(_0x1256('0x5'));var Mustache=require(_0x1256('0x6'));var util=require(_0x1256('0x7'));var path=require(_0x1256('0x8'));var sox=require(_0x1256('0x9'));var csv=require(_0x1256('0xa'));var ejs=require(_0x1256('0xb'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require('squel');var crypto=require(_0x1256('0xc'));var jsforce=require(_0x1256('0xd'));var deskjs=require(_0x1256('0xe'));var toCsv=require(_0x1256('0xa'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x1256('0xf'));var authService=require(_0x1256('0x10'));var qs=require('../../components/parsers/qs');var as=require(_0x1256('0x11'));var hardwareService=require(_0x1256('0x12'));var logger=require(_0x1256('0x13'))('api');var utils=require(_0x1256('0x14'));var config=require(_0x1256('0x15'));var licenseUtil=require('../../config/license/util');var db=require(_0x1256('0x16'))['db'];config[_0x1256('0x17')]=_[_0x1256('0x18')](config[_0x1256('0x17')],{'host':_0x1256('0x19'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require(_0x1256('0x1a'))[_0x1256('0x1b')](socket);function respondWithStatusCode(_0x25ae2e,_0x31e19f){_0x31e19f=_0x31e19f||0xcc;return function(_0x34df37){if(_0x34df37){return _0x25ae2e[_0x1256('0x1c')](_0x31e19f);}return _0x25ae2e[_0x1256('0x1d')](_0x31e19f)[_0x1256('0x1e')]();};}function respondWithResult(_0x2b43a8,_0x53382b){_0x53382b=_0x53382b||0xc8;return function(_0x3c5f58){if(_0x3c5f58){return _0x2b43a8[_0x1256('0x1d')](_0x53382b)[_0x1256('0x1f')](_0x3c5f58);}};}function respondWithFilteredResult(_0x3b9b99,_0x375c3a){return function(_0x2f6ae2){if(_0x2f6ae2){var _0x2dc1fa=typeof _0x375c3a[_0x1256('0x20')]===_0x1256('0x21')&&typeof _0x375c3a[_0x1256('0x22')]===_0x1256('0x21');var _0x1ca75e=_0x2f6ae2[_0x1256('0x23')];var _0x91d0ba=_0x2dc1fa?0x0:_0x375c3a[_0x1256('0x20')];var _0x115948=_0x2dc1fa?_0x2f6ae2['count']:_0x375c3a['offset']+_0x375c3a[_0x1256('0x22')];var _0x47e493;if(_0x115948>=_0x1ca75e){_0x115948=_0x1ca75e;_0x47e493=0xc8;}else{_0x47e493=0xce;}_0x3b9b99[_0x1256('0x1d')](_0x47e493);return _0x3b9b99[_0x1256('0x24')](_0x1256('0x25'),_0x91d0ba+'-'+_0x115948+'/'+_0x1ca75e)[_0x1256('0x1f')](_0x2f6ae2);}return null;};}function patchUpdates(_0x8799dd){return function(_0x47bdff){try{jsonpatch['apply'](_0x47bdff,_0x8799dd,!![]);}catch(_0x3b2284){return BPromise[_0x1256('0x26')](_0x3b2284);}return _0x47bdff[_0x1256('0x27')]();};}function saveUpdates(_0x56d141,_0x23caab){return function(_0x4a99df){if(_0x4a99df){return _0x4a99df[_0x1256('0x28')](_0x56d141)[_0x1256('0x29')](function(_0x1b7fed){return _0x1b7fed;});}return null;};}function removeEntity(_0x23601c,_0x51349d){return function(_0x46a45e){if(_0x46a45e){return _0x46a45e[_0x1256('0x2a')]()['then'](function(){_0x23601c['status'](0xcc)[_0x1256('0x1e')]();});}};}function handleEntityNotFound(_0x381c50,_0x466979){return function(_0x1b13af){if(!_0x1b13af){_0x381c50[_0x1256('0x1c')](0x194);}return _0x1b13af;};}function handleError(_0x5273d7,_0x5dbedc){_0x5dbedc=_0x5dbedc||0x1f4;return function(_0x539fdf){logger[_0x1256('0x2b')](_0x539fdf[_0x1256('0x2c')]);if(_0x539fdf[_0x1256('0x2d')]){delete _0x539fdf[_0x1256('0x2d')];}_0x5273d7['status'](_0x5dbedc)[_0x1256('0x2e')](_0x539fdf);};}exports[_0x1256('0x2f')]=function(_0x19a6ed,_0x3506ff){var _0x48e518={},_0x376f4e={},_0x31104e={'count':0x0,'rows':[]};var _0x36230b=_['map'](db['ChatGroup'][_0x1256('0x30')],function(_0x4e2fe5){return{'name':_0x4e2fe5[_0x1256('0x31')],'type':_0x4e2fe5[_0x1256('0x32')][_0x1256('0x33')]};});_0x376f4e[_0x1256('0x34')]=_[_0x1256('0x35')](_0x36230b,_0x1256('0x2d'));_0x376f4e[_0x1256('0x36')]=_['keys'](_0x19a6ed[_0x1256('0x36')]);_0x376f4e[_0x1256('0x37')]=_[_0x1256('0x38')](_0x376f4e[_0x1256('0x34')],_0x376f4e[_0x1256('0x36')]);_0x48e518[_0x1256('0x39')]=_[_0x1256('0x38')](_0x376f4e[_0x1256('0x34')],qs['fields'](_0x19a6ed['query'][_0x1256('0x3a')]));_0x48e518['attributes']=_0x48e518['attributes'][_0x1256('0x3b')]?_0x48e518[_0x1256('0x39')]:_0x376f4e[_0x1256('0x34')];if(!_0x19a6ed['query']['hasOwnProperty']('nolimit')){_0x48e518[_0x1256('0x22')]=qs['limit'](_0x19a6ed[_0x1256('0x36')][_0x1256('0x22')]);_0x48e518[_0x1256('0x20')]=qs[_0x1256('0x20')](_0x19a6ed[_0x1256('0x36')][_0x1256('0x20')]);}_0x48e518[_0x1256('0x3c')]=qs[_0x1256('0x3d')](_0x19a6ed[_0x1256('0x36')]['sort']);_0x48e518[_0x1256('0x3e')]=qs[_0x1256('0x37')](_[_0x1256('0x3f')](_0x19a6ed[_0x1256('0x36')],_0x376f4e['filters']),_0x36230b);if(_0x19a6ed[_0x1256('0x36')][_0x1256('0x40')]){_0x48e518[_0x1256('0x3e')]=_[_0x1256('0x41')](_0x48e518[_0x1256('0x3e')],{'$or':_[_0x1256('0x35')](_0x36230b,function(_0x5eba1c){if(_0x5eba1c[_0x1256('0x32')]!==_0x1256('0x42')){var _0x34392d={};_0x34392d[_0x5eba1c[_0x1256('0x2d')]]={'$like':'%'+_0x19a6ed['query'][_0x1256('0x40')]+'%'};return _0x34392d;}})});}_0x48e518=_[_0x1256('0x41')]({},_0x48e518,_0x19a6ed[_0x1256('0x43')]);var _0x873166={'where':_0x48e518[_0x1256('0x3e')]};return db[_0x1256('0x44')][_0x1256('0x23')](_0x873166)[_0x1256('0x29')](function(_0x5a8aa0){_0x31104e[_0x1256('0x23')]=_0x5a8aa0;if(_0x19a6ed[_0x1256('0x36')]['includeAll']){_0x48e518[_0x1256('0x45')]=[{'all':!![]}];}return db[_0x1256('0x44')][_0x1256('0x46')](_0x48e518);})[_0x1256('0x29')](function(_0x18da0a){_0x31104e[_0x1256('0x47')]=_0x18da0a;return _0x31104e;})['then'](respondWithFilteredResult(_0x3506ff,_0x48e518))[_0x1256('0x48')](handleError(_0x3506ff,null));};exports[_0x1256('0x49')]=function(_0x4ac584,_0x3c967a){var _0x5e5b83={'raw':!![],'where':{'id':_0x4ac584[_0x1256('0x4a')]['id']}},_0x1384df={};_0x1384df[_0x1256('0x34')]=_[_0x1256('0x4b')](db['ChatGroup'][_0x1256('0x30')]);_0x1384df[_0x1256('0x36')]=_['keys'](_0x4ac584[_0x1256('0x36')]);_0x1384df[_0x1256('0x37')]=_[_0x1256('0x38')](_0x1384df['model'],_0x1384df[_0x1256('0x36')]);_0x5e5b83[_0x1256('0x39')]=_[_0x1256('0x38')](_0x1384df[_0x1256('0x34')],qs[_0x1256('0x3a')](_0x4ac584[_0x1256('0x36')][_0x1256('0x3a')]));_0x5e5b83[_0x1256('0x39')]=_0x5e5b83[_0x1256('0x39')][_0x1256('0x3b')]?_0x5e5b83[_0x1256('0x39')]:_0x1384df['model'];if(_0x4ac584[_0x1256('0x36')][_0x1256('0x4c')]){_0x5e5b83[_0x1256('0x45')]=[{'all':!![]}];}_0x5e5b83=_[_0x1256('0x41')]({},_0x5e5b83,_0x4ac584[_0x1256('0x43')]);return db[_0x1256('0x44')][_0x1256('0x4d')](_0x5e5b83)[_0x1256('0x29')](handleEntityNotFound(_0x3c967a,null))[_0x1256('0x29')](respondWithResult(_0x3c967a,null))[_0x1256('0x48')](handleError(_0x3c967a,null));};exports[_0x1256('0x4e')]=function(_0xb8258f,_0x4f5ab7){return db[_0x1256('0x44')][_0x1256('0x4e')](_0xb8258f[_0x1256('0x4f')],{})[_0x1256('0x29')](respondWithResult(_0x4f5ab7,0xc9))[_0x1256('0x48')](handleError(_0x4f5ab7,null));};exports[_0x1256('0x28')]=function(_0x25d9f1,_0x1a8b37){if(_0x25d9f1[_0x1256('0x4f')]['id']){delete _0x25d9f1['body']['id'];}return db[_0x1256('0x44')]['find']({'where':{'id':_0x25d9f1[_0x1256('0x4a')]['id']}})[_0x1256('0x29')](handleEntityNotFound(_0x1a8b37,null))[_0x1256('0x29')](saveUpdates(_0x25d9f1[_0x1256('0x4f')],null))['then'](respondWithResult(_0x1a8b37,null))['catch'](handleError(_0x1a8b37,null));};exports['destroy']=function(_0x26243f,_0x5df63a){return db[_0x1256('0x44')][_0x1256('0x4d')]({'where':{'id':_0x26243f[_0x1256('0x4a')]['id']}})[_0x1256('0x29')](handleEntityNotFound(_0x5df63a,null))[_0x1256('0x29')](removeEntity(_0x5df63a,null))[_0x1256('0x48')](handleError(_0x5df63a,null));};exports[_0x1256('0x50')]=function(_0x30842a,_0x259661){return db['ChatGroup']['describe']()['then'](respondWithResult(_0x259661,null))['catch'](handleError(_0x259661,null));};exports[_0x1256('0x51')]=function(_0xdd557f,_0x38a9c3,_0x32a1de){return db[_0x1256('0x52')]['count']({'where':{'ChatGroupId':_0xdd557f['params']['id'],'ToId':_0xdd557f[_0x1256('0x53')]['id'],'read':![]}})[_0x1256('0x29')](function(_0x3b2dfa){return{'id':_[_0x1256('0x54')](_0xdd557f[_0x1256('0x4a')]['id']),'count':_0x3b2dfa};})[_0x1256('0x29')](respondWithResult(_0x38a9c3,null))[_0x1256('0x48')](handleError(_0x38a9c3,null));};exports['addMembers']=function(_0x417f2b,_0x596b48,_0x3d41e0){return db[_0x1256('0x44')][_0x1256('0x4d')]({'where':{'id':_0x417f2b[_0x1256('0x4a')]['id']}})[_0x1256('0x29')](handleEntityNotFound(_0x596b48,null))[_0x1256('0x29')](function(_0x1a4cb1){if(_0x1a4cb1){return _0x1a4cb1[_0x1256('0x55')](_0x417f2b['body'][_0x1256('0x56')],_[_0x1256('0x57')](_0x417f2b['body'],[_0x1256('0x56'),'id'])||{});}})[_0x1256('0x29')](respondWithResult(_0x596b48,null))[_0x1256('0x48')](handleError(_0x596b48,null));};exports[_0x1256('0x58')]=function(_0x12a575,_0xa2e52,_0x345536){var _0x1158ac={};var _0x51593c={};var _0x2aa906;var _0x4e9141;return db[_0x1256('0x44')][_0x1256('0x59')]({'where':{'id':_0x12a575[_0x1256('0x4a')]['id']}})['then'](handleEntityNotFound(_0xa2e52,null))[_0x1256('0x29')](function(_0xe91879){if(_0xe91879){_0x2aa906=_0xe91879;_0x51593c[_0x1256('0x34')]=_[_0x1256('0x4b')](db[_0x1256('0x5a')]['rawAttributes']);_0x51593c[_0x1256('0x36')]=_['keys'](_0x12a575[_0x1256('0x36')]);_0x51593c['filters']=_['intersection'](_0x51593c[_0x1256('0x34')],_0x51593c[_0x1256('0x36')]);_0x1158ac[_0x1256('0x39')]=_[_0x1256('0x38')](_0x51593c[_0x1256('0x34')],qs[_0x1256('0x3a')](_0x12a575[_0x1256('0x36')][_0x1256('0x3a')]));_0x1158ac[_0x1256('0x39')]=_0x1158ac[_0x1256('0x39')][_0x1256('0x3b')]?_0x1158ac['attributes']:_0x51593c[_0x1256('0x34')];_0x1158ac[_0x1256('0x3c')]=qs[_0x1256('0x3d')](_0x12a575[_0x1256('0x36')][_0x1256('0x3d')]);_0x1158ac[_0x1256('0x3e')]=qs[_0x1256('0x37')](_['pick'](_0x12a575[_0x1256('0x36')],_0x51593c[_0x1256('0x37')]));if(_0x12a575[_0x1256('0x36')][_0x1256('0x40')]){_0x1158ac[_0x1256('0x3e')]=_[_0x1256('0x41')](_0x1158ac[_0x1256('0x3e')],{'$or':_['map'](_0x1158ac['attributes'],function(_0x57c08a){var _0x21dcea={};_0x21dcea[_0x57c08a]={'$like':'%'+_0x12a575[_0x1256('0x36')]['filter']+'%'};return _0x21dcea;})});}_0x1158ac=_['merge']({},_0x1158ac,_0x12a575[_0x1256('0x43')]);return _0x2aa906[_0x1256('0x58')](_0x1158ac);}})[_0x1256('0x29')](function(_0x4f207e){if(_0x4f207e){_0x4e9141=_0x4f207e[_0x1256('0x3b')];if(!_0x12a575['query'][_0x1256('0x5b')](_0x1256('0x5c'))){_0x1158ac[_0x1256('0x22')]=qs['limit'](_0x12a575[_0x1256('0x36')][_0x1256('0x22')]);_0x1158ac[_0x1256('0x20')]=qs[_0x1256('0x20')](_0x12a575[_0x1256('0x36')][_0x1256('0x20')]);}return _0x2aa906[_0x1256('0x58')](_0x1158ac);}})[_0x1256('0x29')](function(_0xef3a0b){if(_0xef3a0b){return _0xef3a0b?{'count':_0x4e9141,'rows':_0xef3a0b}:null;}})[_0x1256('0x29')](respondWithResult(_0xa2e52,null))[_0x1256('0x48')](handleError(_0xa2e52,null));};exports[_0x1256('0x5d')]=function(_0x4c7c7f,_0x1db50f,_0x4738cd){return db['ChatGroup'][_0x1256('0x4d')]({'where':{'id':_0x4c7c7f['params']['id']}})[_0x1256('0x29')](handleEntityNotFound(_0x1db50f,null))[_0x1256('0x29')](function(_0x4d9c83){if(_0x4d9c83){return _0x4d9c83[_0x1256('0x5d')](_0x4c7c7f[_0x1256('0x36')][_0x1256('0x56')]);}})['then'](respondWithStatusCode(_0x1db50f,null))['catch'](handleError(_0x1db50f,null));};exports[_0x1256('0x5e')]=function(_0x2ad6be,_0x532bb6,_0x2d8f43){if(_0x2ad6be[_0x1256('0x4f')]['id']){delete _0x2ad6be['body']['id'];}return db[_0x1256('0x44')]['find']({'where':{'id':_0x2ad6be['params']['id']}})[_0x1256('0x29')](handleEntityNotFound(_0x532bb6,null))[_0x1256('0x29')](function(_0x4b964b){if(_0x4b964b){_0x2ad6be[_0x1256('0x4f')][_0x1256('0x5f')]=_0x4b964b['id'];return db[_0x1256('0x52')][_0x1256('0x4e')](_0x2ad6be[_0x1256('0x4f')]);}})[_0x1256('0x29')](respondWithResult(_0x532bb6,null))[_0x1256('0x48')](handleError(_0x532bb6,null));};exports[_0x1256('0x60')]=function(_0x229eb3,_0x1a5a18,_0x381585){var _0xdf705e={};var _0x1898b9={};var _0x64df6e;var _0x1396d8;return db[_0x1256('0x44')][_0x1256('0x59')]({'where':{'id':_0x229eb3[_0x1256('0x4a')]['id']}})[_0x1256('0x29')](handleEntityNotFound(_0x1a5a18,null))[_0x1256('0x29')](function(_0x569e1b){if(_0x569e1b){_0x64df6e=_0x569e1b;_0x1898b9['model']=_[_0x1256('0x4b')](db[_0x1256('0x52')][_0x1256('0x30')]);_0x1898b9[_0x1256('0x36')]=_[_0x1256('0x4b')](_0x229eb3[_0x1256('0x36')]);_0x1898b9[_0x1256('0x37')]=_[_0x1256('0x38')](_0x1898b9[_0x1256('0x34')],_0x1898b9[_0x1256('0x36')]);_0xdf705e['attributes']=_[_0x1256('0x38')](_0x1898b9['model'],qs['fields'](_0x229eb3[_0x1256('0x36')][_0x1256('0x3a')]));_0xdf705e[_0x1256('0x39')]=_0xdf705e[_0x1256('0x39')]['length']?_0xdf705e[_0x1256('0x39')]:_0x1898b9['model'];_0xdf705e[_0x1256('0x3c')]=qs[_0x1256('0x3d')](_0x229eb3[_0x1256('0x36')][_0x1256('0x3d')]);_0xdf705e['where']=qs[_0x1256('0x37')](_[_0x1256('0x3f')](_0x229eb3[_0x1256('0x36')],_0x1898b9[_0x1256('0x37')]));if(_0x229eb3['query'][_0x1256('0x40')]){_0xdf705e['where']=_[_0x1256('0x41')](_0xdf705e['where'],{'$or':_[_0x1256('0x35')](_0xdf705e[_0x1256('0x39')],function(_0x3a5412){var _0x3728f6={};_0x3728f6[_0x3a5412]={'$like':'%'+_0x229eb3[_0x1256('0x36')]['filter']+'%'};return _0x3728f6;})});}if(_0x229eb3[_0x1256('0x36')][_0x1256('0x61')]){var _0x393a51=_0x229eb3['query']['$gte'][_0x1256('0x62')](',');var _0x158768={};_0x158768[_0x393a51[0x0]]={'$gte':moment(_0x393a51[0x1])[_0x1256('0x63')](_0x1256('0x64'))};_0xdf705e['where']=_[_0x1256('0x41')](_0xdf705e['where'],_0x158768);}_0xdf705e=_[_0x1256('0x41')]({},_0xdf705e,_0x229eb3[_0x1256('0x43')]);return _0x64df6e[_0x1256('0x60')](_0xdf705e);}})[_0x1256('0x29')](function(_0x4852bf){if(_0x4852bf){_0x1396d8=_0x4852bf[_0x1256('0x3b')];if(!_0x229eb3[_0x1256('0x36')]['hasOwnProperty'](_0x1256('0x5c'))){_0xdf705e[_0x1256('0x22')]=qs[_0x1256('0x22')](_0x229eb3[_0x1256('0x36')][_0x1256('0x22')]);_0xdf705e[_0x1256('0x20')]=qs[_0x1256('0x20')](_0x229eb3[_0x1256('0x36')][_0x1256('0x20')]);}return _0x64df6e[_0x1256('0x60')](_0xdf705e);}})[_0x1256('0x29')](function(_0x3dec0c){if(_0x3dec0c){return _0x3dec0c?{'count':_0x1396d8,'rows':_0x3dec0c}:null;}})[_0x1256('0x29')](respondWithResult(_0x1a5a18,null))[_0x1256('0x48')](handleError(_0x1a5a18,null));};