Built motion from commit f7863d46.|2.5.41
[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 _0xab78=['text','ValidationError','Must\x20specify\x20at\x20least\x20one\x20argument\x20for\x20\x27text\x27\x20or\x20\x27TemplateId\x27','TemplateId','view','Sequelize','parse','recipients','faxqueue','voicequeue','whatsappqueue','team','user','includes','model','toLowerCase','senderName','fullname','recipientsDescription','beep','recipientsId','sortBy','sequelize','transaction','UserNotification','forEach','emit','userNotification:send','catch','findOne','html','startCase','User','union','ids','queue','replace','Queue','push','all','flatten','getAgents','map','eml-format','zip-dir','request-promise','moment','bluebird','mustache','util','sox','ejs','lodash','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../mysqldb','redis','./userNotification.socket','register','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','apply','update','then','end','error','stack','name','sendUserNotification','body','hasOwnProperty'];(function(_0x208a3e,_0x1abedc){var _0x56906c=function(_0x1c3c52){while(--_0x1c3c52){_0x208a3e['push'](_0x208a3e['shift']());}};_0x56906c(++_0x1abedc);}(_0xab78,0xd9));var _0x8ab7=function(_0x5c5c01,_0x423ecc){_0x5c5c01=_0x5c5c01-0x0;var _0x4c1d72=_0xab78[_0x5c5c01];return _0x4c1d72;};'use strict';var emlformat=require(_0x8ab7('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x8ab7('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x8ab7('0x2'));var moment=require(_0x8ab7('0x3'));var BPromise=require(_0x8ab7('0x4'));var Mustache=require(_0x8ab7('0x5'));var util=require(_0x8ab7('0x6'));var path=require('path');var sox=require(_0x8ab7('0x7'));var csv=require('to-csv');var ejs=require(_0x8ab7('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x8ab7('0x9'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x8ab7('0xa'));var deskjs=require(_0x8ab7('0xb'));var toCsv=require(_0x8ab7('0xc'));var querystring=require(_0x8ab7('0xd'));var Papa=require(_0x8ab7('0xe'));var Redis=require(_0x8ab7('0xf'));var authService=require(_0x8ab7('0x10'));var qs=require('../../components/parsers/qs');var as=require(_0x8ab7('0x11'));var hardwareService=require(_0x8ab7('0x12'));var logger=require(_0x8ab7('0x13'))(_0x8ab7('0x14'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x8ab7('0x15'))['db'];config[_0x8ab7('0x16')]=_['defaults'](config[_0x8ab7('0x16')],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require(_0x8ab7('0x17'))[_0x8ab7('0x18')](socket);function respondWithStatusCode(_0x5cdcfd,_0x1f7184){_0x1f7184=_0x1f7184||0xcc;return function(_0x2ce684){if(_0x2ce684){return _0x5cdcfd[_0x8ab7('0x19')](_0x1f7184);}return _0x5cdcfd[_0x8ab7('0x1a')](_0x1f7184)['end']();};}function respondWithResult(_0xea08ec,_0x2e2ba9){_0x2e2ba9=_0x2e2ba9||0xc8;return function(_0x48bc91){if(_0x48bc91){return _0xea08ec['status'](_0x2e2ba9)[_0x8ab7('0x1b')](_0x48bc91);}};}function respondWithFilteredResult(_0x1a1576,_0x2ac36d){return function(_0x192176){if(_0x192176){var _0x5ad5d8=typeof _0x2ac36d[_0x8ab7('0x1c')]===_0x8ab7('0x1d')&&typeof _0x2ac36d[_0x8ab7('0x1e')]===_0x8ab7('0x1d');var _0x56cc0d=_0x192176[_0x8ab7('0x1f')];var _0x4b8ea7=_0x5ad5d8?0x0:_0x2ac36d[_0x8ab7('0x1c')];var _0x397037=_0x5ad5d8?_0x192176['count']:_0x2ac36d[_0x8ab7('0x1c')]+_0x2ac36d[_0x8ab7('0x1e')];var _0x13cb79;if(_0x397037>=_0x56cc0d){_0x397037=_0x56cc0d;_0x13cb79=0xc8;}else{_0x13cb79=0xce;}_0x1a1576[_0x8ab7('0x1a')](_0x13cb79);return _0x1a1576[_0x8ab7('0x20')](_0x8ab7('0x21'),_0x4b8ea7+'-'+_0x397037+'/'+_0x56cc0d)[_0x8ab7('0x1b')](_0x192176);}return null;};}function patchUpdates(_0x395e28){return function(_0x2c3a36){try{jsonpatch[_0x8ab7('0x22')](_0x2c3a36,_0x395e28,!![]);}catch(_0x1ec474){return BPromise['reject'](_0x1ec474);}return _0x2c3a36['save']();};}function saveUpdates(_0x235ee9,_0x542114){return function(_0x119808){if(_0x119808){return _0x119808[_0x8ab7('0x23')](_0x235ee9)[_0x8ab7('0x24')](function(_0x299d2f){return _0x299d2f;});}return null;};}function removeEntity(_0x3b7ca6,_0x1f13b7){return function(_0x35992f){if(_0x35992f){return _0x35992f['destroy']()[_0x8ab7('0x24')](function(){_0x3b7ca6[_0x8ab7('0x1a')](0xcc)[_0x8ab7('0x25')]();});}};}function handleEntityNotFound(_0x2fbaaa,_0x320f5c){return function(_0x2ecd9f){if(!_0x2ecd9f){_0x2fbaaa[_0x8ab7('0x19')](0x194);}return _0x2ecd9f;};}function handleError(_0x55a3f7,_0x5bf542){_0x5bf542=_0x5bf542||0x1f4;return function(_0x4c999a){logger[_0x8ab7('0x26')](_0x4c999a[_0x8ab7('0x27')]);if(_0x4c999a[_0x8ab7('0x28')]){delete _0x4c999a[_0x8ab7('0x28')];}_0x55a3f7[_0x8ab7('0x1a')](_0x5bf542)['send'](_0x4c999a);};}exports[_0x8ab7('0x29')]=function(_0x46260b,_0x1814cd,_0x486fe7){if(!_0x46260b[_0x8ab7('0x2a')][_0x8ab7('0x2b')](_0x8ab7('0x2c'))&&!_0x46260b[_0x8ab7('0x2a')][_0x8ab7('0x2b')]('TemplateId')){throw new db['Sequelize'][(_0x8ab7('0x2d'))](_0x8ab7('0x2e'));}else{if(_0x46260b['body'][_0x8ab7('0x2b')](_0x8ab7('0x2f'))&&!_0x46260b['body'][_0x8ab7('0x2b')](_0x8ab7('0x30'))){throw new db[(_0x8ab7('0x31'))][(_0x8ab7('0x2d'))]('Missing\x20\x27view\x27\x20parameter');}if(!_0x46260b[_0x8ab7('0x2a')][_0x8ab7('0x2b')]('recipients')){throw new db['Sequelize'][(_0x8ab7('0x2d'))]('Missing\x20\x27recipients\x27\x20parameter');}else{try{var _0xcb2f88=JSON[_0x8ab7('0x32')](_0x46260b[_0x8ab7('0x2a')][_0x8ab7('0x33')]);}catch(_0x8b3d7c){logger[_0x8ab7('0x26')](_0x8b3d7c);throw new db['Sequelize']['ValidationError']('Invalid\x20\x27recipients\x27\x20object');}var _0x1ee92f=['chatqueue',_0x8ab7('0x34'),'mailqueue','openchannelqueue','smsqueue',_0x8ab7('0x35'),_0x8ab7('0x36'),_0x8ab7('0x37'),_0x8ab7('0x38')];if(_['some'](_0xcb2f88,function(_0x16f81a){return!_[_0x8ab7('0x39')](_0x1ee92f,_0x16f81a[_0x8ab7('0x3a')][_0x8ab7('0x3b')]());})){throw new db[(_0x8ab7('0x31'))][(_0x8ab7('0x2d'))]('Invalid\x20model\x20in\x20\x27recipients\x27\x20object');}}}var _0x478f92={};_0x478f92[_0x8ab7('0x3c')]=_0x46260b['body'][_0x8ab7('0x2b')](_0x8ab7('0x3c'))?_0x46260b[_0x8ab7('0x2a')][_0x8ab7('0x3c')]:_0x46260b[_0x8ab7('0x38')][_0x8ab7('0x3d')];_0x478f92['recipientsDescription']=_['isEmpty'](_0x46260b['body']['recipientsDescription'])?null:_0x46260b[_0x8ab7('0x2a')][_0x8ab7('0x3e')];_0x478f92[_0x8ab7('0x3f')]=_0x46260b[_0x8ab7('0x2a')][_0x8ab7('0x3f')]||![];_0x478f92['SenderId']=_0x46260b[_0x8ab7('0x38')]['id'];return getContent(_0x46260b[_0x8ab7('0x2a')])[_0x8ab7('0x24')](function(_0x55be38){_0x478f92[_0x8ab7('0x2a')]=_0x55be38;return getRecipients(_0xcb2f88);})['then'](function(_0x34fa6e){_0x478f92[_0x8ab7('0x40')]=_[_0x8ab7('0x41')](_0x34fa6e)['join'](',');return db[_0x8ab7('0x42')][_0x8ab7('0x43')](function(_0x5577ee){return db[_0x8ab7('0x44')]['create'](_0x478f92,{'raw':!![],'transaction':_0x5577ee})[_0x8ab7('0x24')](function(_0x4d271d){var _0x3be874={'sender':_0x478f92[_0x8ab7('0x3c')],'description':_0x478f92[_0x8ab7('0x3e')],'content':_0x478f92[_0x8ab7('0x2a')],'beep':_0x478f92[_0x8ab7('0x3f')]};_0x34fa6e[_0x8ab7('0x45')](function(_0x38ebb5){_0x3be874['recipient']=_0x38ebb5;socket[_0x8ab7('0x46')](_0x8ab7('0x47'),_0x3be874);});return _0x4d271d;});});})[_0x8ab7('0x24')](respondWithResult(_0x1814cd,0xc9))[_0x8ab7('0x48')](handleError(_0x1814cd,null));};function getContent(_0x565948){return new BPromise(function(_0x445931,_0xaf840b){if(_0x565948[_0x8ab7('0x2c')]){_0x445931(_0x565948['text']);return;}return db['Template'][_0x8ab7('0x49')]({'attributes':[_0x8ab7('0x4a')],'where':{'id':_0x565948[_0x8ab7('0x2f')]},'raw':!![]})[_0x8ab7('0x24')](function(_0x14df0b){if(!_0x14df0b)throw new db[(_0x8ab7('0x31'))]['ValidationError']('Invalid\x20\x27TemplateId\x27\x20parameter');var _0x1d741b=Mustache['render'](_0x14df0b[_0x8ab7('0x4a')],_0x565948[_0x8ab7('0x30')]);_0x445931(_0x1d741b);})[_0x8ab7('0x48')](function(_0x12e64b){_0xaf840b(_0x12e64b);});});}function getRecipients(_0x32b79){return new BPromise(function(_0x51ea99,_0x16bdff){var _0x1d4f6e=[];var _0x22f3b9=[];_0x32b79[_0x8ab7('0x45')](function(_0x29102b){var _0x132e38=_[_0x8ab7('0x4b')](_0x29102b[_0x8ab7('0x3a')]['toLowerCase']());if(_0x132e38===_0x8ab7('0x4c')){_0x1d4f6e=_[_0x8ab7('0x4d')](_0x1d4f6e,_0x29102b[_0x8ab7('0x4e')]);}else{if(_[_0x8ab7('0x39')](_0x132e38,_0x8ab7('0x4f')))_0x132e38=_0x132e38[_0x8ab7('0x50')](_0x8ab7('0x4f'),_0x8ab7('0x51'));_0x29102b[_0x8ab7('0x4e')][_0x8ab7('0x45')](function(_0x3b5290){_0x22f3b9[_0x8ab7('0x52')](getAgents(_0x132e38,_0x3b5290));});}});return BPromise[_0x8ab7('0x53')](_0x22f3b9)[_0x8ab7('0x24')](function(_0x2d1177){_0x1d4f6e=_[_0x8ab7('0x4d')](_0x1d4f6e,_[_0x8ab7('0x54')](_0x2d1177));_0x51ea99(_0x1d4f6e);})[_0x8ab7('0x48')](function(_0x1aa732){_0x16bdff(_0x1aa732);});});}function getAgents(_0x2866c9,_0x4f3f32){return new BPromise(function(_0x526cfb,_0x4b612e){return db[_0x2866c9][_0x8ab7('0x49')]({'where':{'id':_0x4f3f32}})[_0x8ab7('0x24')](function(_0x7256b1){return _0x7256b1[_0x8ab7('0x55')]({'attributes':['id'],'raw':!![]})[_0x8ab7('0x24')](function(_0x418b26){var _0x4f24dd=_[_0x8ab7('0x56')](_0x418b26,'id');_0x526cfb(_0x4f24dd);});})[_0x8ab7('0x48')](function(_0x452a59){_0x4b612e(_0x452a59);});});}