Built motion from commit (unavailable).|2.5.5
[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 _0xed9e=['ejs','lodash','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/environment','defaults','redis','localhost','socket.io-emitter','./notification.socket','register','sendStatus','end','status','json','count','offset','limit','apply','save','update','then','destroy','stack','name','send','sendNotification','body','text','hasOwnProperty','TemplateId','Sequelize','ValidationError','view','Missing\x20\x27view\x27\x20parameter','recipients','Missing\x20\x27recipients\x27\x20parameter','parse','error','Invalid\x20\x27recipients\x27\x20object','faxqueue','mailqueue','openchannelqueue','smsqueue','whatsappqueue','user','some','includes','model','toLowerCase','Invalid\x20model\x20in\x20\x27recipients\x27\x20object','senderName','recipientsDescription','beep','SenderId','recipientsId','sortBy','sequelize','transaction','Notification','forEach','emit','notification:send','catch','Template','findOne','html','Invalid\x20\x27TemplateId\x27\x20parameter','User','union','ids','queue','replace','Queue','push','all','getAgents','map','html-pdf','eml-format','zip-dir','fast-json-patch','bluebird','mustache','util','path','to-csv'];(function(_0x170f4c,_0x4a4c80){var _0x52eedd=function(_0x473905){while(--_0x473905){_0x170f4c['push'](_0x170f4c['shift']());}};_0x52eedd(++_0x4a4c80);}(_0xed9e,0x1d2));var _0xeed9=function(_0xeb5ddc,_0x47cac9){_0xeb5ddc=_0xeb5ddc-0x0;var _0xfe6f47=_0xed9e[_0xeb5ddc];return _0xfe6f47;};'use strict';var pdf=require(_0xeed9('0x0'));var emlformat=require(_0xeed9('0x1'));var rimraf=require('rimraf');var zipdir=require(_0xeed9('0x2'));var jsonpatch=require(_0xeed9('0x3'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0xeed9('0x4'));var Mustache=require(_0xeed9('0x5'));var util=require(_0xeed9('0x6'));var path=require(_0xeed9('0x7'));var sox=require('sox');var csv=require(_0xeed9('0x8'));var ejs=require(_0xeed9('0x9'));var fs=require('fs');var _=require(_0xeed9('0xa'));var squel=require(_0xeed9('0xb'));var crypto=require(_0xeed9('0xc'));var jsforce=require(_0xeed9('0xd'));var deskjs=require(_0xeed9('0xe'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0xeed9('0xf'));var Redis=require(_0xeed9('0x10'));var authService=require('../../components/auth/service');var qs=require(_0xeed9('0x11'));var as=require(_0xeed9('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xeed9('0x13'))('api');var utils=require(_0xeed9('0x14'));var config=require(_0xeed9('0x15'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];config['redis']=_[_0xeed9('0x16')](config[_0xeed9('0x17')],{'host':_0xeed9('0x18'),'port':0x18eb});var socket=require(_0xeed9('0x19'))(new Redis(config['redis']));require(_0xeed9('0x1a'))[_0xeed9('0x1b')](socket);function respondWithStatusCode(_0x2c2642,_0x1867cc){_0x1867cc=_0x1867cc||0xcc;return function(_0x32b340){if(_0x32b340){return _0x2c2642[_0xeed9('0x1c')](_0x1867cc);}return _0x2c2642['status'](_0x1867cc)[_0xeed9('0x1d')]();};}function respondWithResult(_0x5d99c1,_0x376adb){_0x376adb=_0x376adb||0xc8;return function(_0x230d0c){if(_0x230d0c){return _0x5d99c1[_0xeed9('0x1e')](_0x376adb)[_0xeed9('0x1f')](_0x230d0c);}};}function respondWithFilteredResult(_0x2efc31,_0x36448a){return function(_0x1b4328){if(_0x1b4328){var _0x3d3bbd=_0x1b4328[_0xeed9('0x20')],_0xe08cf8=_0x36448a[_0xeed9('0x21')],_0x2bc942=_0x36448a['offset']+_0x36448a[_0xeed9('0x22')],_0x35b099;if(_0x2bc942>=_0x3d3bbd){_0x2bc942=_0x3d3bbd;_0x35b099=0xc8;}else{_0x35b099=0xce;}_0x2efc31[_0xeed9('0x1e')](_0x35b099);return _0x2efc31['set']('Content-Range',_0xe08cf8+'-'+_0x2bc942+'/'+_0x3d3bbd)[_0xeed9('0x1f')](_0x1b4328);}return null;};}function patchUpdates(_0x4d45ea){return function(_0x500b40){try{jsonpatch[_0xeed9('0x23')](_0x500b40,_0x4d45ea,!![]);}catch(_0x42dceb){return BPromise['reject'](_0x42dceb);}return _0x500b40[_0xeed9('0x24')]();};}function saveUpdates(_0x4237d6,_0x111a76){return function(_0x27a5e4){if(_0x27a5e4){return _0x27a5e4[_0xeed9('0x25')](_0x4237d6)[_0xeed9('0x26')](function(_0x4f54bd){return _0x4f54bd;});}return null;};}function removeEntity(_0x3efe6a,_0x15c0c4){return function(_0x164b40){if(_0x164b40){return _0x164b40[_0xeed9('0x27')]()[_0xeed9('0x26')](function(){_0x3efe6a[_0xeed9('0x1e')](0xcc)['end']();});}};}function handleEntityNotFound(_0x21646f,_0x151169){return function(_0x105eac){if(!_0x105eac){_0x21646f[_0xeed9('0x1c')](0x194);}return _0x105eac;};}function handleError(_0x25599f,_0x5c2b9a){_0x5c2b9a=_0x5c2b9a||0x1f4;return function(_0x4d236f){logger['error'](_0x4d236f[_0xeed9('0x28')]);if(_0x4d236f[_0xeed9('0x29')]){delete _0x4d236f[_0xeed9('0x29')];}_0x25599f[_0xeed9('0x1e')](_0x5c2b9a)[_0xeed9('0x2a')](_0x4d236f);};}exports[_0xeed9('0x2b')]=function(_0x4e3bc6,_0x4f5665,_0x19db36){if(!_0x4e3bc6[_0xeed9('0x2c')]['hasOwnProperty'](_0xeed9('0x2d'))&&!_0x4e3bc6['body'][_0xeed9('0x2e')](_0xeed9('0x2f'))){throw new db[(_0xeed9('0x30'))][(_0xeed9('0x31'))]('Must\x20specify\x20at\x20least\x20one\x20argument\x20for\x20\x27text\x27\x20or\x20\x27TemplateId\x27');}else{if(_0x4e3bc6['body'][_0xeed9('0x2e')](_0xeed9('0x2f'))&&!_0x4e3bc6[_0xeed9('0x2c')][_0xeed9('0x2e')](_0xeed9('0x32'))){throw new db[(_0xeed9('0x30'))][(_0xeed9('0x31'))](_0xeed9('0x33'));}if(!_0x4e3bc6['body'][_0xeed9('0x2e')](_0xeed9('0x34'))){throw new db[(_0xeed9('0x30'))][(_0xeed9('0x31'))](_0xeed9('0x35'));}else{try{var _0xb91d7=JSON[_0xeed9('0x36')](_0x4e3bc6[_0xeed9('0x2c')]['recipients']);}catch(_0x374917){logger[_0xeed9('0x37')](_0x374917);throw new db[(_0xeed9('0x30'))][(_0xeed9('0x31'))](_0xeed9('0x38'));}var _0x377ea4=['chatqueue',_0xeed9('0x39'),_0xeed9('0x3a'),_0xeed9('0x3b'),_0xeed9('0x3c'),'voicequeue',_0xeed9('0x3d'),'team',_0xeed9('0x3e')];if(_[_0xeed9('0x3f')](_0xb91d7,function(_0xd331a1){return!_[_0xeed9('0x40')](_0x377ea4,_0xd331a1[_0xeed9('0x41')][_0xeed9('0x42')]());})){throw new db[(_0xeed9('0x30'))][(_0xeed9('0x31'))](_0xeed9('0x43'));}}}var _0x2518c5={};_0x2518c5[_0xeed9('0x44')]=_0x4e3bc6[_0xeed9('0x2c')][_0xeed9('0x2e')]('senderName')?_0x4e3bc6[_0xeed9('0x2c')]['senderName']:_0x4e3bc6[_0xeed9('0x3e')]['fullname'];_0x2518c5[_0xeed9('0x45')]=_['isEmpty'](_0x4e3bc6[_0xeed9('0x2c')][_0xeed9('0x45')])?null:_0x4e3bc6['body'][_0xeed9('0x45')];_0x2518c5[_0xeed9('0x46')]=_0x4e3bc6[_0xeed9('0x2c')][_0xeed9('0x46')]||![];_0x2518c5[_0xeed9('0x47')]=_0x4e3bc6['user']['id'];return getContent(_0x4e3bc6[_0xeed9('0x2c')])['then'](function(_0x398b5e){_0x2518c5[_0xeed9('0x2c')]=_0x398b5e;return getRecipients(_0xb91d7);})[_0xeed9('0x26')](function(_0x3513db){_0x2518c5[_0xeed9('0x48')]=_[_0xeed9('0x49')](_0x3513db)['join'](',');return db[_0xeed9('0x4a')][_0xeed9('0x4b')](function(_0x563578){return db[_0xeed9('0x4c')]['create'](_0x2518c5,{'raw':!![],'transaction':_0x563578})[_0xeed9('0x26')](function(_0xb0bedc){var _0x2b0cb2={'sender':_0x2518c5[_0xeed9('0x44')],'description':_0x2518c5[_0xeed9('0x45')],'content':_0x2518c5[_0xeed9('0x2c')],'beep':_0x2518c5['beep']};_0x3513db[_0xeed9('0x4d')](function(_0x56db77){_0x2b0cb2['recipient']=_0x56db77;socket[_0xeed9('0x4e')](_0xeed9('0x4f'),_0x2b0cb2);});return _0xb0bedc;});});})[_0xeed9('0x26')](respondWithResult(_0x4f5665,0xc9))[_0xeed9('0x50')](handleError(_0x4f5665,null));};function getContent(_0x1a39b7){return new BPromise(function(_0xd6f257,_0xe5b7e0){if(_0x1a39b7[_0xeed9('0x2d')]){_0xd6f257(_0x1a39b7[_0xeed9('0x2d')]);return;}return db[_0xeed9('0x51')][_0xeed9('0x52')]({'attributes':[_0xeed9('0x53')],'where':{'id':_0x1a39b7[_0xeed9('0x2f')]},'raw':!![]})[_0xeed9('0x26')](function(_0x40a5d3){if(!_0x40a5d3)throw new db[(_0xeed9('0x30'))][(_0xeed9('0x31'))](_0xeed9('0x54'));var _0xdec8c4=Mustache['render'](_0x40a5d3[_0xeed9('0x53')],_0x1a39b7['view']);_0xd6f257(_0xdec8c4);})[_0xeed9('0x50')](function(_0x372fe0){_0xe5b7e0(_0x372fe0);});});}function getRecipients(_0x51b61c){return new BPromise(function(_0x514884,_0x180fa1){var _0x3e238f=[];var _0x2adeee=[];_0x51b61c['forEach'](function(_0x3aea5f){var _0x3d9d8a=_['startCase'](_0x3aea5f[_0xeed9('0x41')][_0xeed9('0x42')]());if(_0x3d9d8a===_0xeed9('0x55')){_0x3e238f=_[_0xeed9('0x56')](_0x3e238f,_0x3aea5f[_0xeed9('0x57')]);}else{if(_['includes'](_0x3d9d8a,_0xeed9('0x58')))_0x3d9d8a=_0x3d9d8a[_0xeed9('0x59')]('queue',_0xeed9('0x5a'));_0x3aea5f['ids'][_0xeed9('0x4d')](function(_0x5ab3a9){_0x2adeee[_0xeed9('0x5b')](getAgents(_0x3d9d8a,_0x5ab3a9));});}});return BPromise[_0xeed9('0x5c')](_0x2adeee)[_0xeed9('0x26')](function(_0x260bef){_0x3e238f=_['union'](_0x3e238f,_['flatten'](_0x260bef));_0x514884(_0x3e238f);})[_0xeed9('0x50')](function(_0x1647c5){_0x180fa1(_0x1647c5);});});}function getAgents(_0xca4159,_0x152b6e){return new BPromise(function(_0x18211b,_0x3031f5){return db[_0xca4159][_0xeed9('0x52')]({'where':{'id':_0x152b6e}})['then'](function(_0x9e651f){return _0x9e651f[_0xeed9('0x5d')]({'attributes':['id'],'raw':!![]})[_0xeed9('0x26')](function(_0xc80e0f){var _0x79c985=_[_0xeed9('0x5e')](_0xc80e0f,'id');_0x18211b(_0x79c985);});})['catch'](function(_0x262da7){_0x3031f5(_0x262da7);});});}