Built motion from commit (unavailable).|2.5.28
[motion2.git] / server / api / userNotification / userNotification.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 _0x9c15=['team','user','includes','toLowerCase','Invalid\x20model\x20in\x20\x27recipients\x27\x20object','senderName','fullname','isEmpty','recipientsDescription','beep','sortBy','join','sequelize','transaction','UserNotification','create','forEach','recipient','userNotification:send','catch','Template','findOne','html','Invalid\x20\x27TemplateId\x27\x20parameter','render','startCase','model','User','union','queue','replace','ids','all','flatten','map','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','path','sox','to-csv','ejs','lodash','crypto','jsforce','querystring','papaparse','../../components/auth/service','api','../../config/utils','../../config/environment','../../mysqldb','redis','localhost','socket.io-emitter','./userNotification.socket','sendStatus','status','end','json','offset','limit','set','apply','save','update','then','destroy','error','stack','name','send','sendUserNotification','hasOwnProperty','text','body','TemplateId','Sequelize','ValidationError','view','Missing\x20\x27view\x27\x20parameter','recipients','Invalid\x20\x27recipients\x27\x20object','chatqueue','mailqueue','smsqueue'];(function(_0x41c707,_0x270eac){var _0x55ed18=function(_0x2d3b31){while(--_0x2d3b31){_0x41c707['push'](_0x41c707['shift']());}};_0x55ed18(++_0x270eac);}(_0x9c15,0x7c));var _0x59c1=function(_0x2f5ac5,_0x1ee939){_0x2f5ac5=_0x2f5ac5-0x0;var _0x37c9a8=_0x9c15[_0x2f5ac5];return _0x37c9a8;};'use strict';var emlformat=require(_0x59c1('0x0'));var rimraf=require(_0x59c1('0x1'));var zipdir=require(_0x59c1('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x59c1('0x3'));var moment=require(_0x59c1('0x4'));var BPromise=require(_0x59c1('0x5'));var Mustache=require('mustache');var util=require('util');var path=require(_0x59c1('0x6'));var sox=require(_0x59c1('0x7'));var csv=require(_0x59c1('0x8'));var ejs=require(_0x59c1('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x59c1('0xa'));var squel=require('squel');var crypto=require(_0x59c1('0xb'));var jsforce=require(_0x59c1('0xc'));var deskjs=require('desk.js');var toCsv=require(_0x59c1('0x8'));var querystring=require(_0x59c1('0xd'));var Papa=require(_0x59c1('0xe'));var Redis=require('ioredis');var authService=require(_0x59c1('0xf'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x59c1('0x10'));var utils=require(_0x59c1('0x11'));var config=require(_0x59c1('0x12'));var licenseUtil=require('../../config/license/util');var db=require(_0x59c1('0x13'))['db'];config['redis']=_['defaults'](config[_0x59c1('0x14')],{'host':_0x59c1('0x15'),'port':0x18eb});var socket=require(_0x59c1('0x16'))(new Redis(config[_0x59c1('0x14')]));require(_0x59c1('0x17'))['register'](socket);function respondWithStatusCode(_0x123f3a,_0x4e97ab){_0x4e97ab=_0x4e97ab||0xcc;return function(_0x88d3e9){if(_0x88d3e9){return _0x123f3a[_0x59c1('0x18')](_0x4e97ab);}return _0x123f3a[_0x59c1('0x19')](_0x4e97ab)[_0x59c1('0x1a')]();};}function respondWithResult(_0x5db366,_0x5bc4d2){_0x5bc4d2=_0x5bc4d2||0xc8;return function(_0x3bd2c2){if(_0x3bd2c2){return _0x5db366[_0x59c1('0x19')](_0x5bc4d2)[_0x59c1('0x1b')](_0x3bd2c2);}};}function respondWithFilteredResult(_0x8133f1,_0x2ba9af){return function(_0x315eee){if(_0x315eee){var _0x35de71=_0x315eee['count'],_0x4342e8=_0x2ba9af[_0x59c1('0x1c')],_0x29b092=_0x2ba9af[_0x59c1('0x1c')]+_0x2ba9af[_0x59c1('0x1d')],_0x1e9d4b;if(_0x29b092>=_0x35de71){_0x29b092=_0x35de71;_0x1e9d4b=0xc8;}else{_0x1e9d4b=0xce;}_0x8133f1[_0x59c1('0x19')](_0x1e9d4b);return _0x8133f1[_0x59c1('0x1e')]('Content-Range',_0x4342e8+'-'+_0x29b092+'/'+_0x35de71)['json'](_0x315eee);}return null;};}function patchUpdates(_0xa48e00){return function(_0x773229){try{jsonpatch[_0x59c1('0x1f')](_0x773229,_0xa48e00,!![]);}catch(_0x1f06cd){return BPromise['reject'](_0x1f06cd);}return _0x773229[_0x59c1('0x20')]();};}function saveUpdates(_0x221884,_0xe332c7){return function(_0x1a7678){if(_0x1a7678){return _0x1a7678[_0x59c1('0x21')](_0x221884)[_0x59c1('0x22')](function(_0x251042){return _0x251042;});}return null;};}function removeEntity(_0x5151ce,_0x42a3a7){return function(_0x25b0bd){if(_0x25b0bd){return _0x25b0bd[_0x59c1('0x23')]()[_0x59c1('0x22')](function(){_0x5151ce[_0x59c1('0x19')](0xcc)[_0x59c1('0x1a')]();});}};}function handleEntityNotFound(_0x21018a,_0x2902b6){return function(_0x430641){if(!_0x430641){_0x21018a[_0x59c1('0x18')](0x194);}return _0x430641;};}function handleError(_0x3080b2,_0x49736f){_0x49736f=_0x49736f||0x1f4;return function(_0x4837a5){logger[_0x59c1('0x24')](_0x4837a5[_0x59c1('0x25')]);if(_0x4837a5[_0x59c1('0x26')]){delete _0x4837a5[_0x59c1('0x26')];}_0x3080b2['status'](_0x49736f)[_0x59c1('0x27')](_0x4837a5);};}exports[_0x59c1('0x28')]=function(_0x132094,_0x4c62db,_0x575056){if(!_0x132094['body'][_0x59c1('0x29')](_0x59c1('0x2a'))&&!_0x132094[_0x59c1('0x2b')]['hasOwnProperty'](_0x59c1('0x2c'))){throw new db[(_0x59c1('0x2d'))][(_0x59c1('0x2e'))]('Must\x20specify\x20at\x20least\x20one\x20argument\x20for\x20\x27text\x27\x20or\x20\x27TemplateId\x27');}else{if(_0x132094[_0x59c1('0x2b')][_0x59c1('0x29')](_0x59c1('0x2c'))&&!_0x132094[_0x59c1('0x2b')][_0x59c1('0x29')](_0x59c1('0x2f'))){throw new db['Sequelize']['ValidationError'](_0x59c1('0x30'));}if(!_0x132094[_0x59c1('0x2b')][_0x59c1('0x29')]('recipients')){throw new db[(_0x59c1('0x2d'))][(_0x59c1('0x2e'))]('Missing\x20\x27recipients\x27\x20parameter');}else{try{var _0x1b0106=JSON['parse'](_0x132094[_0x59c1('0x2b')][_0x59c1('0x31')]);}catch(_0x48990a){logger[_0x59c1('0x24')](_0x48990a);throw new db[(_0x59c1('0x2d'))][(_0x59c1('0x2e'))](_0x59c1('0x32'));}var _0x5c0871=[_0x59c1('0x33'),'faxqueue',_0x59c1('0x34'),'openchannelqueue',_0x59c1('0x35'),'voicequeue','whatsappqueue',_0x59c1('0x36'),_0x59c1('0x37')];if(_['some'](_0x1b0106,function(_0x2ed740){return!_[_0x59c1('0x38')](_0x5c0871,_0x2ed740['model'][_0x59c1('0x39')]());})){throw new db[(_0x59c1('0x2d'))]['ValidationError'](_0x59c1('0x3a'));}}}var _0x4d6aad={};_0x4d6aad[_0x59c1('0x3b')]=_0x132094[_0x59c1('0x2b')][_0x59c1('0x29')]('senderName')?_0x132094[_0x59c1('0x2b')][_0x59c1('0x3b')]:_0x132094['user'][_0x59c1('0x3c')];_0x4d6aad['recipientsDescription']=_[_0x59c1('0x3d')](_0x132094[_0x59c1('0x2b')][_0x59c1('0x3e')])?null:_0x132094[_0x59c1('0x2b')][_0x59c1('0x3e')];_0x4d6aad[_0x59c1('0x3f')]=_0x132094[_0x59c1('0x2b')]['beep']||![];_0x4d6aad['SenderId']=_0x132094[_0x59c1('0x37')]['id'];return getContent(_0x132094[_0x59c1('0x2b')])[_0x59c1('0x22')](function(_0x17fc0b){_0x4d6aad[_0x59c1('0x2b')]=_0x17fc0b;return getRecipients(_0x1b0106);})[_0x59c1('0x22')](function(_0x523182){_0x4d6aad['recipientsId']=_[_0x59c1('0x40')](_0x523182)[_0x59c1('0x41')](',');return db[_0x59c1('0x42')][_0x59c1('0x43')](function(_0x30aba7){return db[_0x59c1('0x44')][_0x59c1('0x45')](_0x4d6aad,{'raw':!![],'transaction':_0x30aba7})[_0x59c1('0x22')](function(_0x764536){var _0x8de11f={'sender':_0x4d6aad['senderName'],'description':_0x4d6aad[_0x59c1('0x3e')],'content':_0x4d6aad[_0x59c1('0x2b')],'beep':_0x4d6aad[_0x59c1('0x3f')]};_0x523182[_0x59c1('0x46')](function(_0x4be77f){_0x8de11f[_0x59c1('0x47')]=_0x4be77f;socket['emit'](_0x59c1('0x48'),_0x8de11f);});return _0x764536;});});})[_0x59c1('0x22')](respondWithResult(_0x4c62db,0xc9))[_0x59c1('0x49')](handleError(_0x4c62db,null));};function getContent(_0x57827a){return new BPromise(function(_0x5aa0ce,_0x7582d6){if(_0x57827a['text']){_0x5aa0ce(_0x57827a[_0x59c1('0x2a')]);return;}return db[_0x59c1('0x4a')][_0x59c1('0x4b')]({'attributes':[_0x59c1('0x4c')],'where':{'id':_0x57827a[_0x59c1('0x2c')]},'raw':!![]})[_0x59c1('0x22')](function(_0x3d6373){if(!_0x3d6373)throw new db['Sequelize']['ValidationError'](_0x59c1('0x4d'));var _0x231e85=Mustache[_0x59c1('0x4e')](_0x3d6373[_0x59c1('0x4c')],_0x57827a[_0x59c1('0x2f')]);_0x5aa0ce(_0x231e85);})['catch'](function(_0x3629be){_0x7582d6(_0x3629be);});});}function getRecipients(_0x5dd497){return new BPromise(function(_0x50ccd2,_0x4c2c87){var _0x2a2d08=[];var _0x523fd7=[];_0x5dd497[_0x59c1('0x46')](function(_0x477a40){var _0x275830=_[_0x59c1('0x4f')](_0x477a40[_0x59c1('0x50')][_0x59c1('0x39')]());if(_0x275830===_0x59c1('0x51')){_0x2a2d08=_[_0x59c1('0x52')](_0x2a2d08,_0x477a40['ids']);}else{if(_['includes'](_0x275830,_0x59c1('0x53')))_0x275830=_0x275830[_0x59c1('0x54')](_0x59c1('0x53'),'Queue');_0x477a40[_0x59c1('0x55')][_0x59c1('0x46')](function(_0x1c7b77){_0x523fd7['push'](getAgents(_0x275830,_0x1c7b77));});}});return BPromise[_0x59c1('0x56')](_0x523fd7)[_0x59c1('0x22')](function(_0x412407){_0x2a2d08=_[_0x59c1('0x52')](_0x2a2d08,_[_0x59c1('0x57')](_0x412407));_0x50ccd2(_0x2a2d08);})[_0x59c1('0x49')](function(_0x5266f8){_0x4c2c87(_0x5266f8);});});}function getAgents(_0x1cbf72,_0x511cd3){return new BPromise(function(_0x52688b,_0x1e77f4){return db[_0x1cbf72][_0x59c1('0x4b')]({'where':{'id':_0x511cd3}})[_0x59c1('0x22')](function(_0x488b0e){return _0x488b0e['getAgents']({'attributes':['id'],'raw':!![]})[_0x59c1('0x22')](function(_0x17fa0f){var _0x15f268=_[_0x59c1('0x58')](_0x17fa0f,'id');_0x52688b(_0x15f268);});})['catch'](function(_0x380c13){_0x1e77f4(_0x380c13);});});}