Built motion from commit ffdca78c.|2.6.24
[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 _0xe072=['sendStatus','status','end','json','limit','offset','set','Content-Range','apply','reject','save','update','then','destroy','error','send','ChatGroup','type','key','model','map','name','query','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick','merge','VIRTUAL','filter','options','count','includeAll','include','findAll','catch','show','params','keys','rawAttributes','find','create','body','describe','getUnread','ChatInternalMessage','user','toInteger','addMembers','ids','omit','getMembers','findOne','User','length','removeMembers','addMessage','ChatGroupId','getMessages','$gte','split','format','YYYY-MM-DD\x20HH:mm:ss','rimraf','zip-dir','request-promise','moment','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','localhost','socket.io-emitter','./chatGroup.socket','register'];(function(_0x1ab4c8,_0xb34fd4){var _0x3e7240=function(_0x19b9a1){while(--_0x19b9a1){_0x1ab4c8['push'](_0x1ab4c8['shift']());}};_0x3e7240(++_0xb34fd4);}(_0xe072,0x10d));var _0x2e07=function(_0x3c8c5a,_0x1364ce){_0x3c8c5a=_0x3c8c5a-0x0;var _0x38836f=_0xe072[_0x3c8c5a];return _0x38836f;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x2e07('0x0'));var zipdir=require(_0x2e07('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x2e07('0x2'));var moment=require(_0x2e07('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x2e07('0x4'));var util=require(_0x2e07('0x5'));var path=require(_0x2e07('0x6'));var sox=require(_0x2e07('0x7'));var csv=require(_0x2e07('0x8'));var ejs=require(_0x2e07('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x2e07('0xa'));var squel=require(_0x2e07('0xb'));var crypto=require(_0x2e07('0xc'));var jsforce=require(_0x2e07('0xd'));var deskjs=require(_0x2e07('0xe'));var toCsv=require(_0x2e07('0x8'));var querystring=require(_0x2e07('0xf'));var Papa=require(_0x2e07('0x10'));var Redis=require(_0x2e07('0x11'));var authService=require('../../components/auth/service');var qs=require(_0x2e07('0x12'));var as=require(_0x2e07('0x13'));var hardwareService=require(_0x2e07('0x14'));var logger=require('../../config/logger')(_0x2e07('0x15'));var utils=require(_0x2e07('0x16'));var config=require(_0x2e07('0x17'));var licenseUtil=require(_0x2e07('0x18'));var db=require(_0x2e07('0x19'))['db'];config[_0x2e07('0x1a')]=_['defaults'](config[_0x2e07('0x1a')],{'host':_0x2e07('0x1b'),'port':0x18eb});var socket=require(_0x2e07('0x1c'))(new Redis(config[_0x2e07('0x1a')]));require(_0x2e07('0x1d'))[_0x2e07('0x1e')](socket);function respondWithStatusCode(_0x4e708b,_0x22ccff){_0x22ccff=_0x22ccff||0xcc;return function(_0x2accb5){if(_0x2accb5){return _0x4e708b[_0x2e07('0x1f')](_0x22ccff);}return _0x4e708b[_0x2e07('0x20')](_0x22ccff)[_0x2e07('0x21')]();};}function respondWithResult(_0x18e1ea,_0x10c63e){_0x10c63e=_0x10c63e||0xc8;return function(_0x312ad5){if(_0x312ad5){return _0x18e1ea['status'](_0x10c63e)[_0x2e07('0x22')](_0x312ad5);}};}function respondWithFilteredResult(_0xfa4953,_0x460326){return function(_0x4f4355){if(_0x4f4355){var _0x7e8305=typeof _0x460326['offset']==='undefined'&&typeof _0x460326[_0x2e07('0x23')]==='undefined';var _0xe37795=_0x4f4355['count'];var _0xa4c26b=_0x7e8305?0x0:_0x460326[_0x2e07('0x24')];var _0x94bc42=_0x7e8305?_0x4f4355['count']:_0x460326[_0x2e07('0x24')]+_0x460326[_0x2e07('0x23')];var _0x2cfb85;if(_0x94bc42>=_0xe37795){_0x94bc42=_0xe37795;_0x2cfb85=0xc8;}else{_0x2cfb85=0xce;}_0xfa4953['status'](_0x2cfb85);return _0xfa4953[_0x2e07('0x25')](_0x2e07('0x26'),_0xa4c26b+'-'+_0x94bc42+'/'+_0xe37795)[_0x2e07('0x22')](_0x4f4355);}return null;};}function patchUpdates(_0x3dda3d){return function(_0x4832c8){try{jsonpatch[_0x2e07('0x27')](_0x4832c8,_0x3dda3d,!![]);}catch(_0x52cdcc){return BPromise[_0x2e07('0x28')](_0x52cdcc);}return _0x4832c8[_0x2e07('0x29')]();};}function saveUpdates(_0x447910,_0x450280){return function(_0x1e05b2){if(_0x1e05b2){return _0x1e05b2[_0x2e07('0x2a')](_0x447910)[_0x2e07('0x2b')](function(_0x5bc922){return _0x5bc922;});}return null;};}function removeEntity(_0x358e3b,_0x467c5b){return function(_0x3610e3){if(_0x3610e3){return _0x3610e3[_0x2e07('0x2c')]()[_0x2e07('0x2b')](function(){_0x358e3b[_0x2e07('0x20')](0xcc)[_0x2e07('0x21')]();});}};}function handleEntityNotFound(_0x36d32e,_0xc5941c){return function(_0x5eb581){if(!_0x5eb581){_0x36d32e[_0x2e07('0x1f')](0x194);}return _0x5eb581;};}function handleError(_0x3f2c10,_0x3cc139){_0x3cc139=_0x3cc139||0x1f4;return function(_0x531a29){logger[_0x2e07('0x2d')](_0x531a29['stack']);if(_0x531a29['name']){delete _0x531a29['name'];}_0x3f2c10[_0x2e07('0x20')](_0x3cc139)[_0x2e07('0x2e')](_0x531a29);};}exports['index']=function(_0x32355d,_0x31cd61){var _0x454ea2={},_0x1bb766={},_0x325bec={'count':0x0,'rows':[]};var _0x15e9b5=_['map'](db[_0x2e07('0x2f')]['rawAttributes'],function(_0x404374){return{'name':_0x404374['fieldName'],'type':_0x404374[_0x2e07('0x30')][_0x2e07('0x31')]};});_0x1bb766[_0x2e07('0x32')]=_[_0x2e07('0x33')](_0x15e9b5,_0x2e07('0x34'));_0x1bb766[_0x2e07('0x35')]=_['keys'](_0x32355d[_0x2e07('0x35')]);_0x1bb766[_0x2e07('0x36')]=_[_0x2e07('0x37')](_0x1bb766[_0x2e07('0x32')],_0x1bb766[_0x2e07('0x35')]);_0x454ea2[_0x2e07('0x38')]=_[_0x2e07('0x37')](_0x1bb766[_0x2e07('0x32')],qs[_0x2e07('0x39')](_0x32355d['query'][_0x2e07('0x39')]));_0x454ea2[_0x2e07('0x38')]=_0x454ea2['attributes']['length']?_0x454ea2[_0x2e07('0x38')]:_0x1bb766['model'];if(!_0x32355d[_0x2e07('0x35')][_0x2e07('0x3a')](_0x2e07('0x3b'))){_0x454ea2[_0x2e07('0x23')]=qs['limit'](_0x32355d[_0x2e07('0x35')][_0x2e07('0x23')]);_0x454ea2[_0x2e07('0x24')]=qs[_0x2e07('0x24')](_0x32355d['query'][_0x2e07('0x24')]);}_0x454ea2[_0x2e07('0x3c')]=qs[_0x2e07('0x3d')](_0x32355d[_0x2e07('0x35')][_0x2e07('0x3d')]);_0x454ea2[_0x2e07('0x3e')]=qs[_0x2e07('0x36')](_[_0x2e07('0x3f')](_0x32355d[_0x2e07('0x35')],_0x1bb766[_0x2e07('0x36')]),_0x15e9b5);if(_0x32355d[_0x2e07('0x35')]['filter']){_0x454ea2[_0x2e07('0x3e')]=_[_0x2e07('0x40')](_0x454ea2[_0x2e07('0x3e')],{'$or':_[_0x2e07('0x33')](_0x15e9b5,function(_0x314789){if(_0x314789[_0x2e07('0x30')]!==_0x2e07('0x41')){var _0x57eeb5={};_0x57eeb5[_0x314789[_0x2e07('0x34')]]={'$like':'%'+_0x32355d[_0x2e07('0x35')][_0x2e07('0x42')]+'%'};return _0x57eeb5;}})});}_0x454ea2=_[_0x2e07('0x40')]({},_0x454ea2,_0x32355d[_0x2e07('0x43')]);var _0x350412={'where':_0x454ea2[_0x2e07('0x3e')]};return db[_0x2e07('0x2f')][_0x2e07('0x44')](_0x350412)[_0x2e07('0x2b')](function(_0x1ac1ac){_0x325bec[_0x2e07('0x44')]=_0x1ac1ac;if(_0x32355d[_0x2e07('0x35')][_0x2e07('0x45')]){_0x454ea2[_0x2e07('0x46')]=[{'all':!![]}];}return db['ChatGroup'][_0x2e07('0x47')](_0x454ea2);})[_0x2e07('0x2b')](function(_0x394965){_0x325bec['rows']=_0x394965;return _0x325bec;})[_0x2e07('0x2b')](respondWithFilteredResult(_0x31cd61,_0x454ea2))[_0x2e07('0x48')](handleError(_0x31cd61,null));};exports[_0x2e07('0x49')]=function(_0x535ce7,_0x414e77){var _0x442daa={'raw':!![],'where':{'id':_0x535ce7[_0x2e07('0x4a')]['id']}},_0x2c96f1={};_0x2c96f1['model']=_[_0x2e07('0x4b')](db['ChatGroup'][_0x2e07('0x4c')]);_0x2c96f1[_0x2e07('0x35')]=_['keys'](_0x535ce7['query']);_0x2c96f1[_0x2e07('0x36')]=_[_0x2e07('0x37')](_0x2c96f1[_0x2e07('0x32')],_0x2c96f1['query']);_0x442daa['attributes']=_[_0x2e07('0x37')](_0x2c96f1['model'],qs[_0x2e07('0x39')](_0x535ce7[_0x2e07('0x35')]['fields']));_0x442daa[_0x2e07('0x38')]=_0x442daa['attributes']['length']?_0x442daa[_0x2e07('0x38')]:_0x2c96f1[_0x2e07('0x32')];if(_0x535ce7['query'][_0x2e07('0x45')]){_0x442daa[_0x2e07('0x46')]=[{'all':!![]}];}_0x442daa=_[_0x2e07('0x40')]({},_0x442daa,_0x535ce7['options']);return db[_0x2e07('0x2f')][_0x2e07('0x4d')](_0x442daa)['then'](handleEntityNotFound(_0x414e77,null))['then'](respondWithResult(_0x414e77,null))[_0x2e07('0x48')](handleError(_0x414e77,null));};exports['create']=function(_0x15b2f2,_0x30ad42){return db[_0x2e07('0x2f')][_0x2e07('0x4e')](_0x15b2f2['body'],{})[_0x2e07('0x2b')](respondWithResult(_0x30ad42,0xc9))[_0x2e07('0x48')](handleError(_0x30ad42,null));};exports[_0x2e07('0x2a')]=function(_0x45533d,_0x5a95ed){if(_0x45533d[_0x2e07('0x4f')]['id']){delete _0x45533d[_0x2e07('0x4f')]['id'];}return db[_0x2e07('0x2f')][_0x2e07('0x4d')]({'where':{'id':_0x45533d['params']['id']}})[_0x2e07('0x2b')](handleEntityNotFound(_0x5a95ed,null))['then'](saveUpdates(_0x45533d[_0x2e07('0x4f')],null))['then'](respondWithResult(_0x5a95ed,null))[_0x2e07('0x48')](handleError(_0x5a95ed,null));};exports[_0x2e07('0x2c')]=function(_0x1999be,_0x417d87){return db['ChatGroup'][_0x2e07('0x4d')]({'where':{'id':_0x1999be[_0x2e07('0x4a')]['id']}})['then'](handleEntityNotFound(_0x417d87,null))['then'](removeEntity(_0x417d87,null))[_0x2e07('0x48')](handleError(_0x417d87,null));};exports[_0x2e07('0x50')]=function(_0x1c11ed,_0x2902bb){return db[_0x2e07('0x2f')][_0x2e07('0x50')]()['then'](respondWithResult(_0x2902bb,null))[_0x2e07('0x48')](handleError(_0x2902bb,null));};exports[_0x2e07('0x51')]=function(_0x4ee56f,_0x16f3bf,_0x59e85e){return db[_0x2e07('0x52')][_0x2e07('0x44')]({'where':{'ChatGroupId':_0x4ee56f[_0x2e07('0x4a')]['id'],'ToId':_0x4ee56f[_0x2e07('0x53')]['id'],'read':![]}})[_0x2e07('0x2b')](function(_0x4090df){return{'id':_[_0x2e07('0x54')](_0x4ee56f['params']['id']),'count':_0x4090df};})[_0x2e07('0x2b')](respondWithResult(_0x16f3bf,null))['catch'](handleError(_0x16f3bf,null));};exports['addMembers']=function(_0x14e561,_0x1b234c,_0xfbc465){return db['ChatGroup'][_0x2e07('0x4d')]({'where':{'id':_0x14e561[_0x2e07('0x4a')]['id']}})[_0x2e07('0x2b')](handleEntityNotFound(_0x1b234c,null))['then'](function(_0x4765e2){if(_0x4765e2){return _0x4765e2[_0x2e07('0x55')](_0x14e561['body'][_0x2e07('0x56')],_[_0x2e07('0x57')](_0x14e561['body'],['ids','id'])||{});}})[_0x2e07('0x2b')](respondWithResult(_0x1b234c,null))[_0x2e07('0x48')](handleError(_0x1b234c,null));};exports[_0x2e07('0x58')]=function(_0x5eeebd,_0x53af2a,_0x4b71f0){var _0x10b2a2={};var _0x270131={};var _0x2c8672;var _0x5954ab;return db[_0x2e07('0x2f')][_0x2e07('0x59')]({'where':{'id':_0x5eeebd['params']['id']}})[_0x2e07('0x2b')](handleEntityNotFound(_0x53af2a,null))[_0x2e07('0x2b')](function(_0x38a96f){if(_0x38a96f){_0x2c8672=_0x38a96f;_0x270131[_0x2e07('0x32')]=_[_0x2e07('0x4b')](db[_0x2e07('0x5a')][_0x2e07('0x4c')]);_0x270131[_0x2e07('0x35')]=_[_0x2e07('0x4b')](_0x5eeebd[_0x2e07('0x35')]);_0x270131[_0x2e07('0x36')]=_[_0x2e07('0x37')](_0x270131['model'],_0x270131[_0x2e07('0x35')]);_0x10b2a2['attributes']=_[_0x2e07('0x37')](_0x270131[_0x2e07('0x32')],qs[_0x2e07('0x39')](_0x5eeebd[_0x2e07('0x35')]['fields']));_0x10b2a2[_0x2e07('0x38')]=_0x10b2a2[_0x2e07('0x38')][_0x2e07('0x5b')]?_0x10b2a2[_0x2e07('0x38')]:_0x270131[_0x2e07('0x32')];_0x10b2a2[_0x2e07('0x3c')]=qs[_0x2e07('0x3d')](_0x5eeebd['query'][_0x2e07('0x3d')]);_0x10b2a2[_0x2e07('0x3e')]=qs[_0x2e07('0x36')](_[_0x2e07('0x3f')](_0x5eeebd[_0x2e07('0x35')],_0x270131['filters']));if(_0x5eeebd['query'][_0x2e07('0x42')]){_0x10b2a2[_0x2e07('0x3e')]=_[_0x2e07('0x40')](_0x10b2a2[_0x2e07('0x3e')],{'$or':_['map'](_0x10b2a2[_0x2e07('0x38')],function(_0xd9d6fe){var _0x4fcd41={};_0x4fcd41[_0xd9d6fe]={'$like':'%'+_0x5eeebd['query']['filter']+'%'};return _0x4fcd41;})});}_0x10b2a2=_[_0x2e07('0x40')]({},_0x10b2a2,_0x5eeebd[_0x2e07('0x43')]);return _0x2c8672['getMembers'](_0x10b2a2);}})[_0x2e07('0x2b')](function(_0x7b3121){if(_0x7b3121){_0x5954ab=_0x7b3121[_0x2e07('0x5b')];if(!_0x5eeebd[_0x2e07('0x35')][_0x2e07('0x3a')](_0x2e07('0x3b'))){_0x10b2a2[_0x2e07('0x23')]=qs[_0x2e07('0x23')](_0x5eeebd[_0x2e07('0x35')][_0x2e07('0x23')]);_0x10b2a2['offset']=qs[_0x2e07('0x24')](_0x5eeebd[_0x2e07('0x35')]['offset']);}return _0x2c8672['getMembers'](_0x10b2a2);}})[_0x2e07('0x2b')](function(_0x3c87a0){if(_0x3c87a0){return _0x3c87a0?{'count':_0x5954ab,'rows':_0x3c87a0}:null;}})['then'](respondWithResult(_0x53af2a,null))[_0x2e07('0x48')](handleError(_0x53af2a,null));};exports[_0x2e07('0x5c')]=function(_0x32cbf3,_0x29dca3,_0x390e6e){return db[_0x2e07('0x2f')][_0x2e07('0x4d')]({'where':{'id':_0x32cbf3['params']['id']}})['then'](handleEntityNotFound(_0x29dca3,null))[_0x2e07('0x2b')](function(_0x3e6f2d){if(_0x3e6f2d){return _0x3e6f2d['removeMembers'](_0x32cbf3[_0x2e07('0x35')][_0x2e07('0x56')]);}})['then'](respondWithStatusCode(_0x29dca3,null))[_0x2e07('0x48')](handleError(_0x29dca3,null));};exports[_0x2e07('0x5d')]=function(_0xec4ca2,_0x8afeb6,_0x33536f){if(_0xec4ca2[_0x2e07('0x4f')]['id']){delete _0xec4ca2[_0x2e07('0x4f')]['id'];}return db[_0x2e07('0x2f')]['find']({'where':{'id':_0xec4ca2[_0x2e07('0x4a')]['id']}})[_0x2e07('0x2b')](handleEntityNotFound(_0x8afeb6,null))[_0x2e07('0x2b')](function(_0x3081f4){if(_0x3081f4){_0xec4ca2['body'][_0x2e07('0x5e')]=_0x3081f4['id'];return db[_0x2e07('0x52')]['create'](_0xec4ca2['body']);}})['then'](respondWithResult(_0x8afeb6,null))[_0x2e07('0x48')](handleError(_0x8afeb6,null));};exports[_0x2e07('0x5f')]=function(_0x2ffadd,_0x57eeb9,_0x4d7b3d){var _0x1625d1={};var _0x220e1e={};var _0x9ad445;var _0x40ae06;return db[_0x2e07('0x2f')][_0x2e07('0x59')]({'where':{'id':_0x2ffadd[_0x2e07('0x4a')]['id']}})[_0x2e07('0x2b')](handleEntityNotFound(_0x57eeb9,null))['then'](function(_0x184fc7){if(_0x184fc7){_0x9ad445=_0x184fc7;_0x220e1e[_0x2e07('0x32')]=_['keys'](db[_0x2e07('0x52')][_0x2e07('0x4c')]);_0x220e1e[_0x2e07('0x35')]=_['keys'](_0x2ffadd['query']);_0x220e1e['filters']=_[_0x2e07('0x37')](_0x220e1e[_0x2e07('0x32')],_0x220e1e[_0x2e07('0x35')]);_0x1625d1['attributes']=_['intersection'](_0x220e1e[_0x2e07('0x32')],qs[_0x2e07('0x39')](_0x2ffadd[_0x2e07('0x35')][_0x2e07('0x39')]));_0x1625d1[_0x2e07('0x38')]=_0x1625d1[_0x2e07('0x38')][_0x2e07('0x5b')]?_0x1625d1['attributes']:_0x220e1e[_0x2e07('0x32')];_0x1625d1[_0x2e07('0x3c')]=qs[_0x2e07('0x3d')](_0x2ffadd[_0x2e07('0x35')][_0x2e07('0x3d')]);_0x1625d1[_0x2e07('0x3e')]=qs[_0x2e07('0x36')](_[_0x2e07('0x3f')](_0x2ffadd['query'],_0x220e1e[_0x2e07('0x36')]));if(_0x2ffadd[_0x2e07('0x35')][_0x2e07('0x42')]){_0x1625d1[_0x2e07('0x3e')]=_[_0x2e07('0x40')](_0x1625d1[_0x2e07('0x3e')],{'$or':_['map'](_0x1625d1[_0x2e07('0x38')],function(_0x5df3cc){var _0x419c3c={};_0x419c3c[_0x5df3cc]={'$like':'%'+_0x2ffadd[_0x2e07('0x35')]['filter']+'%'};return _0x419c3c;})});}if(_0x2ffadd[_0x2e07('0x35')][_0x2e07('0x60')]){var _0x13bdd2=_0x2ffadd[_0x2e07('0x35')][_0x2e07('0x60')][_0x2e07('0x61')](',');var _0x2dce43={};_0x2dce43[_0x13bdd2[0x0]]={'$gte':moment(_0x13bdd2[0x1])[_0x2e07('0x62')](_0x2e07('0x63'))};_0x1625d1[_0x2e07('0x3e')]=_[_0x2e07('0x40')](_0x1625d1[_0x2e07('0x3e')],_0x2dce43);}_0x1625d1=_['merge']({},_0x1625d1,_0x2ffadd[_0x2e07('0x43')]);return _0x9ad445[_0x2e07('0x5f')](_0x1625d1);}})[_0x2e07('0x2b')](function(_0x396f69){if(_0x396f69){_0x40ae06=_0x396f69[_0x2e07('0x5b')];if(!_0x2ffadd[_0x2e07('0x35')]['hasOwnProperty'](_0x2e07('0x3b'))){_0x1625d1['limit']=qs[_0x2e07('0x23')](_0x2ffadd['query'][_0x2e07('0x23')]);_0x1625d1[_0x2e07('0x24')]=qs[_0x2e07('0x24')](_0x2ffadd[_0x2e07('0x35')][_0x2e07('0x24')]);}return _0x9ad445[_0x2e07('0x5f')](_0x1625d1);}})[_0x2e07('0x2b')](function(_0x1c769e){if(_0x1c769e){return _0x1c769e?{'count':_0x40ae06,'rows':_0x1c769e}:null;}})[_0x2e07('0x2b')](respondWithResult(_0x57eeb9,null))[_0x2e07('0x48')](handleError(_0x57eeb9,null));};