Built motion from commit 00bf23f6.|2.6.16
[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 _0xc996=['show','create','update','find','params','describe','getUnread','ChatInternalMessage','user','toInteger','addMembers','ids','omit','body','getMembers','findOne','User','order','pick','removeMembers','addMessage','ChatGroupId','getMessages','$gte','split','format','YYYY-MM-DD\x20HH:mm:ss','eml-format','zip-dir','fast-json-patch','util','path','sox','to-csv','ejs','fs-extra','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','defaults','redis','localhost','socket.io-emitter','register','sendStatus','status','offset','limit','undefined','count','set','Content-Range','json','reject','save','destroy','then','end','error','stack','name','send','index','ChatGroup','rawAttributes','model','map','keys','query','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','filters','filter','merge','type','VIRTUAL','options','includeAll','include','findAll','catch'];(function(_0x4f583e,_0x64c65a){var _0x1e5002=function(_0x12a0a5){while(--_0x12a0a5){_0x4f583e['push'](_0x4f583e['shift']());}};_0x1e5002(++_0x64c65a);}(_0xc996,0x144));var _0x6c99=function(_0x459d40,_0x5a20d6){_0x459d40=_0x459d40-0x0;var _0x19c224=_0xc996[_0x459d40];return _0x19c224;};'use strict';var emlformat=require(_0x6c99('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x6c99('0x1'));var jsonpatch=require(_0x6c99('0x2'));var rp=require('request-promise');var moment=require('moment');var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x6c99('0x3'));var path=require(_0x6c99('0x4'));var sox=require(_0x6c99('0x5'));var csv=require(_0x6c99('0x6'));var ejs=require(_0x6c99('0x7'));var fs=require('fs');var fs_extra=require(_0x6c99('0x8'));var _=require(_0x6c99('0x9'));var squel=require('squel');var crypto=require(_0x6c99('0xa'));var jsforce=require(_0x6c99('0xb'));var deskjs=require(_0x6c99('0xc'));var toCsv=require(_0x6c99('0x6'));var querystring=require(_0x6c99('0xd'));var Papa=require(_0x6c99('0xe'));var Redis=require(_0x6c99('0xf'));var authService=require(_0x6c99('0x10'));var qs=require('../../components/parsers/qs');var as=require(_0x6c99('0x11'));var hardwareService=require(_0x6c99('0x12'));var logger=require(_0x6c99('0x13'))('api');var utils=require(_0x6c99('0x14'));var config=require(_0x6c99('0x15'));var licenseUtil=require(_0x6c99('0x16'));var db=require(_0x6c99('0x17'))['db'];config['redis']=_[_0x6c99('0x18')](config[_0x6c99('0x19')],{'host':_0x6c99('0x1a'),'port':0x18eb});var socket=require(_0x6c99('0x1b'))(new Redis(config['redis']));require('./chatGroup.socket')[_0x6c99('0x1c')](socket);function respondWithStatusCode(_0x1b5a05,_0x141f5f){_0x141f5f=_0x141f5f||0xcc;return function(_0x38b90c){if(_0x38b90c){return _0x1b5a05[_0x6c99('0x1d')](_0x141f5f);}return _0x1b5a05[_0x6c99('0x1e')](_0x141f5f)['end']();};}function respondWithResult(_0x526d4b,_0x113cb4){_0x113cb4=_0x113cb4||0xc8;return function(_0x18cc2c){if(_0x18cc2c){return _0x526d4b[_0x6c99('0x1e')](_0x113cb4)['json'](_0x18cc2c);}};}function respondWithFilteredResult(_0x1fce6e,_0x4a36d1){return function(_0x586ed1){if(_0x586ed1){var _0x26d6bd=typeof _0x4a36d1[_0x6c99('0x1f')]==='undefined'&&typeof _0x4a36d1[_0x6c99('0x20')]===_0x6c99('0x21');var _0x41fbbc=_0x586ed1[_0x6c99('0x22')];var _0x59ad2a=_0x26d6bd?0x0:_0x4a36d1[_0x6c99('0x1f')];var _0x16d5b7=_0x26d6bd?_0x586ed1[_0x6c99('0x22')]:_0x4a36d1['offset']+_0x4a36d1[_0x6c99('0x20')];var _0xb20d66;if(_0x16d5b7>=_0x41fbbc){_0x16d5b7=_0x41fbbc;_0xb20d66=0xc8;}else{_0xb20d66=0xce;}_0x1fce6e[_0x6c99('0x1e')](_0xb20d66);return _0x1fce6e[_0x6c99('0x23')](_0x6c99('0x24'),_0x59ad2a+'-'+_0x16d5b7+'/'+_0x41fbbc)[_0x6c99('0x25')](_0x586ed1);}return null;};}function patchUpdates(_0x770a6c){return function(_0x538873){try{jsonpatch['apply'](_0x538873,_0x770a6c,!![]);}catch(_0x2e3a1b){return BPromise[_0x6c99('0x26')](_0x2e3a1b);}return _0x538873[_0x6c99('0x27')]();};}function saveUpdates(_0x4f7163,_0x3b6c91){return function(_0xc4edbc){if(_0xc4edbc){return _0xc4edbc['update'](_0x4f7163)['then'](function(_0x5697c0){return _0x5697c0;});}return null;};}function removeEntity(_0x36c5a4,_0x273c60){return function(_0x5dd47f){if(_0x5dd47f){return _0x5dd47f[_0x6c99('0x28')]()[_0x6c99('0x29')](function(){_0x36c5a4['status'](0xcc)[_0x6c99('0x2a')]();});}};}function handleEntityNotFound(_0x5be413,_0x210a5a){return function(_0x3c5f87){if(!_0x3c5f87){_0x5be413[_0x6c99('0x1d')](0x194);}return _0x3c5f87;};}function handleError(_0xab281f,_0x17b2ad){_0x17b2ad=_0x17b2ad||0x1f4;return function(_0x585e18){logger[_0x6c99('0x2b')](_0x585e18[_0x6c99('0x2c')]);if(_0x585e18[_0x6c99('0x2d')]){delete _0x585e18['name'];}_0xab281f['status'](_0x17b2ad)[_0x6c99('0x2e')](_0x585e18);};}exports[_0x6c99('0x2f')]=function(_0x181b45,_0x5c4aee){var _0x314848={},_0x285406={},_0x12be76={'count':0x0,'rows':[]};var _0x1653f1=_['map'](db[_0x6c99('0x30')][_0x6c99('0x31')],function(_0x32c667){return{'name':_0x32c667['fieldName'],'type':_0x32c667['type']['key']};});_0x285406[_0x6c99('0x32')]=_[_0x6c99('0x33')](_0x1653f1,'name');_0x285406['query']=_[_0x6c99('0x34')](_0x181b45[_0x6c99('0x35')]);_0x285406['filters']=_[_0x6c99('0x36')](_0x285406['model'],_0x285406[_0x6c99('0x35')]);_0x314848[_0x6c99('0x37')]=_[_0x6c99('0x36')](_0x285406['model'],qs['fields'](_0x181b45[_0x6c99('0x35')][_0x6c99('0x38')]));_0x314848[_0x6c99('0x37')]=_0x314848['attributes'][_0x6c99('0x39')]?_0x314848[_0x6c99('0x37')]:_0x285406[_0x6c99('0x32')];if(!_0x181b45[_0x6c99('0x35')][_0x6c99('0x3a')](_0x6c99('0x3b'))){_0x314848['limit']=qs[_0x6c99('0x20')](_0x181b45[_0x6c99('0x35')]['limit']);_0x314848[_0x6c99('0x1f')]=qs[_0x6c99('0x1f')](_0x181b45[_0x6c99('0x35')][_0x6c99('0x1f')]);}_0x314848['order']=qs[_0x6c99('0x3c')](_0x181b45[_0x6c99('0x35')]['sort']);_0x314848[_0x6c99('0x3d')]=qs['filters'](_['pick'](_0x181b45[_0x6c99('0x35')],_0x285406[_0x6c99('0x3e')]),_0x1653f1);if(_0x181b45[_0x6c99('0x35')][_0x6c99('0x3f')]){_0x314848[_0x6c99('0x3d')]=_[_0x6c99('0x40')](_0x314848['where'],{'$or':_[_0x6c99('0x33')](_0x1653f1,function(_0x4128cd){if(_0x4128cd[_0x6c99('0x41')]!==_0x6c99('0x42')){var _0x3486cc={};_0x3486cc[_0x4128cd[_0x6c99('0x2d')]]={'$like':'%'+_0x181b45[_0x6c99('0x35')][_0x6c99('0x3f')]+'%'};return _0x3486cc;}})});}_0x314848=_['merge']({},_0x314848,_0x181b45[_0x6c99('0x43')]);var _0x2922cb={'where':_0x314848['where']};return db[_0x6c99('0x30')]['count'](_0x2922cb)[_0x6c99('0x29')](function(_0xfffd0){_0x12be76['count']=_0xfffd0;if(_0x181b45[_0x6c99('0x35')][_0x6c99('0x44')]){_0x314848[_0x6c99('0x45')]=[{'all':!![]}];}return db[_0x6c99('0x30')][_0x6c99('0x46')](_0x314848);})[_0x6c99('0x29')](function(_0x526754){_0x12be76['rows']=_0x526754;return _0x12be76;})[_0x6c99('0x29')](respondWithFilteredResult(_0x5c4aee,_0x314848))[_0x6c99('0x47')](handleError(_0x5c4aee,null));};exports[_0x6c99('0x48')]=function(_0x2a141b,_0x2ef5c4){var _0x4b76a1={'raw':!![],'where':{'id':_0x2a141b['params']['id']}},_0x3f7f0a={};_0x3f7f0a[_0x6c99('0x32')]=_[_0x6c99('0x34')](db[_0x6c99('0x30')][_0x6c99('0x31')]);_0x3f7f0a[_0x6c99('0x35')]=_[_0x6c99('0x34')](_0x2a141b[_0x6c99('0x35')]);_0x3f7f0a[_0x6c99('0x3e')]=_[_0x6c99('0x36')](_0x3f7f0a['model'],_0x3f7f0a[_0x6c99('0x35')]);_0x4b76a1[_0x6c99('0x37')]=_[_0x6c99('0x36')](_0x3f7f0a[_0x6c99('0x32')],qs['fields'](_0x2a141b[_0x6c99('0x35')]['fields']));_0x4b76a1[_0x6c99('0x37')]=_0x4b76a1['attributes']['length']?_0x4b76a1['attributes']:_0x3f7f0a[_0x6c99('0x32')];if(_0x2a141b['query'][_0x6c99('0x44')]){_0x4b76a1[_0x6c99('0x45')]=[{'all':!![]}];}_0x4b76a1=_[_0x6c99('0x40')]({},_0x4b76a1,_0x2a141b['options']);return db[_0x6c99('0x30')]['find'](_0x4b76a1)[_0x6c99('0x29')](handleEntityNotFound(_0x2ef5c4,null))[_0x6c99('0x29')](respondWithResult(_0x2ef5c4,null))[_0x6c99('0x47')](handleError(_0x2ef5c4,null));};exports[_0x6c99('0x49')]=function(_0x3627bc,_0x142419){return db[_0x6c99('0x30')]['create'](_0x3627bc['body'],{})['then'](respondWithResult(_0x142419,0xc9))['catch'](handleError(_0x142419,null));};exports[_0x6c99('0x4a')]=function(_0x5ad6a3,_0x5f5b84){if(_0x5ad6a3['body']['id']){delete _0x5ad6a3['body']['id'];}return db[_0x6c99('0x30')][_0x6c99('0x4b')]({'where':{'id':_0x5ad6a3['params']['id']}})[_0x6c99('0x29')](handleEntityNotFound(_0x5f5b84,null))['then'](saveUpdates(_0x5ad6a3['body'],null))[_0x6c99('0x29')](respondWithResult(_0x5f5b84,null))[_0x6c99('0x47')](handleError(_0x5f5b84,null));};exports[_0x6c99('0x28')]=function(_0x368d44,_0x4678da){return db[_0x6c99('0x30')][_0x6c99('0x4b')]({'where':{'id':_0x368d44[_0x6c99('0x4c')]['id']}})[_0x6c99('0x29')](handleEntityNotFound(_0x4678da,null))[_0x6c99('0x29')](removeEntity(_0x4678da,null))[_0x6c99('0x47')](handleError(_0x4678da,null));};exports[_0x6c99('0x4d')]=function(_0x2f64bb,_0x3b3773){return db['ChatGroup']['describe']()[_0x6c99('0x29')](respondWithResult(_0x3b3773,null))[_0x6c99('0x47')](handleError(_0x3b3773,null));};exports[_0x6c99('0x4e')]=function(_0x3fc181,_0xdbb2d1,_0x284aab){return db[_0x6c99('0x4f')][_0x6c99('0x22')]({'where':{'ChatGroupId':_0x3fc181[_0x6c99('0x4c')]['id'],'ToId':_0x3fc181[_0x6c99('0x50')]['id'],'read':![]}})[_0x6c99('0x29')](function(_0x2f51b9){return{'id':_[_0x6c99('0x51')](_0x3fc181[_0x6c99('0x4c')]['id']),'count':_0x2f51b9};})[_0x6c99('0x29')](respondWithResult(_0xdbb2d1,null))[_0x6c99('0x47')](handleError(_0xdbb2d1,null));};exports[_0x6c99('0x52')]=function(_0x33b1a8,_0x3eacab,_0x27044c){return db[_0x6c99('0x30')]['find']({'where':{'id':_0x33b1a8['params']['id']}})[_0x6c99('0x29')](handleEntityNotFound(_0x3eacab,null))[_0x6c99('0x29')](function(_0x54c783){if(_0x54c783){return _0x54c783[_0x6c99('0x52')](_0x33b1a8['body'][_0x6c99('0x53')],_[_0x6c99('0x54')](_0x33b1a8[_0x6c99('0x55')],[_0x6c99('0x53'),'id'])||{});}})['then'](respondWithResult(_0x3eacab,null))['catch'](handleError(_0x3eacab,null));};exports[_0x6c99('0x56')]=function(_0x536b8a,_0x262456,_0x143431){var _0x3874f2={};var _0x507a10={};var _0x3a2415;var _0x4d42f8;return db[_0x6c99('0x30')][_0x6c99('0x57')]({'where':{'id':_0x536b8a[_0x6c99('0x4c')]['id']}})[_0x6c99('0x29')](handleEntityNotFound(_0x262456,null))[_0x6c99('0x29')](function(_0x3bd76e){if(_0x3bd76e){_0x3a2415=_0x3bd76e;_0x507a10[_0x6c99('0x32')]=_[_0x6c99('0x34')](db[_0x6c99('0x58')]['rawAttributes']);_0x507a10[_0x6c99('0x35')]=_[_0x6c99('0x34')](_0x536b8a[_0x6c99('0x35')]);_0x507a10[_0x6c99('0x3e')]=_[_0x6c99('0x36')](_0x507a10['model'],_0x507a10[_0x6c99('0x35')]);_0x3874f2[_0x6c99('0x37')]=_[_0x6c99('0x36')](_0x507a10[_0x6c99('0x32')],qs['fields'](_0x536b8a[_0x6c99('0x35')]['fields']));_0x3874f2[_0x6c99('0x37')]=_0x3874f2[_0x6c99('0x37')][_0x6c99('0x39')]?_0x3874f2[_0x6c99('0x37')]:_0x507a10[_0x6c99('0x32')];_0x3874f2[_0x6c99('0x59')]=qs[_0x6c99('0x3c')](_0x536b8a[_0x6c99('0x35')]['sort']);_0x3874f2[_0x6c99('0x3d')]=qs[_0x6c99('0x3e')](_[_0x6c99('0x5a')](_0x536b8a[_0x6c99('0x35')],_0x507a10[_0x6c99('0x3e')]));if(_0x536b8a[_0x6c99('0x35')][_0x6c99('0x3f')]){_0x3874f2['where']=_[_0x6c99('0x40')](_0x3874f2[_0x6c99('0x3d')],{'$or':_[_0x6c99('0x33')](_0x3874f2[_0x6c99('0x37')],function(_0x190e7b){var _0x49c190={};_0x49c190[_0x190e7b]={'$like':'%'+_0x536b8a[_0x6c99('0x35')][_0x6c99('0x3f')]+'%'};return _0x49c190;})});}_0x3874f2=_[_0x6c99('0x40')]({},_0x3874f2,_0x536b8a['options']);return _0x3a2415['getMembers'](_0x3874f2);}})[_0x6c99('0x29')](function(_0x193434){if(_0x193434){_0x4d42f8=_0x193434[_0x6c99('0x39')];if(!_0x536b8a['query'][_0x6c99('0x3a')](_0x6c99('0x3b'))){_0x3874f2[_0x6c99('0x20')]=qs[_0x6c99('0x20')](_0x536b8a[_0x6c99('0x35')][_0x6c99('0x20')]);_0x3874f2[_0x6c99('0x1f')]=qs['offset'](_0x536b8a[_0x6c99('0x35')][_0x6c99('0x1f')]);}return _0x3a2415[_0x6c99('0x56')](_0x3874f2);}})[_0x6c99('0x29')](function(_0x1e4ae0){if(_0x1e4ae0){return _0x1e4ae0?{'count':_0x4d42f8,'rows':_0x1e4ae0}:null;}})[_0x6c99('0x29')](respondWithResult(_0x262456,null))[_0x6c99('0x47')](handleError(_0x262456,null));};exports[_0x6c99('0x5b')]=function(_0xf85b5c,_0x160953,_0x3f5998){return db['ChatGroup']['find']({'where':{'id':_0xf85b5c[_0x6c99('0x4c')]['id']}})[_0x6c99('0x29')](handleEntityNotFound(_0x160953,null))['then'](function(_0x536b34){if(_0x536b34){return _0x536b34[_0x6c99('0x5b')](_0xf85b5c[_0x6c99('0x35')]['ids']);}})['then'](respondWithStatusCode(_0x160953,null))[_0x6c99('0x47')](handleError(_0x160953,null));};exports[_0x6c99('0x5c')]=function(_0x48e6b8,_0x1d6a13,_0x3211ae){if(_0x48e6b8[_0x6c99('0x55')]['id']){delete _0x48e6b8[_0x6c99('0x55')]['id'];}return db[_0x6c99('0x30')][_0x6c99('0x4b')]({'where':{'id':_0x48e6b8[_0x6c99('0x4c')]['id']}})[_0x6c99('0x29')](handleEntityNotFound(_0x1d6a13,null))['then'](function(_0x271f28){if(_0x271f28){_0x48e6b8[_0x6c99('0x55')][_0x6c99('0x5d')]=_0x271f28['id'];return db[_0x6c99('0x4f')][_0x6c99('0x49')](_0x48e6b8[_0x6c99('0x55')]);}})[_0x6c99('0x29')](respondWithResult(_0x1d6a13,null))[_0x6c99('0x47')](handleError(_0x1d6a13,null));};exports[_0x6c99('0x5e')]=function(_0x55ca9b,_0x3c8c11,_0x1fdd64){var _0x346471={};var _0x2f9df3={};var _0x33a50a;var _0x22c6ff;return db[_0x6c99('0x30')][_0x6c99('0x57')]({'where':{'id':_0x55ca9b[_0x6c99('0x4c')]['id']}})['then'](handleEntityNotFound(_0x3c8c11,null))[_0x6c99('0x29')](function(_0x467d69){if(_0x467d69){_0x33a50a=_0x467d69;_0x2f9df3[_0x6c99('0x32')]=_[_0x6c99('0x34')](db['ChatInternalMessage']['rawAttributes']);_0x2f9df3[_0x6c99('0x35')]=_['keys'](_0x55ca9b[_0x6c99('0x35')]);_0x2f9df3[_0x6c99('0x3e')]=_[_0x6c99('0x36')](_0x2f9df3['model'],_0x2f9df3[_0x6c99('0x35')]);_0x346471['attributes']=_[_0x6c99('0x36')](_0x2f9df3[_0x6c99('0x32')],qs['fields'](_0x55ca9b[_0x6c99('0x35')][_0x6c99('0x38')]));_0x346471[_0x6c99('0x37')]=_0x346471[_0x6c99('0x37')]['length']?_0x346471[_0x6c99('0x37')]:_0x2f9df3['model'];_0x346471[_0x6c99('0x59')]=qs[_0x6c99('0x3c')](_0x55ca9b[_0x6c99('0x35')]['sort']);_0x346471[_0x6c99('0x3d')]=qs[_0x6c99('0x3e')](_[_0x6c99('0x5a')](_0x55ca9b['query'],_0x2f9df3[_0x6c99('0x3e')]));if(_0x55ca9b[_0x6c99('0x35')]['filter']){_0x346471[_0x6c99('0x3d')]=_[_0x6c99('0x40')](_0x346471[_0x6c99('0x3d')],{'$or':_[_0x6c99('0x33')](_0x346471[_0x6c99('0x37')],function(_0x483c2f){var _0x48e2c6={};_0x48e2c6[_0x483c2f]={'$like':'%'+_0x55ca9b[_0x6c99('0x35')][_0x6c99('0x3f')]+'%'};return _0x48e2c6;})});}if(_0x55ca9b[_0x6c99('0x35')][_0x6c99('0x5f')]){var _0x502159=_0x55ca9b[_0x6c99('0x35')][_0x6c99('0x5f')][_0x6c99('0x60')](',');var _0x2ecbf8={};_0x2ecbf8[_0x502159[0x0]]={'$gte':moment(_0x502159[0x1])[_0x6c99('0x61')](_0x6c99('0x62'))};_0x346471[_0x6c99('0x3d')]=_['merge'](_0x346471[_0x6c99('0x3d')],_0x2ecbf8);}_0x346471=_['merge']({},_0x346471,_0x55ca9b['options']);return _0x33a50a[_0x6c99('0x5e')](_0x346471);}})[_0x6c99('0x29')](function(_0x46a9f3){if(_0x46a9f3){_0x22c6ff=_0x46a9f3[_0x6c99('0x39')];if(!_0x55ca9b[_0x6c99('0x35')][_0x6c99('0x3a')]('nolimit')){_0x346471['limit']=qs[_0x6c99('0x20')](_0x55ca9b['query'][_0x6c99('0x20')]);_0x346471[_0x6c99('0x1f')]=qs['offset'](_0x55ca9b['query'][_0x6c99('0x1f')]);}return _0x33a50a[_0x6c99('0x5e')](_0x346471);}})[_0x6c99('0x29')](function(_0xb64767){if(_0xb64767){return _0xb64767?{'count':_0x22c6ff,'rows':_0xb64767}:null;}})['then'](respondWithResult(_0x3c8c11,null))[_0x6c99('0x47')](handleError(_0x3c8c11,null));};