Built motion from commit fe909640.|2.6.8
[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 _0x029f=['limit','count','set','save','update','then','destroy','error','stack','name','send','index','rawAttributes','fieldName','type','model','map','query','keys','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','filters','pick','filter','merge','options','ChatGroup','includeAll','include','findAll','catch','show','params','find','create','body','describe','getUnread','ChatInternalMessage','user','toInteger','addMembers','ids','omit','getMembers','findOne','nolimit','removeMembers','addMessage','ChatGroupId','getMessages','$gte','split','format','YYYY-MM-DD\x20HH:mm:ss','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','defaults','redis','localhost','socket.io-emitter','./chatGroup.socket','register','sendStatus','status','end','json','offset','undefined'];(function(_0x49ec29,_0xe947b0){var _0x53082b=function(_0x436a82){while(--_0x436a82){_0x49ec29['push'](_0x49ec29['shift']());}};_0x53082b(++_0xe947b0);}(_0x029f,0x166));var _0xf029=function(_0x3947c9,_0x4d6c97){_0x3947c9=_0x3947c9-0x0;var _0x2e7871=_0x029f[_0x3947c9];return _0x2e7871;};'use strict';var emlformat=require(_0xf029('0x0'));var rimraf=require(_0xf029('0x1'));var zipdir=require(_0xf029('0x2'));var jsonpatch=require(_0xf029('0x3'));var rp=require(_0xf029('0x4'));var moment=require(_0xf029('0x5'));var BPromise=require(_0xf029('0x6'));var Mustache=require(_0xf029('0x7'));var util=require(_0xf029('0x8'));var path=require(_0xf029('0x9'));var sox=require('sox');var csv=require(_0xf029('0xa'));var ejs=require(_0xf029('0xb'));var fs=require('fs');var fs_extra=require(_0xf029('0xc'));var _=require(_0xf029('0xd'));var squel=require(_0xf029('0xe'));var crypto=require(_0xf029('0xf'));var jsforce=require(_0xf029('0x10'));var deskjs=require('desk.js');var toCsv=require(_0xf029('0xa'));var querystring=require('querystring');var Papa=require(_0xf029('0x11'));var Redis=require(_0xf029('0x12'));var authService=require('../../components/auth/service');var qs=require(_0xf029('0x13'));var as=require(_0xf029('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0xf029('0x15'));var utils=require(_0xf029('0x16'));var config=require(_0xf029('0x17'));var licenseUtil=require(_0xf029('0x18'));var db=require(_0xf029('0x19'))['db'];config['redis']=_[_0xf029('0x1a')](config[_0xf029('0x1b')],{'host':_0xf029('0x1c'),'port':0x18eb});var socket=require(_0xf029('0x1d'))(new Redis(config['redis']));require(_0xf029('0x1e'))[_0xf029('0x1f')](socket);function respondWithStatusCode(_0xb6060e,_0x557b4a){_0x557b4a=_0x557b4a||0xcc;return function(_0x43733f){if(_0x43733f){return _0xb6060e[_0xf029('0x20')](_0x557b4a);}return _0xb6060e[_0xf029('0x21')](_0x557b4a)[_0xf029('0x22')]();};}function respondWithResult(_0xcc1c3f,_0x3cf2e5){_0x3cf2e5=_0x3cf2e5||0xc8;return function(_0xa1a8a9){if(_0xa1a8a9){return _0xcc1c3f[_0xf029('0x21')](_0x3cf2e5)[_0xf029('0x23')](_0xa1a8a9);}};}function respondWithFilteredResult(_0x1baf85,_0x3de867){return function(_0x57bf93){if(_0x57bf93){var _0x1b5aee=typeof _0x3de867[_0xf029('0x24')]===_0xf029('0x25')&&typeof _0x3de867[_0xf029('0x26')]===_0xf029('0x25');var _0x4c4c07=_0x57bf93[_0xf029('0x27')];var _0x2e55e3=_0x1b5aee?0x0:_0x3de867[_0xf029('0x24')];var _0x28725b=_0x1b5aee?_0x57bf93[_0xf029('0x27')]:_0x3de867[_0xf029('0x24')]+_0x3de867['limit'];var _0x2f1c19;if(_0x28725b>=_0x4c4c07){_0x28725b=_0x4c4c07;_0x2f1c19=0xc8;}else{_0x2f1c19=0xce;}_0x1baf85[_0xf029('0x21')](_0x2f1c19);return _0x1baf85[_0xf029('0x28')]('Content-Range',_0x2e55e3+'-'+_0x28725b+'/'+_0x4c4c07)[_0xf029('0x23')](_0x57bf93);}return null;};}function patchUpdates(_0x2d6ba4){return function(_0xe10735){try{jsonpatch['apply'](_0xe10735,_0x2d6ba4,!![]);}catch(_0x1834d0){return BPromise['reject'](_0x1834d0);}return _0xe10735[_0xf029('0x29')]();};}function saveUpdates(_0x4d8fbb,_0x69b3eb){return function(_0x20d057){if(_0x20d057){return _0x20d057[_0xf029('0x2a')](_0x4d8fbb)[_0xf029('0x2b')](function(_0x1828b8){return _0x1828b8;});}return null;};}function removeEntity(_0x48f631,_0x22b24b){return function(_0x1554e1){if(_0x1554e1){return _0x1554e1[_0xf029('0x2c')]()[_0xf029('0x2b')](function(){_0x48f631[_0xf029('0x21')](0xcc)[_0xf029('0x22')]();});}};}function handleEntityNotFound(_0xcfb184,_0x14a031){return function(_0xf7d402){if(!_0xf7d402){_0xcfb184['sendStatus'](0x194);}return _0xf7d402;};}function handleError(_0x2be9e6,_0x193de4){_0x193de4=_0x193de4||0x1f4;return function(_0x267a91){logger[_0xf029('0x2d')](_0x267a91[_0xf029('0x2e')]);if(_0x267a91[_0xf029('0x2f')]){delete _0x267a91[_0xf029('0x2f')];}_0x2be9e6[_0xf029('0x21')](_0x193de4)[_0xf029('0x30')](_0x267a91);};}exports[_0xf029('0x31')]=function(_0x3e749b,_0x35b23d){var _0x27f013={},_0x4acad7={},_0x5194cd={'count':0x0,'rows':[]};var _0x5e403a=_['map'](db['ChatGroup'][_0xf029('0x32')],function(_0x32f3c8){return{'name':_0x32f3c8[_0xf029('0x33')],'type':_0x32f3c8[_0xf029('0x34')]['key']};});_0x4acad7[_0xf029('0x35')]=_[_0xf029('0x36')](_0x5e403a,_0xf029('0x2f'));_0x4acad7[_0xf029('0x37')]=_[_0xf029('0x38')](_0x3e749b[_0xf029('0x37')]);_0x4acad7['filters']=_[_0xf029('0x39')](_0x4acad7[_0xf029('0x35')],_0x4acad7['query']);_0x27f013[_0xf029('0x3a')]=_['intersection'](_0x4acad7[_0xf029('0x35')],qs[_0xf029('0x3b')](_0x3e749b[_0xf029('0x37')]['fields']));_0x27f013['attributes']=_0x27f013['attributes'][_0xf029('0x3c')]?_0x27f013[_0xf029('0x3a')]:_0x4acad7['model'];if(!_0x3e749b['query'][_0xf029('0x3d')]('nolimit')){_0x27f013[_0xf029('0x26')]=qs['limit'](_0x3e749b[_0xf029('0x37')][_0xf029('0x26')]);_0x27f013[_0xf029('0x24')]=qs[_0xf029('0x24')](_0x3e749b[_0xf029('0x37')]['offset']);}_0x27f013[_0xf029('0x3e')]=qs[_0xf029('0x3f')](_0x3e749b['query'][_0xf029('0x3f')]);_0x27f013[_0xf029('0x40')]=qs[_0xf029('0x41')](_[_0xf029('0x42')](_0x3e749b[_0xf029('0x37')],_0x4acad7['filters']),_0x5e403a);if(_0x3e749b[_0xf029('0x37')][_0xf029('0x43')]){_0x27f013[_0xf029('0x40')]=_[_0xf029('0x44')](_0x27f013[_0xf029('0x40')],{'$or':_['map'](_0x5e403a,function(_0x165efb){if(_0x165efb[_0xf029('0x34')]!=='VIRTUAL'){var _0x1e57d9={};_0x1e57d9[_0x165efb[_0xf029('0x2f')]]={'$like':'%'+_0x3e749b[_0xf029('0x37')][_0xf029('0x43')]+'%'};return _0x1e57d9;}})});}_0x27f013=_[_0xf029('0x44')]({},_0x27f013,_0x3e749b[_0xf029('0x45')]);var _0x1ed6a5={'where':_0x27f013[_0xf029('0x40')]};return db[_0xf029('0x46')]['count'](_0x1ed6a5)[_0xf029('0x2b')](function(_0x140f6f){_0x5194cd[_0xf029('0x27')]=_0x140f6f;if(_0x3e749b['query'][_0xf029('0x47')]){_0x27f013[_0xf029('0x48')]=[{'all':!![]}];}return db[_0xf029('0x46')][_0xf029('0x49')](_0x27f013);})['then'](function(_0x39dfc9){_0x5194cd['rows']=_0x39dfc9;return _0x5194cd;})[_0xf029('0x2b')](respondWithFilteredResult(_0x35b23d,_0x27f013))[_0xf029('0x4a')](handleError(_0x35b23d,null));};exports[_0xf029('0x4b')]=function(_0x237fd7,_0x2fb77a){var _0x1e2071={'raw':!![],'where':{'id':_0x237fd7[_0xf029('0x4c')]['id']}},_0x2f3c89={};_0x2f3c89[_0xf029('0x35')]=_[_0xf029('0x38')](db[_0xf029('0x46')]['rawAttributes']);_0x2f3c89[_0xf029('0x37')]=_[_0xf029('0x38')](_0x237fd7['query']);_0x2f3c89['filters']=_[_0xf029('0x39')](_0x2f3c89[_0xf029('0x35')],_0x2f3c89[_0xf029('0x37')]);_0x1e2071[_0xf029('0x3a')]=_[_0xf029('0x39')](_0x2f3c89['model'],qs['fields'](_0x237fd7[_0xf029('0x37')][_0xf029('0x3b')]));_0x1e2071[_0xf029('0x3a')]=_0x1e2071[_0xf029('0x3a')][_0xf029('0x3c')]?_0x1e2071['attributes']:_0x2f3c89['model'];if(_0x237fd7[_0xf029('0x37')][_0xf029('0x47')]){_0x1e2071[_0xf029('0x48')]=[{'all':!![]}];}_0x1e2071=_[_0xf029('0x44')]({},_0x1e2071,_0x237fd7[_0xf029('0x45')]);return db[_0xf029('0x46')][_0xf029('0x4d')](_0x1e2071)[_0xf029('0x2b')](handleEntityNotFound(_0x2fb77a,null))[_0xf029('0x2b')](respondWithResult(_0x2fb77a,null))[_0xf029('0x4a')](handleError(_0x2fb77a,null));};exports['create']=function(_0x54dbd5,_0xbb1d10){return db[_0xf029('0x46')][_0xf029('0x4e')](_0x54dbd5[_0xf029('0x4f')],{})[_0xf029('0x2b')](respondWithResult(_0xbb1d10,0xc9))[_0xf029('0x4a')](handleError(_0xbb1d10,null));};exports[_0xf029('0x2a')]=function(_0x5f1da2,_0x12cf10){if(_0x5f1da2[_0xf029('0x4f')]['id']){delete _0x5f1da2[_0xf029('0x4f')]['id'];}return db[_0xf029('0x46')][_0xf029('0x4d')]({'where':{'id':_0x5f1da2[_0xf029('0x4c')]['id']}})[_0xf029('0x2b')](handleEntityNotFound(_0x12cf10,null))[_0xf029('0x2b')](saveUpdates(_0x5f1da2['body'],null))[_0xf029('0x2b')](respondWithResult(_0x12cf10,null))[_0xf029('0x4a')](handleError(_0x12cf10,null));};exports[_0xf029('0x2c')]=function(_0x574970,_0x3391c4){return db[_0xf029('0x46')][_0xf029('0x4d')]({'where':{'id':_0x574970[_0xf029('0x4c')]['id']}})['then'](handleEntityNotFound(_0x3391c4,null))[_0xf029('0x2b')](removeEntity(_0x3391c4,null))[_0xf029('0x4a')](handleError(_0x3391c4,null));};exports[_0xf029('0x50')]=function(_0x2fc1b8,_0x210272){return db['ChatGroup'][_0xf029('0x50')]()[_0xf029('0x2b')](respondWithResult(_0x210272,null))[_0xf029('0x4a')](handleError(_0x210272,null));};exports[_0xf029('0x51')]=function(_0x1c11c5,_0x1107f6,_0x116c68){return db[_0xf029('0x52')][_0xf029('0x27')]({'where':{'ChatGroupId':_0x1c11c5[_0xf029('0x4c')]['id'],'ToId':_0x1c11c5[_0xf029('0x53')]['id'],'read':![]}})[_0xf029('0x2b')](function(_0x32661f){return{'id':_[_0xf029('0x54')](_0x1c11c5[_0xf029('0x4c')]['id']),'count':_0x32661f};})['then'](respondWithResult(_0x1107f6,null))[_0xf029('0x4a')](handleError(_0x1107f6,null));};exports['addMembers']=function(_0x2087c4,_0x34caee,_0x456453){return db[_0xf029('0x46')][_0xf029('0x4d')]({'where':{'id':_0x2087c4[_0xf029('0x4c')]['id']}})[_0xf029('0x2b')](handleEntityNotFound(_0x34caee,null))[_0xf029('0x2b')](function(_0x5257f1){if(_0x5257f1){return _0x5257f1[_0xf029('0x55')](_0x2087c4[_0xf029('0x4f')][_0xf029('0x56')],_[_0xf029('0x57')](_0x2087c4[_0xf029('0x4f')],[_0xf029('0x56'),'id'])||{});}})[_0xf029('0x2b')](respondWithResult(_0x34caee,null))[_0xf029('0x4a')](handleError(_0x34caee,null));};exports[_0xf029('0x58')]=function(_0x104f23,_0x3e87fc,_0x10b344){var _0x577e2f={};var _0x7e5219={};var _0x59cd1b;var _0x591e90;return db[_0xf029('0x46')][_0xf029('0x59')]({'where':{'id':_0x104f23[_0xf029('0x4c')]['id']}})[_0xf029('0x2b')](handleEntityNotFound(_0x3e87fc,null))[_0xf029('0x2b')](function(_0x518b30){if(_0x518b30){_0x59cd1b=_0x518b30;_0x7e5219['model']=_['keys'](db['User'][_0xf029('0x32')]);_0x7e5219[_0xf029('0x37')]=_[_0xf029('0x38')](_0x104f23['query']);_0x7e5219['filters']=_[_0xf029('0x39')](_0x7e5219['model'],_0x7e5219['query']);_0x577e2f['attributes']=_['intersection'](_0x7e5219[_0xf029('0x35')],qs[_0xf029('0x3b')](_0x104f23[_0xf029('0x37')]['fields']));_0x577e2f[_0xf029('0x3a')]=_0x577e2f[_0xf029('0x3a')][_0xf029('0x3c')]?_0x577e2f[_0xf029('0x3a')]:_0x7e5219['model'];_0x577e2f[_0xf029('0x3e')]=qs[_0xf029('0x3f')](_0x104f23[_0xf029('0x37')][_0xf029('0x3f')]);_0x577e2f['where']=qs['filters'](_[_0xf029('0x42')](_0x104f23[_0xf029('0x37')],_0x7e5219['filters']));if(_0x104f23[_0xf029('0x37')][_0xf029('0x43')]){_0x577e2f[_0xf029('0x40')]=_[_0xf029('0x44')](_0x577e2f['where'],{'$or':_[_0xf029('0x36')](_0x577e2f['attributes'],function(_0x477153){var _0x45a3cb={};_0x45a3cb[_0x477153]={'$like':'%'+_0x104f23[_0xf029('0x37')]['filter']+'%'};return _0x45a3cb;})});}_0x577e2f=_[_0xf029('0x44')]({},_0x577e2f,_0x104f23[_0xf029('0x45')]);return _0x59cd1b[_0xf029('0x58')](_0x577e2f);}})['then'](function(_0x3b00ab){if(_0x3b00ab){_0x591e90=_0x3b00ab[_0xf029('0x3c')];if(!_0x104f23['query'][_0xf029('0x3d')](_0xf029('0x5a'))){_0x577e2f[_0xf029('0x26')]=qs['limit'](_0x104f23[_0xf029('0x37')][_0xf029('0x26')]);_0x577e2f['offset']=qs[_0xf029('0x24')](_0x104f23['query']['offset']);}return _0x59cd1b['getMembers'](_0x577e2f);}})[_0xf029('0x2b')](function(_0x2ef91f){if(_0x2ef91f){return _0x2ef91f?{'count':_0x591e90,'rows':_0x2ef91f}:null;}})[_0xf029('0x2b')](respondWithResult(_0x3e87fc,null))[_0xf029('0x4a')](handleError(_0x3e87fc,null));};exports[_0xf029('0x5b')]=function(_0x565358,_0x57b2d2,_0x1f8f15){return db['ChatGroup'][_0xf029('0x4d')]({'where':{'id':_0x565358[_0xf029('0x4c')]['id']}})['then'](handleEntityNotFound(_0x57b2d2,null))['then'](function(_0x4f7cd5){if(_0x4f7cd5){return _0x4f7cd5[_0xf029('0x5b')](_0x565358['query'][_0xf029('0x56')]);}})['then'](respondWithStatusCode(_0x57b2d2,null))[_0xf029('0x4a')](handleError(_0x57b2d2,null));};exports[_0xf029('0x5c')]=function(_0x2b7849,_0x44cd7c,_0x518ae1){if(_0x2b7849[_0xf029('0x4f')]['id']){delete _0x2b7849[_0xf029('0x4f')]['id'];}return db['ChatGroup'][_0xf029('0x4d')]({'where':{'id':_0x2b7849[_0xf029('0x4c')]['id']}})[_0xf029('0x2b')](handleEntityNotFound(_0x44cd7c,null))[_0xf029('0x2b')](function(_0xcd3bfd){if(_0xcd3bfd){_0x2b7849['body'][_0xf029('0x5d')]=_0xcd3bfd['id'];return db[_0xf029('0x52')][_0xf029('0x4e')](_0x2b7849[_0xf029('0x4f')]);}})[_0xf029('0x2b')](respondWithResult(_0x44cd7c,null))[_0xf029('0x4a')](handleError(_0x44cd7c,null));};exports[_0xf029('0x5e')]=function(_0xf9540e,_0x4cd17e,_0x1b1e3a){var _0x3bce3c={};var _0x283f61={};var _0x36f02c;var _0x15d8cd;return db[_0xf029('0x46')]['findOne']({'where':{'id':_0xf9540e['params']['id']}})[_0xf029('0x2b')](handleEntityNotFound(_0x4cd17e,null))[_0xf029('0x2b')](function(_0x9c88cf){if(_0x9c88cf){_0x36f02c=_0x9c88cf;_0x283f61[_0xf029('0x35')]=_[_0xf029('0x38')](db[_0xf029('0x52')][_0xf029('0x32')]);_0x283f61[_0xf029('0x37')]=_[_0xf029('0x38')](_0xf9540e['query']);_0x283f61[_0xf029('0x41')]=_[_0xf029('0x39')](_0x283f61[_0xf029('0x35')],_0x283f61[_0xf029('0x37')]);_0x3bce3c[_0xf029('0x3a')]=_[_0xf029('0x39')](_0x283f61[_0xf029('0x35')],qs['fields'](_0xf9540e[_0xf029('0x37')]['fields']));_0x3bce3c['attributes']=_0x3bce3c[_0xf029('0x3a')]['length']?_0x3bce3c['attributes']:_0x283f61['model'];_0x3bce3c['order']=qs['sort'](_0xf9540e[_0xf029('0x37')]['sort']);_0x3bce3c['where']=qs[_0xf029('0x41')](_['pick'](_0xf9540e['query'],_0x283f61[_0xf029('0x41')]));if(_0xf9540e[_0xf029('0x37')][_0xf029('0x43')]){_0x3bce3c[_0xf029('0x40')]=_[_0xf029('0x44')](_0x3bce3c[_0xf029('0x40')],{'$or':_[_0xf029('0x36')](_0x3bce3c[_0xf029('0x3a')],function(_0xb93701){var _0x66b990={};_0x66b990[_0xb93701]={'$like':'%'+_0xf9540e[_0xf029('0x37')][_0xf029('0x43')]+'%'};return _0x66b990;})});}if(_0xf9540e[_0xf029('0x37')][_0xf029('0x5f')]){var _0x8a19af=_0xf9540e[_0xf029('0x37')]['$gte'][_0xf029('0x60')](',');var _0x4c889a={};_0x4c889a[_0x8a19af[0x0]]={'$gte':moment(_0x8a19af[0x1])[_0xf029('0x61')](_0xf029('0x62'))};_0x3bce3c[_0xf029('0x40')]=_[_0xf029('0x44')](_0x3bce3c['where'],_0x4c889a);}_0x3bce3c=_[_0xf029('0x44')]({},_0x3bce3c,_0xf9540e[_0xf029('0x45')]);return _0x36f02c[_0xf029('0x5e')](_0x3bce3c);}})[_0xf029('0x2b')](function(_0x4defa8){if(_0x4defa8){_0x15d8cd=_0x4defa8['length'];if(!_0xf9540e[_0xf029('0x37')][_0xf029('0x3d')](_0xf029('0x5a'))){_0x3bce3c['limit']=qs[_0xf029('0x26')](_0xf9540e[_0xf029('0x37')][_0xf029('0x26')]);_0x3bce3c['offset']=qs[_0xf029('0x24')](_0xf9540e['query'][_0xf029('0x24')]);}return _0x36f02c['getMessages'](_0x3bce3c);}})[_0xf029('0x2b')](function(_0x4e014a){if(_0x4e014a){return _0x4e014a?{'count':_0x15d8cd,'rows':_0x4e014a}:null;}})[_0xf029('0x2b')](respondWithResult(_0x4cd17e,null))['catch'](handleError(_0x4cd17e,null));};