Built motion from commit da617fac.|2.6.6
[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 _0xb450=['format','YYYY-MM-DD\x20HH:mm:ss','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','api','../../config/environment','../../config/license/util','../../mysqldb','redis','register','sendStatus','end','json','offset','limit','count','status','set','Content-Range','apply','reject','save','then','destroy','error','name','send','index','map','ChatGroup','fieldName','type','key','query','keys','intersection','attributes','model','fields','length','hasOwnProperty','nolimit','order','sort','where','filters','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','rawAttributes','find','body','catch','params','ChatInternalMessage','toInteger','ids','getMembers','findOne','User','removeMembers','ChatGroupId','create','getMessages','$gte'];(function(_0x1108d7,_0x16c93c){var _0x1d7eca=function(_0x4925ce){while(--_0x4925ce){_0x1108d7['push'](_0x1108d7['shift']());}};_0x1d7eca(++_0x16c93c);}(_0xb450,0x172));var _0x0b45=function(_0x29e2fe,_0x6b9ce6){_0x29e2fe=_0x29e2fe-0x0;var _0x16f447=_0xb450[_0x29e2fe];return _0x16f447;};'use strict';var emlformat=require(_0x0b45('0x0'));var rimraf=require(_0x0b45('0x1'));var zipdir=require(_0x0b45('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x0b45('0x3'));var moment=require(_0x0b45('0x4'));var BPromise=require(_0x0b45('0x5'));var Mustache=require(_0x0b45('0x6'));var util=require(_0x0b45('0x7'));var path=require(_0x0b45('0x8'));var sox=require(_0x0b45('0x9'));var csv=require(_0x0b45('0xa'));var ejs=require(_0x0b45('0xb'));var fs=require('fs');var fs_extra=require(_0x0b45('0xc'));var _=require(_0x0b45('0xd'));var squel=require(_0x0b45('0xe'));var crypto=require(_0x0b45('0xf'));var jsforce=require(_0x0b45('0x10'));var deskjs=require(_0x0b45('0x11'));var toCsv=require(_0x0b45('0xa'));var querystring=require(_0x0b45('0x12'));var Papa=require('papaparse');var Redis=require(_0x0b45('0x13'));var authService=require(_0x0b45('0x14'));var qs=require(_0x0b45('0x15'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x0b45('0x16'));var logger=require('../../config/logger')(_0x0b45('0x17'));var utils=require('../../config/utils');var config=require(_0x0b45('0x18'));var licenseUtil=require(_0x0b45('0x19'));var db=require(_0x0b45('0x1a'))['db'];config[_0x0b45('0x1b')]=_['defaults'](config[_0x0b45('0x1b')],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x0b45('0x1b')]));require('./chatGroup.socket')[_0x0b45('0x1c')](socket);function respondWithStatusCode(_0x42a563,_0x111582){_0x111582=_0x111582||0xcc;return function(_0x415a6f){if(_0x415a6f){return _0x42a563[_0x0b45('0x1d')](_0x111582);}return _0x42a563['status'](_0x111582)[_0x0b45('0x1e')]();};}function respondWithResult(_0x270272,_0x122f10){_0x122f10=_0x122f10||0xc8;return function(_0x1ce2f7){if(_0x1ce2f7){return _0x270272['status'](_0x122f10)[_0x0b45('0x1f')](_0x1ce2f7);}};}function respondWithFilteredResult(_0x7226ab,_0x1337e5){return function(_0x16a57b){if(_0x16a57b){var _0x2d91ca=typeof _0x1337e5[_0x0b45('0x20')]==='undefined'&&typeof _0x1337e5[_0x0b45('0x21')]==='undefined';var _0x470101=_0x16a57b[_0x0b45('0x22')];var _0x4e9aea=_0x2d91ca?0x0:_0x1337e5[_0x0b45('0x20')];var _0x1c0782=_0x2d91ca?_0x16a57b['count']:_0x1337e5[_0x0b45('0x20')]+_0x1337e5[_0x0b45('0x21')];var _0x251f59;if(_0x1c0782>=_0x470101){_0x1c0782=_0x470101;_0x251f59=0xc8;}else{_0x251f59=0xce;}_0x7226ab[_0x0b45('0x23')](_0x251f59);return _0x7226ab[_0x0b45('0x24')](_0x0b45('0x25'),_0x4e9aea+'-'+_0x1c0782+'/'+_0x470101)[_0x0b45('0x1f')](_0x16a57b);}return null;};}function patchUpdates(_0x493299){return function(_0x29df47){try{jsonpatch[_0x0b45('0x26')](_0x29df47,_0x493299,!![]);}catch(_0x450aec){return BPromise[_0x0b45('0x27')](_0x450aec);}return _0x29df47[_0x0b45('0x28')]();};}function saveUpdates(_0x3bfaf3,_0x5722bf){return function(_0x1c228c){if(_0x1c228c){return _0x1c228c['update'](_0x3bfaf3)[_0x0b45('0x29')](function(_0x38fe15){return _0x38fe15;});}return null;};}function removeEntity(_0x1ef1bd,_0x83206e){return function(_0x10b421){if(_0x10b421){return _0x10b421[_0x0b45('0x2a')]()['then'](function(){_0x1ef1bd['status'](0xcc)[_0x0b45('0x1e')]();});}};}function handleEntityNotFound(_0x919961,_0x43bbfb){return function(_0x1b55f8){if(!_0x1b55f8){_0x919961['sendStatus'](0x194);}return _0x1b55f8;};}function handleError(_0x49f04b,_0x39d81c){_0x39d81c=_0x39d81c||0x1f4;return function(_0x4ba84e){logger[_0x0b45('0x2b')](_0x4ba84e['stack']);if(_0x4ba84e[_0x0b45('0x2c')]){delete _0x4ba84e[_0x0b45('0x2c')];}_0x49f04b[_0x0b45('0x23')](_0x39d81c)[_0x0b45('0x2d')](_0x4ba84e);};}exports[_0x0b45('0x2e')]=function(_0x5abf1b,_0x5c6bc8){var _0x2ede53={},_0x44e25d={},_0x4c536a={'count':0x0,'rows':[]};var _0x5aa47e=_[_0x0b45('0x2f')](db[_0x0b45('0x30')]['rawAttributes'],function(_0x448a5f){return{'name':_0x448a5f[_0x0b45('0x31')],'type':_0x448a5f[_0x0b45('0x32')][_0x0b45('0x33')]};});_0x44e25d['model']=_[_0x0b45('0x2f')](_0x5aa47e,'name');_0x44e25d[_0x0b45('0x34')]=_[_0x0b45('0x35')](_0x5abf1b[_0x0b45('0x34')]);_0x44e25d['filters']=_[_0x0b45('0x36')](_0x44e25d['model'],_0x44e25d[_0x0b45('0x34')]);_0x2ede53[_0x0b45('0x37')]=_[_0x0b45('0x36')](_0x44e25d[_0x0b45('0x38')],qs[_0x0b45('0x39')](_0x5abf1b[_0x0b45('0x34')][_0x0b45('0x39')]));_0x2ede53[_0x0b45('0x37')]=_0x2ede53['attributes'][_0x0b45('0x3a')]?_0x2ede53['attributes']:_0x44e25d[_0x0b45('0x38')];if(!_0x5abf1b['query'][_0x0b45('0x3b')](_0x0b45('0x3c'))){_0x2ede53['limit']=qs[_0x0b45('0x21')](_0x5abf1b[_0x0b45('0x34')]['limit']);_0x2ede53['offset']=qs[_0x0b45('0x20')](_0x5abf1b[_0x0b45('0x34')]['offset']);}_0x2ede53[_0x0b45('0x3d')]=qs[_0x0b45('0x3e')](_0x5abf1b[_0x0b45('0x34')]['sort']);_0x2ede53[_0x0b45('0x3f')]=qs[_0x0b45('0x40')](_[_0x0b45('0x41')](_0x5abf1b[_0x0b45('0x34')],_0x44e25d[_0x0b45('0x40')]),_0x5aa47e);if(_0x5abf1b[_0x0b45('0x34')][_0x0b45('0x42')]){_0x2ede53[_0x0b45('0x3f')]=_[_0x0b45('0x43')](_0x2ede53['where'],{'$or':_[_0x0b45('0x2f')](_0x5aa47e,function(_0x181b26){if(_0x181b26[_0x0b45('0x32')]!==_0x0b45('0x44')){var _0x50f278={};_0x50f278[_0x181b26[_0x0b45('0x2c')]]={'$like':'%'+_0x5abf1b[_0x0b45('0x34')][_0x0b45('0x42')]+'%'};return _0x50f278;}})});}_0x2ede53=_[_0x0b45('0x43')]({},_0x2ede53,_0x5abf1b[_0x0b45('0x45')]);var _0x427984={'where':_0x2ede53[_0x0b45('0x3f')]};return db[_0x0b45('0x30')]['count'](_0x427984)[_0x0b45('0x29')](function(_0x1c2ab8){_0x4c536a[_0x0b45('0x22')]=_0x1c2ab8;if(_0x5abf1b[_0x0b45('0x34')][_0x0b45('0x46')]){_0x2ede53[_0x0b45('0x47')]=[{'all':!![]}];}return db[_0x0b45('0x30')][_0x0b45('0x48')](_0x2ede53);})[_0x0b45('0x29')](function(_0x1135f0){_0x4c536a[_0x0b45('0x49')]=_0x1135f0;return _0x4c536a;})['then'](respondWithFilteredResult(_0x5c6bc8,_0x2ede53))['catch'](handleError(_0x5c6bc8,null));};exports['show']=function(_0x52eace,_0x547454){var _0x4554f4={'raw':!![],'where':{'id':_0x52eace['params']['id']}},_0x2fa93f={};_0x2fa93f[_0x0b45('0x38')]=_[_0x0b45('0x35')](db[_0x0b45('0x30')][_0x0b45('0x4a')]);_0x2fa93f[_0x0b45('0x34')]=_[_0x0b45('0x35')](_0x52eace[_0x0b45('0x34')]);_0x2fa93f[_0x0b45('0x40')]=_[_0x0b45('0x36')](_0x2fa93f['model'],_0x2fa93f['query']);_0x4554f4['attributes']=_['intersection'](_0x2fa93f[_0x0b45('0x38')],qs[_0x0b45('0x39')](_0x52eace[_0x0b45('0x34')][_0x0b45('0x39')]));_0x4554f4[_0x0b45('0x37')]=_0x4554f4[_0x0b45('0x37')][_0x0b45('0x3a')]?_0x4554f4['attributes']:_0x2fa93f[_0x0b45('0x38')];if(_0x52eace[_0x0b45('0x34')]['includeAll']){_0x4554f4[_0x0b45('0x47')]=[{'all':!![]}];}_0x4554f4=_[_0x0b45('0x43')]({},_0x4554f4,_0x52eace[_0x0b45('0x45')]);return db[_0x0b45('0x30')][_0x0b45('0x4b')](_0x4554f4)[_0x0b45('0x29')](handleEntityNotFound(_0x547454,null))['then'](respondWithResult(_0x547454,null))['catch'](handleError(_0x547454,null));};exports['create']=function(_0x3fb57b,_0x5a5419){return db[_0x0b45('0x30')]['create'](_0x3fb57b[_0x0b45('0x4c')],{})[_0x0b45('0x29')](respondWithResult(_0x5a5419,0xc9))[_0x0b45('0x4d')](handleError(_0x5a5419,null));};exports['update']=function(_0x52c1c1,_0x4f41cd){if(_0x52c1c1[_0x0b45('0x4c')]['id']){delete _0x52c1c1[_0x0b45('0x4c')]['id'];}return db[_0x0b45('0x30')][_0x0b45('0x4b')]({'where':{'id':_0x52c1c1[_0x0b45('0x4e')]['id']}})[_0x0b45('0x29')](handleEntityNotFound(_0x4f41cd,null))[_0x0b45('0x29')](saveUpdates(_0x52c1c1[_0x0b45('0x4c')],null))[_0x0b45('0x29')](respondWithResult(_0x4f41cd,null))[_0x0b45('0x4d')](handleError(_0x4f41cd,null));};exports[_0x0b45('0x2a')]=function(_0x885922,_0x2344e3){return db[_0x0b45('0x30')][_0x0b45('0x4b')]({'where':{'id':_0x885922[_0x0b45('0x4e')]['id']}})[_0x0b45('0x29')](handleEntityNotFound(_0x2344e3,null))[_0x0b45('0x29')](removeEntity(_0x2344e3,null))[_0x0b45('0x4d')](handleError(_0x2344e3,null));};exports['describe']=function(_0x142e68,_0x1c6b98){return db[_0x0b45('0x30')]['describe']()['then'](respondWithResult(_0x1c6b98,null))[_0x0b45('0x4d')](handleError(_0x1c6b98,null));};exports['getUnread']=function(_0x38cbeb,_0x4257c1,_0xc823d9){return db[_0x0b45('0x4f')][_0x0b45('0x22')]({'where':{'ChatGroupId':_0x38cbeb[_0x0b45('0x4e')]['id'],'ToId':_0x38cbeb['user']['id'],'read':![]}})[_0x0b45('0x29')](function(_0x4aaceb){return{'id':_[_0x0b45('0x50')](_0x38cbeb[_0x0b45('0x4e')]['id']),'count':_0x4aaceb};})['then'](respondWithResult(_0x4257c1,null))['catch'](handleError(_0x4257c1,null));};exports['addMembers']=function(_0x1c1f8f,_0x4bc576,_0x295fb8){return db[_0x0b45('0x30')][_0x0b45('0x4b')]({'where':{'id':_0x1c1f8f[_0x0b45('0x4e')]['id']}})[_0x0b45('0x29')](handleEntityNotFound(_0x4bc576,null))['then'](function(_0x5cd897){if(_0x5cd897){return _0x5cd897['addMembers'](_0x1c1f8f[_0x0b45('0x4c')][_0x0b45('0x51')],_['omit'](_0x1c1f8f[_0x0b45('0x4c')],['ids','id'])||{});}})['then'](respondWithResult(_0x4bc576,null))[_0x0b45('0x4d')](handleError(_0x4bc576,null));};exports[_0x0b45('0x52')]=function(_0x3d163a,_0x217f27,_0x52ca65){var _0x2af765={};var _0x415669={};var _0xcbced4;var _0x1da544;return db[_0x0b45('0x30')][_0x0b45('0x53')]({'where':{'id':_0x3d163a['params']['id']}})[_0x0b45('0x29')](handleEntityNotFound(_0x217f27,null))[_0x0b45('0x29')](function(_0x340504){if(_0x340504){_0xcbced4=_0x340504;_0x415669['model']=_[_0x0b45('0x35')](db[_0x0b45('0x54')][_0x0b45('0x4a')]);_0x415669[_0x0b45('0x34')]=_[_0x0b45('0x35')](_0x3d163a[_0x0b45('0x34')]);_0x415669[_0x0b45('0x40')]=_['intersection'](_0x415669[_0x0b45('0x38')],_0x415669[_0x0b45('0x34')]);_0x2af765[_0x0b45('0x37')]=_[_0x0b45('0x36')](_0x415669[_0x0b45('0x38')],qs[_0x0b45('0x39')](_0x3d163a[_0x0b45('0x34')][_0x0b45('0x39')]));_0x2af765[_0x0b45('0x37')]=_0x2af765[_0x0b45('0x37')][_0x0b45('0x3a')]?_0x2af765[_0x0b45('0x37')]:_0x415669[_0x0b45('0x38')];_0x2af765['order']=qs[_0x0b45('0x3e')](_0x3d163a[_0x0b45('0x34')][_0x0b45('0x3e')]);_0x2af765[_0x0b45('0x3f')]=qs[_0x0b45('0x40')](_[_0x0b45('0x41')](_0x3d163a['query'],_0x415669['filters']));if(_0x3d163a['query']['filter']){_0x2af765[_0x0b45('0x3f')]=_['merge'](_0x2af765[_0x0b45('0x3f')],{'$or':_[_0x0b45('0x2f')](_0x2af765[_0x0b45('0x37')],function(_0x19c736){var _0x249cdf={};_0x249cdf[_0x19c736]={'$like':'%'+_0x3d163a[_0x0b45('0x34')][_0x0b45('0x42')]+'%'};return _0x249cdf;})});}_0x2af765=_['merge']({},_0x2af765,_0x3d163a['options']);return _0xcbced4['getMembers'](_0x2af765);}})[_0x0b45('0x29')](function(_0x48e435){if(_0x48e435){_0x1da544=_0x48e435['length'];if(!_0x3d163a['query'][_0x0b45('0x3b')](_0x0b45('0x3c'))){_0x2af765[_0x0b45('0x21')]=qs[_0x0b45('0x21')](_0x3d163a['query'][_0x0b45('0x21')]);_0x2af765[_0x0b45('0x20')]=qs[_0x0b45('0x20')](_0x3d163a[_0x0b45('0x34')]['offset']);}return _0xcbced4[_0x0b45('0x52')](_0x2af765);}})[_0x0b45('0x29')](function(_0x3d9263){if(_0x3d9263){return _0x3d9263?{'count':_0x1da544,'rows':_0x3d9263}:null;}})[_0x0b45('0x29')](respondWithResult(_0x217f27,null))[_0x0b45('0x4d')](handleError(_0x217f27,null));};exports[_0x0b45('0x55')]=function(_0x3d2906,_0x64b159,_0x5d801a){return db[_0x0b45('0x30')][_0x0b45('0x4b')]({'where':{'id':_0x3d2906[_0x0b45('0x4e')]['id']}})['then'](handleEntityNotFound(_0x64b159,null))[_0x0b45('0x29')](function(_0x9a97b8){if(_0x9a97b8){return _0x9a97b8[_0x0b45('0x55')](_0x3d2906[_0x0b45('0x34')][_0x0b45('0x51')]);}})[_0x0b45('0x29')](respondWithStatusCode(_0x64b159,null))[_0x0b45('0x4d')](handleError(_0x64b159,null));};exports['addMessage']=function(_0x4656b1,_0xf0357a,_0x4a3945){if(_0x4656b1[_0x0b45('0x4c')]['id']){delete _0x4656b1[_0x0b45('0x4c')]['id'];}return db[_0x0b45('0x30')][_0x0b45('0x4b')]({'where':{'id':_0x4656b1[_0x0b45('0x4e')]['id']}})[_0x0b45('0x29')](handleEntityNotFound(_0xf0357a,null))['then'](function(_0x8966b6){if(_0x8966b6){_0x4656b1['body'][_0x0b45('0x56')]=_0x8966b6['id'];return db[_0x0b45('0x4f')][_0x0b45('0x57')](_0x4656b1[_0x0b45('0x4c')]);}})[_0x0b45('0x29')](respondWithResult(_0xf0357a,null))[_0x0b45('0x4d')](handleError(_0xf0357a,null));};exports[_0x0b45('0x58')]=function(_0x4cc2ba,_0x198379,_0x5a6c07){var _0x54fc96={};var _0x1024b4={};var _0x8e4512;var _0x4d4b30;return db[_0x0b45('0x30')]['findOne']({'where':{'id':_0x4cc2ba[_0x0b45('0x4e')]['id']}})['then'](handleEntityNotFound(_0x198379,null))[_0x0b45('0x29')](function(_0x4f4612){if(_0x4f4612){_0x8e4512=_0x4f4612;_0x1024b4[_0x0b45('0x38')]=_[_0x0b45('0x35')](db[_0x0b45('0x4f')][_0x0b45('0x4a')]);_0x1024b4['query']=_[_0x0b45('0x35')](_0x4cc2ba[_0x0b45('0x34')]);_0x1024b4[_0x0b45('0x40')]=_['intersection'](_0x1024b4[_0x0b45('0x38')],_0x1024b4[_0x0b45('0x34')]);_0x54fc96['attributes']=_[_0x0b45('0x36')](_0x1024b4[_0x0b45('0x38')],qs[_0x0b45('0x39')](_0x4cc2ba[_0x0b45('0x34')][_0x0b45('0x39')]));_0x54fc96['attributes']=_0x54fc96[_0x0b45('0x37')][_0x0b45('0x3a')]?_0x54fc96[_0x0b45('0x37')]:_0x1024b4[_0x0b45('0x38')];_0x54fc96[_0x0b45('0x3d')]=qs[_0x0b45('0x3e')](_0x4cc2ba[_0x0b45('0x34')]['sort']);_0x54fc96[_0x0b45('0x3f')]=qs[_0x0b45('0x40')](_[_0x0b45('0x41')](_0x4cc2ba[_0x0b45('0x34')],_0x1024b4[_0x0b45('0x40')]));if(_0x4cc2ba[_0x0b45('0x34')][_0x0b45('0x42')]){_0x54fc96[_0x0b45('0x3f')]=_['merge'](_0x54fc96[_0x0b45('0x3f')],{'$or':_['map'](_0x54fc96[_0x0b45('0x37')],function(_0x538471){var _0x13b954={};_0x13b954[_0x538471]={'$like':'%'+_0x4cc2ba[_0x0b45('0x34')][_0x0b45('0x42')]+'%'};return _0x13b954;})});}if(_0x4cc2ba[_0x0b45('0x34')][_0x0b45('0x59')]){var _0x596bf3=_0x4cc2ba[_0x0b45('0x34')][_0x0b45('0x59')]['split'](',');var _0x492be4={};_0x492be4[_0x596bf3[0x0]]={'$gte':moment(_0x596bf3[0x1])[_0x0b45('0x5a')](_0x0b45('0x5b'))};_0x54fc96[_0x0b45('0x3f')]=_[_0x0b45('0x43')](_0x54fc96[_0x0b45('0x3f')],_0x492be4);}_0x54fc96=_[_0x0b45('0x43')]({},_0x54fc96,_0x4cc2ba[_0x0b45('0x45')]);return _0x8e4512['getMessages'](_0x54fc96);}})[_0x0b45('0x29')](function(_0xb1c411){if(_0xb1c411){_0x4d4b30=_0xb1c411['length'];if(!_0x4cc2ba[_0x0b45('0x34')][_0x0b45('0x3b')](_0x0b45('0x3c'))){_0x54fc96[_0x0b45('0x21')]=qs[_0x0b45('0x21')](_0x4cc2ba[_0x0b45('0x34')][_0x0b45('0x21')]);_0x54fc96[_0x0b45('0x20')]=qs[_0x0b45('0x20')](_0x4cc2ba[_0x0b45('0x34')][_0x0b45('0x20')]);}return _0x8e4512[_0x0b45('0x58')](_0x54fc96);}})['then'](function(_0x710b0c){if(_0x710b0c){return _0x710b0c?{'count':_0x4d4b30,'rows':_0x710b0c}:null;}})[_0x0b45('0x29')](respondWithResult(_0x198379,null))['catch'](handleError(_0x198379,null));};