Built motion from commit bab6f49e.|2.6.17
[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 _0xade1=['keys','options','find','create','body','params','destroy','describe','getUnread','ChatInternalMessage','user','toInteger','addMembers','ids','omit','findOne','User','sort','getMembers','removeMembers','getMessages','$gte','split','format','YYYY-MM-DD\x20HH:mm:ss','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','redis','localhost','socket.io-emitter','./chatGroup.socket','register','sendStatus','status','end','undefined','limit','count','offset','Content-Range','reject','save','then','error','stack','name','send','index','map','ChatGroup','rawAttributes','fieldName','type','model','query','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','where','filters','pick','filter','VIRTUAL','merge','includeAll','include','findAll','rows','catch'];(function(_0x3c2629,_0x2cbaa1){var _0x3d3521=function(_0x5ef89c){while(--_0x5ef89c){_0x3c2629['push'](_0x3c2629['shift']());}};_0x3d3521(++_0x2cbaa1);}(_0xade1,0x1a1));var _0x1ade=function(_0x41b511,_0xb31dfb){_0x41b511=_0x41b511-0x0;var _0x11cd81=_0xade1[_0x41b511];return _0x11cd81;};'use strict';var emlformat=require(_0x1ade('0x0'));var rimraf=require(_0x1ade('0x1'));var zipdir=require(_0x1ade('0x2'));var jsonpatch=require(_0x1ade('0x3'));var rp=require(_0x1ade('0x4'));var moment=require(_0x1ade('0x5'));var BPromise=require('bluebird');var Mustache=require(_0x1ade('0x6'));var util=require(_0x1ade('0x7'));var path=require(_0x1ade('0x8'));var sox=require('sox');var csv=require(_0x1ade('0x9'));var ejs=require(_0x1ade('0xa'));var fs=require('fs');var fs_extra=require(_0x1ade('0xb'));var _=require(_0x1ade('0xc'));var squel=require(_0x1ade('0xd'));var crypto=require('crypto');var jsforce=require(_0x1ade('0xe'));var deskjs=require(_0x1ade('0xf'));var toCsv=require('to-csv');var querystring=require(_0x1ade('0x10'));var Papa=require(_0x1ade('0x11'));var Redis=require(_0x1ade('0x12'));var authService=require('../../components/auth/service');var qs=require(_0x1ade('0x13'));var as=require(_0x1ade('0x14'));var hardwareService=require(_0x1ade('0x15'));var logger=require(_0x1ade('0x16'))(_0x1ade('0x17'));var utils=require(_0x1ade('0x18'));var config=require('../../config/environment');var licenseUtil=require(_0x1ade('0x19'));var db=require(_0x1ade('0x1a'))['db'];config[_0x1ade('0x1b')]=_['defaults'](config[_0x1ade('0x1b')],{'host':_0x1ade('0x1c'),'port':0x18eb});var socket=require(_0x1ade('0x1d'))(new Redis(config['redis']));require(_0x1ade('0x1e'))[_0x1ade('0x1f')](socket);function respondWithStatusCode(_0x545d1b,_0x437983){_0x437983=_0x437983||0xcc;return function(_0x343029){if(_0x343029){return _0x545d1b[_0x1ade('0x20')](_0x437983);}return _0x545d1b[_0x1ade('0x21')](_0x437983)[_0x1ade('0x22')]();};}function respondWithResult(_0x124edd,_0x568429){_0x568429=_0x568429||0xc8;return function(_0xc1546e){if(_0xc1546e){return _0x124edd[_0x1ade('0x21')](_0x568429)['json'](_0xc1546e);}};}function respondWithFilteredResult(_0x23f20d,_0x168676){return function(_0x5c6ca1){if(_0x5c6ca1){var _0x2986ca=typeof _0x168676['offset']===_0x1ade('0x23')&&typeof _0x168676[_0x1ade('0x24')]===_0x1ade('0x23');var _0x891f6=_0x5c6ca1[_0x1ade('0x25')];var _0x50e096=_0x2986ca?0x0:_0x168676['offset'];var _0x432662=_0x2986ca?_0x5c6ca1[_0x1ade('0x25')]:_0x168676[_0x1ade('0x26')]+_0x168676[_0x1ade('0x24')];var _0x5a2fb3;if(_0x432662>=_0x891f6){_0x432662=_0x891f6;_0x5a2fb3=0xc8;}else{_0x5a2fb3=0xce;}_0x23f20d[_0x1ade('0x21')](_0x5a2fb3);return _0x23f20d['set'](_0x1ade('0x27'),_0x50e096+'-'+_0x432662+'/'+_0x891f6)['json'](_0x5c6ca1);}return null;};}function patchUpdates(_0x1d060b){return function(_0x17d57f){try{jsonpatch['apply'](_0x17d57f,_0x1d060b,!![]);}catch(_0xb4b76e){return BPromise[_0x1ade('0x28')](_0xb4b76e);}return _0x17d57f[_0x1ade('0x29')]();};}function saveUpdates(_0x133958,_0x1150ce){return function(_0x28e997){if(_0x28e997){return _0x28e997['update'](_0x133958)['then'](function(_0x2bf955){return _0x2bf955;});}return null;};}function removeEntity(_0x1b6bf7,_0x3feb02){return function(_0x3501a4){if(_0x3501a4){return _0x3501a4['destroy']()[_0x1ade('0x2a')](function(){_0x1b6bf7[_0x1ade('0x21')](0xcc)['end']();});}};}function handleEntityNotFound(_0x4243a5,_0x5433e9){return function(_0x25d96b){if(!_0x25d96b){_0x4243a5['sendStatus'](0x194);}return _0x25d96b;};}function handleError(_0x28311f,_0x101ebf){_0x101ebf=_0x101ebf||0x1f4;return function(_0x153974){logger[_0x1ade('0x2b')](_0x153974[_0x1ade('0x2c')]);if(_0x153974[_0x1ade('0x2d')]){delete _0x153974[_0x1ade('0x2d')];}_0x28311f[_0x1ade('0x21')](_0x101ebf)[_0x1ade('0x2e')](_0x153974);};}exports[_0x1ade('0x2f')]=function(_0x58f6e4,_0x52b18e){var _0x4dc515={},_0x3c6793={},_0x4ac333={'count':0x0,'rows':[]};var _0x4723d1=_[_0x1ade('0x30')](db[_0x1ade('0x31')][_0x1ade('0x32')],function(_0x1f7cfb){return{'name':_0x1f7cfb[_0x1ade('0x33')],'type':_0x1f7cfb[_0x1ade('0x34')]['key']};});_0x3c6793[_0x1ade('0x35')]=_['map'](_0x4723d1,_0x1ade('0x2d'));_0x3c6793[_0x1ade('0x36')]=_['keys'](_0x58f6e4['query']);_0x3c6793['filters']=_[_0x1ade('0x37')](_0x3c6793[_0x1ade('0x35')],_0x3c6793['query']);_0x4dc515[_0x1ade('0x38')]=_[_0x1ade('0x37')](_0x3c6793[_0x1ade('0x35')],qs[_0x1ade('0x39')](_0x58f6e4[_0x1ade('0x36')][_0x1ade('0x39')]));_0x4dc515[_0x1ade('0x38')]=_0x4dc515['attributes'][_0x1ade('0x3a')]?_0x4dc515[_0x1ade('0x38')]:_0x3c6793['model'];if(!_0x58f6e4['query'][_0x1ade('0x3b')](_0x1ade('0x3c'))){_0x4dc515['limit']=qs['limit'](_0x58f6e4[_0x1ade('0x36')][_0x1ade('0x24')]);_0x4dc515[_0x1ade('0x26')]=qs['offset'](_0x58f6e4[_0x1ade('0x36')][_0x1ade('0x26')]);}_0x4dc515[_0x1ade('0x3d')]=qs['sort'](_0x58f6e4['query']['sort']);_0x4dc515[_0x1ade('0x3e')]=qs[_0x1ade('0x3f')](_[_0x1ade('0x40')](_0x58f6e4[_0x1ade('0x36')],_0x3c6793['filters']),_0x4723d1);if(_0x58f6e4['query'][_0x1ade('0x41')]){_0x4dc515[_0x1ade('0x3e')]=_['merge'](_0x4dc515['where'],{'$or':_[_0x1ade('0x30')](_0x4723d1,function(_0x519459){if(_0x519459[_0x1ade('0x34')]!==_0x1ade('0x42')){var _0x2ebe78={};_0x2ebe78[_0x519459['name']]={'$like':'%'+_0x58f6e4[_0x1ade('0x36')][_0x1ade('0x41')]+'%'};return _0x2ebe78;}})});}_0x4dc515=_[_0x1ade('0x43')]({},_0x4dc515,_0x58f6e4['options']);var _0xd1d3f3={'where':_0x4dc515['where']};return db[_0x1ade('0x31')][_0x1ade('0x25')](_0xd1d3f3)[_0x1ade('0x2a')](function(_0x424091){_0x4ac333['count']=_0x424091;if(_0x58f6e4[_0x1ade('0x36')][_0x1ade('0x44')]){_0x4dc515[_0x1ade('0x45')]=[{'all':!![]}];}return db[_0x1ade('0x31')][_0x1ade('0x46')](_0x4dc515);})[_0x1ade('0x2a')](function(_0x425986){_0x4ac333[_0x1ade('0x47')]=_0x425986;return _0x4ac333;})['then'](respondWithFilteredResult(_0x52b18e,_0x4dc515))[_0x1ade('0x48')](handleError(_0x52b18e,null));};exports['show']=function(_0x26f965,_0x98adbd){var _0x4050f1={'raw':!![],'where':{'id':_0x26f965['params']['id']}},_0x194149={};_0x194149[_0x1ade('0x35')]=_['keys'](db[_0x1ade('0x31')][_0x1ade('0x32')]);_0x194149[_0x1ade('0x36')]=_[_0x1ade('0x49')](_0x26f965['query']);_0x194149['filters']=_[_0x1ade('0x37')](_0x194149[_0x1ade('0x35')],_0x194149['query']);_0x4050f1[_0x1ade('0x38')]=_['intersection'](_0x194149[_0x1ade('0x35')],qs[_0x1ade('0x39')](_0x26f965[_0x1ade('0x36')]['fields']));_0x4050f1[_0x1ade('0x38')]=_0x4050f1[_0x1ade('0x38')]['length']?_0x4050f1[_0x1ade('0x38')]:_0x194149[_0x1ade('0x35')];if(_0x26f965[_0x1ade('0x36')][_0x1ade('0x44')]){_0x4050f1[_0x1ade('0x45')]=[{'all':!![]}];}_0x4050f1=_['merge']({},_0x4050f1,_0x26f965[_0x1ade('0x4a')]);return db['ChatGroup'][_0x1ade('0x4b')](_0x4050f1)[_0x1ade('0x2a')](handleEntityNotFound(_0x98adbd,null))[_0x1ade('0x2a')](respondWithResult(_0x98adbd,null))[_0x1ade('0x48')](handleError(_0x98adbd,null));};exports[_0x1ade('0x4c')]=function(_0xa362c2,_0x14278a){return db['ChatGroup'][_0x1ade('0x4c')](_0xa362c2[_0x1ade('0x4d')],{})[_0x1ade('0x2a')](respondWithResult(_0x14278a,0xc9))[_0x1ade('0x48')](handleError(_0x14278a,null));};exports['update']=function(_0x576cf2,_0x464924){if(_0x576cf2[_0x1ade('0x4d')]['id']){delete _0x576cf2[_0x1ade('0x4d')]['id'];}return db[_0x1ade('0x31')]['find']({'where':{'id':_0x576cf2[_0x1ade('0x4e')]['id']}})['then'](handleEntityNotFound(_0x464924,null))['then'](saveUpdates(_0x576cf2[_0x1ade('0x4d')],null))['then'](respondWithResult(_0x464924,null))['catch'](handleError(_0x464924,null));};exports[_0x1ade('0x4f')]=function(_0x1832ad,_0x413ed6){return db[_0x1ade('0x31')][_0x1ade('0x4b')]({'where':{'id':_0x1832ad[_0x1ade('0x4e')]['id']}})[_0x1ade('0x2a')](handleEntityNotFound(_0x413ed6,null))[_0x1ade('0x2a')](removeEntity(_0x413ed6,null))[_0x1ade('0x48')](handleError(_0x413ed6,null));};exports[_0x1ade('0x50')]=function(_0x3bacb9,_0xca0240){return db[_0x1ade('0x31')][_0x1ade('0x50')]()[_0x1ade('0x2a')](respondWithResult(_0xca0240,null))[_0x1ade('0x48')](handleError(_0xca0240,null));};exports[_0x1ade('0x51')]=function(_0x41db64,_0x5439ed,_0x587990){return db[_0x1ade('0x52')][_0x1ade('0x25')]({'where':{'ChatGroupId':_0x41db64[_0x1ade('0x4e')]['id'],'ToId':_0x41db64[_0x1ade('0x53')]['id'],'read':![]}})['then'](function(_0x1b502d){return{'id':_[_0x1ade('0x54')](_0x41db64[_0x1ade('0x4e')]['id']),'count':_0x1b502d};})['then'](respondWithResult(_0x5439ed,null))[_0x1ade('0x48')](handleError(_0x5439ed,null));};exports[_0x1ade('0x55')]=function(_0xf4abf2,_0x10b7c6,_0x8c1f1b){return db['ChatGroup'][_0x1ade('0x4b')]({'where':{'id':_0xf4abf2[_0x1ade('0x4e')]['id']}})[_0x1ade('0x2a')](handleEntityNotFound(_0x10b7c6,null))[_0x1ade('0x2a')](function(_0x2bc373){if(_0x2bc373){return _0x2bc373['addMembers'](_0xf4abf2['body'][_0x1ade('0x56')],_[_0x1ade('0x57')](_0xf4abf2['body'],[_0x1ade('0x56'),'id'])||{});}})[_0x1ade('0x2a')](respondWithResult(_0x10b7c6,null))[_0x1ade('0x48')](handleError(_0x10b7c6,null));};exports['getMembers']=function(_0x330a32,_0x36fd4f,_0xe66cc9){var _0x590802={};var _0x1ad2a9={};var _0x817bcd;var _0x1ee116;return db[_0x1ade('0x31')][_0x1ade('0x58')]({'where':{'id':_0x330a32[_0x1ade('0x4e')]['id']}})['then'](handleEntityNotFound(_0x36fd4f,null))[_0x1ade('0x2a')](function(_0xc5f83d){if(_0xc5f83d){_0x817bcd=_0xc5f83d;_0x1ad2a9['model']=_[_0x1ade('0x49')](db[_0x1ade('0x59')]['rawAttributes']);_0x1ad2a9[_0x1ade('0x36')]=_[_0x1ade('0x49')](_0x330a32[_0x1ade('0x36')]);_0x1ad2a9[_0x1ade('0x3f')]=_[_0x1ade('0x37')](_0x1ad2a9['model'],_0x1ad2a9['query']);_0x590802[_0x1ade('0x38')]=_['intersection'](_0x1ad2a9['model'],qs[_0x1ade('0x39')](_0x330a32['query'][_0x1ade('0x39')]));_0x590802['attributes']=_0x590802['attributes'][_0x1ade('0x3a')]?_0x590802[_0x1ade('0x38')]:_0x1ad2a9[_0x1ade('0x35')];_0x590802[_0x1ade('0x3d')]=qs[_0x1ade('0x5a')](_0x330a32[_0x1ade('0x36')][_0x1ade('0x5a')]);_0x590802['where']=qs['filters'](_[_0x1ade('0x40')](_0x330a32[_0x1ade('0x36')],_0x1ad2a9['filters']));if(_0x330a32[_0x1ade('0x36')][_0x1ade('0x41')]){_0x590802[_0x1ade('0x3e')]=_[_0x1ade('0x43')](_0x590802[_0x1ade('0x3e')],{'$or':_['map'](_0x590802[_0x1ade('0x38')],function(_0x301f3a){var _0x389cde={};_0x389cde[_0x301f3a]={'$like':'%'+_0x330a32['query'][_0x1ade('0x41')]+'%'};return _0x389cde;})});}_0x590802=_[_0x1ade('0x43')]({},_0x590802,_0x330a32[_0x1ade('0x4a')]);return _0x817bcd[_0x1ade('0x5b')](_0x590802);}})[_0x1ade('0x2a')](function(_0x1f692e){if(_0x1f692e){_0x1ee116=_0x1f692e[_0x1ade('0x3a')];if(!_0x330a32['query']['hasOwnProperty'](_0x1ade('0x3c'))){_0x590802['limit']=qs[_0x1ade('0x24')](_0x330a32[_0x1ade('0x36')]['limit']);_0x590802[_0x1ade('0x26')]=qs['offset'](_0x330a32['query'][_0x1ade('0x26')]);}return _0x817bcd[_0x1ade('0x5b')](_0x590802);}})[_0x1ade('0x2a')](function(_0x2a6790){if(_0x2a6790){return _0x2a6790?{'count':_0x1ee116,'rows':_0x2a6790}:null;}})[_0x1ade('0x2a')](respondWithResult(_0x36fd4f,null))[_0x1ade('0x48')](handleError(_0x36fd4f,null));};exports[_0x1ade('0x5c')]=function(_0x48167f,_0x3e98c9,_0x3254f2){return db[_0x1ade('0x31')]['find']({'where':{'id':_0x48167f['params']['id']}})[_0x1ade('0x2a')](handleEntityNotFound(_0x3e98c9,null))[_0x1ade('0x2a')](function(_0x574c0f){if(_0x574c0f){return _0x574c0f[_0x1ade('0x5c')](_0x48167f[_0x1ade('0x36')]['ids']);}})[_0x1ade('0x2a')](respondWithStatusCode(_0x3e98c9,null))['catch'](handleError(_0x3e98c9,null));};exports['addMessage']=function(_0x2d850e,_0x4e2ce6,_0x2b6ab2){if(_0x2d850e['body']['id']){delete _0x2d850e[_0x1ade('0x4d')]['id'];}return db['ChatGroup'][_0x1ade('0x4b')]({'where':{'id':_0x2d850e[_0x1ade('0x4e')]['id']}})[_0x1ade('0x2a')](handleEntityNotFound(_0x4e2ce6,null))[_0x1ade('0x2a')](function(_0x58149c){if(_0x58149c){_0x2d850e[_0x1ade('0x4d')]['ChatGroupId']=_0x58149c['id'];return db[_0x1ade('0x52')][_0x1ade('0x4c')](_0x2d850e[_0x1ade('0x4d')]);}})[_0x1ade('0x2a')](respondWithResult(_0x4e2ce6,null))[_0x1ade('0x48')](handleError(_0x4e2ce6,null));};exports[_0x1ade('0x5d')]=function(_0x8487ff,_0x1d558d,_0x11dd63){var _0x5f1f63={};var _0x1225be={};var _0xc26493;var _0x2e92b9;return db[_0x1ade('0x31')][_0x1ade('0x58')]({'where':{'id':_0x8487ff[_0x1ade('0x4e')]['id']}})['then'](handleEntityNotFound(_0x1d558d,null))[_0x1ade('0x2a')](function(_0x3a1734){if(_0x3a1734){_0xc26493=_0x3a1734;_0x1225be['model']=_[_0x1ade('0x49')](db[_0x1ade('0x52')][_0x1ade('0x32')]);_0x1225be[_0x1ade('0x36')]=_['keys'](_0x8487ff[_0x1ade('0x36')]);_0x1225be['filters']=_[_0x1ade('0x37')](_0x1225be[_0x1ade('0x35')],_0x1225be['query']);_0x5f1f63[_0x1ade('0x38')]=_[_0x1ade('0x37')](_0x1225be[_0x1ade('0x35')],qs['fields'](_0x8487ff[_0x1ade('0x36')]['fields']));_0x5f1f63['attributes']=_0x5f1f63[_0x1ade('0x38')][_0x1ade('0x3a')]?_0x5f1f63['attributes']:_0x1225be[_0x1ade('0x35')];_0x5f1f63[_0x1ade('0x3d')]=qs[_0x1ade('0x5a')](_0x8487ff[_0x1ade('0x36')]['sort']);_0x5f1f63['where']=qs[_0x1ade('0x3f')](_['pick'](_0x8487ff[_0x1ade('0x36')],_0x1225be[_0x1ade('0x3f')]));if(_0x8487ff[_0x1ade('0x36')]['filter']){_0x5f1f63[_0x1ade('0x3e')]=_[_0x1ade('0x43')](_0x5f1f63[_0x1ade('0x3e')],{'$or':_['map'](_0x5f1f63[_0x1ade('0x38')],function(_0x5b86f3){var _0x409913={};_0x409913[_0x5b86f3]={'$like':'%'+_0x8487ff[_0x1ade('0x36')][_0x1ade('0x41')]+'%'};return _0x409913;})});}if(_0x8487ff[_0x1ade('0x36')][_0x1ade('0x5e')]){var _0x52e6dc=_0x8487ff[_0x1ade('0x36')]['$gte'][_0x1ade('0x5f')](',');var _0x5c93ca={};_0x5c93ca[_0x52e6dc[0x0]]={'$gte':moment(_0x52e6dc[0x1])[_0x1ade('0x60')](_0x1ade('0x61'))};_0x5f1f63[_0x1ade('0x3e')]=_['merge'](_0x5f1f63['where'],_0x5c93ca);}_0x5f1f63=_['merge']({},_0x5f1f63,_0x8487ff['options']);return _0xc26493[_0x1ade('0x5d')](_0x5f1f63);}})[_0x1ade('0x2a')](function(_0x586a6a){if(_0x586a6a){_0x2e92b9=_0x586a6a[_0x1ade('0x3a')];if(!_0x8487ff[_0x1ade('0x36')][_0x1ade('0x3b')](_0x1ade('0x3c'))){_0x5f1f63['limit']=qs['limit'](_0x8487ff[_0x1ade('0x36')][_0x1ade('0x24')]);_0x5f1f63['offset']=qs[_0x1ade('0x26')](_0x8487ff['query'][_0x1ade('0x26')]);}return _0xc26493[_0x1ade('0x5d')](_0x5f1f63);}})[_0x1ade('0x2a')](function(_0x413c31){if(_0x413c31){return _0x413c31?{'count':_0x2e92b9,'rows':_0x413c31}:null;}})['then'](respondWithResult(_0x1d558d,null))[_0x1ade('0x48')](handleError(_0x1d558d,null));};