d6f08b2c84fb552dac90aa88a0c3412e58378e78
[motion2.git] / server / api / voiceMail / voiceMail.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 _0xfa4d=['end','json','count','offset','limit','Content-Range','save','update','then','destroy','get','Voicemails','UserProfileResource','error','stack','name','send','index','map','VoiceMail','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','nolimit','order','sort','where','pick','VIRTUAL','filter','includeAll','include','catch','options','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','findOne','VoiceMailMessage','merge','mailbox','findAndCountAll','html-pdf','eml-format','zip-dir','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status'];(function(_0x2f3848,_0x48564d){var _0x102668=function(_0x5e32ab){while(--_0x5e32ab){_0x2f3848['push'](_0x2f3848['shift']());}};_0x102668(++_0x48564d);}(_0xfa4d,0x90));var _0xdfa4=function(_0xc6a58c,_0x43a3d2){_0xc6a58c=_0xc6a58c-0x0;var _0x4685f2=_0xfa4d[_0xc6a58c];return _0x4685f2;};'use strict';var pdf=require(_0xdfa4('0x0'));var emlformat=require(_0xdfa4('0x1'));var rimraf=require('rimraf');var zipdir=require(_0xdfa4('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0xdfa4('0x3'));var Mustache=require(_0xdfa4('0x4'));var util=require(_0xdfa4('0x5'));var path=require(_0xdfa4('0x6'));var sox=require(_0xdfa4('0x7'));var csv=require(_0xdfa4('0x8'));var ejs=require(_0xdfa4('0x9'));var fs=require('fs');var _=require(_0xdfa4('0xa'));var squel=require(_0xdfa4('0xb'));var crypto=require(_0xdfa4('0xc'));var jsforce=require(_0xdfa4('0xd'));var deskjs=require(_0xdfa4('0xe'));var toCsv=require(_0xdfa4('0x8'));var querystring=require(_0xdfa4('0xf'));var Papa=require(_0xdfa4('0x10'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0xdfa4('0x11'));var as=require(_0xdfa4('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xdfa4('0x13'))('api');var utils=require(_0xdfa4('0x14'));var config=require(_0xdfa4('0x15'));var licenseUtil=require(_0xdfa4('0x16'));var db=require(_0xdfa4('0x17'))['db'];function respondWithStatusCode(_0x1f45d6,_0x2c56ff){_0x2c56ff=_0x2c56ff||0xcc;return function(_0x2896af){if(_0x2896af){return _0x1f45d6[_0xdfa4('0x18')](_0x2c56ff);}return _0x1f45d6[_0xdfa4('0x19')](_0x2c56ff)[_0xdfa4('0x1a')]();};}function respondWithResult(_0x3889eb,_0x101063){_0x101063=_0x101063||0xc8;return function(_0x239bde){if(_0x239bde){return _0x3889eb['status'](_0x101063)[_0xdfa4('0x1b')](_0x239bde);}};}function respondWithFilteredResult(_0x5d604b,_0x1e0140){return function(_0x566c09){if(_0x566c09){var _0x1284de=_0x566c09[_0xdfa4('0x1c')],_0x1163ed=_0x1e0140[_0xdfa4('0x1d')],_0x4c069a=_0x1e0140[_0xdfa4('0x1d')]+_0x1e0140[_0xdfa4('0x1e')],_0x9f8bd6;if(_0x4c069a>=_0x1284de){_0x4c069a=_0x1284de;_0x9f8bd6=0xc8;}else{_0x9f8bd6=0xce;}_0x5d604b['status'](_0x9f8bd6);return _0x5d604b['set'](_0xdfa4('0x1f'),_0x1163ed+'-'+_0x4c069a+'/'+_0x1284de)[_0xdfa4('0x1b')](_0x566c09);}return null;};}function patchUpdates(_0x37197){return function(_0x5d4412){try{jsonpatch['apply'](_0x5d4412,_0x37197,!![]);}catch(_0x5ac92a){return BPromise['reject'](_0x5ac92a);}return _0x5d4412[_0xdfa4('0x20')]();};}function saveUpdates(_0x36dd54,_0x25701a){return function(_0x47187f){if(_0x47187f){return _0x47187f[_0xdfa4('0x21')](_0x36dd54)[_0xdfa4('0x22')](function(_0x2e5a0a){return _0x2e5a0a;});}return null;};}function removeEntity(_0x29d1e3,_0x486c77){return function(_0x359ba2){if(_0x359ba2){return _0x359ba2[_0xdfa4('0x23')]()['then'](function(){var _0x3024b6=_0x359ba2[_0xdfa4('0x24')]({'plain':!![]});var _0x5ab8f6=_0xdfa4('0x25');return db[_0xdfa4('0x26')][_0xdfa4('0x23')]({'where':{'type':_0x5ab8f6,'resourceId':_0x3024b6['id']}})['then'](function(){return _0x359ba2;});})[_0xdfa4('0x22')](function(){_0x29d1e3[_0xdfa4('0x19')](0xcc)[_0xdfa4('0x1a')]();});}};}function handleEntityNotFound(_0x524150,_0x3dc981){return function(_0x1748ac){if(!_0x1748ac){_0x524150['sendStatus'](0x194);}return _0x1748ac;};}function handleError(_0x4fb820,_0x1d6411){_0x1d6411=_0x1d6411||0x1f4;return function(_0x733fc){logger[_0xdfa4('0x27')](_0x733fc[_0xdfa4('0x28')]);if(_0x733fc[_0xdfa4('0x29')]){delete _0x733fc[_0xdfa4('0x29')];}_0x4fb820[_0xdfa4('0x19')](_0x1d6411)[_0xdfa4('0x2a')](_0x733fc);};}exports[_0xdfa4('0x2b')]=function(_0xa5adc9,_0x11b9db){var _0x2dc6c2={},_0xb2d02c={},_0x8e56c5={'count':0x0,'rows':[]};var _0x574ba6=_[_0xdfa4('0x2c')](db[_0xdfa4('0x2d')][_0xdfa4('0x2e')],function(_0x18d983){return{'name':_0x18d983[_0xdfa4('0x2f')],'type':_0x18d983[_0xdfa4('0x30')][_0xdfa4('0x31')]};});_0xb2d02c[_0xdfa4('0x32')]=_['map'](_0x574ba6,'name');_0xb2d02c[_0xdfa4('0x33')]=_[_0xdfa4('0x34')](_0xa5adc9[_0xdfa4('0x33')]);_0xb2d02c[_0xdfa4('0x35')]=_[_0xdfa4('0x36')](_0xb2d02c[_0xdfa4('0x32')],_0xb2d02c[_0xdfa4('0x33')]);_0x2dc6c2[_0xdfa4('0x37')]=_[_0xdfa4('0x36')](_0xb2d02c[_0xdfa4('0x32')],qs[_0xdfa4('0x38')](_0xa5adc9['query'][_0xdfa4('0x38')]));_0x2dc6c2['attributes']=_0x2dc6c2[_0xdfa4('0x37')][_0xdfa4('0x39')]?_0x2dc6c2[_0xdfa4('0x37')]:_0xb2d02c['model'];if(!_0xa5adc9[_0xdfa4('0x33')]['hasOwnProperty'](_0xdfa4('0x3a'))){_0x2dc6c2[_0xdfa4('0x1e')]=qs['limit'](_0xa5adc9[_0xdfa4('0x33')][_0xdfa4('0x1e')]);_0x2dc6c2[_0xdfa4('0x1d')]=qs[_0xdfa4('0x1d')](_0xa5adc9[_0xdfa4('0x33')]['offset']);}_0x2dc6c2[_0xdfa4('0x3b')]=qs[_0xdfa4('0x3c')](_0xa5adc9['query']['sort']);_0x2dc6c2[_0xdfa4('0x3d')]=qs[_0xdfa4('0x35')](_[_0xdfa4('0x3e')](_0xa5adc9[_0xdfa4('0x33')],_0xb2d02c[_0xdfa4('0x35')]),_0x574ba6);if(_0xa5adc9[_0xdfa4('0x33')]['filter']){_0x2dc6c2['where']=_['merge'](_0x2dc6c2['where'],{'$or':_['map'](_0x574ba6,function(_0x59262b){if(_0x59262b[_0xdfa4('0x30')]!==_0xdfa4('0x3f')){var _0x520260={};_0x520260[_0x59262b[_0xdfa4('0x29')]]={'$like':'%'+_0xa5adc9['query'][_0xdfa4('0x40')]+'%'};return _0x520260;}})});}_0x2dc6c2=_['merge']({},_0x2dc6c2,_0xa5adc9['options']);var _0x3fd6d4={'where':_0x2dc6c2[_0xdfa4('0x3d')]};return db[_0xdfa4('0x2d')][_0xdfa4('0x1c')](_0x3fd6d4)[_0xdfa4('0x22')](function(_0x1cc5da){_0x8e56c5['count']=_0x1cc5da;if(_0xa5adc9['query'][_0xdfa4('0x41')]){_0x2dc6c2[_0xdfa4('0x42')]=[{'all':!![]}];}return db[_0xdfa4('0x2d')]['findAll'](_0x2dc6c2);})[_0xdfa4('0x22')](function(_0xf597c6){_0x8e56c5['rows']=_0xf597c6;return _0x8e56c5;})[_0xdfa4('0x22')](respondWithFilteredResult(_0x11b9db,_0x2dc6c2))[_0xdfa4('0x43')](handleError(_0x11b9db,null));};exports['show']=function(_0x4449d8,_0x3ec03a){var _0x52c160={'raw':!![],'where':{'id':_0x4449d8['params']['id']}},_0x3972a5={};_0x3972a5[_0xdfa4('0x32')]=_[_0xdfa4('0x34')](db['VoiceMail'][_0xdfa4('0x2e')]);_0x3972a5['query']=_[_0xdfa4('0x34')](_0x4449d8['query']);_0x3972a5['filters']=_[_0xdfa4('0x36')](_0x3972a5['model'],_0x3972a5[_0xdfa4('0x33')]);_0x52c160['attributes']=_[_0xdfa4('0x36')](_0x3972a5[_0xdfa4('0x32')],qs[_0xdfa4('0x38')](_0x4449d8[_0xdfa4('0x33')]['fields']));_0x52c160[_0xdfa4('0x37')]=_0x52c160[_0xdfa4('0x37')][_0xdfa4('0x39')]?_0x52c160[_0xdfa4('0x37')]:_0x3972a5[_0xdfa4('0x32')];if(_0x4449d8[_0xdfa4('0x33')][_0xdfa4('0x41')]){_0x52c160[_0xdfa4('0x42')]=[{'all':!![]}];}_0x52c160=_['merge']({},_0x52c160,_0x4449d8[_0xdfa4('0x44')]);return db['VoiceMail'][_0xdfa4('0x45')](_0x52c160)['then'](handleEntityNotFound(_0x3ec03a,null))[_0xdfa4('0x22')](respondWithResult(_0x3ec03a,null))[_0xdfa4('0x43')](handleError(_0x3ec03a,null));};exports[_0xdfa4('0x46')]=function(_0x3ee9fe,_0xde552d){return db[_0xdfa4('0x2d')][_0xdfa4('0x46')](_0x3ee9fe[_0xdfa4('0x47')],{})[_0xdfa4('0x22')](function(_0x1be5ca){var _0xd06b1c=_0x3ee9fe[_0xdfa4('0x48')]['get']({'plain':!![]});if(!_0xd06b1c)throw new Error(_0xdfa4('0x49'));if(_0xd06b1c[_0xdfa4('0x4a')]===_0xdfa4('0x48')){var _0x2b342c=_0x1be5ca[_0xdfa4('0x24')]({'plain':!![]});var _0x362758=_0xdfa4('0x25');return db[_0xdfa4('0x4b')][_0xdfa4('0x45')]({'where':{'name':_0x362758,'userProfileId':_0xd06b1c[_0xdfa4('0x4c')]},'raw':!![]})[_0xdfa4('0x22')](function(_0xe85a86){if(_0xe85a86&&_0xe85a86[_0xdfa4('0x4d')]===0x0){return db[_0xdfa4('0x26')]['create']({'name':_0x2b342c[_0xdfa4('0x29')],'resourceId':_0x2b342c['id'],'type':_0xe85a86[_0xdfa4('0x29')],'sectionId':_0xe85a86['id']},{})[_0xdfa4('0x22')](function(){return _0x1be5ca;});}else{return _0x1be5ca;}})['catch'](function(_0x3189da){logger[_0xdfa4('0x27')](_0xdfa4('0x4e'),_0x3189da);throw _0x3189da;});}return _0x1be5ca;})['then'](respondWithResult(_0xde552d,0xc9))[_0xdfa4('0x43')](handleError(_0xde552d,null));};exports[_0xdfa4('0x21')]=function(_0x15b22e,_0x44993f){if(_0x15b22e[_0xdfa4('0x47')]['id']){delete _0x15b22e[_0xdfa4('0x47')]['id'];}return db[_0xdfa4('0x2d')][_0xdfa4('0x45')]({'where':{'id':_0x15b22e[_0xdfa4('0x4f')]['id']}})[_0xdfa4('0x22')](handleEntityNotFound(_0x44993f,null))[_0xdfa4('0x22')](saveUpdates(_0x15b22e['body'],null))['then'](respondWithResult(_0x44993f,null))[_0xdfa4('0x43')](handleError(_0x44993f,null));};exports[_0xdfa4('0x23')]=function(_0x63bb0b,_0x1a999c){return db[_0xdfa4('0x2d')][_0xdfa4('0x45')]({'where':{'id':_0x63bb0b['params']['id']}})[_0xdfa4('0x22')](handleEntityNotFound(_0x1a999c,null))[_0xdfa4('0x22')](removeEntity(_0x1a999c,null))[_0xdfa4('0x43')](handleError(_0x1a999c,null));};exports['getMessages']=function(_0x2e4808,_0x465acc,_0x6de394){return db[_0xdfa4('0x2d')][_0xdfa4('0x50')]({'where':{'id':_0x2e4808[_0xdfa4('0x4f')]['id']}})[_0xdfa4('0x22')](handleEntityNotFound(_0x465acc,null))[_0xdfa4('0x22')](function(_0x1c1856){var _0x2f04d4;var _0x5e5e7f={},_0x24eb52={};_0x24eb52[_0xdfa4('0x32')]=_[_0xdfa4('0x34')](db[_0xdfa4('0x51')][_0xdfa4('0x2e')]);_0x24eb52['query']=_['keys'](_0x2e4808['query']);_0x24eb52[_0xdfa4('0x35')]=_['intersection'](_0x24eb52[_0xdfa4('0x32')],_0x24eb52[_0xdfa4('0x33')]);_0x5e5e7f[_0xdfa4('0x37')]=_['intersection'](_0x24eb52[_0xdfa4('0x32')],qs[_0xdfa4('0x38')](_0x2e4808[_0xdfa4('0x33')][_0xdfa4('0x38')]));_0x5e5e7f['attributes']=_0x5e5e7f[_0xdfa4('0x37')][_0xdfa4('0x39')]?_0x5e5e7f[_0xdfa4('0x37')]:_0x24eb52[_0xdfa4('0x32')];if(!_0x2e4808['query']['hasOwnProperty'](_0xdfa4('0x3a'))){_0x5e5e7f[_0xdfa4('0x1e')]=qs[_0xdfa4('0x1e')](_0x2e4808[_0xdfa4('0x33')][_0xdfa4('0x1e')]);_0x5e5e7f['offset']=qs[_0xdfa4('0x1d')](_0x2e4808[_0xdfa4('0x33')][_0xdfa4('0x1d')]);}_0x5e5e7f[_0xdfa4('0x3b')]=qs['sort'](_0x2e4808[_0xdfa4('0x33')][_0xdfa4('0x3c')]);_0x5e5e7f[_0xdfa4('0x3d')]=qs[_0xdfa4('0x35')](_[_0xdfa4('0x3e')](_0x2e4808[_0xdfa4('0x33')],_0x24eb52['filters']));if(_0x2e4808[_0xdfa4('0x33')][_0xdfa4('0x40')]){_0x5e5e7f[_0xdfa4('0x3d')]=_['merge'](_0x5e5e7f[_0xdfa4('0x3d')],{'$or':_[_0xdfa4('0x2c')](_0x5e5e7f['attributes'],function(_0x1aba01){var _0x40ef54={};_0x40ef54[_0x1aba01]={'$like':'%'+_0x2e4808[_0xdfa4('0x33')][_0xdfa4('0x40')]+'%'};return _0x40ef54;})});}_0x5e5e7f[_0xdfa4('0x3d')]=_[_0xdfa4('0x52')](_0x5e5e7f[_0xdfa4('0x3d')],{'mailboxuser':_0x1c1856[_0xdfa4('0x53')]});_0x5e5e7f=_[_0xdfa4('0x52')]({},_0x5e5e7f,_0x2e4808[_0xdfa4('0x44')]);return db['VoiceMailMessage'][_0xdfa4('0x54')](_0x5e5e7f)[_0xdfa4('0x22')](respondWithFilteredResult(_0x465acc,_0x5e5e7f));})[_0xdfa4('0x43')](handleError(_0x465acc,null));};