Built motion from commit d1eab355.|2.6.28
[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 _0xd421=['whatsappqueue','team','user','model','Invalid\x20model\x20in\x20\x27recipients\x27\x20object','senderName','fullname','recipientsDescription','isEmpty','beep','SenderId','join','transaction','create','userNotification:send','catch','Template','findOne','html','Invalid\x20\x27TemplateId\x27\x20parameter','render','forEach','startCase','toLowerCase','union','ids','includes','queue','replace','Queue','all','flatten','getAgents','map','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js','querystring','ioredis','../../components/parsers/qs','../../config/license/hardware','../../config/logger','redis','defaults','localhost','socket.io-emitter','./userNotification.socket','end','status','json','undefined','limit','count','offset','Content-Range','apply','reject','save','destroy','then','error','stack','name','send','sendUserNotification','hasOwnProperty','text','body','TemplateId','Sequelize','Must\x20specify\x20at\x20least\x20one\x20argument\x20for\x20\x27text\x27\x20or\x20\x27TemplateId\x27','view','ValidationError','Missing\x20\x27view\x27\x20parameter','recipients','Missing\x20\x27recipients\x27\x20parameter','parse','Invalid\x20\x27recipients\x27\x20object','chatqueue','faxqueue','openchannelqueue','voicequeue'];(function(_0x181ff9,_0x1079ca){var _0x573d29=function(_0x434e8f){while(--_0x434e8f){_0x181ff9['push'](_0x181ff9['shift']());}};_0x573d29(++_0x1079ca);}(_0xd421,0x1a2));var _0x1d42=function(_0x745003,_0x5745a5){_0x745003=_0x745003-0x0;var _0x2dab60=_0xd421[_0x745003];return _0x2dab60;};'use strict';var emlformat=require(_0x1d42('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x1d42('0x1'));var jsonpatch=require(_0x1d42('0x2'));var rp=require(_0x1d42('0x3'));var moment=require(_0x1d42('0x4'));var BPromise=require(_0x1d42('0x5'));var Mustache=require(_0x1d42('0x6'));var util=require(_0x1d42('0x7'));var path=require(_0x1d42('0x8'));var sox=require(_0x1d42('0x9'));var csv=require(_0x1d42('0xa'));var ejs=require(_0x1d42('0xb'));var fs=require('fs');var fs_extra=require(_0x1d42('0xc'));var _=require(_0x1d42('0xd'));var squel=require(_0x1d42('0xe'));var crypto=require(_0x1d42('0xf'));var jsforce=require('jsforce');var deskjs=require(_0x1d42('0x10'));var toCsv=require('to-csv');var querystring=require(_0x1d42('0x11'));var Papa=require('papaparse');var Redis=require(_0x1d42('0x12'));var authService=require('../../components/auth/service');var qs=require(_0x1d42('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x1d42('0x14'));var logger=require(_0x1d42('0x15'))('api');var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];config[_0x1d42('0x16')]=_[_0x1d42('0x17')](config[_0x1d42('0x16')],{'host':_0x1d42('0x18'),'port':0x18eb});var socket=require(_0x1d42('0x19'))(new Redis(config[_0x1d42('0x16')]));require(_0x1d42('0x1a'))['register'](socket);function respondWithStatusCode(_0x2c1299,_0x4a71ea){_0x4a71ea=_0x4a71ea||0xcc;return function(_0x39489d){if(_0x39489d){return _0x2c1299['sendStatus'](_0x4a71ea);}return _0x2c1299['status'](_0x4a71ea)[_0x1d42('0x1b')]();};}function respondWithResult(_0x6fc16f,_0x3388a5){_0x3388a5=_0x3388a5||0xc8;return function(_0x302a32){if(_0x302a32){return _0x6fc16f[_0x1d42('0x1c')](_0x3388a5)[_0x1d42('0x1d')](_0x302a32);}};}function respondWithFilteredResult(_0x24de22,_0x42abbd){return function(_0x4434af){if(_0x4434af){var _0x26b120=typeof _0x42abbd['offset']===_0x1d42('0x1e')&&typeof _0x42abbd[_0x1d42('0x1f')]===_0x1d42('0x1e');var _0x421283=_0x4434af[_0x1d42('0x20')];var _0x5b23ac=_0x26b120?0x0:_0x42abbd[_0x1d42('0x21')];var _0x87ee49=_0x26b120?_0x4434af[_0x1d42('0x20')]:_0x42abbd[_0x1d42('0x21')]+_0x42abbd[_0x1d42('0x1f')];var _0xda0c31;if(_0x87ee49>=_0x421283){_0x87ee49=_0x421283;_0xda0c31=0xc8;}else{_0xda0c31=0xce;}_0x24de22[_0x1d42('0x1c')](_0xda0c31);return _0x24de22['set'](_0x1d42('0x22'),_0x5b23ac+'-'+_0x87ee49+'/'+_0x421283)[_0x1d42('0x1d')](_0x4434af);}return null;};}function patchUpdates(_0x1f4e51){return function(_0x4b81a5){try{jsonpatch[_0x1d42('0x23')](_0x4b81a5,_0x1f4e51,!![]);}catch(_0x409ee1){return BPromise[_0x1d42('0x24')](_0x409ee1);}return _0x4b81a5[_0x1d42('0x25')]();};}function saveUpdates(_0x32d0cc,_0x221874){return function(_0x1696f2){if(_0x1696f2){return _0x1696f2['update'](_0x32d0cc)['then'](function(_0x5c61b4){return _0x5c61b4;});}return null;};}function removeEntity(_0x1a4ba1,_0x1b3764){return function(_0x4cd761){if(_0x4cd761){return _0x4cd761[_0x1d42('0x26')]()[_0x1d42('0x27')](function(){_0x1a4ba1['status'](0xcc)[_0x1d42('0x1b')]();});}};}function handleEntityNotFound(_0x25d1e5,_0x390726){return function(_0x5cbee3){if(!_0x5cbee3){_0x25d1e5['sendStatus'](0x194);}return _0x5cbee3;};}function handleError(_0x185675,_0x38667e){_0x38667e=_0x38667e||0x1f4;return function(_0x570040){logger[_0x1d42('0x28')](_0x570040[_0x1d42('0x29')]);if(_0x570040[_0x1d42('0x2a')]){delete _0x570040[_0x1d42('0x2a')];}_0x185675[_0x1d42('0x1c')](_0x38667e)[_0x1d42('0x2b')](_0x570040);};}exports[_0x1d42('0x2c')]=function(_0x30011d,_0x4c9566,_0x4b915e){if(!_0x30011d['body'][_0x1d42('0x2d')](_0x1d42('0x2e'))&&!_0x30011d[_0x1d42('0x2f')][_0x1d42('0x2d')](_0x1d42('0x30'))){throw new db[(_0x1d42('0x31'))]['ValidationError'](_0x1d42('0x32'));}else{if(_0x30011d[_0x1d42('0x2f')][_0x1d42('0x2d')](_0x1d42('0x30'))&&!_0x30011d[_0x1d42('0x2f')]['hasOwnProperty'](_0x1d42('0x33'))){throw new db['Sequelize'][(_0x1d42('0x34'))](_0x1d42('0x35'));}if(!_0x30011d['body'][_0x1d42('0x2d')](_0x1d42('0x36'))){throw new db[(_0x1d42('0x31'))][(_0x1d42('0x34'))](_0x1d42('0x37'));}else{try{var _0x51ff3c=JSON[_0x1d42('0x38')](_0x30011d[_0x1d42('0x2f')][_0x1d42('0x36')]);}catch(_0x458c11){logger[_0x1d42('0x28')](_0x458c11);throw new db[(_0x1d42('0x31'))][(_0x1d42('0x34'))](_0x1d42('0x39'));}var _0x3ab933=[_0x1d42('0x3a'),_0x1d42('0x3b'),'mailqueue',_0x1d42('0x3c'),'smsqueue',_0x1d42('0x3d'),_0x1d42('0x3e'),_0x1d42('0x3f'),_0x1d42('0x40')];if(_['some'](_0x51ff3c,function(_0x1cbc01){return!_['includes'](_0x3ab933,_0x1cbc01[_0x1d42('0x41')]['toLowerCase']());})){throw new db[(_0x1d42('0x31'))][(_0x1d42('0x34'))](_0x1d42('0x42'));}}}var _0xd8be50={};_0xd8be50[_0x1d42('0x43')]=_0x30011d[_0x1d42('0x2f')]['hasOwnProperty'](_0x1d42('0x43'))?_0x30011d['body'][_0x1d42('0x43')]:_0x30011d['user'][_0x1d42('0x44')];_0xd8be50[_0x1d42('0x45')]=_[_0x1d42('0x46')](_0x30011d[_0x1d42('0x2f')][_0x1d42('0x45')])?null:_0x30011d[_0x1d42('0x2f')][_0x1d42('0x45')];_0xd8be50[_0x1d42('0x47')]=_0x30011d[_0x1d42('0x2f')][_0x1d42('0x47')]||![];_0xd8be50[_0x1d42('0x48')]=_0x30011d[_0x1d42('0x40')]['id'];return getContent(_0x30011d['body'])['then'](function(_0x74f38f){_0xd8be50[_0x1d42('0x2f')]=_0x74f38f;return getRecipients(_0x51ff3c);})['then'](function(_0x3358d8){_0xd8be50['recipientsId']=_['sortBy'](_0x3358d8)[_0x1d42('0x49')](',');return db['sequelize'][_0x1d42('0x4a')](function(_0x229446){return db['UserNotification'][_0x1d42('0x4b')](_0xd8be50,{'raw':!![],'transaction':_0x229446})[_0x1d42('0x27')](function(_0x246f76){var _0x172fcf={'sender':_0xd8be50[_0x1d42('0x43')],'description':_0xd8be50[_0x1d42('0x45')],'content':_0xd8be50['body'],'beep':_0xd8be50[_0x1d42('0x47')]};_0x3358d8['forEach'](function(_0x198564){_0x172fcf['recipient']=_0x198564;socket['emit'](_0x1d42('0x4c'),_0x172fcf);});return _0x246f76;});});})['then'](respondWithResult(_0x4c9566,0xc9))[_0x1d42('0x4d')](handleError(_0x4c9566,null));};function getContent(_0x15b04d){return new BPromise(function(_0x1e8e4a,_0x2ec8e0){if(_0x15b04d[_0x1d42('0x2e')]){_0x1e8e4a(_0x15b04d[_0x1d42('0x2e')]);return;}return db[_0x1d42('0x4e')][_0x1d42('0x4f')]({'attributes':[_0x1d42('0x50')],'where':{'id':_0x15b04d[_0x1d42('0x30')]},'raw':!![]})[_0x1d42('0x27')](function(_0x18ca7b){if(!_0x18ca7b)throw new db[(_0x1d42('0x31'))][(_0x1d42('0x34'))](_0x1d42('0x51'));var _0x4305ce=Mustache[_0x1d42('0x52')](_0x18ca7b[_0x1d42('0x50')],_0x15b04d[_0x1d42('0x33')]);_0x1e8e4a(_0x4305ce);})['catch'](function(_0x542f48){_0x2ec8e0(_0x542f48);});});}function getRecipients(_0x37e69c){return new BPromise(function(_0x38cc1c,_0x3dd912){var _0x47709a=[];var _0x32eb19=[];_0x37e69c[_0x1d42('0x53')](function(_0x2236a8){var _0x212085=_[_0x1d42('0x54')](_0x2236a8[_0x1d42('0x41')][_0x1d42('0x55')]());if(_0x212085==='User'){_0x47709a=_[_0x1d42('0x56')](_0x47709a,_0x2236a8[_0x1d42('0x57')]);}else{if(_[_0x1d42('0x58')](_0x212085,_0x1d42('0x59')))_0x212085=_0x212085[_0x1d42('0x5a')](_0x1d42('0x59'),_0x1d42('0x5b'));_0x2236a8[_0x1d42('0x57')][_0x1d42('0x53')](function(_0x206b09){_0x32eb19['push'](getAgents(_0x212085,_0x206b09));});}});return BPromise[_0x1d42('0x5c')](_0x32eb19)[_0x1d42('0x27')](function(_0x4a8aea){_0x47709a=_[_0x1d42('0x56')](_0x47709a,_[_0x1d42('0x5d')](_0x4a8aea));_0x38cc1c(_0x47709a);})[_0x1d42('0x4d')](function(_0x18d885){_0x3dd912(_0x18d885);});});}function getAgents(_0x2f9869,_0x267f6c){return new BPromise(function(_0x3cb1a7,_0x1cf69c){return db[_0x2f9869][_0x1d42('0x4f')]({'where':{'id':_0x267f6c}})[_0x1d42('0x27')](function(_0x26912b){return _0x26912b[_0x1d42('0x5e')]({'attributes':['id'],'raw':!![]})[_0x1d42('0x27')](function(_0x57f9fe){var _0x5a37fc=_[_0x1d42('0x5f')](_0x57f9fe,'id');_0x3cb1a7(_0x5a37fc);});})['catch'](function(_0x48138d){_0x1cf69c(_0x48138d);});});}