Built motion from commit ab870f9e.|2.5.44
[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 _0x39b7=['sendStatus','status','end','json','offset','undefined','count','limit','set','apply','reject','update','destroy','stack','name','index','rawAttributes','fieldName','type','map','query','filters','intersection','fields','attributes','length','model','hasOwnProperty','order','sort','where','pick','filter','merge','VIRTUAL','options','then','includeAll','include','findAll','rows','params','ChatGroup','keys','catch','create','body','find','describe','getUnread','ChatInternalMessage','user','toInteger','addMembers','ids','omit','getMembers','findOne','User','removeMembers','addMessage','ChatGroupId','getMessages','$gte','split','YYYY-MM-DD\x20HH:mm:ss','nolimit','zip-dir','fast-json-patch','moment','mustache','path','sox','ejs','lodash','squel','jsforce','desk.js','to-csv','querystring','papaparse','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','redis','./chatGroup.socket','register'];(function(_0x154e01,_0x2dfeb0){var _0x45d297=function(_0x318f8f){while(--_0x318f8f){_0x154e01['push'](_0x154e01['shift']());}};_0x45d297(++_0x2dfeb0);}(_0x39b7,0xf9));var _0x739b=function(_0x4b2ef6,_0x2aa7d0){_0x4b2ef6=_0x4b2ef6-0x0;var _0x5f355f=_0x39b7[_0x4b2ef6];return _0x5f355f;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x739b('0x0'));var jsonpatch=require(_0x739b('0x1'));var rp=require('request-promise');var moment=require(_0x739b('0x2'));var BPromise=require('bluebird');var Mustache=require(_0x739b('0x3'));var util=require('util');var path=require(_0x739b('0x4'));var sox=require(_0x739b('0x5'));var csv=require('to-csv');var ejs=require(_0x739b('0x6'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x739b('0x7'));var squel=require(_0x739b('0x8'));var crypto=require('crypto');var jsforce=require(_0x739b('0x9'));var deskjs=require(_0x739b('0xa'));var toCsv=require(_0x739b('0xb'));var querystring=require(_0x739b('0xc'));var Papa=require(_0x739b('0xd'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x739b('0xe'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x739b('0xf'));var logger=require(_0x739b('0x10'))(_0x739b('0x11'));var utils=require(_0x739b('0x12'));var config=require(_0x739b('0x13'));var licenseUtil=require('../../config/license/util');var db=require(_0x739b('0x14'))['db'];config[_0x739b('0x15')]=_['defaults'](config[_0x739b('0x15')],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x739b('0x15')]));require(_0x739b('0x16'))[_0x739b('0x17')](socket);function respondWithStatusCode(_0x2ddd2c,_0x3ab15d){_0x3ab15d=_0x3ab15d||0xcc;return function(_0x5c53ae){if(_0x5c53ae){return _0x2ddd2c[_0x739b('0x18')](_0x3ab15d);}return _0x2ddd2c[_0x739b('0x19')](_0x3ab15d)[_0x739b('0x1a')]();};}function respondWithResult(_0x56cbea,_0x1852e1){_0x1852e1=_0x1852e1||0xc8;return function(_0x434e46){if(_0x434e46){return _0x56cbea[_0x739b('0x19')](_0x1852e1)[_0x739b('0x1b')](_0x434e46);}};}function respondWithFilteredResult(_0x1bf56a,_0x1b1a82){return function(_0x2879f8){if(_0x2879f8){var _0x471a5b=typeof _0x1b1a82[_0x739b('0x1c')]===_0x739b('0x1d')&&typeof _0x1b1a82['limit']===_0x739b('0x1d');var _0x36bdf4=_0x2879f8[_0x739b('0x1e')];var _0x29add4=_0x471a5b?0x0:_0x1b1a82['offset'];var _0x5656d2=_0x471a5b?_0x2879f8[_0x739b('0x1e')]:_0x1b1a82[_0x739b('0x1c')]+_0x1b1a82[_0x739b('0x1f')];var _0x1fb5ef;if(_0x5656d2>=_0x36bdf4){_0x5656d2=_0x36bdf4;_0x1fb5ef=0xc8;}else{_0x1fb5ef=0xce;}_0x1bf56a[_0x739b('0x19')](_0x1fb5ef);return _0x1bf56a[_0x739b('0x20')]('Content-Range',_0x29add4+'-'+_0x5656d2+'/'+_0x36bdf4)[_0x739b('0x1b')](_0x2879f8);}return null;};}function patchUpdates(_0x1ecd2e){return function(_0x432b6b){try{jsonpatch[_0x739b('0x21')](_0x432b6b,_0x1ecd2e,!![]);}catch(_0x23acfb){return BPromise[_0x739b('0x22')](_0x23acfb);}return _0x432b6b['save']();};}function saveUpdates(_0x4af669,_0x28168d){return function(_0x413940){if(_0x413940){return _0x413940[_0x739b('0x23')](_0x4af669)['then'](function(_0x5e2781){return _0x5e2781;});}return null;};}function removeEntity(_0x17c430,_0x47ea9a){return function(_0xdd8efa){if(_0xdd8efa){return _0xdd8efa[_0x739b('0x24')]()['then'](function(){_0x17c430[_0x739b('0x19')](0xcc)[_0x739b('0x1a')]();});}};}function handleEntityNotFound(_0x606ba2,_0x4f1d9a){return function(_0x7b5228){if(!_0x7b5228){_0x606ba2[_0x739b('0x18')](0x194);}return _0x7b5228;};}function handleError(_0x1bf436,_0x2519b1){_0x2519b1=_0x2519b1||0x1f4;return function(_0x2ec563){logger['error'](_0x2ec563[_0x739b('0x25')]);if(_0x2ec563[_0x739b('0x26')]){delete _0x2ec563[_0x739b('0x26')];}_0x1bf436[_0x739b('0x19')](_0x2519b1)['send'](_0x2ec563);};}exports[_0x739b('0x27')]=function(_0x5b9852,_0x183c13){var _0xe26f2f={},_0x905778={},_0x431486={'count':0x0,'rows':[]};var _0x889763=_['map'](db['ChatGroup'][_0x739b('0x28')],function(_0x127f22){return{'name':_0x127f22[_0x739b('0x29')],'type':_0x127f22[_0x739b('0x2a')]['key']};});_0x905778['model']=_[_0x739b('0x2b')](_0x889763,_0x739b('0x26'));_0x905778[_0x739b('0x2c')]=_['keys'](_0x5b9852[_0x739b('0x2c')]);_0x905778[_0x739b('0x2d')]=_[_0x739b('0x2e')](_0x905778['model'],_0x905778[_0x739b('0x2c')]);_0xe26f2f['attributes']=_['intersection'](_0x905778['model'],qs[_0x739b('0x2f')](_0x5b9852[_0x739b('0x2c')][_0x739b('0x2f')]));_0xe26f2f['attributes']=_0xe26f2f[_0x739b('0x30')][_0x739b('0x31')]?_0xe26f2f[_0x739b('0x30')]:_0x905778[_0x739b('0x32')];if(!_0x5b9852[_0x739b('0x2c')][_0x739b('0x33')]('nolimit')){_0xe26f2f[_0x739b('0x1f')]=qs['limit'](_0x5b9852[_0x739b('0x2c')][_0x739b('0x1f')]);_0xe26f2f[_0x739b('0x1c')]=qs[_0x739b('0x1c')](_0x5b9852[_0x739b('0x2c')][_0x739b('0x1c')]);}_0xe26f2f[_0x739b('0x34')]=qs[_0x739b('0x35')](_0x5b9852[_0x739b('0x2c')][_0x739b('0x35')]);_0xe26f2f[_0x739b('0x36')]=qs[_0x739b('0x2d')](_[_0x739b('0x37')](_0x5b9852[_0x739b('0x2c')],_0x905778[_0x739b('0x2d')]),_0x889763);if(_0x5b9852['query'][_0x739b('0x38')]){_0xe26f2f[_0x739b('0x36')]=_[_0x739b('0x39')](_0xe26f2f['where'],{'$or':_['map'](_0x889763,function(_0x410e29){if(_0x410e29[_0x739b('0x2a')]!==_0x739b('0x3a')){var _0x482a4e={};_0x482a4e[_0x410e29[_0x739b('0x26')]]={'$like':'%'+_0x5b9852['query'][_0x739b('0x38')]+'%'};return _0x482a4e;}})});}_0xe26f2f=_[_0x739b('0x39')]({},_0xe26f2f,_0x5b9852[_0x739b('0x3b')]);var _0x168ab5={'where':_0xe26f2f[_0x739b('0x36')]};return db['ChatGroup'][_0x739b('0x1e')](_0x168ab5)[_0x739b('0x3c')](function(_0xb28d12){_0x431486['count']=_0xb28d12;if(_0x5b9852[_0x739b('0x2c')][_0x739b('0x3d')]){_0xe26f2f[_0x739b('0x3e')]=[{'all':!![]}];}return db['ChatGroup'][_0x739b('0x3f')](_0xe26f2f);})[_0x739b('0x3c')](function(_0x481aca){_0x431486[_0x739b('0x40')]=_0x481aca;return _0x431486;})[_0x739b('0x3c')](respondWithFilteredResult(_0x183c13,_0xe26f2f))['catch'](handleError(_0x183c13,null));};exports['show']=function(_0x29a7f3,_0x305137){var _0x454899={'raw':!![],'where':{'id':_0x29a7f3[_0x739b('0x41')]['id']}},_0x14bde2={};_0x14bde2['model']=_['keys'](db[_0x739b('0x42')][_0x739b('0x28')]);_0x14bde2[_0x739b('0x2c')]=_[_0x739b('0x43')](_0x29a7f3[_0x739b('0x2c')]);_0x14bde2[_0x739b('0x2d')]=_[_0x739b('0x2e')](_0x14bde2[_0x739b('0x32')],_0x14bde2[_0x739b('0x2c')]);_0x454899['attributes']=_[_0x739b('0x2e')](_0x14bde2['model'],qs[_0x739b('0x2f')](_0x29a7f3[_0x739b('0x2c')][_0x739b('0x2f')]));_0x454899[_0x739b('0x30')]=_0x454899['attributes'][_0x739b('0x31')]?_0x454899['attributes']:_0x14bde2[_0x739b('0x32')];if(_0x29a7f3[_0x739b('0x2c')][_0x739b('0x3d')]){_0x454899[_0x739b('0x3e')]=[{'all':!![]}];}_0x454899=_[_0x739b('0x39')]({},_0x454899,_0x29a7f3['options']);return db[_0x739b('0x42')]['find'](_0x454899)[_0x739b('0x3c')](handleEntityNotFound(_0x305137,null))[_0x739b('0x3c')](respondWithResult(_0x305137,null))[_0x739b('0x44')](handleError(_0x305137,null));};exports[_0x739b('0x45')]=function(_0x6790cc,_0x441e4d){return db[_0x739b('0x42')]['create'](_0x6790cc[_0x739b('0x46')],{})[_0x739b('0x3c')](respondWithResult(_0x441e4d,0xc9))[_0x739b('0x44')](handleError(_0x441e4d,null));};exports['update']=function(_0x255471,_0x3c9ffd){if(_0x255471[_0x739b('0x46')]['id']){delete _0x255471[_0x739b('0x46')]['id'];}return db[_0x739b('0x42')][_0x739b('0x47')]({'where':{'id':_0x255471[_0x739b('0x41')]['id']}})[_0x739b('0x3c')](handleEntityNotFound(_0x3c9ffd,null))[_0x739b('0x3c')](saveUpdates(_0x255471['body'],null))[_0x739b('0x3c')](respondWithResult(_0x3c9ffd,null))['catch'](handleError(_0x3c9ffd,null));};exports['destroy']=function(_0x1266ea,_0x40ce58){return db[_0x739b('0x42')][_0x739b('0x47')]({'where':{'id':_0x1266ea[_0x739b('0x41')]['id']}})[_0x739b('0x3c')](handleEntityNotFound(_0x40ce58,null))[_0x739b('0x3c')](removeEntity(_0x40ce58,null))[_0x739b('0x44')](handleError(_0x40ce58,null));};exports['describe']=function(_0x2280c4,_0x14a0be){return db['ChatGroup'][_0x739b('0x48')]()[_0x739b('0x3c')](respondWithResult(_0x14a0be,null))[_0x739b('0x44')](handleError(_0x14a0be,null));};exports[_0x739b('0x49')]=function(_0x47afb1,_0x2a24f9,_0x741bd4){return db[_0x739b('0x4a')][_0x739b('0x1e')]({'where':{'ChatGroupId':_0x47afb1['params']['id'],'ToId':_0x47afb1[_0x739b('0x4b')]['id'],'read':![]}})[_0x739b('0x3c')](function(_0x243935){return{'id':_[_0x739b('0x4c')](_0x47afb1['params']['id']),'count':_0x243935};})[_0x739b('0x3c')](respondWithResult(_0x2a24f9,null))[_0x739b('0x44')](handleError(_0x2a24f9,null));};exports['addMembers']=function(_0xfbe2b,_0x1038b5,_0x26394f){return db[_0x739b('0x42')]['find']({'where':{'id':_0xfbe2b['params']['id']}})[_0x739b('0x3c')](handleEntityNotFound(_0x1038b5,null))[_0x739b('0x3c')](function(_0x432c02){if(_0x432c02){return _0x432c02[_0x739b('0x4d')](_0xfbe2b['body'][_0x739b('0x4e')],_[_0x739b('0x4f')](_0xfbe2b[_0x739b('0x46')],[_0x739b('0x4e'),'id'])||{});}})[_0x739b('0x3c')](respondWithResult(_0x1038b5,null))[_0x739b('0x44')](handleError(_0x1038b5,null));};exports[_0x739b('0x50')]=function(_0x563e91,_0x2eae29,_0x475ede){var _0x39ec30={};var _0x7ec880={};var _0x496522;var _0x63b906;return db[_0x739b('0x42')][_0x739b('0x51')]({'where':{'id':_0x563e91[_0x739b('0x41')]['id']}})['then'](handleEntityNotFound(_0x2eae29,null))[_0x739b('0x3c')](function(_0x37e641){if(_0x37e641){_0x496522=_0x37e641;_0x7ec880[_0x739b('0x32')]=_[_0x739b('0x43')](db[_0x739b('0x52')][_0x739b('0x28')]);_0x7ec880[_0x739b('0x2c')]=_[_0x739b('0x43')](_0x563e91['query']);_0x7ec880[_0x739b('0x2d')]=_[_0x739b('0x2e')](_0x7ec880[_0x739b('0x32')],_0x7ec880[_0x739b('0x2c')]);_0x39ec30['attributes']=_['intersection'](_0x7ec880[_0x739b('0x32')],qs[_0x739b('0x2f')](_0x563e91[_0x739b('0x2c')][_0x739b('0x2f')]));_0x39ec30[_0x739b('0x30')]=_0x39ec30['attributes'][_0x739b('0x31')]?_0x39ec30[_0x739b('0x30')]:_0x7ec880['model'];_0x39ec30['order']=qs['sort'](_0x563e91[_0x739b('0x2c')][_0x739b('0x35')]);_0x39ec30[_0x739b('0x36')]=qs['filters'](_[_0x739b('0x37')](_0x563e91[_0x739b('0x2c')],_0x7ec880[_0x739b('0x2d')]));if(_0x563e91['query']['filter']){_0x39ec30[_0x739b('0x36')]=_[_0x739b('0x39')](_0x39ec30[_0x739b('0x36')],{'$or':_[_0x739b('0x2b')](_0x39ec30[_0x739b('0x30')],function(_0x2a1e8e){var _0x5b8dcf={};_0x5b8dcf[_0x2a1e8e]={'$like':'%'+_0x563e91[_0x739b('0x2c')][_0x739b('0x38')]+'%'};return _0x5b8dcf;})});}_0x39ec30=_[_0x739b('0x39')]({},_0x39ec30,_0x563e91['options']);return _0x496522[_0x739b('0x50')](_0x39ec30);}})['then'](function(_0x37ac5f){if(_0x37ac5f){_0x63b906=_0x37ac5f[_0x739b('0x31')];if(!_0x563e91[_0x739b('0x2c')][_0x739b('0x33')]('nolimit')){_0x39ec30[_0x739b('0x1f')]=qs[_0x739b('0x1f')](_0x563e91[_0x739b('0x2c')][_0x739b('0x1f')]);_0x39ec30[_0x739b('0x1c')]=qs[_0x739b('0x1c')](_0x563e91[_0x739b('0x2c')]['offset']);}return _0x496522['getMembers'](_0x39ec30);}})['then'](function(_0x4920c2){if(_0x4920c2){return _0x4920c2?{'count':_0x63b906,'rows':_0x4920c2}:null;}})['then'](respondWithResult(_0x2eae29,null))[_0x739b('0x44')](handleError(_0x2eae29,null));};exports[_0x739b('0x53')]=function(_0x3ea6c1,_0x15fe93,_0x175d8e){return db[_0x739b('0x42')][_0x739b('0x47')]({'where':{'id':_0x3ea6c1['params']['id']}})['then'](handleEntityNotFound(_0x15fe93,null))[_0x739b('0x3c')](function(_0x3355cf){if(_0x3355cf){return _0x3355cf['removeMembers'](_0x3ea6c1['query'][_0x739b('0x4e')]);}})['then'](respondWithStatusCode(_0x15fe93,null))['catch'](handleError(_0x15fe93,null));};exports[_0x739b('0x54')]=function(_0x5df9b5,_0xbfe0cc,_0x461308){if(_0x5df9b5['body']['id']){delete _0x5df9b5['body']['id'];}return db[_0x739b('0x42')]['find']({'where':{'id':_0x5df9b5[_0x739b('0x41')]['id']}})['then'](handleEntityNotFound(_0xbfe0cc,null))[_0x739b('0x3c')](function(_0x5c831a){if(_0x5c831a){_0x5df9b5[_0x739b('0x46')][_0x739b('0x55')]=_0x5c831a['id'];return db[_0x739b('0x4a')]['create'](_0x5df9b5[_0x739b('0x46')]);}})['then'](respondWithResult(_0xbfe0cc,null))[_0x739b('0x44')](handleError(_0xbfe0cc,null));};exports[_0x739b('0x56')]=function(_0x41a250,_0x52bac9,_0x49f6e8){var _0x3bf06e={};var _0x28a00f={};var _0x1cd48c;var _0x3667bc;return db[_0x739b('0x42')][_0x739b('0x51')]({'where':{'id':_0x41a250['params']['id']}})[_0x739b('0x3c')](handleEntityNotFound(_0x52bac9,null))[_0x739b('0x3c')](function(_0x3ff673){if(_0x3ff673){_0x1cd48c=_0x3ff673;_0x28a00f['model']=_[_0x739b('0x43')](db[_0x739b('0x4a')][_0x739b('0x28')]);_0x28a00f['query']=_[_0x739b('0x43')](_0x41a250[_0x739b('0x2c')]);_0x28a00f[_0x739b('0x2d')]=_['intersection'](_0x28a00f[_0x739b('0x32')],_0x28a00f[_0x739b('0x2c')]);_0x3bf06e[_0x739b('0x30')]=_[_0x739b('0x2e')](_0x28a00f[_0x739b('0x32')],qs[_0x739b('0x2f')](_0x41a250[_0x739b('0x2c')][_0x739b('0x2f')]));_0x3bf06e[_0x739b('0x30')]=_0x3bf06e['attributes'][_0x739b('0x31')]?_0x3bf06e[_0x739b('0x30')]:_0x28a00f[_0x739b('0x32')];_0x3bf06e[_0x739b('0x34')]=qs[_0x739b('0x35')](_0x41a250['query'][_0x739b('0x35')]);_0x3bf06e['where']=qs['filters'](_['pick'](_0x41a250[_0x739b('0x2c')],_0x28a00f[_0x739b('0x2d')]));if(_0x41a250[_0x739b('0x2c')][_0x739b('0x38')]){_0x3bf06e[_0x739b('0x36')]=_[_0x739b('0x39')](_0x3bf06e['where'],{'$or':_['map'](_0x3bf06e['attributes'],function(_0x662477){var _0x525442={};_0x525442[_0x662477]={'$like':'%'+_0x41a250[_0x739b('0x2c')]['filter']+'%'};return _0x525442;})});}if(_0x41a250['query']['$gte']){var _0x1d8c61=_0x41a250[_0x739b('0x2c')][_0x739b('0x57')][_0x739b('0x58')](',');var _0x5f1f0a={};_0x5f1f0a[_0x1d8c61[0x0]]={'$gte':moment(_0x1d8c61[0x1])['format'](_0x739b('0x59'))};_0x3bf06e['where']=_[_0x739b('0x39')](_0x3bf06e[_0x739b('0x36')],_0x5f1f0a);}_0x3bf06e=_['merge']({},_0x3bf06e,_0x41a250['options']);return _0x1cd48c['getMessages'](_0x3bf06e);}})[_0x739b('0x3c')](function(_0x3bd105){if(_0x3bd105){_0x3667bc=_0x3bd105[_0x739b('0x31')];if(!_0x41a250[_0x739b('0x2c')][_0x739b('0x33')](_0x739b('0x5a'))){_0x3bf06e[_0x739b('0x1f')]=qs['limit'](_0x41a250[_0x739b('0x2c')][_0x739b('0x1f')]);_0x3bf06e[_0x739b('0x1c')]=qs[_0x739b('0x1c')](_0x41a250['query']['offset']);}return _0x1cd48c[_0x739b('0x56')](_0x3bf06e);}})[_0x739b('0x3c')](function(_0x152b63){if(_0x152b63){return _0x152b63?{'count':_0x3667bc,'rows':_0x152b63}:null;}})[_0x739b('0x3c')](respondWithResult(_0x52bac9,null))[_0x739b('0x44')](handleError(_0x52bac9,null));};