Built motion from commit (unavailable).|2.5.15
[motion2.git] / server / api / notification / notification.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 _0x9158=['team','user','some','includes','toLowerCase','Invalid\x20model\x20in\x20\x27recipients\x27\x20object','senderName','fullname','recipientsDescription','beep','SenderId','recipientsId','sortBy','join','sequelize','transaction','Notification','create','forEach','notification:send','Template','findOne','Invalid\x20\x27TemplateId\x27\x20parameter','render','html','startCase','User','union','ids','queue','replace','Queue','push','all','flatten','map','catch','html-pdf','rimraf','fast-json-patch','request-promise','bluebird','mustache','path','sox','to-csv','ejs','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/environment','../../mysqldb','redis','localhost','socket.io-emitter','register','sendStatus','status','end','json','offset','limit','set','Content-Range','apply','reject','save','update','then','name','send','body','hasOwnProperty','text','TemplateId','Sequelize','ValidationError','view','Missing\x20\x27view\x27\x20parameter','recipients','Missing\x20\x27recipients\x27\x20parameter','parse','error','Invalid\x20\x27recipients\x27\x20object','chatqueue','faxqueue','mailqueue','openchannelqueue','voicequeue','whatsappqueue'];(function(_0x3057d0,_0x19d7b1){var _0x4ff4f8=function(_0x51e91f){while(--_0x51e91f){_0x3057d0['push'](_0x3057d0['shift']());}};_0x4ff4f8(++_0x19d7b1);}(_0x9158,0xe9));var _0x8915=function(_0x413d73,_0x2c7475){_0x413d73=_0x413d73-0x0;var _0x3af57f=_0x9158[_0x413d73];return _0x3af57f;};'use strict';var pdf=require(_0x8915('0x0'));var emlformat=require('eml-format');var rimraf=require(_0x8915('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x8915('0x2'));var rp=require(_0x8915('0x3'));var moment=require('moment');var BPromise=require(_0x8915('0x4'));var Mustache=require(_0x8915('0x5'));var util=require('util');var path=require(_0x8915('0x6'));var sox=require(_0x8915('0x7'));var csv=require(_0x8915('0x8'));var ejs=require(_0x8915('0x9'));var fs=require('fs');var _=require('lodash');var squel=require(_0x8915('0xa'));var crypto=require(_0x8915('0xb'));var jsforce=require(_0x8915('0xc'));var deskjs=require(_0x8915('0xd'));var toCsv=require(_0x8915('0x8'));var querystring=require(_0x8915('0xe'));var Papa=require('papaparse');var Redis=require(_0x8915('0xf'));var authService=require(_0x8915('0x10'));var qs=require(_0x8915('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x8915('0x12'));var logger=require(_0x8915('0x13'))(_0x8915('0x14'));var utils=require('../../config/utils');var config=require(_0x8915('0x15'));var licenseUtil=require('../../config/license/util');var db=require(_0x8915('0x16'))['db'];config[_0x8915('0x17')]=_['defaults'](config[_0x8915('0x17')],{'host':_0x8915('0x18'),'port':0x18eb});var socket=require(_0x8915('0x19'))(new Redis(config['redis']));require('./notification.socket')[_0x8915('0x1a')](socket);function respondWithStatusCode(_0x291a5b,_0x5a9926){_0x5a9926=_0x5a9926||0xcc;return function(_0x256c0a){if(_0x256c0a){return _0x291a5b[_0x8915('0x1b')](_0x5a9926);}return _0x291a5b[_0x8915('0x1c')](_0x5a9926)[_0x8915('0x1d')]();};}function respondWithResult(_0xc6a619,_0x1fd794){_0x1fd794=_0x1fd794||0xc8;return function(_0x2b4af2){if(_0x2b4af2){return _0xc6a619[_0x8915('0x1c')](_0x1fd794)[_0x8915('0x1e')](_0x2b4af2);}};}function respondWithFilteredResult(_0x4b0c39,_0x31c485){return function(_0x335f50){if(_0x335f50){var _0xe71274=_0x335f50['count'],_0x590a70=_0x31c485[_0x8915('0x1f')],_0x5327e6=_0x31c485[_0x8915('0x1f')]+_0x31c485[_0x8915('0x20')],_0xc9ccee;if(_0x5327e6>=_0xe71274){_0x5327e6=_0xe71274;_0xc9ccee=0xc8;}else{_0xc9ccee=0xce;}_0x4b0c39[_0x8915('0x1c')](_0xc9ccee);return _0x4b0c39[_0x8915('0x21')](_0x8915('0x22'),_0x590a70+'-'+_0x5327e6+'/'+_0xe71274)[_0x8915('0x1e')](_0x335f50);}return null;};}function patchUpdates(_0x2946ea){return function(_0x17b9f5){try{jsonpatch[_0x8915('0x23')](_0x17b9f5,_0x2946ea,!![]);}catch(_0xf8cfae){return BPromise[_0x8915('0x24')](_0xf8cfae);}return _0x17b9f5[_0x8915('0x25')]();};}function saveUpdates(_0x45a77b,_0x40a486){return function(_0xb3340d){if(_0xb3340d){return _0xb3340d[_0x8915('0x26')](_0x45a77b)[_0x8915('0x27')](function(_0x380570){return _0x380570;});}return null;};}function removeEntity(_0x51a0e5,_0x584aa5){return function(_0x42ac1d){if(_0x42ac1d){return _0x42ac1d['destroy']()['then'](function(){_0x51a0e5[_0x8915('0x1c')](0xcc)[_0x8915('0x1d')]();});}};}function handleEntityNotFound(_0x4223ed,_0x36bb6a){return function(_0x28408c){if(!_0x28408c){_0x4223ed[_0x8915('0x1b')](0x194);}return _0x28408c;};}function handleError(_0x544cbb,_0x5218c2){_0x5218c2=_0x5218c2||0x1f4;return function(_0x241851){logger['error'](_0x241851['stack']);if(_0x241851[_0x8915('0x28')]){delete _0x241851['name'];}_0x544cbb[_0x8915('0x1c')](_0x5218c2)[_0x8915('0x29')](_0x241851);};}exports['sendNotification']=function(_0x1bea79,_0x1435a4,_0x394293){if(!_0x1bea79[_0x8915('0x2a')][_0x8915('0x2b')](_0x8915('0x2c'))&&!_0x1bea79[_0x8915('0x2a')]['hasOwnProperty'](_0x8915('0x2d'))){throw new db[(_0x8915('0x2e'))][(_0x8915('0x2f'))]('Must\x20specify\x20at\x20least\x20one\x20argument\x20for\x20\x27text\x27\x20or\x20\x27TemplateId\x27');}else{if(_0x1bea79[_0x8915('0x2a')][_0x8915('0x2b')](_0x8915('0x2d'))&&!_0x1bea79[_0x8915('0x2a')][_0x8915('0x2b')](_0x8915('0x30'))){throw new db[(_0x8915('0x2e'))][(_0x8915('0x2f'))](_0x8915('0x31'));}if(!_0x1bea79[_0x8915('0x2a')][_0x8915('0x2b')](_0x8915('0x32'))){throw new db[(_0x8915('0x2e'))][(_0x8915('0x2f'))](_0x8915('0x33'));}else{try{var _0x3a0fbd=JSON[_0x8915('0x34')](_0x1bea79[_0x8915('0x2a')]['recipients']);}catch(_0x464557){logger[_0x8915('0x35')](_0x464557);throw new db[(_0x8915('0x2e'))][(_0x8915('0x2f'))](_0x8915('0x36'));}var _0x463b96=[_0x8915('0x37'),_0x8915('0x38'),_0x8915('0x39'),_0x8915('0x3a'),'smsqueue',_0x8915('0x3b'),_0x8915('0x3c'),_0x8915('0x3d'),_0x8915('0x3e')];if(_[_0x8915('0x3f')](_0x3a0fbd,function(_0x53b42b){return!_[_0x8915('0x40')](_0x463b96,_0x53b42b['model'][_0x8915('0x41')]());})){throw new db[(_0x8915('0x2e'))][(_0x8915('0x2f'))](_0x8915('0x42'));}}}var _0x5923cf={};_0x5923cf['senderName']=_0x1bea79[_0x8915('0x2a')][_0x8915('0x2b')](_0x8915('0x43'))?_0x1bea79[_0x8915('0x2a')][_0x8915('0x43')]:_0x1bea79[_0x8915('0x3e')][_0x8915('0x44')];_0x5923cf['recipientsDescription']=_['isEmpty'](_0x1bea79['body'][_0x8915('0x45')])?null:_0x1bea79[_0x8915('0x2a')][_0x8915('0x45')];_0x5923cf['beep']=_0x1bea79['body'][_0x8915('0x46')]||![];_0x5923cf[_0x8915('0x47')]=_0x1bea79[_0x8915('0x3e')]['id'];return getContent(_0x1bea79['body'])[_0x8915('0x27')](function(_0x10b6af){_0x5923cf['body']=_0x10b6af;return getRecipients(_0x3a0fbd);})[_0x8915('0x27')](function(_0xac839a){_0x5923cf[_0x8915('0x48')]=_[_0x8915('0x49')](_0xac839a)[_0x8915('0x4a')](',');return db[_0x8915('0x4b')][_0x8915('0x4c')](function(_0x3beca7){return db[_0x8915('0x4d')][_0x8915('0x4e')](_0x5923cf,{'raw':!![],'transaction':_0x3beca7})['then'](function(_0x33f03f){var _0x5cce6c={'sender':_0x5923cf['senderName'],'description':_0x5923cf[_0x8915('0x45')],'content':_0x5923cf[_0x8915('0x2a')],'beep':_0x5923cf[_0x8915('0x46')]};_0xac839a[_0x8915('0x4f')](function(_0x274258){_0x5cce6c['recipient']=_0x274258;socket['emit'](_0x8915('0x50'),_0x5cce6c);});return _0x33f03f;});});})[_0x8915('0x27')](respondWithResult(_0x1435a4,0xc9))['catch'](handleError(_0x1435a4,null));};function getContent(_0x357a9d){return new BPromise(function(_0x3439a0,_0x3a8dd7){if(_0x357a9d[_0x8915('0x2c')]){_0x3439a0(_0x357a9d[_0x8915('0x2c')]);return;}return db[_0x8915('0x51')][_0x8915('0x52')]({'attributes':['html'],'where':{'id':_0x357a9d[_0x8915('0x2d')]},'raw':!![]})[_0x8915('0x27')](function(_0x4c90da){if(!_0x4c90da)throw new db['Sequelize']['ValidationError'](_0x8915('0x53'));var _0x4653f0=Mustache[_0x8915('0x54')](_0x4c90da[_0x8915('0x55')],_0x357a9d[_0x8915('0x30')]);_0x3439a0(_0x4653f0);})['catch'](function(_0x3d8684){_0x3a8dd7(_0x3d8684);});});}function getRecipients(_0x74f7c9){return new BPromise(function(_0x5e8af2,_0x19750c){var _0x34fa5e=[];var _0x5c0b9c=[];_0x74f7c9['forEach'](function(_0x59f275){var _0x10a8d4=_[_0x8915('0x56')](_0x59f275['model']['toLowerCase']());if(_0x10a8d4===_0x8915('0x57')){_0x34fa5e=_[_0x8915('0x58')](_0x34fa5e,_0x59f275[_0x8915('0x59')]);}else{if(_[_0x8915('0x40')](_0x10a8d4,_0x8915('0x5a')))_0x10a8d4=_0x10a8d4[_0x8915('0x5b')](_0x8915('0x5a'),_0x8915('0x5c'));_0x59f275[_0x8915('0x59')][_0x8915('0x4f')](function(_0x32a8e0){_0x5c0b9c[_0x8915('0x5d')](getAgents(_0x10a8d4,_0x32a8e0));});}});return BPromise[_0x8915('0x5e')](_0x5c0b9c)[_0x8915('0x27')](function(_0x30fecd){_0x34fa5e=_[_0x8915('0x58')](_0x34fa5e,_[_0x8915('0x5f')](_0x30fecd));_0x5e8af2(_0x34fa5e);})['catch'](function(_0x2b64ba){_0x19750c(_0x2b64ba);});});}function getAgents(_0x269cbb,_0x410939){return new BPromise(function(_0x5f5437,_0xe55055){return db[_0x269cbb]['findOne']({'where':{'id':_0x410939}})[_0x8915('0x27')](function(_0x5579f6){return _0x5579f6['getAgents']({'attributes':['id'],'raw':!![]})[_0x8915('0x27')](function(_0x42d313){var _0x18a2e4=_[_0x8915('0x60')](_0x42d313,'id');_0x5f5437(_0x18a2e4);});})[_0x8915('0x61')](function(_0x3bae9a){_0xe55055(_0x3bae9a);});});}