Built motion from commit (unavailable).|2.5.14
[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 _0x4f7c=['fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','ejs','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','api','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./notification.socket','register','sendStatus','json','count','offset','status','set','Content-Range','apply','reject','update','then','destroy','error','stack','name','send','body','hasOwnProperty','text','TemplateId','Must\x20specify\x20at\x20least\x20one\x20argument\x20for\x20\x27text\x27\x20or\x20\x27TemplateId\x27','view','Sequelize','ValidationError','Missing\x20\x27view\x27\x20parameter','recipients','Missing\x20\x27recipients\x27\x20parameter','parse','Invalid\x20\x27recipients\x27\x20object','chatqueue','faxqueue','mailqueue','smsqueue','whatsappqueue','team','includes','model','toLowerCase','senderName','fullname','recipientsDescription','isEmpty','beep','SenderId','user','sortBy','join','sequelize','transaction','Notification','create','forEach','recipient','emit','notification:send','catch','Template','findOne','render','html','User','union','ids','queue','Queue','push','all','flatten','map','eml-format','rimraf','zip-dir'];(function(_0x16ccc7,_0x4ae5e7){var _0x880e9e=function(_0x43cd46){while(--_0x43cd46){_0x16ccc7['push'](_0x16ccc7['shift']());}};_0x880e9e(++_0x4ae5e7);}(_0x4f7c,0x185));var _0xc4f7=function(_0x1e5c8c,_0x5a7382){_0x1e5c8c=_0x1e5c8c-0x0;var _0xe5b1d5=_0x4f7c[_0x1e5c8c];return _0xe5b1d5;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0xc4f7('0x0'));var rimraf=require(_0xc4f7('0x1'));var zipdir=require(_0xc4f7('0x2'));var jsonpatch=require(_0xc4f7('0x3'));var rp=require(_0xc4f7('0x4'));var moment=require(_0xc4f7('0x5'));var BPromise=require(_0xc4f7('0x6'));var Mustache=require(_0xc4f7('0x7'));var util=require(_0xc4f7('0x8'));var path=require(_0xc4f7('0x9'));var sox=require(_0xc4f7('0xa'));var csv=require('to-csv');var ejs=require(_0xc4f7('0xb'));var fs=require('fs');var _=require('lodash');var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0xc4f7('0xc'));var deskjs=require(_0xc4f7('0xd'));var toCsv=require('to-csv');var querystring=require(_0xc4f7('0xe'));var Papa=require(_0xc4f7('0xf'));var Redis=require(_0xc4f7('0x10'));var authService=require(_0xc4f7('0x11'));var qs=require(_0xc4f7('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xc4f7('0x13'));var logger=require('../../config/logger')(_0xc4f7('0x14'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0xc4f7('0x15'));var db=require(_0xc4f7('0x16'))['db'];config[_0xc4f7('0x17')]=_[_0xc4f7('0x18')](config[_0xc4f7('0x17')],{'host':_0xc4f7('0x19'),'port':0x18eb});var socket=require(_0xc4f7('0x1a'))(new Redis(config[_0xc4f7('0x17')]));require(_0xc4f7('0x1b'))[_0xc4f7('0x1c')](socket);function respondWithStatusCode(_0x3781dd,_0x615174){_0x615174=_0x615174||0xcc;return function(_0x267975){if(_0x267975){return _0x3781dd[_0xc4f7('0x1d')](_0x615174);}return _0x3781dd['status'](_0x615174)['end']();};}function respondWithResult(_0x1f629c,_0x58cd60){_0x58cd60=_0x58cd60||0xc8;return function(_0xd66ede){if(_0xd66ede){return _0x1f629c['status'](_0x58cd60)[_0xc4f7('0x1e')](_0xd66ede);}};}function respondWithFilteredResult(_0x3f76dd,_0x129bd9){return function(_0x2eccda){if(_0x2eccda){var _0x2ad358=_0x2eccda[_0xc4f7('0x1f')],_0x1f835c=_0x129bd9[_0xc4f7('0x20')],_0x133548=_0x129bd9['offset']+_0x129bd9['limit'],_0xa45f54;if(_0x133548>=_0x2ad358){_0x133548=_0x2ad358;_0xa45f54=0xc8;}else{_0xa45f54=0xce;}_0x3f76dd[_0xc4f7('0x21')](_0xa45f54);return _0x3f76dd[_0xc4f7('0x22')](_0xc4f7('0x23'),_0x1f835c+'-'+_0x133548+'/'+_0x2ad358)[_0xc4f7('0x1e')](_0x2eccda);}return null;};}function patchUpdates(_0x6c9d19){return function(_0x276875){try{jsonpatch[_0xc4f7('0x24')](_0x276875,_0x6c9d19,!![]);}catch(_0x4d2021){return BPromise[_0xc4f7('0x25')](_0x4d2021);}return _0x276875['save']();};}function saveUpdates(_0x466e7b,_0x2021c0){return function(_0x4d85dd){if(_0x4d85dd){return _0x4d85dd[_0xc4f7('0x26')](_0x466e7b)[_0xc4f7('0x27')](function(_0x4b9588){return _0x4b9588;});}return null;};}function removeEntity(_0x564f08,_0x33810a){return function(_0x3762b5){if(_0x3762b5){return _0x3762b5[_0xc4f7('0x28')]()[_0xc4f7('0x27')](function(){_0x564f08['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x34171a,_0x223ae3){return function(_0x41d37b){if(!_0x41d37b){_0x34171a[_0xc4f7('0x1d')](0x194);}return _0x41d37b;};}function handleError(_0x3d2ee0,_0x2679ca){_0x2679ca=_0x2679ca||0x1f4;return function(_0x3bb185){logger[_0xc4f7('0x29')](_0x3bb185[_0xc4f7('0x2a')]);if(_0x3bb185[_0xc4f7('0x2b')]){delete _0x3bb185[_0xc4f7('0x2b')];}_0x3d2ee0['status'](_0x2679ca)[_0xc4f7('0x2c')](_0x3bb185);};}exports['sendNotification']=function(_0x3bfda5,_0x12b7d5,_0x29f290){if(!_0x3bfda5[_0xc4f7('0x2d')][_0xc4f7('0x2e')](_0xc4f7('0x2f'))&&!_0x3bfda5['body'][_0xc4f7('0x2e')](_0xc4f7('0x30'))){throw new db['Sequelize']['ValidationError'](_0xc4f7('0x31'));}else{if(_0x3bfda5[_0xc4f7('0x2d')]['hasOwnProperty'](_0xc4f7('0x30'))&&!_0x3bfda5[_0xc4f7('0x2d')][_0xc4f7('0x2e')](_0xc4f7('0x32'))){throw new db[(_0xc4f7('0x33'))][(_0xc4f7('0x34'))](_0xc4f7('0x35'));}if(!_0x3bfda5['body'][_0xc4f7('0x2e')](_0xc4f7('0x36'))){throw new db[(_0xc4f7('0x33'))][(_0xc4f7('0x34'))](_0xc4f7('0x37'));}else{try{var _0x3c7ae1=JSON[_0xc4f7('0x38')](_0x3bfda5['body'][_0xc4f7('0x36')]);}catch(_0x101d17){logger[_0xc4f7('0x29')](_0x101d17);throw new db[(_0xc4f7('0x33'))]['ValidationError'](_0xc4f7('0x39'));}var _0x1b6e03=[_0xc4f7('0x3a'),_0xc4f7('0x3b'),_0xc4f7('0x3c'),'openchannelqueue',_0xc4f7('0x3d'),'voicequeue',_0xc4f7('0x3e'),_0xc4f7('0x3f'),'user'];if(_['some'](_0x3c7ae1,function(_0x31ec85){return!_[_0xc4f7('0x40')](_0x1b6e03,_0x31ec85[_0xc4f7('0x41')][_0xc4f7('0x42')]());})){throw new db['Sequelize'][(_0xc4f7('0x34'))]('Invalid\x20model\x20in\x20\x27recipients\x27\x20object');}}}var _0x5a2195={};_0x5a2195['senderName']=_0x3bfda5[_0xc4f7('0x2d')][_0xc4f7('0x2e')](_0xc4f7('0x43'))?_0x3bfda5[_0xc4f7('0x2d')]['senderName']:_0x3bfda5['user'][_0xc4f7('0x44')];_0x5a2195[_0xc4f7('0x45')]=_[_0xc4f7('0x46')](_0x3bfda5[_0xc4f7('0x2d')]['recipientsDescription'])?null:_0x3bfda5[_0xc4f7('0x2d')]['recipientsDescription'];_0x5a2195['beep']=_0x3bfda5['body'][_0xc4f7('0x47')]||![];_0x5a2195[_0xc4f7('0x48')]=_0x3bfda5[_0xc4f7('0x49')]['id'];return getContent(_0x3bfda5[_0xc4f7('0x2d')])[_0xc4f7('0x27')](function(_0x123ded){_0x5a2195['body']=_0x123ded;return getRecipients(_0x3c7ae1);})[_0xc4f7('0x27')](function(_0x2efeb1){_0x5a2195['recipientsId']=_[_0xc4f7('0x4a')](_0x2efeb1)[_0xc4f7('0x4b')](',');return db[_0xc4f7('0x4c')][_0xc4f7('0x4d')](function(_0x4d872a){return db[_0xc4f7('0x4e')][_0xc4f7('0x4f')](_0x5a2195,{'raw':!![],'transaction':_0x4d872a})[_0xc4f7('0x27')](function(_0x30f8a4){var _0x22da3f={'sender':_0x5a2195[_0xc4f7('0x43')],'description':_0x5a2195[_0xc4f7('0x45')],'content':_0x5a2195['body'],'beep':_0x5a2195[_0xc4f7('0x47')]};_0x2efeb1[_0xc4f7('0x50')](function(_0x473276){_0x22da3f[_0xc4f7('0x51')]=_0x473276;socket[_0xc4f7('0x52')](_0xc4f7('0x53'),_0x22da3f);});return _0x30f8a4;});});})[_0xc4f7('0x27')](respondWithResult(_0x12b7d5,0xc9))[_0xc4f7('0x54')](handleError(_0x12b7d5,null));};function getContent(_0x397c50){return new BPromise(function(_0x25366a,_0x3fb328){if(_0x397c50[_0xc4f7('0x2f')]){_0x25366a(_0x397c50[_0xc4f7('0x2f')]);return;}return db[_0xc4f7('0x55')][_0xc4f7('0x56')]({'attributes':['html'],'where':{'id':_0x397c50[_0xc4f7('0x30')]},'raw':!![]})['then'](function(_0x2f717e){if(!_0x2f717e)throw new db[(_0xc4f7('0x33'))][(_0xc4f7('0x34'))]('Invalid\x20\x27TemplateId\x27\x20parameter');var _0x459a04=Mustache[_0xc4f7('0x57')](_0x2f717e[_0xc4f7('0x58')],_0x397c50[_0xc4f7('0x32')]);_0x25366a(_0x459a04);})[_0xc4f7('0x54')](function(_0x276bda){_0x3fb328(_0x276bda);});});}function getRecipients(_0x86c4df){return new BPromise(function(_0x1fbaeb,_0x31380d){var _0xba5f81=[];var _0x4f2041=[];_0x86c4df[_0xc4f7('0x50')](function(_0x63b3b){var _0x1f4c70=_['startCase'](_0x63b3b[_0xc4f7('0x41')]['toLowerCase']());if(_0x1f4c70===_0xc4f7('0x59')){_0xba5f81=_[_0xc4f7('0x5a')](_0xba5f81,_0x63b3b[_0xc4f7('0x5b')]);}else{if(_[_0xc4f7('0x40')](_0x1f4c70,_0xc4f7('0x5c')))_0x1f4c70=_0x1f4c70['replace']('queue',_0xc4f7('0x5d'));_0x63b3b['ids']['forEach'](function(_0x31d83e){_0x4f2041[_0xc4f7('0x5e')](getAgents(_0x1f4c70,_0x31d83e));});}});return BPromise[_0xc4f7('0x5f')](_0x4f2041)[_0xc4f7('0x27')](function(_0x1f6ab8){_0xba5f81=_[_0xc4f7('0x5a')](_0xba5f81,_[_0xc4f7('0x60')](_0x1f6ab8));_0x1fbaeb(_0xba5f81);})[_0xc4f7('0x54')](function(_0x1a0934){_0x31380d(_0x1a0934);});});}function getAgents(_0x56816a,_0x371eb8){return new BPromise(function(_0x4fd1a0,_0x96bb94){return db[_0x56816a]['findOne']({'where':{'id':_0x371eb8}})[_0xc4f7('0x27')](function(_0x2682aa){return _0x2682aa['getAgents']({'attributes':['id'],'raw':!![]})[_0xc4f7('0x27')](function(_0x17533c){var _0x4c2a75=_[_0xc4f7('0x61')](_0x17533c,'id');_0x4fd1a0(_0x4c2a75);});})[_0xc4f7('0x54')](function(_0x3a8a07){_0x96bb94(_0x3a8a07);});});}