e6dda6e2d9e5c795b34ec9b2be1f566ee983c19f
[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 _0x4442=['smsqueue','voicequeue','whatsappqueue','team','user','some','includes','model','toLowerCase','Invalid\x20model\x20in\x20\x27recipients\x27\x20object','senderName','fullname','recipientsDescription','isEmpty','beep','SenderId','recipientsId','sortBy','join','sequelize','transaction','Notification','create','forEach','recipient','emit','notification:send','Template','findOne','html','Invalid\x20\x27TemplateId\x27\x20parameter','render','catch','startCase','User','union','queue','Queue','ids','push','all','flatten','map','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','sox','to-csv','ejs','lodash','crypto','jsforce','desk.js','querystring','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','socket.io-emitter','./notification.socket','register','status','end','json','count','offset','limit','set','reject','save','update','then','destroy','sendStatus','error','stack','name','send','sendNotification','body','text','hasOwnProperty','TemplateId','Sequelize','ValidationError','view','Missing\x20\x27view\x27\x20parameter','Missing\x20\x27recipients\x27\x20parameter','parse','faxqueue','mailqueue'];(function(_0x208c4b,_0x57a28e){var _0x344ab6=function(_0xe9fe00){while(--_0xe9fe00){_0x208c4b['push'](_0x208c4b['shift']());}};_0x344ab6(++_0x57a28e);}(_0x4442,0x1cb));var _0x2444=function(_0x2ed67e,_0x5f316c){_0x2ed67e=_0x2ed67e-0x0;var _0x59248b=_0x4442[_0x2ed67e];return _0x59248b;};'use strict';var pdf=require(_0x2444('0x0'));var emlformat=require(_0x2444('0x1'));var rimraf=require(_0x2444('0x2'));var zipdir=require(_0x2444('0x3'));var jsonpatch=require(_0x2444('0x4'));var rp=require(_0x2444('0x5'));var moment=require('moment');var BPromise=require(_0x2444('0x6'));var Mustache=require(_0x2444('0x7'));var util=require(_0x2444('0x8'));var path=require('path');var sox=require(_0x2444('0x9'));var csv=require(_0x2444('0xa'));var ejs=require(_0x2444('0xb'));var fs=require('fs');var _=require(_0x2444('0xc'));var squel=require('squel');var crypto=require(_0x2444('0xd'));var jsforce=require(_0x2444('0xe'));var deskjs=require(_0x2444('0xf'));var toCsv=require(_0x2444('0xa'));var querystring=require(_0x2444('0x10'));var Papa=require('papaparse');var Redis=require(_0x2444('0x11'));var authService=require('../../components/auth/service');var qs=require(_0x2444('0x12'));var as=require(_0x2444('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x2444('0x14'))(_0x2444('0x15'));var utils=require(_0x2444('0x16'));var config=require(_0x2444('0x17'));var licenseUtil=require(_0x2444('0x18'));var db=require(_0x2444('0x19'))['db'];config[_0x2444('0x1a')]=_[_0x2444('0x1b')](config[_0x2444('0x1a')],{'host':'localhost','port':0x18eb});var socket=require(_0x2444('0x1c'))(new Redis(config[_0x2444('0x1a')]));require(_0x2444('0x1d'))[_0x2444('0x1e')](socket);function respondWithStatusCode(_0x40e324,_0x1455eb){_0x1455eb=_0x1455eb||0xcc;return function(_0x2e17f6){if(_0x2e17f6){return _0x40e324['sendStatus'](_0x1455eb);}return _0x40e324[_0x2444('0x1f')](_0x1455eb)[_0x2444('0x20')]();};}function respondWithResult(_0x17c959,_0x3ef5ec){_0x3ef5ec=_0x3ef5ec||0xc8;return function(_0x577ed3){if(_0x577ed3){return _0x17c959[_0x2444('0x1f')](_0x3ef5ec)[_0x2444('0x21')](_0x577ed3);}};}function respondWithFilteredResult(_0x30d329,_0xe56320){return function(_0x5bade3){if(_0x5bade3){var _0x163e83=_0x5bade3[_0x2444('0x22')],_0x436836=_0xe56320[_0x2444('0x23')],_0x4376c6=_0xe56320[_0x2444('0x23')]+_0xe56320[_0x2444('0x24')],_0x5a829f;if(_0x4376c6>=_0x163e83){_0x4376c6=_0x163e83;_0x5a829f=0xc8;}else{_0x5a829f=0xce;}_0x30d329[_0x2444('0x1f')](_0x5a829f);return _0x30d329[_0x2444('0x25')]('Content-Range',_0x436836+'-'+_0x4376c6+'/'+_0x163e83)[_0x2444('0x21')](_0x5bade3);}return null;};}function patchUpdates(_0x3a7705){return function(_0x1675a2){try{jsonpatch['apply'](_0x1675a2,_0x3a7705,!![]);}catch(_0x2eecfa){return BPromise[_0x2444('0x26')](_0x2eecfa);}return _0x1675a2[_0x2444('0x27')]();};}function saveUpdates(_0x2e8666,_0x239a19){return function(_0x2ddd67){if(_0x2ddd67){return _0x2ddd67[_0x2444('0x28')](_0x2e8666)[_0x2444('0x29')](function(_0x36ffa2){return _0x36ffa2;});}return null;};}function removeEntity(_0x5da90c,_0x4480f4){return function(_0x3ed97c){if(_0x3ed97c){return _0x3ed97c[_0x2444('0x2a')]()[_0x2444('0x29')](function(){_0x5da90c['status'](0xcc)[_0x2444('0x20')]();});}};}function handleEntityNotFound(_0x154a9a,_0x5dedcd){return function(_0x562d5f){if(!_0x562d5f){_0x154a9a[_0x2444('0x2b')](0x194);}return _0x562d5f;};}function handleError(_0x24b029,_0x4187c4){_0x4187c4=_0x4187c4||0x1f4;return function(_0x1f79da){logger[_0x2444('0x2c')](_0x1f79da[_0x2444('0x2d')]);if(_0x1f79da[_0x2444('0x2e')]){delete _0x1f79da[_0x2444('0x2e')];}_0x24b029[_0x2444('0x1f')](_0x4187c4)[_0x2444('0x2f')](_0x1f79da);};}exports[_0x2444('0x30')]=function(_0x5d1363,_0x2d4944,_0x2be430){if(!_0x5d1363[_0x2444('0x31')]['hasOwnProperty'](_0x2444('0x32'))&&!_0x5d1363[_0x2444('0x31')][_0x2444('0x33')](_0x2444('0x34'))){throw new db[(_0x2444('0x35'))][(_0x2444('0x36'))]('Must\x20specify\x20at\x20least\x20one\x20argument\x20for\x20\x27text\x27\x20or\x20\x27TemplateId\x27');}else{if(_0x5d1363[_0x2444('0x31')][_0x2444('0x33')](_0x2444('0x34'))&&!_0x5d1363[_0x2444('0x31')]['hasOwnProperty'](_0x2444('0x37'))){throw new db['Sequelize'][(_0x2444('0x36'))](_0x2444('0x38'));}if(!_0x5d1363['body']['hasOwnProperty']('recipients')){throw new db[(_0x2444('0x35'))][(_0x2444('0x36'))](_0x2444('0x39'));}else{try{var _0x7f7036=JSON[_0x2444('0x3a')](_0x5d1363[_0x2444('0x31')]['recipients']);}catch(_0x1e20d9){logger['error'](_0x1e20d9);throw new db[(_0x2444('0x35'))][(_0x2444('0x36'))]('Invalid\x20\x27recipients\x27\x20object');}var _0x2a7c93=['chatqueue',_0x2444('0x3b'),_0x2444('0x3c'),'openchannelqueue',_0x2444('0x3d'),_0x2444('0x3e'),_0x2444('0x3f'),_0x2444('0x40'),_0x2444('0x41')];if(_[_0x2444('0x42')](_0x7f7036,function(_0x4f2cfd){return!_[_0x2444('0x43')](_0x2a7c93,_0x4f2cfd[_0x2444('0x44')][_0x2444('0x45')]());})){throw new db[(_0x2444('0x35'))][(_0x2444('0x36'))](_0x2444('0x46'));}}}var _0x329257={};_0x329257[_0x2444('0x47')]=_0x5d1363[_0x2444('0x31')]['hasOwnProperty']('senderName')?_0x5d1363[_0x2444('0x31')][_0x2444('0x47')]:_0x5d1363['user'][_0x2444('0x48')];_0x329257[_0x2444('0x49')]=_[_0x2444('0x4a')](_0x5d1363[_0x2444('0x31')][_0x2444('0x49')])?null:_0x5d1363[_0x2444('0x31')][_0x2444('0x49')];_0x329257['beep']=_0x5d1363['body'][_0x2444('0x4b')]||![];_0x329257[_0x2444('0x4c')]=_0x5d1363[_0x2444('0x41')]['id'];return getContent(_0x5d1363[_0x2444('0x31')])[_0x2444('0x29')](function(_0x169333){_0x329257[_0x2444('0x31')]=_0x169333;return getRecipients(_0x7f7036);})[_0x2444('0x29')](function(_0x2e56f5){_0x329257[_0x2444('0x4d')]=_[_0x2444('0x4e')](_0x2e56f5)[_0x2444('0x4f')](',');return db[_0x2444('0x50')][_0x2444('0x51')](function(_0x18af31){return db[_0x2444('0x52')][_0x2444('0x53')](_0x329257,{'raw':!![],'transaction':_0x18af31})[_0x2444('0x29')](function(_0x527f1b){var _0x56b444={'sender':_0x329257[_0x2444('0x47')],'description':_0x329257[_0x2444('0x49')],'content':_0x329257[_0x2444('0x31')],'beep':_0x329257[_0x2444('0x4b')]};_0x2e56f5[_0x2444('0x54')](function(_0x2e7810){_0x56b444[_0x2444('0x55')]=_0x2e7810;socket[_0x2444('0x56')](_0x2444('0x57'),_0x56b444);});return _0x527f1b;});});})[_0x2444('0x29')](respondWithResult(_0x2d4944,0xc9))['catch'](handleError(_0x2d4944,null));};function getContent(_0x528e9d){return new BPromise(function(_0x585036,_0x13f003){if(_0x528e9d['text']){_0x585036(_0x528e9d[_0x2444('0x32')]);return;}return db[_0x2444('0x58')][_0x2444('0x59')]({'attributes':[_0x2444('0x5a')],'where':{'id':_0x528e9d[_0x2444('0x34')]},'raw':!![]})['then'](function(_0x3c3c0d){if(!_0x3c3c0d)throw new db[(_0x2444('0x35'))][(_0x2444('0x36'))](_0x2444('0x5b'));var _0x3cacc6=Mustache[_0x2444('0x5c')](_0x3c3c0d[_0x2444('0x5a')],_0x528e9d[_0x2444('0x37')]);_0x585036(_0x3cacc6);})[_0x2444('0x5d')](function(_0x3edc46){_0x13f003(_0x3edc46);});});}function getRecipients(_0xb4db26){return new BPromise(function(_0x2ebb69,_0x3c3411){var _0x1972d0=[];var _0x289196=[];_0xb4db26[_0x2444('0x54')](function(_0x33f79f){var _0x42b73d=_[_0x2444('0x5e')](_0x33f79f['model']['toLowerCase']());if(_0x42b73d===_0x2444('0x5f')){_0x1972d0=_[_0x2444('0x60')](_0x1972d0,_0x33f79f['ids']);}else{if(_[_0x2444('0x43')](_0x42b73d,_0x2444('0x61')))_0x42b73d=_0x42b73d['replace'](_0x2444('0x61'),_0x2444('0x62'));_0x33f79f[_0x2444('0x63')]['forEach'](function(_0x1e3f7b){_0x289196[_0x2444('0x64')](getAgents(_0x42b73d,_0x1e3f7b));});}});return BPromise[_0x2444('0x65')](_0x289196)[_0x2444('0x29')](function(_0x37581a){_0x1972d0=_[_0x2444('0x60')](_0x1972d0,_[_0x2444('0x66')](_0x37581a));_0x2ebb69(_0x1972d0);})['catch'](function(_0x20be24){_0x3c3411(_0x20be24);});});}function getAgents(_0x1a778e,_0x2d7bed){return new BPromise(function(_0x332c24,_0x164480){return db[_0x1a778e][_0x2444('0x59')]({'where':{'id':_0x2d7bed}})[_0x2444('0x29')](function(_0xaa2a6){return _0xaa2a6['getAgents']({'attributes':['id'],'raw':!![]})[_0x2444('0x29')](function(_0xbed5d4){var _0x5858f2=_[_0x2444('0x67')](_0xbed5d4,'id');_0x332c24(_0x5858f2);});})[_0x2444('0x5d')](function(_0x5a5b39){_0x164480(_0x5a5b39);});});}