Built motion from commit a61a4a20.|2.5.46
[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 _0xbce3=['rawAttributes','find','create','catch','body','describe','getUnread','ChatInternalMessage','omit','ids','getMembers','User','fields','order','hasOwnProperty','removeMembers','addMessage','ChatGroupId','getMessages','$gte','split','format','YYYY-MM-DD\x20HH:mm:ss','eml-format','rimraf','fast-json-patch','request-promise','moment','util','path','to-csv','ejs','fs-extra','lodash','crypto','desk.js','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','./chatGroup.socket','register','status','json','offset','count','limit','set','Content-Range','apply','reject','save','update','destroy','end','error','stack','name','send','map','ChatGroup','fieldName','type','key','query','keys','filters','intersection','model','attributes','length','nolimit','sort','where','merge','filter','options','then','includeAll','include','findAll','params'];(function(_0x54cb47,_0x28bcb0){var _0x181e29=function(_0xf523f){while(--_0xf523f){_0x54cb47['push'](_0x54cb47['shift']());}};_0x181e29(++_0x28bcb0);}(_0xbce3,0x71));var _0x3bce=function(_0x47e7cb,_0x4c1b8d){_0x47e7cb=_0x47e7cb-0x0;var _0x2a8874=_0xbce3[_0x47e7cb];return _0x2a8874;};'use strict';var emlformat=require(_0x3bce('0x0'));var rimraf=require(_0x3bce('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x3bce('0x2'));var rp=require(_0x3bce('0x3'));var moment=require(_0x3bce('0x4'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x3bce('0x5'));var path=require(_0x3bce('0x6'));var sox=require('sox');var csv=require(_0x3bce('0x7'));var ejs=require(_0x3bce('0x8'));var fs=require('fs');var fs_extra=require(_0x3bce('0x9'));var _=require(_0x3bce('0xa'));var squel=require('squel');var crypto=require(_0x3bce('0xb'));var jsforce=require('jsforce');var deskjs=require(_0x3bce('0xc'));var toCsv=require(_0x3bce('0x7'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x3bce('0xd'));var authService=require('../../components/auth/service');var qs=require(_0x3bce('0xe'));var as=require(_0x3bce('0xf'));var hardwareService=require(_0x3bce('0x10'));var logger=require(_0x3bce('0x11'))(_0x3bce('0x12'));var utils=require(_0x3bce('0x13'));var config=require(_0x3bce('0x14'));var licenseUtil=require(_0x3bce('0x15'));var db=require('../../mysqldb')['db'];config[_0x3bce('0x16')]=_['defaults'](config[_0x3bce('0x16')],{'host':_0x3bce('0x17'),'port':0x18eb});var socket=require(_0x3bce('0x18'))(new Redis(config['redis']));require(_0x3bce('0x19'))[_0x3bce('0x1a')](socket);function respondWithStatusCode(_0x583cea,_0x3a8153){_0x3a8153=_0x3a8153||0xcc;return function(_0x48008f){if(_0x48008f){return _0x583cea['sendStatus'](_0x3a8153);}return _0x583cea[_0x3bce('0x1b')](_0x3a8153)['end']();};}function respondWithResult(_0x2f92f7,_0x8ca63b){_0x8ca63b=_0x8ca63b||0xc8;return function(_0x1c41b2){if(_0x1c41b2){return _0x2f92f7['status'](_0x8ca63b)[_0x3bce('0x1c')](_0x1c41b2);}};}function respondWithFilteredResult(_0x33c6e9,_0x1fe1c8){return function(_0x941889){if(_0x941889){var _0x1bba2d=typeof _0x1fe1c8[_0x3bce('0x1d')]==='undefined'&&typeof _0x1fe1c8['limit']==='undefined';var _0x4d2391=_0x941889['count'];var _0x3bb57a=_0x1bba2d?0x0:_0x1fe1c8[_0x3bce('0x1d')];var _0x4a9f1b=_0x1bba2d?_0x941889[_0x3bce('0x1e')]:_0x1fe1c8[_0x3bce('0x1d')]+_0x1fe1c8[_0x3bce('0x1f')];var _0x2aa10e;if(_0x4a9f1b>=_0x4d2391){_0x4a9f1b=_0x4d2391;_0x2aa10e=0xc8;}else{_0x2aa10e=0xce;}_0x33c6e9['status'](_0x2aa10e);return _0x33c6e9[_0x3bce('0x20')](_0x3bce('0x21'),_0x3bb57a+'-'+_0x4a9f1b+'/'+_0x4d2391)['json'](_0x941889);}return null;};}function patchUpdates(_0x1bdc2e){return function(_0x360a64){try{jsonpatch[_0x3bce('0x22')](_0x360a64,_0x1bdc2e,!![]);}catch(_0x3cee02){return BPromise[_0x3bce('0x23')](_0x3cee02);}return _0x360a64[_0x3bce('0x24')]();};}function saveUpdates(_0x449795,_0x5168a2){return function(_0x30dac9){if(_0x30dac9){return _0x30dac9[_0x3bce('0x25')](_0x449795)['then'](function(_0x8cb10d){return _0x8cb10d;});}return null;};}function removeEntity(_0x21aec7,_0x50d037){return function(_0xf60c12){if(_0xf60c12){return _0xf60c12[_0x3bce('0x26')]()['then'](function(){_0x21aec7[_0x3bce('0x1b')](0xcc)[_0x3bce('0x27')]();});}};}function handleEntityNotFound(_0xd3cfbd,_0x5c0b1a){return function(_0x59201f){if(!_0x59201f){_0xd3cfbd['sendStatus'](0x194);}return _0x59201f;};}function handleError(_0x2e67c9,_0x4eb2e1){_0x4eb2e1=_0x4eb2e1||0x1f4;return function(_0xbab88c){logger[_0x3bce('0x28')](_0xbab88c[_0x3bce('0x29')]);if(_0xbab88c[_0x3bce('0x2a')]){delete _0xbab88c[_0x3bce('0x2a')];}_0x2e67c9[_0x3bce('0x1b')](_0x4eb2e1)[_0x3bce('0x2b')](_0xbab88c);};}exports['index']=function(_0x438544,_0x4d5f18){var _0xd3e939={},_0x4d8150={},_0xdb73da={'count':0x0,'rows':[]};var _0x39c265=_[_0x3bce('0x2c')](db[_0x3bce('0x2d')]['rawAttributes'],function(_0x31bd05){return{'name':_0x31bd05[_0x3bce('0x2e')],'type':_0x31bd05[_0x3bce('0x2f')][_0x3bce('0x30')]};});_0x4d8150['model']=_[_0x3bce('0x2c')](_0x39c265,'name');_0x4d8150[_0x3bce('0x31')]=_[_0x3bce('0x32')](_0x438544['query']);_0x4d8150[_0x3bce('0x33')]=_[_0x3bce('0x34')](_0x4d8150[_0x3bce('0x35')],_0x4d8150[_0x3bce('0x31')]);_0xd3e939[_0x3bce('0x36')]=_[_0x3bce('0x34')](_0x4d8150[_0x3bce('0x35')],qs['fields'](_0x438544[_0x3bce('0x31')]['fields']));_0xd3e939['attributes']=_0xd3e939[_0x3bce('0x36')][_0x3bce('0x37')]?_0xd3e939[_0x3bce('0x36')]:_0x4d8150[_0x3bce('0x35')];if(!_0x438544[_0x3bce('0x31')]['hasOwnProperty'](_0x3bce('0x38'))){_0xd3e939[_0x3bce('0x1f')]=qs['limit'](_0x438544[_0x3bce('0x31')][_0x3bce('0x1f')]);_0xd3e939[_0x3bce('0x1d')]=qs[_0x3bce('0x1d')](_0x438544[_0x3bce('0x31')]['offset']);}_0xd3e939['order']=qs[_0x3bce('0x39')](_0x438544['query']['sort']);_0xd3e939[_0x3bce('0x3a')]=qs[_0x3bce('0x33')](_['pick'](_0x438544[_0x3bce('0x31')],_0x4d8150['filters']),_0x39c265);if(_0x438544[_0x3bce('0x31')]['filter']){_0xd3e939['where']=_[_0x3bce('0x3b')](_0xd3e939[_0x3bce('0x3a')],{'$or':_['map'](_0x39c265,function(_0x11d8fd){if(_0x11d8fd[_0x3bce('0x2f')]!=='VIRTUAL'){var _0xeb1d9d={};_0xeb1d9d[_0x11d8fd['name']]={'$like':'%'+_0x438544[_0x3bce('0x31')][_0x3bce('0x3c')]+'%'};return _0xeb1d9d;}})});}_0xd3e939=_[_0x3bce('0x3b')]({},_0xd3e939,_0x438544[_0x3bce('0x3d')]);var _0x1c4e73={'where':_0xd3e939[_0x3bce('0x3a')]};return db['ChatGroup'][_0x3bce('0x1e')](_0x1c4e73)[_0x3bce('0x3e')](function(_0xe7f5b1){_0xdb73da[_0x3bce('0x1e')]=_0xe7f5b1;if(_0x438544[_0x3bce('0x31')][_0x3bce('0x3f')]){_0xd3e939[_0x3bce('0x40')]=[{'all':!![]}];}return db[_0x3bce('0x2d')][_0x3bce('0x41')](_0xd3e939);})[_0x3bce('0x3e')](function(_0x121422){_0xdb73da['rows']=_0x121422;return _0xdb73da;})['then'](respondWithFilteredResult(_0x4d5f18,_0xd3e939))['catch'](handleError(_0x4d5f18,null));};exports['show']=function(_0x58e721,_0x49de19){var _0x5e14f3={'raw':!![],'where':{'id':_0x58e721[_0x3bce('0x42')]['id']}},_0xef6611={};_0xef6611['model']=_[_0x3bce('0x32')](db[_0x3bce('0x2d')][_0x3bce('0x43')]);_0xef6611[_0x3bce('0x31')]=_[_0x3bce('0x32')](_0x58e721[_0x3bce('0x31')]);_0xef6611['filters']=_[_0x3bce('0x34')](_0xef6611[_0x3bce('0x35')],_0xef6611[_0x3bce('0x31')]);_0x5e14f3[_0x3bce('0x36')]=_[_0x3bce('0x34')](_0xef6611[_0x3bce('0x35')],qs['fields'](_0x58e721['query']['fields']));_0x5e14f3[_0x3bce('0x36')]=_0x5e14f3[_0x3bce('0x36')][_0x3bce('0x37')]?_0x5e14f3[_0x3bce('0x36')]:_0xef6611[_0x3bce('0x35')];if(_0x58e721[_0x3bce('0x31')][_0x3bce('0x3f')]){_0x5e14f3[_0x3bce('0x40')]=[{'all':!![]}];}_0x5e14f3=_[_0x3bce('0x3b')]({},_0x5e14f3,_0x58e721[_0x3bce('0x3d')]);return db[_0x3bce('0x2d')][_0x3bce('0x44')](_0x5e14f3)[_0x3bce('0x3e')](handleEntityNotFound(_0x49de19,null))[_0x3bce('0x3e')](respondWithResult(_0x49de19,null))['catch'](handleError(_0x49de19,null));};exports['create']=function(_0x1d02bf,_0x129d53){return db[_0x3bce('0x2d')][_0x3bce('0x45')](_0x1d02bf['body'],{})['then'](respondWithResult(_0x129d53,0xc9))[_0x3bce('0x46')](handleError(_0x129d53,null));};exports[_0x3bce('0x25')]=function(_0x1f8912,_0x24ff02){if(_0x1f8912[_0x3bce('0x47')]['id']){delete _0x1f8912[_0x3bce('0x47')]['id'];}return db['ChatGroup'][_0x3bce('0x44')]({'where':{'id':_0x1f8912[_0x3bce('0x42')]['id']}})[_0x3bce('0x3e')](handleEntityNotFound(_0x24ff02,null))[_0x3bce('0x3e')](saveUpdates(_0x1f8912[_0x3bce('0x47')],null))[_0x3bce('0x3e')](respondWithResult(_0x24ff02,null))[_0x3bce('0x46')](handleError(_0x24ff02,null));};exports[_0x3bce('0x26')]=function(_0x472361,_0xcc8a22){return db[_0x3bce('0x2d')][_0x3bce('0x44')]({'where':{'id':_0x472361['params']['id']}})[_0x3bce('0x3e')](handleEntityNotFound(_0xcc8a22,null))[_0x3bce('0x3e')](removeEntity(_0xcc8a22,null))['catch'](handleError(_0xcc8a22,null));};exports[_0x3bce('0x48')]=function(_0x481401,_0x2f51ff){return db[_0x3bce('0x2d')][_0x3bce('0x48')]()[_0x3bce('0x3e')](respondWithResult(_0x2f51ff,null))[_0x3bce('0x46')](handleError(_0x2f51ff,null));};exports[_0x3bce('0x49')]=function(_0x3425fa,_0x5e2c1a,_0x1b40bf){return db[_0x3bce('0x4a')][_0x3bce('0x1e')]({'where':{'ChatGroupId':_0x3425fa['params']['id'],'ToId':_0x3425fa['user']['id'],'read':![]}})['then'](function(_0x1b7f24){return{'id':_['toInteger'](_0x3425fa['params']['id']),'count':_0x1b7f24};})['then'](respondWithResult(_0x5e2c1a,null))[_0x3bce('0x46')](handleError(_0x5e2c1a,null));};exports['addMembers']=function(_0xf20001,_0x59c91a,_0x40bee4){return db[_0x3bce('0x2d')]['find']({'where':{'id':_0xf20001['params']['id']}})[_0x3bce('0x3e')](handleEntityNotFound(_0x59c91a,null))[_0x3bce('0x3e')](function(_0x1f4586){if(_0x1f4586){return _0x1f4586['addMembers'](_0xf20001[_0x3bce('0x47')]['ids'],_[_0x3bce('0x4b')](_0xf20001[_0x3bce('0x47')],[_0x3bce('0x4c'),'id'])||{});}})['then'](respondWithResult(_0x59c91a,null))[_0x3bce('0x46')](handleError(_0x59c91a,null));};exports[_0x3bce('0x4d')]=function(_0x317a11,_0x1c3c53,_0x45b036){var _0x2d8c89={};var _0x3d0b9f={};var _0x526bfd;var _0xcda429;return db[_0x3bce('0x2d')]['findOne']({'where':{'id':_0x317a11[_0x3bce('0x42')]['id']}})['then'](handleEntityNotFound(_0x1c3c53,null))[_0x3bce('0x3e')](function(_0x584a7a){if(_0x584a7a){_0x526bfd=_0x584a7a;_0x3d0b9f[_0x3bce('0x35')]=_[_0x3bce('0x32')](db[_0x3bce('0x4e')][_0x3bce('0x43')]);_0x3d0b9f['query']=_[_0x3bce('0x32')](_0x317a11[_0x3bce('0x31')]);_0x3d0b9f[_0x3bce('0x33')]=_[_0x3bce('0x34')](_0x3d0b9f[_0x3bce('0x35')],_0x3d0b9f[_0x3bce('0x31')]);_0x2d8c89[_0x3bce('0x36')]=_['intersection'](_0x3d0b9f[_0x3bce('0x35')],qs[_0x3bce('0x4f')](_0x317a11[_0x3bce('0x31')][_0x3bce('0x4f')]));_0x2d8c89[_0x3bce('0x36')]=_0x2d8c89[_0x3bce('0x36')][_0x3bce('0x37')]?_0x2d8c89['attributes']:_0x3d0b9f[_0x3bce('0x35')];_0x2d8c89[_0x3bce('0x50')]=qs[_0x3bce('0x39')](_0x317a11[_0x3bce('0x31')]['sort']);_0x2d8c89[_0x3bce('0x3a')]=qs[_0x3bce('0x33')](_['pick'](_0x317a11['query'],_0x3d0b9f[_0x3bce('0x33')]));if(_0x317a11[_0x3bce('0x31')][_0x3bce('0x3c')]){_0x2d8c89['where']=_[_0x3bce('0x3b')](_0x2d8c89[_0x3bce('0x3a')],{'$or':_[_0x3bce('0x2c')](_0x2d8c89[_0x3bce('0x36')],function(_0x34a5f3){var _0x79fa85={};_0x79fa85[_0x34a5f3]={'$like':'%'+_0x317a11['query'][_0x3bce('0x3c')]+'%'};return _0x79fa85;})});}_0x2d8c89=_['merge']({},_0x2d8c89,_0x317a11[_0x3bce('0x3d')]);return _0x526bfd['getMembers'](_0x2d8c89);}})[_0x3bce('0x3e')](function(_0x31d647){if(_0x31d647){_0xcda429=_0x31d647['length'];if(!_0x317a11[_0x3bce('0x31')][_0x3bce('0x51')](_0x3bce('0x38'))){_0x2d8c89[_0x3bce('0x1f')]=qs[_0x3bce('0x1f')](_0x317a11[_0x3bce('0x31')]['limit']);_0x2d8c89[_0x3bce('0x1d')]=qs[_0x3bce('0x1d')](_0x317a11[_0x3bce('0x31')][_0x3bce('0x1d')]);}return _0x526bfd[_0x3bce('0x4d')](_0x2d8c89);}})[_0x3bce('0x3e')](function(_0x2f6cda){if(_0x2f6cda){return _0x2f6cda?{'count':_0xcda429,'rows':_0x2f6cda}:null;}})[_0x3bce('0x3e')](respondWithResult(_0x1c3c53,null))['catch'](handleError(_0x1c3c53,null));};exports[_0x3bce('0x52')]=function(_0x1d7892,_0x15331b,_0x27115b){return db[_0x3bce('0x2d')][_0x3bce('0x44')]({'where':{'id':_0x1d7892[_0x3bce('0x42')]['id']}})['then'](handleEntityNotFound(_0x15331b,null))[_0x3bce('0x3e')](function(_0x48f3e7){if(_0x48f3e7){return _0x48f3e7['removeMembers'](_0x1d7892['query'][_0x3bce('0x4c')]);}})[_0x3bce('0x3e')](respondWithStatusCode(_0x15331b,null))[_0x3bce('0x46')](handleError(_0x15331b,null));};exports[_0x3bce('0x53')]=function(_0x520ef,_0x3113e1,_0x5441ff){if(_0x520ef[_0x3bce('0x47')]['id']){delete _0x520ef[_0x3bce('0x47')]['id'];}return db[_0x3bce('0x2d')][_0x3bce('0x44')]({'where':{'id':_0x520ef[_0x3bce('0x42')]['id']}})[_0x3bce('0x3e')](handleEntityNotFound(_0x3113e1,null))[_0x3bce('0x3e')](function(_0x5655ae){if(_0x5655ae){_0x520ef[_0x3bce('0x47')][_0x3bce('0x54')]=_0x5655ae['id'];return db[_0x3bce('0x4a')]['create'](_0x520ef[_0x3bce('0x47')]);}})['then'](respondWithResult(_0x3113e1,null))[_0x3bce('0x46')](handleError(_0x3113e1,null));};exports[_0x3bce('0x55')]=function(_0xfdceae,_0x1ab0d2,_0x5bd564){var _0x5d93fe={};var _0x45f995={};var _0x271617;var _0x3d5070;return db[_0x3bce('0x2d')]['findOne']({'where':{'id':_0xfdceae[_0x3bce('0x42')]['id']}})[_0x3bce('0x3e')](handleEntityNotFound(_0x1ab0d2,null))[_0x3bce('0x3e')](function(_0x1bc830){if(_0x1bc830){_0x271617=_0x1bc830;_0x45f995[_0x3bce('0x35')]=_[_0x3bce('0x32')](db[_0x3bce('0x4a')]['rawAttributes']);_0x45f995['query']=_[_0x3bce('0x32')](_0xfdceae['query']);_0x45f995['filters']=_['intersection'](_0x45f995[_0x3bce('0x35')],_0x45f995[_0x3bce('0x31')]);_0x5d93fe[_0x3bce('0x36')]=_['intersection'](_0x45f995[_0x3bce('0x35')],qs[_0x3bce('0x4f')](_0xfdceae[_0x3bce('0x31')][_0x3bce('0x4f')]));_0x5d93fe[_0x3bce('0x36')]=_0x5d93fe[_0x3bce('0x36')][_0x3bce('0x37')]?_0x5d93fe[_0x3bce('0x36')]:_0x45f995[_0x3bce('0x35')];_0x5d93fe['order']=qs['sort'](_0xfdceae['query']['sort']);_0x5d93fe['where']=qs['filters'](_['pick'](_0xfdceae['query'],_0x45f995[_0x3bce('0x33')]));if(_0xfdceae[_0x3bce('0x31')][_0x3bce('0x3c')]){_0x5d93fe[_0x3bce('0x3a')]=_['merge'](_0x5d93fe[_0x3bce('0x3a')],{'$or':_[_0x3bce('0x2c')](_0x5d93fe['attributes'],function(_0x433c27){var _0x3bd9f7={};_0x3bd9f7[_0x433c27]={'$like':'%'+_0xfdceae[_0x3bce('0x31')][_0x3bce('0x3c')]+'%'};return _0x3bd9f7;})});}if(_0xfdceae[_0x3bce('0x31')][_0x3bce('0x56')]){var _0x5d65f6=_0xfdceae[_0x3bce('0x31')][_0x3bce('0x56')][_0x3bce('0x57')](',');var _0x4b0cb6={};_0x4b0cb6[_0x5d65f6[0x0]]={'$gte':moment(_0x5d65f6[0x1])[_0x3bce('0x58')](_0x3bce('0x59'))};_0x5d93fe[_0x3bce('0x3a')]=_[_0x3bce('0x3b')](_0x5d93fe[_0x3bce('0x3a')],_0x4b0cb6);}_0x5d93fe=_[_0x3bce('0x3b')]({},_0x5d93fe,_0xfdceae[_0x3bce('0x3d')]);return _0x271617[_0x3bce('0x55')](_0x5d93fe);}})[_0x3bce('0x3e')](function(_0x19a228){if(_0x19a228){_0x3d5070=_0x19a228['length'];if(!_0xfdceae['query'][_0x3bce('0x51')](_0x3bce('0x38'))){_0x5d93fe[_0x3bce('0x1f')]=qs[_0x3bce('0x1f')](_0xfdceae[_0x3bce('0x31')][_0x3bce('0x1f')]);_0x5d93fe[_0x3bce('0x1d')]=qs[_0x3bce('0x1d')](_0xfdceae[_0x3bce('0x31')][_0x3bce('0x1d')]);}return _0x271617[_0x3bce('0x55')](_0x5d93fe);}})[_0x3bce('0x3e')](function(_0x236742){if(_0x236742){return _0x236742?{'count':_0x3d5070,'rows':_0x236742}:null;}})[_0x3bce('0x3e')](respondWithResult(_0x1ab0d2,null))[_0x3bce('0x46')](handleError(_0x1ab0d2,null));};