427d0fd242e1ac9ab5b9a5f379b440319e2552e8
[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 _0x8137=['getAgents','map','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','util','path','sox','to-csv','fs-extra','lodash','squel','crypto','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','redis','defaults','localhost','register','sendStatus','end','status','json','undefined','offset','count','Content-Range','apply','reject','save','destroy','then','error','stack','name','send','sendUserNotification','hasOwnProperty','body','TemplateId','ValidationError','Must\x20specify\x20at\x20least\x20one\x20argument\x20for\x20\x27text\x27\x20or\x20\x27TemplateId\x27','view','Sequelize','Missing\x20\x27recipients\x27\x20parameter','parse','recipients','Invalid\x20\x27recipients\x27\x20object','chatqueue','faxqueue','mailqueue','voicequeue','whatsappqueue','user','some','includes','model','toLowerCase','Invalid\x20model\x20in\x20\x27recipients\x27\x20object','senderName','fullname','isEmpty','recipientsDescription','beep','recipientsId','join','sequelize','transaction','UserNotification','create','forEach','emit','userNotification:send','text','Template','findOne','html','Invalid\x20\x27TemplateId\x27\x20parameter','render','startCase','User','union','ids','queue','Queue','all','flatten','catch'];(function(_0x368fb9,_0x1a9895){var _0x4892fb=function(_0x28d735){while(--_0x28d735){_0x368fb9['push'](_0x368fb9['shift']());}};_0x4892fb(++_0x1a9895);}(_0x8137,0xc8));var _0x7813=function(_0x1da527,_0x2dc953){_0x1da527=_0x1da527-0x0;var _0x40fc7c=_0x8137[_0x1da527];return _0x40fc7c;};'use strict';var emlformat=require(_0x7813('0x0'));var rimraf=require(_0x7813('0x1'));var zipdir=require(_0x7813('0x2'));var jsonpatch=require(_0x7813('0x3'));var rp=require(_0x7813('0x4'));var moment=require('moment');var BPromise=require(_0x7813('0x5'));var Mustache=require('mustache');var util=require(_0x7813('0x6'));var path=require(_0x7813('0x7'));var sox=require(_0x7813('0x8'));var csv=require(_0x7813('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x7813('0xa'));var _=require(_0x7813('0xb'));var squel=require(_0x7813('0xc'));var crypto=require(_0x7813('0xd'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x7813('0x9'));var querystring=require('querystring');var Papa=require(_0x7813('0xe'));var Redis=require(_0x7813('0xf'));var authService=require(_0x7813('0x10'));var qs=require(_0x7813('0x11'));var as=require(_0x7813('0x12'));var hardwareService=require(_0x7813('0x13'));var logger=require(_0x7813('0x14'))(_0x7813('0x15'));var utils=require('../../config/utils');var config=require(_0x7813('0x16'));var licenseUtil=require(_0x7813('0x17'));var db=require('../../mysqldb')['db'];config[_0x7813('0x18')]=_[_0x7813('0x19')](config[_0x7813('0x18')],{'host':_0x7813('0x1a'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x7813('0x18')]));require('./userNotification.socket')[_0x7813('0x1b')](socket);function respondWithStatusCode(_0x172984,_0xce3fd8){_0xce3fd8=_0xce3fd8||0xcc;return function(_0x4169ea){if(_0x4169ea){return _0x172984[_0x7813('0x1c')](_0xce3fd8);}return _0x172984['status'](_0xce3fd8)[_0x7813('0x1d')]();};}function respondWithResult(_0x403444,_0xc6abf2){_0xc6abf2=_0xc6abf2||0xc8;return function(_0x51d78b){if(_0x51d78b){return _0x403444[_0x7813('0x1e')](_0xc6abf2)[_0x7813('0x1f')](_0x51d78b);}};}function respondWithFilteredResult(_0x3d0b21,_0x5d2cc5){return function(_0x118000){if(_0x118000){var _0x3f4974=typeof _0x5d2cc5['offset']===_0x7813('0x20')&&typeof _0x5d2cc5['limit']===_0x7813('0x20');var _0x11fa66=_0x118000['count'];var _0xc6f56=_0x3f4974?0x0:_0x5d2cc5[_0x7813('0x21')];var _0x3a2715=_0x3f4974?_0x118000[_0x7813('0x22')]:_0x5d2cc5[_0x7813('0x21')]+_0x5d2cc5['limit'];var _0x397759;if(_0x3a2715>=_0x11fa66){_0x3a2715=_0x11fa66;_0x397759=0xc8;}else{_0x397759=0xce;}_0x3d0b21[_0x7813('0x1e')](_0x397759);return _0x3d0b21['set'](_0x7813('0x23'),_0xc6f56+'-'+_0x3a2715+'/'+_0x11fa66)[_0x7813('0x1f')](_0x118000);}return null;};}function patchUpdates(_0x129601){return function(_0x58b70d){try{jsonpatch[_0x7813('0x24')](_0x58b70d,_0x129601,!![]);}catch(_0x2943a7){return BPromise[_0x7813('0x25')](_0x2943a7);}return _0x58b70d[_0x7813('0x26')]();};}function saveUpdates(_0x870e0e,_0x38d1fa){return function(_0x59071f){if(_0x59071f){return _0x59071f['update'](_0x870e0e)['then'](function(_0x21c86d){return _0x21c86d;});}return null;};}function removeEntity(_0x1707f4,_0x3520da){return function(_0x1d1452){if(_0x1d1452){return _0x1d1452[_0x7813('0x27')]()[_0x7813('0x28')](function(){_0x1707f4[_0x7813('0x1e')](0xcc)['end']();});}};}function handleEntityNotFound(_0x115e56,_0x2b54c6){return function(_0x1948a3){if(!_0x1948a3){_0x115e56[_0x7813('0x1c')](0x194);}return _0x1948a3;};}function handleError(_0x3b11ab,_0x5832f6){_0x5832f6=_0x5832f6||0x1f4;return function(_0x31ef0d){logger[_0x7813('0x29')](_0x31ef0d[_0x7813('0x2a')]);if(_0x31ef0d[_0x7813('0x2b')]){delete _0x31ef0d[_0x7813('0x2b')];}_0x3b11ab[_0x7813('0x1e')](_0x5832f6)[_0x7813('0x2c')](_0x31ef0d);};}exports[_0x7813('0x2d')]=function(_0x12b6ce,_0x370d6b,_0x2bb4f0){if(!_0x12b6ce['body'][_0x7813('0x2e')]('text')&&!_0x12b6ce[_0x7813('0x2f')]['hasOwnProperty'](_0x7813('0x30'))){throw new db['Sequelize'][(_0x7813('0x31'))](_0x7813('0x32'));}else{if(_0x12b6ce[_0x7813('0x2f')][_0x7813('0x2e')](_0x7813('0x30'))&&!_0x12b6ce[_0x7813('0x2f')][_0x7813('0x2e')](_0x7813('0x33'))){throw new db[(_0x7813('0x34'))][(_0x7813('0x31'))]('Missing\x20\x27view\x27\x20parameter');}if(!_0x12b6ce[_0x7813('0x2f')][_0x7813('0x2e')]('recipients')){throw new db[(_0x7813('0x34'))][(_0x7813('0x31'))](_0x7813('0x35'));}else{try{var _0x5b2406=JSON[_0x7813('0x36')](_0x12b6ce[_0x7813('0x2f')][_0x7813('0x37')]);}catch(_0x362fa9){logger[_0x7813('0x29')](_0x362fa9);throw new db[(_0x7813('0x34'))][(_0x7813('0x31'))](_0x7813('0x38'));}var _0x5b40e4=[_0x7813('0x39'),_0x7813('0x3a'),_0x7813('0x3b'),'openchannelqueue','smsqueue',_0x7813('0x3c'),_0x7813('0x3d'),'team',_0x7813('0x3e')];if(_[_0x7813('0x3f')](_0x5b2406,function(_0x5d1aad){return!_[_0x7813('0x40')](_0x5b40e4,_0x5d1aad[_0x7813('0x41')][_0x7813('0x42')]());})){throw new db[(_0x7813('0x34'))]['ValidationError'](_0x7813('0x43'));}}}var _0x7269da={};_0x7269da[_0x7813('0x44')]=_0x12b6ce[_0x7813('0x2f')]['hasOwnProperty']('senderName')?_0x12b6ce[_0x7813('0x2f')]['senderName']:_0x12b6ce[_0x7813('0x3e')][_0x7813('0x45')];_0x7269da['recipientsDescription']=_[_0x7813('0x46')](_0x12b6ce['body'][_0x7813('0x47')])?null:_0x12b6ce[_0x7813('0x2f')][_0x7813('0x47')];_0x7269da[_0x7813('0x48')]=_0x12b6ce[_0x7813('0x2f')][_0x7813('0x48')]||![];_0x7269da['SenderId']=_0x12b6ce['user']['id'];return getContent(_0x12b6ce['body'])[_0x7813('0x28')](function(_0x2f6a49){_0x7269da[_0x7813('0x2f')]=_0x2f6a49;return getRecipients(_0x5b2406);})[_0x7813('0x28')](function(_0xaf77fd){_0x7269da[_0x7813('0x49')]=_['sortBy'](_0xaf77fd)[_0x7813('0x4a')](',');return db[_0x7813('0x4b')][_0x7813('0x4c')](function(_0x3a2c29){return db[_0x7813('0x4d')][_0x7813('0x4e')](_0x7269da,{'raw':!![],'transaction':_0x3a2c29})[_0x7813('0x28')](function(_0x278be4){var _0x136601={'sender':_0x7269da[_0x7813('0x44')],'description':_0x7269da[_0x7813('0x47')],'content':_0x7269da[_0x7813('0x2f')],'beep':_0x7269da[_0x7813('0x48')]};_0xaf77fd[_0x7813('0x4f')](function(_0xdca0c4){_0x136601['recipient']=_0xdca0c4;socket[_0x7813('0x50')](_0x7813('0x51'),_0x136601);});return _0x278be4;});});})[_0x7813('0x28')](respondWithResult(_0x370d6b,0xc9))['catch'](handleError(_0x370d6b,null));};function getContent(_0x11552f){return new BPromise(function(_0x2559e7,_0x2b7ed3){if(_0x11552f[_0x7813('0x52')]){_0x2559e7(_0x11552f['text']);return;}return db[_0x7813('0x53')][_0x7813('0x54')]({'attributes':[_0x7813('0x55')],'where':{'id':_0x11552f[_0x7813('0x30')]},'raw':!![]})[_0x7813('0x28')](function(_0x5f2a75){if(!_0x5f2a75)throw new db[(_0x7813('0x34'))][(_0x7813('0x31'))](_0x7813('0x56'));var _0x3d4b52=Mustache[_0x7813('0x57')](_0x5f2a75['html'],_0x11552f['view']);_0x2559e7(_0x3d4b52);})['catch'](function(_0x1a04b6){_0x2b7ed3(_0x1a04b6);});});}function getRecipients(_0x365d44){return new BPromise(function(_0xfc9f51,_0x3b7961){var _0x59044e=[];var _0x109343=[];_0x365d44[_0x7813('0x4f')](function(_0x27f3fc){var _0x17c3cb=_[_0x7813('0x58')](_0x27f3fc['model'][_0x7813('0x42')]());if(_0x17c3cb===_0x7813('0x59')){_0x59044e=_[_0x7813('0x5a')](_0x59044e,_0x27f3fc[_0x7813('0x5b')]);}else{if(_[_0x7813('0x40')](_0x17c3cb,_0x7813('0x5c')))_0x17c3cb=_0x17c3cb['replace'](_0x7813('0x5c'),_0x7813('0x5d'));_0x27f3fc[_0x7813('0x5b')][_0x7813('0x4f')](function(_0x513b19){_0x109343['push'](getAgents(_0x17c3cb,_0x513b19));});}});return BPromise[_0x7813('0x5e')](_0x109343)[_0x7813('0x28')](function(_0x13926c){_0x59044e=_[_0x7813('0x5a')](_0x59044e,_[_0x7813('0x5f')](_0x13926c));_0xfc9f51(_0x59044e);})[_0x7813('0x60')](function(_0x44f569){_0x3b7961(_0x44f569);});});}function getAgents(_0xc2093a,_0x3ba507){return new BPromise(function(_0x159fe3,_0x2b4db5){return db[_0xc2093a][_0x7813('0x54')]({'where':{'id':_0x3ba507}})[_0x7813('0x28')](function(_0x17c422){return _0x17c422[_0x7813('0x61')]({'attributes':['id'],'raw':!![]})[_0x7813('0x28')](function(_0x2d2170){var _0x46dfbd=_[_0x7813('0x62')](_0x2d2170,'id');_0x159fe3(_0x46dfbd);});})[_0x7813('0x60')](function(_0x185f1d){_0x2b4db5(_0x185f1d);});});}