Built motion from commit (unavailable).|2.5.3
[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 _0x7c9c=['fast-json-patch','request-promise','moment','bluebird','util','sox','to-csv','ejs','lodash','squel','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/utils','../../config/environment','defaults','redis','localhost','socket.io-emitter','./notification.socket','register','sendStatus','status','end','json','count','offset','limit','set','Content-Range','apply','reject','then','destroy','error','stack','name','send','body','hasOwnProperty','text','TemplateId','Sequelize','ValidationError','view','Missing\x20\x27view\x27\x20parameter','Missing\x20\x27recipients\x27\x20parameter','Invalid\x20\x27recipients\x27\x20object','chatqueue','faxqueue','openchannelqueue','smsqueue','voicequeue','whatsappqueue','team','user','some','model','toLowerCase','Invalid\x20model\x20in\x20\x27recipients\x27\x20object','senderName','fullname','recipientsDescription','beep','SenderId','sortBy','sequelize','transaction','Notification','forEach','recipient','emit','notification:send','catch','Template','html','Invalid\x20\x27TemplateId\x27\x20parameter','startCase','User','union','ids','includes','queue','Queue','push','all','flatten','findOne','getAgents','map','eml-format','rimraf'];(function(_0xc0c7d3,_0x4201bd){var _0x574c0d=function(_0x3ba72e){while(--_0x3ba72e){_0xc0c7d3['push'](_0xc0c7d3['shift']());}};_0x574c0d(++_0x4201bd);}(_0x7c9c,0x1e3));var _0xc7c9=function(_0x371b64,_0x67b4bb){_0x371b64=_0x371b64-0x0;var _0x3cf3b1=_0x7c9c[_0x371b64];return _0x3cf3b1;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0xc7c9('0x0'));var rimraf=require(_0xc7c9('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xc7c9('0x2'));var rp=require(_0xc7c9('0x3'));var moment=require(_0xc7c9('0x4'));var BPromise=require(_0xc7c9('0x5'));var Mustache=require('mustache');var util=require(_0xc7c9('0x6'));var path=require('path');var sox=require(_0xc7c9('0x7'));var csv=require(_0xc7c9('0x8'));var ejs=require(_0xc7c9('0x9'));var fs=require('fs');var _=require(_0xc7c9('0xa'));var squel=require(_0xc7c9('0xb'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0xc7c9('0xc'));var toCsv=require(_0xc7c9('0x8'));var querystring=require(_0xc7c9('0xd'));var Papa=require(_0xc7c9('0xe'));var Redis=require(_0xc7c9('0xf'));var authService=require(_0xc7c9('0x10'));var qs=require(_0xc7c9('0x11'));var as=require(_0xc7c9('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0xc7c9('0x13'));var utils=require(_0xc7c9('0x14'));var config=require(_0xc7c9('0x15'));var db=require('../../mysqldb')['db'];config['redis']=_[_0xc7c9('0x16')](config[_0xc7c9('0x17')],{'host':_0xc7c9('0x18'),'port':0x18eb});var socket=require(_0xc7c9('0x19'))(new Redis(config[_0xc7c9('0x17')]));require(_0xc7c9('0x1a'))[_0xc7c9('0x1b')](socket);function respondWithStatusCode(_0x5c88c6,_0x2e8fd2){_0x2e8fd2=_0x2e8fd2||0xcc;return function(_0x15ead8){if(_0x15ead8){return _0x5c88c6[_0xc7c9('0x1c')](_0x2e8fd2);}return _0x5c88c6[_0xc7c9('0x1d')](_0x2e8fd2)[_0xc7c9('0x1e')]();};}function respondWithResult(_0x3af7ac,_0x37b08f){_0x37b08f=_0x37b08f||0xc8;return function(_0x352a66){if(_0x352a66){return _0x3af7ac[_0xc7c9('0x1d')](_0x37b08f)[_0xc7c9('0x1f')](_0x352a66);}};}function respondWithFilteredResult(_0x26ef48,_0x535b90){return function(_0x40004d){if(_0x40004d){var _0x1d9caf=_0x40004d[_0xc7c9('0x20')],_0x3b47d1=_0x535b90['offset'],_0x28aa91=_0x535b90[_0xc7c9('0x21')]+_0x535b90[_0xc7c9('0x22')],_0x251587;if(_0x28aa91>=_0x1d9caf){_0x28aa91=_0x1d9caf;_0x251587=0xc8;}else{_0x251587=0xce;}_0x26ef48[_0xc7c9('0x1d')](_0x251587);return _0x26ef48[_0xc7c9('0x23')](_0xc7c9('0x24'),_0x3b47d1+'-'+_0x28aa91+'/'+_0x1d9caf)[_0xc7c9('0x1f')](_0x40004d);}return null;};}function patchUpdates(_0xe96986){return function(_0x372467){try{jsonpatch[_0xc7c9('0x25')](_0x372467,_0xe96986,!![]);}catch(_0xb8ee45){return BPromise[_0xc7c9('0x26')](_0xb8ee45);}return _0x372467['save']();};}function saveUpdates(_0x1cf757,_0x15bed7){return function(_0x3d0ea8){if(_0x3d0ea8){return _0x3d0ea8['update'](_0x1cf757)[_0xc7c9('0x27')](function(_0x55eea6){return _0x55eea6;});}return null;};}function removeEntity(_0x77030,_0x3d3a96){return function(_0x59766c){if(_0x59766c){return _0x59766c[_0xc7c9('0x28')]()[_0xc7c9('0x27')](function(){_0x77030[_0xc7c9('0x1d')](0xcc)[_0xc7c9('0x1e')]();});}};}function handleEntityNotFound(_0x3d0d15,_0x1b4b71){return function(_0x5975d2){if(!_0x5975d2){_0x3d0d15[_0xc7c9('0x1c')](0x194);}return _0x5975d2;};}function handleError(_0x5373c5,_0x38fde9){_0x38fde9=_0x38fde9||0x1f4;return function(_0x383967){logger[_0xc7c9('0x29')](_0x383967[_0xc7c9('0x2a')]);if(_0x383967[_0xc7c9('0x2b')]){delete _0x383967[_0xc7c9('0x2b')];}_0x5373c5[_0xc7c9('0x1d')](_0x38fde9)[_0xc7c9('0x2c')](_0x383967);};}exports['sendNotification']=function(_0x51e45a,_0x3afb6d,_0x21336a){if(!_0x51e45a[_0xc7c9('0x2d')][_0xc7c9('0x2e')](_0xc7c9('0x2f'))&&!_0x51e45a['body']['hasOwnProperty'](_0xc7c9('0x30'))){throw new db[(_0xc7c9('0x31'))][(_0xc7c9('0x32'))]('Must\x20specify\x20at\x20least\x20one\x20argument\x20for\x20\x27text\x27\x20or\x20\x27TemplateId\x27');}else{if(_0x51e45a[_0xc7c9('0x2d')][_0xc7c9('0x2e')](_0xc7c9('0x30'))&&!_0x51e45a[_0xc7c9('0x2d')][_0xc7c9('0x2e')](_0xc7c9('0x33'))){throw new db[(_0xc7c9('0x31'))][(_0xc7c9('0x32'))](_0xc7c9('0x34'));}if(!_0x51e45a[_0xc7c9('0x2d')][_0xc7c9('0x2e')]('recipients')){throw new db[(_0xc7c9('0x31'))][(_0xc7c9('0x32'))](_0xc7c9('0x35'));}else{try{var _0x5bb2dd=JSON['parse'](_0x51e45a[_0xc7c9('0x2d')]['recipients']);}catch(_0x5818b8){logger[_0xc7c9('0x29')](_0x5818b8);throw new db['Sequelize'][(_0xc7c9('0x32'))](_0xc7c9('0x36'));}var _0x408e94=[_0xc7c9('0x37'),_0xc7c9('0x38'),'mailqueue',_0xc7c9('0x39'),_0xc7c9('0x3a'),_0xc7c9('0x3b'),_0xc7c9('0x3c'),_0xc7c9('0x3d'),_0xc7c9('0x3e')];if(_[_0xc7c9('0x3f')](_0x5bb2dd,function(_0x5cdeb4){return!_['includes'](_0x408e94,_0x5cdeb4[_0xc7c9('0x40')][_0xc7c9('0x41')]());})){throw new db[(_0xc7c9('0x31'))][(_0xc7c9('0x32'))](_0xc7c9('0x42'));}}}var _0x4d0cb1={};_0x4d0cb1[_0xc7c9('0x43')]=_0x51e45a[_0xc7c9('0x2d')][_0xc7c9('0x2e')](_0xc7c9('0x43'))?_0x51e45a[_0xc7c9('0x2d')][_0xc7c9('0x43')]:_0x51e45a[_0xc7c9('0x3e')][_0xc7c9('0x44')];_0x4d0cb1[_0xc7c9('0x45')]=_['isEmpty'](_0x51e45a[_0xc7c9('0x2d')]['recipientsDescription'])?null:_0x51e45a['body'][_0xc7c9('0x45')];_0x4d0cb1[_0xc7c9('0x46')]=_0x51e45a[_0xc7c9('0x2d')][_0xc7c9('0x46')]||![];_0x4d0cb1[_0xc7c9('0x47')]=_0x51e45a['user']['id'];return getContent(_0x51e45a['body'])[_0xc7c9('0x27')](function(_0x4cc4e5){_0x4d0cb1['body']=_0x4cc4e5;return getRecipients(_0x5bb2dd);})[_0xc7c9('0x27')](function(_0x687494){_0x4d0cb1['recipientsId']=_[_0xc7c9('0x48')](_0x687494)['join'](',');return db[_0xc7c9('0x49')][_0xc7c9('0x4a')](function(_0x49afe3){return db[_0xc7c9('0x4b')]['create'](_0x4d0cb1,{'raw':!![],'transaction':_0x49afe3})['then'](function(_0x3c53c9){var _0x22aa00={'sender':_0x4d0cb1[_0xc7c9('0x43')],'description':_0x4d0cb1[_0xc7c9('0x45')],'content':_0x4d0cb1[_0xc7c9('0x2d')],'beep':_0x4d0cb1[_0xc7c9('0x46')]};_0x687494[_0xc7c9('0x4c')](function(_0x541e99){_0x22aa00[_0xc7c9('0x4d')]=_0x541e99;socket[_0xc7c9('0x4e')](_0xc7c9('0x4f'),_0x22aa00);});return _0x3c53c9;});});})[_0xc7c9('0x27')](respondWithResult(_0x3afb6d,0xc9))[_0xc7c9('0x50')](handleError(_0x3afb6d,null));};function getContent(_0x5f3d47){return new BPromise(function(_0x595092,_0x3d8ec4){if(_0x5f3d47['text']){_0x595092(_0x5f3d47[_0xc7c9('0x2f')]);return;}return db[_0xc7c9('0x51')]['findOne']({'attributes':[_0xc7c9('0x52')],'where':{'id':_0x5f3d47['TemplateId']},'raw':!![]})[_0xc7c9('0x27')](function(_0x4de74a){if(!_0x4de74a)throw new db['Sequelize'][(_0xc7c9('0x32'))](_0xc7c9('0x53'));var _0x300ebd=Mustache['render'](_0x4de74a[_0xc7c9('0x52')],_0x5f3d47[_0xc7c9('0x33')]);_0x595092(_0x300ebd);})[_0xc7c9('0x50')](function(_0x14ac17){_0x3d8ec4(_0x14ac17);});});}function getRecipients(_0xd4fa51){return new BPromise(function(_0x3c2410,_0x3f5ce5){var _0x5c363a=[];var _0x1c9f6e=[];_0xd4fa51[_0xc7c9('0x4c')](function(_0x2fc154){var _0x5f36d0=_[_0xc7c9('0x54')](_0x2fc154[_0xc7c9('0x40')][_0xc7c9('0x41')]());if(_0x5f36d0===_0xc7c9('0x55')){_0x5c363a=_[_0xc7c9('0x56')](_0x5c363a,_0x2fc154[_0xc7c9('0x57')]);}else{if(_[_0xc7c9('0x58')](_0x5f36d0,'queue'))_0x5f36d0=_0x5f36d0['replace'](_0xc7c9('0x59'),_0xc7c9('0x5a'));_0x2fc154[_0xc7c9('0x57')][_0xc7c9('0x4c')](function(_0x2be98a){_0x1c9f6e[_0xc7c9('0x5b')](getAgents(_0x5f36d0,_0x2be98a));});}});return BPromise[_0xc7c9('0x5c')](_0x1c9f6e)[_0xc7c9('0x27')](function(_0x397efc){_0x5c363a=_['union'](_0x5c363a,_[_0xc7c9('0x5d')](_0x397efc));_0x3c2410(_0x5c363a);})[_0xc7c9('0x50')](function(_0x364e24){_0x3f5ce5(_0x364e24);});});}function getAgents(_0x19964c,_0x73a80f){return new BPromise(function(_0x462c6d,_0x4af975){return db[_0x19964c][_0xc7c9('0x5e')]({'where':{'id':_0x73a80f}})[_0xc7c9('0x27')](function(_0x53dccf){return _0x53dccf[_0xc7c9('0x5f')]({'attributes':['id'],'raw':!![]})[_0xc7c9('0x27')](function(_0x5f15ad){var _0x1b36d3=_[_0xc7c9('0x60')](_0x5f15ad,'id');_0x462c6d(_0x1b36d3);});})['catch'](function(_0x4d53ff){_0x4af975(_0x4d53ff);});});}