Built motion from commit (unavailable).|2.5.22
[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 _0x81b7=['redis','localhost','socket.io-emitter','register','jayson/promise','client','http','request','info','ChatGroup,\x20%s,\x20%s','request\x20sent','debug','ChatGroup,\x20%s,\x20%s,\x20%s','error','code','message','result','catch','sendStatus','status','json','count','offset','set','apply','reject','save','update','then','end','stack','name','send','index','ChatGroup','fieldName','type','key','map','query','keys','filters','intersection','attributes','model','length','nolimit','limit','sort','where','pick','VIRTUAL','filter','merge','options','includeAll','include','show','params','rawAttributes','find','create','body','describe','toInteger','addMembers','ids','omit','getMembers','findOne','User','fields','hasOwnProperty','removeMembers','addMessage','ChatGroupId','ChatInternalMessage','order','$gte','split','YYYY-MM-DD\x20HH:mm:ss','getMessages','eml-format','rimraf','zip-dir','fast-json-patch','moment','mustache','util','path','sox','ejs','lodash','jsforce','desk.js','to-csv','querystring','ioredis','../../components/auth/service','../../config/license/hardware','api','../../config/environment','../../mysqldb','defaults'];(function(_0x1ff966,_0x41fbff){var _0x40cea2=function(_0xce21c4){while(--_0xce21c4){_0x1ff966['push'](_0x1ff966['shift']());}};_0x40cea2(++_0x41fbff);}(_0x81b7,0x1f2));var _0x781b=function(_0x735c57,_0x80abae){_0x735c57=_0x735c57-0x0;var _0x1203b2=_0x81b7[_0x735c57];return _0x1203b2;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x781b('0x0'));var rimraf=require(_0x781b('0x1'));var zipdir=require(_0x781b('0x2'));var jsonpatch=require(_0x781b('0x3'));var rp=require('request-promise');var moment=require(_0x781b('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x781b('0x5'));var util=require(_0x781b('0x6'));var path=require(_0x781b('0x7'));var sox=require(_0x781b('0x8'));var csv=require('to-csv');var ejs=require(_0x781b('0x9'));var fs=require('fs');var _=require(_0x781b('0xa'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x781b('0xb'));var deskjs=require(_0x781b('0xc'));var toCsv=require(_0x781b('0xd'));var querystring=require(_0x781b('0xe'));var Papa=require('papaparse');var Redis=require(_0x781b('0xf'));var authService=require(_0x781b('0x10'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x781b('0x11'));var logger=require('../../config/logger')(_0x781b('0x12'));var utils=require('../../config/utils');var config=require(_0x781b('0x13'));var licenseUtil=require('../../config/license/util');var db=require(_0x781b('0x14'))['db'];config['redis']=_[_0x781b('0x15')](config[_0x781b('0x16')],{'host':_0x781b('0x17'),'port':0x18eb});var socket=require(_0x781b('0x18'))(new Redis(config[_0x781b('0x16')]));require('./chatGroup.socket')[_0x781b('0x19')](socket);var jayson=require(_0x781b('0x1a'));var client=jayson[_0x781b('0x1b')][_0x781b('0x1c')]({'port':0x232a});function respondWithRpcPromise(_0x587d56,_0x35503a,_0x533377,_0x176e91){return new BPromise(function(_0x40a6ea,_0x1d0282){var _0x4ac48a=_0x176e91||client;return _0x4ac48a[_0x781b('0x1d')](_0x587d56,_0x533377)['then'](function(_0x544675){logger[_0x781b('0x1e')](_0x781b('0x1f'),_0x35503a,_0x781b('0x20'));logger[_0x781b('0x21')](_0x781b('0x22'),_0x35503a,'request\x20sent',JSON['stringify'](_0x544675));if(_0x544675['error']){if(_0x544675[_0x781b('0x23')][_0x781b('0x24')]===0x1f4){logger[_0x781b('0x23')](_0x781b('0x1f'),_0x35503a,_0x544675[_0x781b('0x23')][_0x781b('0x25')]);return _0x1d0282(_0x544675['error'][_0x781b('0x25')]);}logger[_0x781b('0x23')](_0x781b('0x1f'),_0x35503a,_0x544675['error'][_0x781b('0x25')]);return _0x40a6ea(_0x544675[_0x781b('0x23')][_0x781b('0x25')]);}else{logger[_0x781b('0x1e')]('ChatGroup,\x20%s,\x20%s',_0x35503a,_0x781b('0x20'));_0x40a6ea(_0x544675[_0x781b('0x26')][_0x781b('0x25')]);}})[_0x781b('0x27')](function(_0x3aba86){logger['error'](_0x781b('0x1f'),_0x35503a,_0x3aba86);_0x1d0282(_0x3aba86);});});}function respondWithStatusCode(_0x3ecd1c,_0x31795d){_0x31795d=_0x31795d||0xcc;return function(_0x22cdc0){if(_0x22cdc0){return _0x3ecd1c[_0x781b('0x28')](_0x31795d);}return _0x3ecd1c[_0x781b('0x29')](_0x31795d)['end']();};}function respondWithResult(_0x4e7037,_0x33d73d){_0x33d73d=_0x33d73d||0xc8;return function(_0x2f27a9){if(_0x2f27a9){return _0x4e7037['status'](_0x33d73d)[_0x781b('0x2a')](_0x2f27a9);}};}function respondWithFilteredResult(_0xcd8a6e,_0x1d94df){return function(_0x33561e){if(_0x33561e){var _0xbde04f=_0x33561e[_0x781b('0x2b')],_0x3d3d4c=_0x1d94df[_0x781b('0x2c')],_0x1957c4=_0x1d94df[_0x781b('0x2c')]+_0x1d94df['limit'],_0x1cd983;if(_0x1957c4>=_0xbde04f){_0x1957c4=_0xbde04f;_0x1cd983=0xc8;}else{_0x1cd983=0xce;}_0xcd8a6e[_0x781b('0x29')](_0x1cd983);return _0xcd8a6e[_0x781b('0x2d')]('Content-Range',_0x3d3d4c+'-'+_0x1957c4+'/'+_0xbde04f)['json'](_0x33561e);}return null;};}function patchUpdates(_0xdfe3d4){return function(_0x3e1bda){try{jsonpatch[_0x781b('0x2e')](_0x3e1bda,_0xdfe3d4,!![]);}catch(_0x32f325){return BPromise[_0x781b('0x2f')](_0x32f325);}return _0x3e1bda[_0x781b('0x30')]();};}function saveUpdates(_0x25d546,_0x2a1494){return function(_0x5a7c47){if(_0x5a7c47){return _0x5a7c47[_0x781b('0x31')](_0x25d546)['then'](function(_0x2e043b){return _0x2e043b;});}return null;};}function removeEntity(_0x557d7e,_0xa7dd98){return function(_0x468b8c){if(_0x468b8c){return _0x468b8c['destroy']()[_0x781b('0x32')](function(){_0x557d7e[_0x781b('0x29')](0xcc)[_0x781b('0x33')]();});}};}function handleEntityNotFound(_0x2cae64,_0x1ff492){return function(_0xb48785){if(!_0xb48785){_0x2cae64['sendStatus'](0x194);}return _0xb48785;};}function handleError(_0x436985,_0x4b62b3){_0x4b62b3=_0x4b62b3||0x1f4;return function(_0x3fd5f7){logger[_0x781b('0x23')](_0x3fd5f7[_0x781b('0x34')]);if(_0x3fd5f7[_0x781b('0x35')]){delete _0x3fd5f7[_0x781b('0x35')];}_0x436985[_0x781b('0x29')](_0x4b62b3)[_0x781b('0x36')](_0x3fd5f7);};}exports[_0x781b('0x37')]=function(_0x3a25a4,_0x23dad5){var _0x54da70={},_0xb56ca0={},_0x43b0d9={'count':0x0,'rows':[]};var _0x353918=_['map'](db[_0x781b('0x38')]['rawAttributes'],function(_0x58455d){return{'name':_0x58455d[_0x781b('0x39')],'type':_0x58455d[_0x781b('0x3a')][_0x781b('0x3b')]};});_0xb56ca0['model']=_[_0x781b('0x3c')](_0x353918,'name');_0xb56ca0[_0x781b('0x3d')]=_[_0x781b('0x3e')](_0x3a25a4[_0x781b('0x3d')]);_0xb56ca0[_0x781b('0x3f')]=_[_0x781b('0x40')](_0xb56ca0['model'],_0xb56ca0['query']);_0x54da70[_0x781b('0x41')]=_['intersection'](_0xb56ca0[_0x781b('0x42')],qs['fields'](_0x3a25a4[_0x781b('0x3d')]['fields']));_0x54da70[_0x781b('0x41')]=_0x54da70[_0x781b('0x41')][_0x781b('0x43')]?_0x54da70[_0x781b('0x41')]:_0xb56ca0[_0x781b('0x42')];if(!_0x3a25a4[_0x781b('0x3d')]['hasOwnProperty'](_0x781b('0x44'))){_0x54da70[_0x781b('0x45')]=qs[_0x781b('0x45')](_0x3a25a4['query'][_0x781b('0x45')]);_0x54da70[_0x781b('0x2c')]=qs['offset'](_0x3a25a4['query'][_0x781b('0x2c')]);}_0x54da70['order']=qs[_0x781b('0x46')](_0x3a25a4['query'][_0x781b('0x46')]);_0x54da70[_0x781b('0x47')]=qs[_0x781b('0x3f')](_[_0x781b('0x48')](_0x3a25a4[_0x781b('0x3d')],_0xb56ca0[_0x781b('0x3f')]),_0x353918);if(_0x3a25a4[_0x781b('0x3d')]['filter']){_0x54da70[_0x781b('0x47')]=_['merge'](_0x54da70[_0x781b('0x47')],{'$or':_['map'](_0x353918,function(_0x1198c2){if(_0x1198c2['type']!==_0x781b('0x49')){var _0x340f80={};_0x340f80[_0x1198c2[_0x781b('0x35')]]={'$like':'%'+_0x3a25a4[_0x781b('0x3d')][_0x781b('0x4a')]+'%'};return _0x340f80;}})});}_0x54da70=_[_0x781b('0x4b')]({},_0x54da70,_0x3a25a4[_0x781b('0x4c')]);var _0x2cb49c={'where':_0x54da70[_0x781b('0x47')]};return db[_0x781b('0x38')][_0x781b('0x2b')](_0x2cb49c)['then'](function(_0x443e88){_0x43b0d9[_0x781b('0x2b')]=_0x443e88;if(_0x3a25a4[_0x781b('0x3d')][_0x781b('0x4d')]){_0x54da70[_0x781b('0x4e')]=[{'all':!![]}];}return db[_0x781b('0x38')]['findAll'](_0x54da70);})['then'](function(_0x5ddb43){_0x43b0d9['rows']=_0x5ddb43;return _0x43b0d9;})[_0x781b('0x32')](respondWithFilteredResult(_0x23dad5,_0x54da70))[_0x781b('0x27')](handleError(_0x23dad5,null));};exports[_0x781b('0x4f')]=function(_0x1caa51,_0x53522b){var _0x3844c5={'raw':!![],'where':{'id':_0x1caa51[_0x781b('0x50')]['id']}},_0x369939={};_0x369939['model']=_[_0x781b('0x3e')](db['ChatGroup'][_0x781b('0x51')]);_0x369939[_0x781b('0x3d')]=_[_0x781b('0x3e')](_0x1caa51[_0x781b('0x3d')]);_0x369939[_0x781b('0x3f')]=_[_0x781b('0x40')](_0x369939[_0x781b('0x42')],_0x369939[_0x781b('0x3d')]);_0x3844c5[_0x781b('0x41')]=_[_0x781b('0x40')](_0x369939[_0x781b('0x42')],qs['fields'](_0x1caa51['query']['fields']));_0x3844c5[_0x781b('0x41')]=_0x3844c5['attributes'][_0x781b('0x43')]?_0x3844c5[_0x781b('0x41')]:_0x369939[_0x781b('0x42')];if(_0x1caa51['query']['includeAll']){_0x3844c5[_0x781b('0x4e')]=[{'all':!![]}];}_0x3844c5=_[_0x781b('0x4b')]({},_0x3844c5,_0x1caa51[_0x781b('0x4c')]);return db[_0x781b('0x38')][_0x781b('0x52')](_0x3844c5)['then'](handleEntityNotFound(_0x53522b,null))[_0x781b('0x32')](respondWithResult(_0x53522b,null))[_0x781b('0x27')](handleError(_0x53522b,null));};exports[_0x781b('0x53')]=function(_0x51af19,_0x3cff8d){return db[_0x781b('0x38')][_0x781b('0x53')](_0x51af19[_0x781b('0x54')],{})['then'](respondWithResult(_0x3cff8d,0xc9))['catch'](handleError(_0x3cff8d,null));};exports[_0x781b('0x31')]=function(_0x417a40,_0x4d1824){if(_0x417a40[_0x781b('0x54')]['id']){delete _0x417a40[_0x781b('0x54')]['id'];}return db[_0x781b('0x38')][_0x781b('0x52')]({'where':{'id':_0x417a40[_0x781b('0x50')]['id']}})[_0x781b('0x32')](handleEntityNotFound(_0x4d1824,null))[_0x781b('0x32')](saveUpdates(_0x417a40[_0x781b('0x54')],null))[_0x781b('0x32')](respondWithResult(_0x4d1824,null))[_0x781b('0x27')](handleError(_0x4d1824,null));};exports['destroy']=function(_0xc82a63,_0x4278eb){return db['ChatGroup'][_0x781b('0x52')]({'where':{'id':_0xc82a63['params']['id']}})[_0x781b('0x32')](handleEntityNotFound(_0x4278eb,null))[_0x781b('0x32')](removeEntity(_0x4278eb,null))['catch'](handleError(_0x4278eb,null));};exports['describe']=function(_0x42198b,_0xd6d9b5){return db[_0x781b('0x38')][_0x781b('0x55')]()['then'](respondWithResult(_0xd6d9b5,null))['catch'](handleError(_0xd6d9b5,null));};exports['getUnread']=function(_0x58e498,_0xb822e6,_0x3e092f){return db['ChatInternalMessage'][_0x781b('0x2b')]({'where':{'ChatGroupId':_0x58e498[_0x781b('0x50')]['id'],'ToId':_0x58e498['user']['id'],'read':![]}})[_0x781b('0x32')](function(_0x236045){return{'id':_[_0x781b('0x56')](_0x58e498[_0x781b('0x50')]['id']),'count':_0x236045};})['then'](respondWithResult(_0xb822e6,null))[_0x781b('0x27')](handleError(_0xb822e6,null));};exports['addMembers']=function(_0x5a2545,_0x95820,_0x1e63c4){return db['ChatGroup'][_0x781b('0x52')]({'where':{'id':_0x5a2545['params']['id']}})[_0x781b('0x32')](handleEntityNotFound(_0x95820,null))[_0x781b('0x32')](function(_0x554d50){if(_0x554d50){return _0x554d50[_0x781b('0x57')](_0x5a2545[_0x781b('0x54')][_0x781b('0x58')],_[_0x781b('0x59')](_0x5a2545['body'],[_0x781b('0x58'),'id'])||{});}})['then'](respondWithResult(_0x95820,null))[_0x781b('0x27')](handleError(_0x95820,null));};exports[_0x781b('0x5a')]=function(_0x3745a3,_0x2bd571,_0x3baf07){var _0x54912c={};var _0xaaf93c={};var _0x1d1f81;var _0x3aa2a9;return db[_0x781b('0x38')][_0x781b('0x5b')]({'where':{'id':_0x3745a3[_0x781b('0x50')]['id']}})['then'](handleEntityNotFound(_0x2bd571,null))[_0x781b('0x32')](function(_0x1db182){if(_0x1db182){_0x1d1f81=_0x1db182;_0xaaf93c[_0x781b('0x42')]=_[_0x781b('0x3e')](db[_0x781b('0x5c')][_0x781b('0x51')]);_0xaaf93c[_0x781b('0x3d')]=_[_0x781b('0x3e')](_0x3745a3[_0x781b('0x3d')]);_0xaaf93c[_0x781b('0x3f')]=_['intersection'](_0xaaf93c[_0x781b('0x42')],_0xaaf93c[_0x781b('0x3d')]);_0x54912c[_0x781b('0x41')]=_[_0x781b('0x40')](_0xaaf93c[_0x781b('0x42')],qs['fields'](_0x3745a3[_0x781b('0x3d')][_0x781b('0x5d')]));_0x54912c['attributes']=_0x54912c['attributes'][_0x781b('0x43')]?_0x54912c[_0x781b('0x41')]:_0xaaf93c[_0x781b('0x42')];_0x54912c['order']=qs[_0x781b('0x46')](_0x3745a3['query']['sort']);_0x54912c[_0x781b('0x47')]=qs[_0x781b('0x3f')](_['pick'](_0x3745a3[_0x781b('0x3d')],_0xaaf93c[_0x781b('0x3f')]));if(_0x3745a3[_0x781b('0x3d')]['filter']){_0x54912c[_0x781b('0x47')]=_[_0x781b('0x4b')](_0x54912c['where'],{'$or':_[_0x781b('0x3c')](_0x54912c[_0x781b('0x41')],function(_0x44f8cb){var _0x39a7a7={};_0x39a7a7[_0x44f8cb]={'$like':'%'+_0x3745a3[_0x781b('0x3d')][_0x781b('0x4a')]+'%'};return _0x39a7a7;})});}_0x54912c=_[_0x781b('0x4b')]({},_0x54912c,_0x3745a3['options']);return _0x1d1f81['getMembers'](_0x54912c);}})[_0x781b('0x32')](function(_0x2531c9){if(_0x2531c9){_0x3aa2a9=_0x2531c9['length'];if(!_0x3745a3[_0x781b('0x3d')][_0x781b('0x5e')](_0x781b('0x44'))){_0x54912c['limit']=qs[_0x781b('0x45')](_0x3745a3['query'][_0x781b('0x45')]);_0x54912c[_0x781b('0x2c')]=qs['offset'](_0x3745a3[_0x781b('0x3d')][_0x781b('0x2c')]);}return _0x1d1f81[_0x781b('0x5a')](_0x54912c);}})[_0x781b('0x32')](function(_0x3e51da){if(_0x3e51da){return _0x3e51da?{'count':_0x3aa2a9,'rows':_0x3e51da}:null;}})['then'](respondWithResult(_0x2bd571,null))['catch'](handleError(_0x2bd571,null));};exports[_0x781b('0x5f')]=function(_0x188aa9,_0x16bb5e,_0x26873c){return db[_0x781b('0x38')][_0x781b('0x52')]({'where':{'id':_0x188aa9[_0x781b('0x50')]['id']}})[_0x781b('0x32')](handleEntityNotFound(_0x16bb5e,null))[_0x781b('0x32')](function(_0x185695){if(_0x185695){return _0x185695[_0x781b('0x5f')](_0x188aa9[_0x781b('0x3d')][_0x781b('0x58')]);}})[_0x781b('0x32')](respondWithStatusCode(_0x16bb5e,null))['catch'](handleError(_0x16bb5e,null));};exports[_0x781b('0x60')]=function(_0x49ba3e,_0x2ad1d3,_0x58436a){if(_0x49ba3e[_0x781b('0x54')]['id']){delete _0x49ba3e[_0x781b('0x54')]['id'];}return db[_0x781b('0x38')][_0x781b('0x52')]({'where':{'id':_0x49ba3e[_0x781b('0x50')]['id']}})[_0x781b('0x32')](handleEntityNotFound(_0x2ad1d3,null))[_0x781b('0x32')](function(_0x4910e4){if(_0x4910e4){_0x49ba3e[_0x781b('0x54')][_0x781b('0x61')]=_0x4910e4['id'];return db[_0x781b('0x62')][_0x781b('0x53')](_0x49ba3e['body']);}})[_0x781b('0x32')](respondWithResult(_0x2ad1d3,null))[_0x781b('0x27')](handleError(_0x2ad1d3,null));};exports['getMessages']=function(_0x377e3c,_0x38ef40,_0x1cd061){var _0x210724={};var _0x53a891={};var _0x318279;var _0x447e03;return db[_0x781b('0x38')][_0x781b('0x5b')]({'where':{'id':_0x377e3c[_0x781b('0x50')]['id']}})[_0x781b('0x32')](handleEntityNotFound(_0x38ef40,null))[_0x781b('0x32')](function(_0x1ab34c){if(_0x1ab34c){_0x318279=_0x1ab34c;_0x53a891[_0x781b('0x42')]=_[_0x781b('0x3e')](db[_0x781b('0x62')]['rawAttributes']);_0x53a891['query']=_[_0x781b('0x3e')](_0x377e3c[_0x781b('0x3d')]);_0x53a891[_0x781b('0x3f')]=_[_0x781b('0x40')](_0x53a891['model'],_0x53a891[_0x781b('0x3d')]);_0x210724[_0x781b('0x41')]=_[_0x781b('0x40')](_0x53a891[_0x781b('0x42')],qs[_0x781b('0x5d')](_0x377e3c[_0x781b('0x3d')][_0x781b('0x5d')]));_0x210724[_0x781b('0x41')]=_0x210724[_0x781b('0x41')][_0x781b('0x43')]?_0x210724[_0x781b('0x41')]:_0x53a891[_0x781b('0x42')];_0x210724[_0x781b('0x63')]=qs['sort'](_0x377e3c['query'][_0x781b('0x46')]);_0x210724['where']=qs[_0x781b('0x3f')](_['pick'](_0x377e3c[_0x781b('0x3d')],_0x53a891['filters']));if(_0x377e3c[_0x781b('0x3d')][_0x781b('0x4a')]){_0x210724[_0x781b('0x47')]=_[_0x781b('0x4b')](_0x210724[_0x781b('0x47')],{'$or':_['map'](_0x210724[_0x781b('0x41')],function(_0x535436){var _0x2d3547={};_0x2d3547[_0x535436]={'$like':'%'+_0x377e3c['query']['filter']+'%'};return _0x2d3547;})});}if(_0x377e3c[_0x781b('0x3d')][_0x781b('0x64')]){var _0x1ed9e2=_0x377e3c['query'][_0x781b('0x64')][_0x781b('0x65')](',');var _0x363f3b={};_0x363f3b[_0x1ed9e2[0x0]]={'$gte':moment(_0x1ed9e2[0x1])['format'](_0x781b('0x66'))};_0x210724[_0x781b('0x47')]=_[_0x781b('0x4b')](_0x210724[_0x781b('0x47')],_0x363f3b);}_0x210724=_[_0x781b('0x4b')]({},_0x210724,_0x377e3c[_0x781b('0x4c')]);return _0x318279[_0x781b('0x67')](_0x210724);}})[_0x781b('0x32')](function(_0x5ebdaf){if(_0x5ebdaf){_0x447e03=_0x5ebdaf[_0x781b('0x43')];if(!_0x377e3c['query'][_0x781b('0x5e')](_0x781b('0x44'))){_0x210724['limit']=qs[_0x781b('0x45')](_0x377e3c[_0x781b('0x3d')][_0x781b('0x45')]);_0x210724[_0x781b('0x2c')]=qs[_0x781b('0x2c')](_0x377e3c['query'][_0x781b('0x2c')]);}return _0x318279['getMessages'](_0x210724);}})[_0x781b('0x32')](function(_0x45ed42){if(_0x45ed42){return _0x45ed42?{'count':_0x447e03,'rows':_0x45ed42}:null;}})[_0x781b('0x32')](respondWithResult(_0x38ef40,null))[_0x781b('0x27')](handleError(_0x38ef40,null));};