Built motion from commit (unavailable).|2.5.29
[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 _0xba34=['api','../../config/utils','../../config/license/util','redis','localhost','socket.io-emitter','./userNotification.socket','register','sendStatus','status','end','undefined','limit','count','set','Content-Range','json','apply','reject','update','then','destroy','error','stack','name','send','sendUserNotification','body','text','hasOwnProperty','TemplateId','Sequelize','ValidationError','Must\x20specify\x20at\x20least\x20one\x20argument\x20for\x20\x27text\x27\x20or\x20\x27TemplateId\x27','Missing\x20\x27view\x27\x20parameter','recipients','Missing\x20\x27recipients\x27\x20parameter','parse','Invalid\x20\x27recipients\x27\x20object','chatqueue','faxqueue','mailqueue','openchannelqueue','smsqueue','voicequeue','team','user','some','includes','model','senderName','fullname','recipientsDescription','isEmpty','beep','SenderId','recipientsId','sortBy','join','forEach','emit','Template','findOne','render','html','view','startCase','toLowerCase','User','ids','replace','queue','Queue','push','all','union','flatten','catch','getAgents','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','util','path','sox','to-csv','ejs','fs-extra','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xba34,0x119));var _0x4ba3=function(_0x3cdec2,_0x4f6079){_0x3cdec2=_0x3cdec2-0x0;var _0x119ad1=_0xba34[_0x3cdec2];return _0x119ad1;};'use strict';var emlformat=require(_0x4ba3('0x0'));var rimraf=require(_0x4ba3('0x1'));var zipdir=require(_0x4ba3('0x2'));var jsonpatch=require(_0x4ba3('0x3'));var rp=require(_0x4ba3('0x4'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x4ba3('0x5'));var path=require(_0x4ba3('0x6'));var sox=require(_0x4ba3('0x7'));var csv=require(_0x4ba3('0x8'));var ejs=require(_0x4ba3('0x9'));var fs=require('fs');var fs_extra=require(_0x4ba3('0xa'));var _=require(_0x4ba3('0xb'));var squel=require('squel');var crypto=require(_0x4ba3('0xc'));var jsforce=require(_0x4ba3('0xd'));var deskjs=require(_0x4ba3('0xe'));var toCsv=require(_0x4ba3('0x8'));var querystring=require(_0x4ba3('0xf'));var Papa=require(_0x4ba3('0x10'));var Redis=require(_0x4ba3('0x11'));var authService=require(_0x4ba3('0x12'));var qs=require(_0x4ba3('0x13'));var as=require(_0x4ba3('0x14'));var hardwareService=require(_0x4ba3('0x15'));var logger=require('../../config/logger')(_0x4ba3('0x16'));var utils=require(_0x4ba3('0x17'));var config=require('../../config/environment');var licenseUtil=require(_0x4ba3('0x18'));var db=require('../../mysqldb')['db'];config[_0x4ba3('0x19')]=_['defaults'](config[_0x4ba3('0x19')],{'host':_0x4ba3('0x1a'),'port':0x18eb});var socket=require(_0x4ba3('0x1b'))(new Redis(config[_0x4ba3('0x19')]));require(_0x4ba3('0x1c'))[_0x4ba3('0x1d')](socket);function respondWithStatusCode(_0x3a74f7,_0x12ac90){_0x12ac90=_0x12ac90||0xcc;return function(_0x1dec48){if(_0x1dec48){return _0x3a74f7[_0x4ba3('0x1e')](_0x12ac90);}return _0x3a74f7[_0x4ba3('0x1f')](_0x12ac90)[_0x4ba3('0x20')]();};}function respondWithResult(_0x29a9d1,_0x25f584){_0x25f584=_0x25f584||0xc8;return function(_0x40e75b){if(_0x40e75b){return _0x29a9d1[_0x4ba3('0x1f')](_0x25f584)['json'](_0x40e75b);}};}function respondWithFilteredResult(_0x382fd0,_0x788277){return function(_0x5ff7ce){if(_0x5ff7ce){var _0x451c92=typeof _0x788277['offset']===_0x4ba3('0x21')&&typeof _0x788277[_0x4ba3('0x22')]===_0x4ba3('0x21');var _0x1e2ce5=_0x5ff7ce[_0x4ba3('0x23')];var _0x125944=_0x451c92?0x0:_0x788277['offset'];var _0x57de6a=_0x451c92?_0x5ff7ce[_0x4ba3('0x23')]:_0x788277['offset']+_0x788277[_0x4ba3('0x22')];var _0x163967;if(_0x57de6a>=_0x1e2ce5){_0x57de6a=_0x1e2ce5;_0x163967=0xc8;}else{_0x163967=0xce;}_0x382fd0[_0x4ba3('0x1f')](_0x163967);return _0x382fd0[_0x4ba3('0x24')](_0x4ba3('0x25'),_0x125944+'-'+_0x57de6a+'/'+_0x1e2ce5)[_0x4ba3('0x26')](_0x5ff7ce);}return null;};}function patchUpdates(_0x4a0823){return function(_0x143c78){try{jsonpatch[_0x4ba3('0x27')](_0x143c78,_0x4a0823,!![]);}catch(_0x5c28f9){return BPromise[_0x4ba3('0x28')](_0x5c28f9);}return _0x143c78['save']();};}function saveUpdates(_0x1ae4de,_0x18abb3){return function(_0x11a917){if(_0x11a917){return _0x11a917[_0x4ba3('0x29')](_0x1ae4de)[_0x4ba3('0x2a')](function(_0xe29a49){return _0xe29a49;});}return null;};}function removeEntity(_0x159596,_0xe1f7d2){return function(_0x6cecf3){if(_0x6cecf3){return _0x6cecf3[_0x4ba3('0x2b')]()['then'](function(){_0x159596[_0x4ba3('0x1f')](0xcc)[_0x4ba3('0x20')]();});}};}function handleEntityNotFound(_0x2311ed,_0x5adaab){return function(_0x10537e){if(!_0x10537e){_0x2311ed[_0x4ba3('0x1e')](0x194);}return _0x10537e;};}function handleError(_0x44d78c,_0x5a3588){_0x5a3588=_0x5a3588||0x1f4;return function(_0x10cae6){logger[_0x4ba3('0x2c')](_0x10cae6[_0x4ba3('0x2d')]);if(_0x10cae6[_0x4ba3('0x2e')]){delete _0x10cae6['name'];}_0x44d78c['status'](_0x5a3588)[_0x4ba3('0x2f')](_0x10cae6);};}exports[_0x4ba3('0x30')]=function(_0x15cfae,_0x19f039,_0x2cb5d5){if(!_0x15cfae[_0x4ba3('0x31')]['hasOwnProperty'](_0x4ba3('0x32'))&&!_0x15cfae[_0x4ba3('0x31')][_0x4ba3('0x33')](_0x4ba3('0x34'))){throw new db[(_0x4ba3('0x35'))][(_0x4ba3('0x36'))](_0x4ba3('0x37'));}else{if(_0x15cfae[_0x4ba3('0x31')][_0x4ba3('0x33')](_0x4ba3('0x34'))&&!_0x15cfae['body']['hasOwnProperty']('view')){throw new db[(_0x4ba3('0x35'))][(_0x4ba3('0x36'))](_0x4ba3('0x38'));}if(!_0x15cfae[_0x4ba3('0x31')][_0x4ba3('0x33')](_0x4ba3('0x39'))){throw new db[(_0x4ba3('0x35'))][(_0x4ba3('0x36'))](_0x4ba3('0x3a'));}else{try{var _0x3dfe4b=JSON[_0x4ba3('0x3b')](_0x15cfae[_0x4ba3('0x31')]['recipients']);}catch(_0x3801d0){logger[_0x4ba3('0x2c')](_0x3801d0);throw new db[(_0x4ba3('0x35'))]['ValidationError'](_0x4ba3('0x3c'));}var _0x5b69e9=[_0x4ba3('0x3d'),_0x4ba3('0x3e'),_0x4ba3('0x3f'),_0x4ba3('0x40'),_0x4ba3('0x41'),_0x4ba3('0x42'),'whatsappqueue',_0x4ba3('0x43'),_0x4ba3('0x44')];if(_[_0x4ba3('0x45')](_0x3dfe4b,function(_0x4b702b){return!_[_0x4ba3('0x46')](_0x5b69e9,_0x4b702b[_0x4ba3('0x47')]['toLowerCase']());})){throw new db[(_0x4ba3('0x35'))]['ValidationError']('Invalid\x20model\x20in\x20\x27recipients\x27\x20object');}}}var _0xef9169={};_0xef9169[_0x4ba3('0x48')]=_0x15cfae[_0x4ba3('0x31')][_0x4ba3('0x33')](_0x4ba3('0x48'))?_0x15cfae['body'][_0x4ba3('0x48')]:_0x15cfae[_0x4ba3('0x44')][_0x4ba3('0x49')];_0xef9169[_0x4ba3('0x4a')]=_[_0x4ba3('0x4b')](_0x15cfae[_0x4ba3('0x31')][_0x4ba3('0x4a')])?null:_0x15cfae[_0x4ba3('0x31')]['recipientsDescription'];_0xef9169[_0x4ba3('0x4c')]=_0x15cfae[_0x4ba3('0x31')][_0x4ba3('0x4c')]||![];_0xef9169[_0x4ba3('0x4d')]=_0x15cfae[_0x4ba3('0x44')]['id'];return getContent(_0x15cfae[_0x4ba3('0x31')])[_0x4ba3('0x2a')](function(_0xdcc2a2){_0xef9169[_0x4ba3('0x31')]=_0xdcc2a2;return getRecipients(_0x3dfe4b);})[_0x4ba3('0x2a')](function(_0x3b9a0a){_0xef9169[_0x4ba3('0x4e')]=_[_0x4ba3('0x4f')](_0x3b9a0a)[_0x4ba3('0x50')](',');return db['sequelize']['transaction'](function(_0x4df0f5){return db['UserNotification']['create'](_0xef9169,{'raw':!![],'transaction':_0x4df0f5})[_0x4ba3('0x2a')](function(_0x5c4659){var _0x29e74d={'sender':_0xef9169['senderName'],'description':_0xef9169[_0x4ba3('0x4a')],'content':_0xef9169[_0x4ba3('0x31')],'beep':_0xef9169[_0x4ba3('0x4c')]};_0x3b9a0a[_0x4ba3('0x51')](function(_0xc1ca4b){_0x29e74d['recipient']=_0xc1ca4b;socket[_0x4ba3('0x52')]('userNotification:send',_0x29e74d);});return _0x5c4659;});});})[_0x4ba3('0x2a')](respondWithResult(_0x19f039,0xc9))['catch'](handleError(_0x19f039,null));};function getContent(_0x21dbbd){return new BPromise(function(_0x1665eb,_0x3392a4){if(_0x21dbbd[_0x4ba3('0x32')]){_0x1665eb(_0x21dbbd[_0x4ba3('0x32')]);return;}return db[_0x4ba3('0x53')][_0x4ba3('0x54')]({'attributes':['html'],'where':{'id':_0x21dbbd[_0x4ba3('0x34')]},'raw':!![]})[_0x4ba3('0x2a')](function(_0x1e418c){if(!_0x1e418c)throw new db[(_0x4ba3('0x35'))][(_0x4ba3('0x36'))]('Invalid\x20\x27TemplateId\x27\x20parameter');var _0x56b55d=Mustache[_0x4ba3('0x55')](_0x1e418c[_0x4ba3('0x56')],_0x21dbbd[_0x4ba3('0x57')]);_0x1665eb(_0x56b55d);})['catch'](function(_0xd466f6){_0x3392a4(_0xd466f6);});});}function getRecipients(_0xfd30a0){return new BPromise(function(_0x1220f4,_0x58648d){var _0x47f588=[];var _0x34dc04=[];_0xfd30a0['forEach'](function(_0x439acf){var _0x1b9f76=_[_0x4ba3('0x58')](_0x439acf[_0x4ba3('0x47')][_0x4ba3('0x59')]());if(_0x1b9f76===_0x4ba3('0x5a')){_0x47f588=_['union'](_0x47f588,_0x439acf[_0x4ba3('0x5b')]);}else{if(_[_0x4ba3('0x46')](_0x1b9f76,'queue'))_0x1b9f76=_0x1b9f76[_0x4ba3('0x5c')](_0x4ba3('0x5d'),_0x4ba3('0x5e'));_0x439acf[_0x4ba3('0x5b')][_0x4ba3('0x51')](function(_0x4d092d){_0x34dc04[_0x4ba3('0x5f')](getAgents(_0x1b9f76,_0x4d092d));});}});return BPromise[_0x4ba3('0x60')](_0x34dc04)['then'](function(_0x43f820){_0x47f588=_[_0x4ba3('0x61')](_0x47f588,_[_0x4ba3('0x62')](_0x43f820));_0x1220f4(_0x47f588);})[_0x4ba3('0x63')](function(_0x1f2690){_0x58648d(_0x1f2690);});});}function getAgents(_0x42a87a,_0x45dae5){return new BPromise(function(_0x1ab3fe,_0x18c757){return db[_0x42a87a][_0x4ba3('0x54')]({'where':{'id':_0x45dae5}})[_0x4ba3('0x2a')](function(_0x29161b){return _0x29161b[_0x4ba3('0x64')]({'attributes':['id'],'raw':!![]})[_0x4ba3('0x2a')](function(_0x2795df){var _0x48a3d4=_['map'](_0x2795df,'id');_0x1ab3fe(_0x48a3d4);});})['catch'](function(_0x14c014){_0x18c757(_0x14c014);});});}