Built motion from commit (unavailable).|2.5.22
[motion2.git] / server / api / userNotification / userNotification.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 _0x8fd9=['includes','queue','replace','Queue','flatten','getAgents','map','html-pdf','eml-format','rimraf','request-promise','bluebird','mustache','util','sox','to-csv','ejs','crypto','jsforce','desk.js','querystring','../../components/auth/service','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/license/util','redis','defaults','localhost','socket.io-emitter','register','sendStatus','status','end','json','offset','limit','Content-Range','reject','save','update','then','destroy','error','stack','name','send','sendUserNotification','body','hasOwnProperty','text','Sequelize','Must\x20specify\x20at\x20least\x20one\x20argument\x20for\x20\x27text\x27\x20or\x20\x27TemplateId\x27','TemplateId','ValidationError','Missing\x20\x27view\x27\x20parameter','recipients','parse','Invalid\x20\x27recipients\x27\x20object','chatqueue','faxqueue','mailqueue','openchannelqueue','team','model','toLowerCase','Invalid\x20model\x20in\x20\x27recipients\x27\x20object','senderName','user','fullname','isEmpty','recipientsDescription','beep','SenderId','recipientsId','join','sequelize','transaction','create','forEach','recipient','userNotification:send','catch','findOne','html','Invalid\x20\x27TemplateId\x27\x20parameter','render','view','startCase','User','union','ids'];(function(_0x1ccdf7,_0x215d5a){var _0x52a0ae=function(_0x40324a){while(--_0x40324a){_0x1ccdf7['push'](_0x1ccdf7['shift']());}};_0x52a0ae(++_0x215d5a);}(_0x8fd9,0xc1));var _0x98fd=function(_0x554a48,_0x3b0b29){_0x554a48=_0x554a48-0x0;var _0x4cd1dc=_0x8fd9[_0x554a48];return _0x4cd1dc;};'use strict';var pdf=require(_0x98fd('0x0'));var emlformat=require(_0x98fd('0x1'));var rimraf=require(_0x98fd('0x2'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x98fd('0x3'));var moment=require('moment');var BPromise=require(_0x98fd('0x4'));var Mustache=require(_0x98fd('0x5'));var util=require(_0x98fd('0x6'));var path=require('path');var sox=require(_0x98fd('0x7'));var csv=require(_0x98fd('0x8'));var ejs=require(_0x98fd('0x9'));var fs=require('fs');var _=require('lodash');var squel=require('squel');var crypto=require(_0x98fd('0xa'));var jsforce=require(_0x98fd('0xb'));var deskjs=require(_0x98fd('0xc'));var toCsv=require('to-csv');var querystring=require(_0x98fd('0xd'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x98fd('0xe'));var qs=require(_0x98fd('0xf'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x98fd('0x10'))(_0x98fd('0x11'));var utils=require(_0x98fd('0x12'));var config=require('../../config/environment');var licenseUtil=require(_0x98fd('0x13'));var db=require('../../mysqldb')['db'];config[_0x98fd('0x14')]=_[_0x98fd('0x15')](config[_0x98fd('0x14')],{'host':_0x98fd('0x16'),'port':0x18eb});var socket=require(_0x98fd('0x17'))(new Redis(config[_0x98fd('0x14')]));require('./userNotification.socket')[_0x98fd('0x18')](socket);function respondWithStatusCode(_0x531774,_0x524d07){_0x524d07=_0x524d07||0xcc;return function(_0x1c22e7){if(_0x1c22e7){return _0x531774[_0x98fd('0x19')](_0x524d07);}return _0x531774[_0x98fd('0x1a')](_0x524d07)[_0x98fd('0x1b')]();};}function respondWithResult(_0x26f63b,_0x583bc9){_0x583bc9=_0x583bc9||0xc8;return function(_0x46ab34){if(_0x46ab34){return _0x26f63b[_0x98fd('0x1a')](_0x583bc9)[_0x98fd('0x1c')](_0x46ab34);}};}function respondWithFilteredResult(_0x4ce147,_0x75ce9f){return function(_0x34eb78){if(_0x34eb78){var _0x2c4914=_0x34eb78['count'],_0x3997df=_0x75ce9f['offset'],_0x56231e=_0x75ce9f[_0x98fd('0x1d')]+_0x75ce9f[_0x98fd('0x1e')],_0x4b8582;if(_0x56231e>=_0x2c4914){_0x56231e=_0x2c4914;_0x4b8582=0xc8;}else{_0x4b8582=0xce;}_0x4ce147['status'](_0x4b8582);return _0x4ce147['set'](_0x98fd('0x1f'),_0x3997df+'-'+_0x56231e+'/'+_0x2c4914)[_0x98fd('0x1c')](_0x34eb78);}return null;};}function patchUpdates(_0x433b3a){return function(_0xff0dca){try{jsonpatch['apply'](_0xff0dca,_0x433b3a,!![]);}catch(_0x4e7235){return BPromise[_0x98fd('0x20')](_0x4e7235);}return _0xff0dca[_0x98fd('0x21')]();};}function saveUpdates(_0x1d13cd,_0x1138f4){return function(_0x1c8108){if(_0x1c8108){return _0x1c8108[_0x98fd('0x22')](_0x1d13cd)[_0x98fd('0x23')](function(_0x43526d){return _0x43526d;});}return null;};}function removeEntity(_0x41ccf2,_0x4971b1){return function(_0x2f9f6f){if(_0x2f9f6f){return _0x2f9f6f[_0x98fd('0x24')]()[_0x98fd('0x23')](function(){_0x41ccf2[_0x98fd('0x1a')](0xcc)[_0x98fd('0x1b')]();});}};}function handleEntityNotFound(_0x1a010f,_0x561bda){return function(_0x3d6dd1){if(!_0x3d6dd1){_0x1a010f['sendStatus'](0x194);}return _0x3d6dd1;};}function handleError(_0x327f57,_0x5a9946){_0x5a9946=_0x5a9946||0x1f4;return function(_0x4ab471){logger[_0x98fd('0x25')](_0x4ab471[_0x98fd('0x26')]);if(_0x4ab471[_0x98fd('0x27')]){delete _0x4ab471[_0x98fd('0x27')];}_0x327f57[_0x98fd('0x1a')](_0x5a9946)[_0x98fd('0x28')](_0x4ab471);};}exports[_0x98fd('0x29')]=function(_0x3c0f7b,_0x333377,_0x44a43c){if(!_0x3c0f7b[_0x98fd('0x2a')][_0x98fd('0x2b')](_0x98fd('0x2c'))&&!_0x3c0f7b[_0x98fd('0x2a')]['hasOwnProperty']('TemplateId')){throw new db[(_0x98fd('0x2d'))]['ValidationError'](_0x98fd('0x2e'));}else{if(_0x3c0f7b[_0x98fd('0x2a')][_0x98fd('0x2b')](_0x98fd('0x2f'))&&!_0x3c0f7b['body'][_0x98fd('0x2b')]('view')){throw new db[(_0x98fd('0x2d'))][(_0x98fd('0x30'))](_0x98fd('0x31'));}if(!_0x3c0f7b[_0x98fd('0x2a')][_0x98fd('0x2b')](_0x98fd('0x32'))){throw new db['Sequelize']['ValidationError']('Missing\x20\x27recipients\x27\x20parameter');}else{try{var _0x8e8df7=JSON[_0x98fd('0x33')](_0x3c0f7b[_0x98fd('0x2a')]['recipients']);}catch(_0x4cbe82){logger[_0x98fd('0x25')](_0x4cbe82);throw new db[(_0x98fd('0x2d'))][(_0x98fd('0x30'))](_0x98fd('0x34'));}var _0x4d94c6=[_0x98fd('0x35'),_0x98fd('0x36'),_0x98fd('0x37'),_0x98fd('0x38'),'smsqueue','voicequeue','whatsappqueue',_0x98fd('0x39'),'user'];if(_['some'](_0x8e8df7,function(_0x3b19c3){return!_['includes'](_0x4d94c6,_0x3b19c3[_0x98fd('0x3a')][_0x98fd('0x3b')]());})){throw new db[(_0x98fd('0x2d'))][(_0x98fd('0x30'))](_0x98fd('0x3c'));}}}var _0xbcd4d4={};_0xbcd4d4[_0x98fd('0x3d')]=_0x3c0f7b['body']['hasOwnProperty'](_0x98fd('0x3d'))?_0x3c0f7b[_0x98fd('0x2a')]['senderName']:_0x3c0f7b[_0x98fd('0x3e')][_0x98fd('0x3f')];_0xbcd4d4['recipientsDescription']=_[_0x98fd('0x40')](_0x3c0f7b[_0x98fd('0x2a')][_0x98fd('0x41')])?null:_0x3c0f7b[_0x98fd('0x2a')]['recipientsDescription'];_0xbcd4d4[_0x98fd('0x42')]=_0x3c0f7b[_0x98fd('0x2a')][_0x98fd('0x42')]||![];_0xbcd4d4[_0x98fd('0x43')]=_0x3c0f7b[_0x98fd('0x3e')]['id'];return getContent(_0x3c0f7b[_0x98fd('0x2a')])[_0x98fd('0x23')](function(_0x1cb43a){_0xbcd4d4[_0x98fd('0x2a')]=_0x1cb43a;return getRecipients(_0x8e8df7);})[_0x98fd('0x23')](function(_0x11a18e){_0xbcd4d4[_0x98fd('0x44')]=_['sortBy'](_0x11a18e)[_0x98fd('0x45')](',');return db[_0x98fd('0x46')][_0x98fd('0x47')](function(_0x54abef){return db['UserNotification'][_0x98fd('0x48')](_0xbcd4d4,{'raw':!![],'transaction':_0x54abef})[_0x98fd('0x23')](function(_0x23e2b2){var _0x38ff81={'sender':_0xbcd4d4[_0x98fd('0x3d')],'description':_0xbcd4d4['recipientsDescription'],'content':_0xbcd4d4['body'],'beep':_0xbcd4d4[_0x98fd('0x42')]};_0x11a18e[_0x98fd('0x49')](function(_0x45a917){_0x38ff81[_0x98fd('0x4a')]=_0x45a917;socket['emit'](_0x98fd('0x4b'),_0x38ff81);});return _0x23e2b2;});});})['then'](respondWithResult(_0x333377,0xc9))[_0x98fd('0x4c')](handleError(_0x333377,null));};function getContent(_0x2b70ec){return new BPromise(function(_0x347928,_0x3c4b0a){if(_0x2b70ec[_0x98fd('0x2c')]){_0x347928(_0x2b70ec[_0x98fd('0x2c')]);return;}return db['Template'][_0x98fd('0x4d')]({'attributes':[_0x98fd('0x4e')],'where':{'id':_0x2b70ec['TemplateId']},'raw':!![]})[_0x98fd('0x23')](function(_0x5f45b1){if(!_0x5f45b1)throw new db[(_0x98fd('0x2d'))][(_0x98fd('0x30'))](_0x98fd('0x4f'));var _0x6a8d76=Mustache[_0x98fd('0x50')](_0x5f45b1['html'],_0x2b70ec[_0x98fd('0x51')]);_0x347928(_0x6a8d76);})['catch'](function(_0x53fe20){_0x3c4b0a(_0x53fe20);});});}function getRecipients(_0x4ac1a3){return new BPromise(function(_0x27ad35,_0x358d2c){var _0x7c4e9a=[];var _0xde0e0=[];_0x4ac1a3['forEach'](function(_0x191d6a){var _0x4a66db=_[_0x98fd('0x52')](_0x191d6a[_0x98fd('0x3a')]['toLowerCase']());if(_0x4a66db===_0x98fd('0x53')){_0x7c4e9a=_[_0x98fd('0x54')](_0x7c4e9a,_0x191d6a[_0x98fd('0x55')]);}else{if(_[_0x98fd('0x56')](_0x4a66db,_0x98fd('0x57')))_0x4a66db=_0x4a66db[_0x98fd('0x58')](_0x98fd('0x57'),_0x98fd('0x59'));_0x191d6a['ids'][_0x98fd('0x49')](function(_0x19023c){_0xde0e0['push'](getAgents(_0x4a66db,_0x19023c));});}});return BPromise['all'](_0xde0e0)[_0x98fd('0x23')](function(_0x23a899){_0x7c4e9a=_[_0x98fd('0x54')](_0x7c4e9a,_[_0x98fd('0x5a')](_0x23a899));_0x27ad35(_0x7c4e9a);})[_0x98fd('0x4c')](function(_0x477925){_0x358d2c(_0x477925);});});}function getAgents(_0x1e6f7e,_0x2a6abb){return new BPromise(function(_0x4bcdb1,_0x107e8b){return db[_0x1e6f7e][_0x98fd('0x4d')]({'where':{'id':_0x2a6abb}})[_0x98fd('0x23')](function(_0x1c8294){return _0x1c8294[_0x98fd('0x5b')]({'attributes':['id'],'raw':!![]})['then'](function(_0x32db6f){var _0xf5e0a1=_[_0x98fd('0x5c')](_0x32db6f,'id');_0x4bcdb1(_0xf5e0a1);});})['catch'](function(_0x135382){_0x107e8b(_0x135382);});});}