Built motion from commit 9d0783e6.|2.6.13
[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 _0xa826=['User','getMembers','nolimit','removeMembers','ChatGroupId','getMessages','$gte','split','format','YYYY-MM-DD\x20HH:mm:ss','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','sox','ejs','fs-extra','lodash','squel','crypto','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./chatGroup.socket','register','sendStatus','status','end','offset','undefined','count','limit','Content-Range','json','save','update','then','stack','name','send','index','map','rawAttributes','fieldName','type','key','model','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','order','sort','pick','filter','where','merge','options','ChatGroup','includeAll','findAll','rows','catch','include','find','create','body','params','destroy','describe','getUnread','ChatInternalMessage','user','toInteger','addMembers','ids','findOne'];(function(_0x5b88c4,_0x4dd8a2){var _0x1a5de0=function(_0x40b3cf){while(--_0x40b3cf){_0x5b88c4['push'](_0x5b88c4['shift']());}};_0x1a5de0(++_0x4dd8a2);}(_0xa826,0x6a));var _0x6a82=function(_0x2dafbe,_0x5d04de){_0x2dafbe=_0x2dafbe-0x0;var _0x58a45a=_0xa826[_0x2dafbe];return _0x58a45a;};'use strict';var emlformat=require(_0x6a82('0x0'));var rimraf=require(_0x6a82('0x1'));var zipdir=require(_0x6a82('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x6a82('0x3'));var moment=require(_0x6a82('0x4'));var BPromise=require(_0x6a82('0x5'));var Mustache=require(_0x6a82('0x6'));var util=require(_0x6a82('0x7'));var path=require('path');var sox=require(_0x6a82('0x8'));var csv=require('to-csv');var ejs=require(_0x6a82('0x9'));var fs=require('fs');var fs_extra=require(_0x6a82('0xa'));var _=require(_0x6a82('0xb'));var squel=require(_0x6a82('0xc'));var crypto=require(_0x6a82('0xd'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x6a82('0xe'));var authService=require(_0x6a82('0xf'));var qs=require(_0x6a82('0x10'));var as=require(_0x6a82('0x11'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x6a82('0x12'))(_0x6a82('0x13'));var utils=require(_0x6a82('0x14'));var config=require(_0x6a82('0x15'));var licenseUtil=require(_0x6a82('0x16'));var db=require(_0x6a82('0x17'))['db'];config[_0x6a82('0x18')]=_[_0x6a82('0x19')](config[_0x6a82('0x18')],{'host':_0x6a82('0x1a'),'port':0x18eb});var socket=require(_0x6a82('0x1b'))(new Redis(config[_0x6a82('0x18')]));require(_0x6a82('0x1c'))[_0x6a82('0x1d')](socket);function respondWithStatusCode(_0x37b0ad,_0x3007bf){_0x3007bf=_0x3007bf||0xcc;return function(_0x731fcc){if(_0x731fcc){return _0x37b0ad[_0x6a82('0x1e')](_0x3007bf);}return _0x37b0ad[_0x6a82('0x1f')](_0x3007bf)[_0x6a82('0x20')]();};}function respondWithResult(_0x18c2a6,_0x5d09a5){_0x5d09a5=_0x5d09a5||0xc8;return function(_0x102fb7){if(_0x102fb7){return _0x18c2a6[_0x6a82('0x1f')](_0x5d09a5)['json'](_0x102fb7);}};}function respondWithFilteredResult(_0x224aa3,_0x35fb25){return function(_0x6fc7fc){if(_0x6fc7fc){var _0x2c6a20=typeof _0x35fb25[_0x6a82('0x21')]===_0x6a82('0x22')&&typeof _0x35fb25['limit']==='undefined';var _0x341490=_0x6fc7fc[_0x6a82('0x23')];var _0x2c303f=_0x2c6a20?0x0:_0x35fb25['offset'];var _0x587649=_0x2c6a20?_0x6fc7fc[_0x6a82('0x23')]:_0x35fb25[_0x6a82('0x21')]+_0x35fb25[_0x6a82('0x24')];var _0x4e2ddd;if(_0x587649>=_0x341490){_0x587649=_0x341490;_0x4e2ddd=0xc8;}else{_0x4e2ddd=0xce;}_0x224aa3['status'](_0x4e2ddd);return _0x224aa3['set'](_0x6a82('0x25'),_0x2c303f+'-'+_0x587649+'/'+_0x341490)[_0x6a82('0x26')](_0x6fc7fc);}return null;};}function patchUpdates(_0x17e96e){return function(_0x331d9e){try{jsonpatch['apply'](_0x331d9e,_0x17e96e,!![]);}catch(_0x22fe7f){return BPromise['reject'](_0x22fe7f);}return _0x331d9e[_0x6a82('0x27')]();};}function saveUpdates(_0x900645,_0x3964e4){return function(_0x356e61){if(_0x356e61){return _0x356e61[_0x6a82('0x28')](_0x900645)[_0x6a82('0x29')](function(_0x4710ce){return _0x4710ce;});}return null;};}function removeEntity(_0x4a874f,_0x15f0a5){return function(_0x3a7424){if(_0x3a7424){return _0x3a7424['destroy']()[_0x6a82('0x29')](function(){_0x4a874f[_0x6a82('0x1f')](0xcc)[_0x6a82('0x20')]();});}};}function handleEntityNotFound(_0x37a211,_0x1b1d3f){return function(_0x955a04){if(!_0x955a04){_0x37a211[_0x6a82('0x1e')](0x194);}return _0x955a04;};}function handleError(_0x435776,_0x177f18){_0x177f18=_0x177f18||0x1f4;return function(_0x255b18){logger['error'](_0x255b18[_0x6a82('0x2a')]);if(_0x255b18[_0x6a82('0x2b')]){delete _0x255b18[_0x6a82('0x2b')];}_0x435776[_0x6a82('0x1f')](_0x177f18)[_0x6a82('0x2c')](_0x255b18);};}exports[_0x6a82('0x2d')]=function(_0x25111b,_0x329f8c){var _0x3c3270={},_0x3c9ce6={},_0x25c30c={'count':0x0,'rows':[]};var _0xf35037=_[_0x6a82('0x2e')](db['ChatGroup'][_0x6a82('0x2f')],function(_0x2f06ef){return{'name':_0x2f06ef[_0x6a82('0x30')],'type':_0x2f06ef[_0x6a82('0x31')][_0x6a82('0x32')]};});_0x3c9ce6[_0x6a82('0x33')]=_[_0x6a82('0x2e')](_0xf35037,'name');_0x3c9ce6['query']=_[_0x6a82('0x34')](_0x25111b[_0x6a82('0x35')]);_0x3c9ce6[_0x6a82('0x36')]=_[_0x6a82('0x37')](_0x3c9ce6[_0x6a82('0x33')],_0x3c9ce6[_0x6a82('0x35')]);_0x3c3270[_0x6a82('0x38')]=_['intersection'](_0x3c9ce6[_0x6a82('0x33')],qs[_0x6a82('0x39')](_0x25111b[_0x6a82('0x35')][_0x6a82('0x39')]));_0x3c3270[_0x6a82('0x38')]=_0x3c3270[_0x6a82('0x38')][_0x6a82('0x3a')]?_0x3c3270[_0x6a82('0x38')]:_0x3c9ce6[_0x6a82('0x33')];if(!_0x25111b[_0x6a82('0x35')][_0x6a82('0x3b')]('nolimit')){_0x3c3270[_0x6a82('0x24')]=qs['limit'](_0x25111b['query'][_0x6a82('0x24')]);_0x3c3270['offset']=qs[_0x6a82('0x21')](_0x25111b[_0x6a82('0x35')][_0x6a82('0x21')]);}_0x3c3270[_0x6a82('0x3c')]=qs[_0x6a82('0x3d')](_0x25111b[_0x6a82('0x35')][_0x6a82('0x3d')]);_0x3c3270['where']=qs[_0x6a82('0x36')](_[_0x6a82('0x3e')](_0x25111b[_0x6a82('0x35')],_0x3c9ce6[_0x6a82('0x36')]),_0xf35037);if(_0x25111b[_0x6a82('0x35')][_0x6a82('0x3f')]){_0x3c3270[_0x6a82('0x40')]=_[_0x6a82('0x41')](_0x3c3270[_0x6a82('0x40')],{'$or':_[_0x6a82('0x2e')](_0xf35037,function(_0x380b3d){if(_0x380b3d['type']!=='VIRTUAL'){var _0x50fc18={};_0x50fc18[_0x380b3d['name']]={'$like':'%'+_0x25111b[_0x6a82('0x35')][_0x6a82('0x3f')]+'%'};return _0x50fc18;}})});}_0x3c3270=_[_0x6a82('0x41')]({},_0x3c3270,_0x25111b[_0x6a82('0x42')]);var _0x39bae7={'where':_0x3c3270['where']};return db[_0x6a82('0x43')][_0x6a82('0x23')](_0x39bae7)[_0x6a82('0x29')](function(_0x54701b){_0x25c30c[_0x6a82('0x23')]=_0x54701b;if(_0x25111b[_0x6a82('0x35')][_0x6a82('0x44')]){_0x3c3270['include']=[{'all':!![]}];}return db[_0x6a82('0x43')][_0x6a82('0x45')](_0x3c3270);})['then'](function(_0x2d5064){_0x25c30c[_0x6a82('0x46')]=_0x2d5064;return _0x25c30c;})[_0x6a82('0x29')](respondWithFilteredResult(_0x329f8c,_0x3c3270))[_0x6a82('0x47')](handleError(_0x329f8c,null));};exports['show']=function(_0x143559,_0x5526a5){var _0x17df8e={'raw':!![],'where':{'id':_0x143559['params']['id']}},_0x147c14={};_0x147c14[_0x6a82('0x33')]=_[_0x6a82('0x34')](db[_0x6a82('0x43')]['rawAttributes']);_0x147c14[_0x6a82('0x35')]=_['keys'](_0x143559[_0x6a82('0x35')]);_0x147c14[_0x6a82('0x36')]=_['intersection'](_0x147c14[_0x6a82('0x33')],_0x147c14[_0x6a82('0x35')]);_0x17df8e[_0x6a82('0x38')]=_[_0x6a82('0x37')](_0x147c14[_0x6a82('0x33')],qs[_0x6a82('0x39')](_0x143559[_0x6a82('0x35')][_0x6a82('0x39')]));_0x17df8e[_0x6a82('0x38')]=_0x17df8e[_0x6a82('0x38')]['length']?_0x17df8e[_0x6a82('0x38')]:_0x147c14[_0x6a82('0x33')];if(_0x143559[_0x6a82('0x35')][_0x6a82('0x44')]){_0x17df8e[_0x6a82('0x48')]=[{'all':!![]}];}_0x17df8e=_['merge']({},_0x17df8e,_0x143559[_0x6a82('0x42')]);return db[_0x6a82('0x43')][_0x6a82('0x49')](_0x17df8e)[_0x6a82('0x29')](handleEntityNotFound(_0x5526a5,null))[_0x6a82('0x29')](respondWithResult(_0x5526a5,null))[_0x6a82('0x47')](handleError(_0x5526a5,null));};exports[_0x6a82('0x4a')]=function(_0x5e561b,_0x10b53f){return db[_0x6a82('0x43')][_0x6a82('0x4a')](_0x5e561b[_0x6a82('0x4b')],{})[_0x6a82('0x29')](respondWithResult(_0x10b53f,0xc9))['catch'](handleError(_0x10b53f,null));};exports[_0x6a82('0x28')]=function(_0x23000e,_0x41f47c){if(_0x23000e[_0x6a82('0x4b')]['id']){delete _0x23000e[_0x6a82('0x4b')]['id'];}return db[_0x6a82('0x43')][_0x6a82('0x49')]({'where':{'id':_0x23000e[_0x6a82('0x4c')]['id']}})[_0x6a82('0x29')](handleEntityNotFound(_0x41f47c,null))[_0x6a82('0x29')](saveUpdates(_0x23000e['body'],null))[_0x6a82('0x29')](respondWithResult(_0x41f47c,null))[_0x6a82('0x47')](handleError(_0x41f47c,null));};exports[_0x6a82('0x4d')]=function(_0x25bd0b,_0x45378a){return db[_0x6a82('0x43')][_0x6a82('0x49')]({'where':{'id':_0x25bd0b[_0x6a82('0x4c')]['id']}})[_0x6a82('0x29')](handleEntityNotFound(_0x45378a,null))[_0x6a82('0x29')](removeEntity(_0x45378a,null))['catch'](handleError(_0x45378a,null));};exports['describe']=function(_0x127daf,_0x439771){return db[_0x6a82('0x43')][_0x6a82('0x4e')]()['then'](respondWithResult(_0x439771,null))[_0x6a82('0x47')](handleError(_0x439771,null));};exports[_0x6a82('0x4f')]=function(_0x1abf9f,_0x48c1ba,_0xb76a13){return db[_0x6a82('0x50')][_0x6a82('0x23')]({'where':{'ChatGroupId':_0x1abf9f[_0x6a82('0x4c')]['id'],'ToId':_0x1abf9f[_0x6a82('0x51')]['id'],'read':![]}})[_0x6a82('0x29')](function(_0x454021){return{'id':_[_0x6a82('0x52')](_0x1abf9f[_0x6a82('0x4c')]['id']),'count':_0x454021};})['then'](respondWithResult(_0x48c1ba,null))['catch'](handleError(_0x48c1ba,null));};exports[_0x6a82('0x53')]=function(_0x4b7f9d,_0x37648d,_0x46831b){return db[_0x6a82('0x43')][_0x6a82('0x49')]({'where':{'id':_0x4b7f9d[_0x6a82('0x4c')]['id']}})['then'](handleEntityNotFound(_0x37648d,null))[_0x6a82('0x29')](function(_0xdc75a5){if(_0xdc75a5){return _0xdc75a5['addMembers'](_0x4b7f9d['body'][_0x6a82('0x54')],_['omit'](_0x4b7f9d[_0x6a82('0x4b')],[_0x6a82('0x54'),'id'])||{});}})[_0x6a82('0x29')](respondWithResult(_0x37648d,null))[_0x6a82('0x47')](handleError(_0x37648d,null));};exports['getMembers']=function(_0x58ea78,_0x236c2d,_0x5dbb7d){var _0x247b93={};var _0x551ef4={};var _0xd597cd;var _0x14f0f5;return db[_0x6a82('0x43')][_0x6a82('0x55')]({'where':{'id':_0x58ea78[_0x6a82('0x4c')]['id']}})[_0x6a82('0x29')](handleEntityNotFound(_0x236c2d,null))[_0x6a82('0x29')](function(_0x1e4644){if(_0x1e4644){_0xd597cd=_0x1e4644;_0x551ef4[_0x6a82('0x33')]=_[_0x6a82('0x34')](db[_0x6a82('0x56')][_0x6a82('0x2f')]);_0x551ef4['query']=_[_0x6a82('0x34')](_0x58ea78['query']);_0x551ef4[_0x6a82('0x36')]=_[_0x6a82('0x37')](_0x551ef4[_0x6a82('0x33')],_0x551ef4[_0x6a82('0x35')]);_0x247b93[_0x6a82('0x38')]=_[_0x6a82('0x37')](_0x551ef4[_0x6a82('0x33')],qs[_0x6a82('0x39')](_0x58ea78['query'][_0x6a82('0x39')]));_0x247b93[_0x6a82('0x38')]=_0x247b93[_0x6a82('0x38')][_0x6a82('0x3a')]?_0x247b93[_0x6a82('0x38')]:_0x551ef4[_0x6a82('0x33')];_0x247b93[_0x6a82('0x3c')]=qs['sort'](_0x58ea78[_0x6a82('0x35')][_0x6a82('0x3d')]);_0x247b93[_0x6a82('0x40')]=qs[_0x6a82('0x36')](_[_0x6a82('0x3e')](_0x58ea78[_0x6a82('0x35')],_0x551ef4['filters']));if(_0x58ea78[_0x6a82('0x35')][_0x6a82('0x3f')]){_0x247b93[_0x6a82('0x40')]=_[_0x6a82('0x41')](_0x247b93[_0x6a82('0x40')],{'$or':_[_0x6a82('0x2e')](_0x247b93['attributes'],function(_0x1a8d0b){var _0x3b5968={};_0x3b5968[_0x1a8d0b]={'$like':'%'+_0x58ea78[_0x6a82('0x35')][_0x6a82('0x3f')]+'%'};return _0x3b5968;})});}_0x247b93=_[_0x6a82('0x41')]({},_0x247b93,_0x58ea78[_0x6a82('0x42')]);return _0xd597cd[_0x6a82('0x57')](_0x247b93);}})[_0x6a82('0x29')](function(_0x16cee0){if(_0x16cee0){_0x14f0f5=_0x16cee0[_0x6a82('0x3a')];if(!_0x58ea78[_0x6a82('0x35')]['hasOwnProperty'](_0x6a82('0x58'))){_0x247b93['limit']=qs[_0x6a82('0x24')](_0x58ea78[_0x6a82('0x35')][_0x6a82('0x24')]);_0x247b93[_0x6a82('0x21')]=qs[_0x6a82('0x21')](_0x58ea78[_0x6a82('0x35')][_0x6a82('0x21')]);}return _0xd597cd['getMembers'](_0x247b93);}})['then'](function(_0x285090){if(_0x285090){return _0x285090?{'count':_0x14f0f5,'rows':_0x285090}:null;}})[_0x6a82('0x29')](respondWithResult(_0x236c2d,null))[_0x6a82('0x47')](handleError(_0x236c2d,null));};exports['removeMembers']=function(_0x27cca5,_0x155f96,_0x4ddd45){return db[_0x6a82('0x43')][_0x6a82('0x49')]({'where':{'id':_0x27cca5[_0x6a82('0x4c')]['id']}})[_0x6a82('0x29')](handleEntityNotFound(_0x155f96,null))[_0x6a82('0x29')](function(_0x4ad215){if(_0x4ad215){return _0x4ad215[_0x6a82('0x59')](_0x27cca5[_0x6a82('0x35')][_0x6a82('0x54')]);}})['then'](respondWithStatusCode(_0x155f96,null))['catch'](handleError(_0x155f96,null));};exports['addMessage']=function(_0x1cb14a,_0xdece64,_0x138dc4){if(_0x1cb14a[_0x6a82('0x4b')]['id']){delete _0x1cb14a[_0x6a82('0x4b')]['id'];}return db['ChatGroup'][_0x6a82('0x49')]({'where':{'id':_0x1cb14a[_0x6a82('0x4c')]['id']}})['then'](handleEntityNotFound(_0xdece64,null))[_0x6a82('0x29')](function(_0x3c1547){if(_0x3c1547){_0x1cb14a[_0x6a82('0x4b')][_0x6a82('0x5a')]=_0x3c1547['id'];return db['ChatInternalMessage'][_0x6a82('0x4a')](_0x1cb14a[_0x6a82('0x4b')]);}})[_0x6a82('0x29')](respondWithResult(_0xdece64,null))[_0x6a82('0x47')](handleError(_0xdece64,null));};exports[_0x6a82('0x5b')]=function(_0x54dfbb,_0x43ea46,_0x3a5ab6){var _0x9233b8={};var _0x18aff1={};var _0x29de5a;var _0x78b79a;return db[_0x6a82('0x43')]['findOne']({'where':{'id':_0x54dfbb['params']['id']}})['then'](handleEntityNotFound(_0x43ea46,null))[_0x6a82('0x29')](function(_0x596b37){if(_0x596b37){_0x29de5a=_0x596b37;_0x18aff1['model']=_[_0x6a82('0x34')](db[_0x6a82('0x50')][_0x6a82('0x2f')]);_0x18aff1[_0x6a82('0x35')]=_['keys'](_0x54dfbb['query']);_0x18aff1[_0x6a82('0x36')]=_['intersection'](_0x18aff1[_0x6a82('0x33')],_0x18aff1[_0x6a82('0x35')]);_0x9233b8[_0x6a82('0x38')]=_[_0x6a82('0x37')](_0x18aff1[_0x6a82('0x33')],qs[_0x6a82('0x39')](_0x54dfbb[_0x6a82('0x35')][_0x6a82('0x39')]));_0x9233b8['attributes']=_0x9233b8[_0x6a82('0x38')][_0x6a82('0x3a')]?_0x9233b8['attributes']:_0x18aff1[_0x6a82('0x33')];_0x9233b8[_0x6a82('0x3c')]=qs['sort'](_0x54dfbb[_0x6a82('0x35')]['sort']);_0x9233b8[_0x6a82('0x40')]=qs[_0x6a82('0x36')](_[_0x6a82('0x3e')](_0x54dfbb[_0x6a82('0x35')],_0x18aff1['filters']));if(_0x54dfbb['query'][_0x6a82('0x3f')]){_0x9233b8[_0x6a82('0x40')]=_[_0x6a82('0x41')](_0x9233b8[_0x6a82('0x40')],{'$or':_[_0x6a82('0x2e')](_0x9233b8[_0x6a82('0x38')],function(_0x16dad2){var _0x4613f4={};_0x4613f4[_0x16dad2]={'$like':'%'+_0x54dfbb[_0x6a82('0x35')]['filter']+'%'};return _0x4613f4;})});}if(_0x54dfbb[_0x6a82('0x35')]['$gte']){var _0xf77ced=_0x54dfbb[_0x6a82('0x35')][_0x6a82('0x5c')][_0x6a82('0x5d')](',');var _0x391a40={};_0x391a40[_0xf77ced[0x0]]={'$gte':moment(_0xf77ced[0x1])[_0x6a82('0x5e')](_0x6a82('0x5f'))};_0x9233b8[_0x6a82('0x40')]=_[_0x6a82('0x41')](_0x9233b8[_0x6a82('0x40')],_0x391a40);}_0x9233b8=_[_0x6a82('0x41')]({},_0x9233b8,_0x54dfbb[_0x6a82('0x42')]);return _0x29de5a[_0x6a82('0x5b')](_0x9233b8);}})['then'](function(_0x2e296f){if(_0x2e296f){_0x78b79a=_0x2e296f['length'];if(!_0x54dfbb[_0x6a82('0x35')][_0x6a82('0x3b')](_0x6a82('0x58'))){_0x9233b8['limit']=qs[_0x6a82('0x24')](_0x54dfbb[_0x6a82('0x35')][_0x6a82('0x24')]);_0x9233b8[_0x6a82('0x21')]=qs[_0x6a82('0x21')](_0x54dfbb['query'][_0x6a82('0x21')]);}return _0x29de5a[_0x6a82('0x5b')](_0x9233b8);}})['then'](function(_0x5c29f2){if(_0x5c29f2){return _0x5c29f2?{'count':_0x78b79a,'rows':_0x5c29f2}:null;}})[_0x6a82('0x29')](respondWithResult(_0x43ea46,null))['catch'](handleError(_0x43ea46,null));};