Built motion from commit (unavailable).|2.5.27
[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 _0x2029=['mailbox','VoiceMailMessage','findAndCountAll','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','to-csv','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','count','offset','limit','set','Content-Range','apply','save','update','then','destroy','get','UserProfileResource','error','stack','name','send','index','map','VoiceMail','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','order','sort','pick','filter','VIRTUAL','options','where','includeAll','findAll','rows','catch','show','params','merge','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','Voicemails','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','findOne','nolimit'];(function(_0x2b8e2f,_0x5c8a59){var _0x389e90=function(_0x5899e4){while(--_0x5899e4){_0x2b8e2f['push'](_0x2b8e2f['shift']());}};_0x389e90(++_0x5c8a59);}(_0x2029,0xb5));var _0x9202=function(_0x225cf9,_0xe28acf){_0x225cf9=_0x225cf9-0x0;var _0x460221=_0x2029[_0x225cf9];return _0x460221;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x9202('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0x9202('0x1'));var rp=require(_0x9202('0x2'));var moment=require(_0x9202('0x3'));var BPromise=require(_0x9202('0x4'));var Mustache=require(_0x9202('0x5'));var util=require(_0x9202('0x6'));var path=require('path');var sox=require(_0x9202('0x7'));var csv=require(_0x9202('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x9202('0x9'));var squel=require(_0x9202('0xa'));var crypto=require(_0x9202('0xb'));var jsforce=require(_0x9202('0xc'));var deskjs=require(_0x9202('0xd'));var toCsv=require(_0x9202('0x8'));var querystring=require(_0x9202('0xe'));var Papa=require(_0x9202('0xf'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x9202('0x10'));var as=require(_0x9202('0x11'));var hardwareService=require(_0x9202('0x12'));var logger=require(_0x9202('0x13'))('api');var utils=require(_0x9202('0x14'));var config=require(_0x9202('0x15'));var licenseUtil=require(_0x9202('0x16'));var db=require(_0x9202('0x17'))['db'];function respondWithStatusCode(_0xf69244,_0x4d7248){_0x4d7248=_0x4d7248||0xcc;return function(_0x34fa32){if(_0x34fa32){return _0xf69244[_0x9202('0x18')](_0x4d7248);}return _0xf69244[_0x9202('0x19')](_0x4d7248)[_0x9202('0x1a')]();};}function respondWithResult(_0x5d8ff2,_0x35e60e){_0x35e60e=_0x35e60e||0xc8;return function(_0x25dcd0){if(_0x25dcd0){return _0x5d8ff2[_0x9202('0x19')](_0x35e60e)[_0x9202('0x1b')](_0x25dcd0);}};}function respondWithFilteredResult(_0x346a65,_0x16a7f1){return function(_0x40af6c){if(_0x40af6c){var _0xc079f2=_0x40af6c[_0x9202('0x1c')],_0x4fba8e=_0x16a7f1[_0x9202('0x1d')],_0xcb88a2=_0x16a7f1[_0x9202('0x1d')]+_0x16a7f1[_0x9202('0x1e')],_0x298849;if(_0xcb88a2>=_0xc079f2){_0xcb88a2=_0xc079f2;_0x298849=0xc8;}else{_0x298849=0xce;}_0x346a65[_0x9202('0x19')](_0x298849);return _0x346a65[_0x9202('0x1f')](_0x9202('0x20'),_0x4fba8e+'-'+_0xcb88a2+'/'+_0xc079f2)['json'](_0x40af6c);}return null;};}function patchUpdates(_0x514d47){return function(_0x2c8856){try{jsonpatch[_0x9202('0x21')](_0x2c8856,_0x514d47,!![]);}catch(_0x40d8a5){return BPromise['reject'](_0x40d8a5);}return _0x2c8856[_0x9202('0x22')]();};}function saveUpdates(_0x45ef65,_0x23f803){return function(_0x720bac){if(_0x720bac){return _0x720bac[_0x9202('0x23')](_0x45ef65)[_0x9202('0x24')](function(_0x2fb4b9){return _0x2fb4b9;});}return null;};}function removeEntity(_0x392277,_0x3ff154){return function(_0x4f91e1){if(_0x4f91e1){return _0x4f91e1[_0x9202('0x25')]()[_0x9202('0x24')](function(){var _0x3510ab=_0x4f91e1[_0x9202('0x26')]({'plain':!![]});var _0x241760='Voicemails';return db[_0x9202('0x27')][_0x9202('0x25')]({'where':{'type':_0x241760,'resourceId':_0x3510ab['id']}})['then'](function(){return _0x4f91e1;});})[_0x9202('0x24')](function(){_0x392277[_0x9202('0x19')](0xcc)[_0x9202('0x1a')]();});}};}function handleEntityNotFound(_0x12f430,_0x13088e){return function(_0x37bac6){if(!_0x37bac6){_0x12f430[_0x9202('0x18')](0x194);}return _0x37bac6;};}function handleError(_0x24206a,_0x224d79){_0x224d79=_0x224d79||0x1f4;return function(_0x1659fa){logger[_0x9202('0x28')](_0x1659fa[_0x9202('0x29')]);if(_0x1659fa[_0x9202('0x2a')]){delete _0x1659fa[_0x9202('0x2a')];}_0x24206a[_0x9202('0x19')](_0x224d79)[_0x9202('0x2b')](_0x1659fa);};}exports[_0x9202('0x2c')]=function(_0x5e2eb9,_0x59b1eb){var _0x5aa9e2={},_0x347044={},_0x4794c0={'count':0x0,'rows':[]};var _0x29f669=_[_0x9202('0x2d')](db[_0x9202('0x2e')][_0x9202('0x2f')],function(_0x1237ec){return{'name':_0x1237ec[_0x9202('0x30')],'type':_0x1237ec[_0x9202('0x31')][_0x9202('0x32')]};});_0x347044[_0x9202('0x33')]=_[_0x9202('0x2d')](_0x29f669,_0x9202('0x2a'));_0x347044[_0x9202('0x34')]=_[_0x9202('0x35')](_0x5e2eb9[_0x9202('0x34')]);_0x347044[_0x9202('0x36')]=_[_0x9202('0x37')](_0x347044[_0x9202('0x33')],_0x347044[_0x9202('0x34')]);_0x5aa9e2[_0x9202('0x38')]=_[_0x9202('0x37')](_0x347044[_0x9202('0x33')],qs[_0x9202('0x39')](_0x5e2eb9[_0x9202('0x34')][_0x9202('0x39')]));_0x5aa9e2[_0x9202('0x38')]=_0x5aa9e2['attributes'][_0x9202('0x3a')]?_0x5aa9e2[_0x9202('0x38')]:_0x347044['model'];if(!_0x5e2eb9[_0x9202('0x34')][_0x9202('0x3b')]('nolimit')){_0x5aa9e2[_0x9202('0x1e')]=qs['limit'](_0x5e2eb9[_0x9202('0x34')][_0x9202('0x1e')]);_0x5aa9e2['offset']=qs['offset'](_0x5e2eb9['query']['offset']);}_0x5aa9e2[_0x9202('0x3c')]=qs[_0x9202('0x3d')](_0x5e2eb9[_0x9202('0x34')][_0x9202('0x3d')]);_0x5aa9e2['where']=qs[_0x9202('0x36')](_[_0x9202('0x3e')](_0x5e2eb9[_0x9202('0x34')],_0x347044[_0x9202('0x36')]),_0x29f669);if(_0x5e2eb9[_0x9202('0x34')][_0x9202('0x3f')]){_0x5aa9e2['where']=_['merge'](_0x5aa9e2['where'],{'$or':_['map'](_0x29f669,function(_0x43a525){if(_0x43a525['type']!==_0x9202('0x40')){var _0x2d982b={};_0x2d982b[_0x43a525[_0x9202('0x2a')]]={'$like':'%'+_0x5e2eb9[_0x9202('0x34')][_0x9202('0x3f')]+'%'};return _0x2d982b;}})});}_0x5aa9e2=_['merge']({},_0x5aa9e2,_0x5e2eb9[_0x9202('0x41')]);var _0x245025={'where':_0x5aa9e2[_0x9202('0x42')]};return db['VoiceMail']['count'](_0x245025)['then'](function(_0x3d61c4){_0x4794c0[_0x9202('0x1c')]=_0x3d61c4;if(_0x5e2eb9[_0x9202('0x34')][_0x9202('0x43')]){_0x5aa9e2['include']=[{'all':!![]}];}return db[_0x9202('0x2e')][_0x9202('0x44')](_0x5aa9e2);})[_0x9202('0x24')](function(_0x382391){_0x4794c0[_0x9202('0x45')]=_0x382391;return _0x4794c0;})[_0x9202('0x24')](respondWithFilteredResult(_0x59b1eb,_0x5aa9e2))[_0x9202('0x46')](handleError(_0x59b1eb,null));};exports[_0x9202('0x47')]=function(_0x4128cd,_0x5bd21b){var _0x59fe7d={'raw':!![],'where':{'id':_0x4128cd[_0x9202('0x48')]['id']}},_0x125450={};_0x125450['model']=_[_0x9202('0x35')](db['VoiceMail'][_0x9202('0x2f')]);_0x125450[_0x9202('0x34')]=_['keys'](_0x4128cd[_0x9202('0x34')]);_0x125450['filters']=_[_0x9202('0x37')](_0x125450[_0x9202('0x33')],_0x125450[_0x9202('0x34')]);_0x59fe7d[_0x9202('0x38')]=_['intersection'](_0x125450[_0x9202('0x33')],qs[_0x9202('0x39')](_0x4128cd[_0x9202('0x34')][_0x9202('0x39')]));_0x59fe7d[_0x9202('0x38')]=_0x59fe7d[_0x9202('0x38')][_0x9202('0x3a')]?_0x59fe7d[_0x9202('0x38')]:_0x125450[_0x9202('0x33')];if(_0x4128cd[_0x9202('0x34')][_0x9202('0x43')]){_0x59fe7d['include']=[{'all':!![]}];}_0x59fe7d=_[_0x9202('0x49')]({},_0x59fe7d,_0x4128cd['options']);return db[_0x9202('0x2e')][_0x9202('0x4a')](_0x59fe7d)[_0x9202('0x24')](handleEntityNotFound(_0x5bd21b,null))[_0x9202('0x24')](respondWithResult(_0x5bd21b,null))['catch'](handleError(_0x5bd21b,null));};exports['create']=function(_0x522057,_0x182c1b){return db[_0x9202('0x2e')][_0x9202('0x4b')](_0x522057[_0x9202('0x4c')],{})['then'](function(_0x49446f){var _0x5ec3fb=_0x522057[_0x9202('0x4d')]['get']({'plain':!![]});if(!_0x5ec3fb)throw new Error(_0x9202('0x4e'));if(_0x5ec3fb[_0x9202('0x4f')]===_0x9202('0x4d')){var _0x5c9d66=_0x49446f[_0x9202('0x26')]({'plain':!![]});var _0x636fe7=_0x9202('0x50');return db['UserProfileSection']['find']({'where':{'name':_0x636fe7,'userProfileId':_0x5ec3fb[_0x9202('0x51')]},'raw':!![]})['then'](function(_0x5012f2){if(_0x5012f2&&_0x5012f2[_0x9202('0x52')]===0x0){return db[_0x9202('0x27')]['create']({'name':_0x5c9d66['name'],'resourceId':_0x5c9d66['id'],'type':_0x5012f2[_0x9202('0x2a')],'sectionId':_0x5012f2['id']},{})[_0x9202('0x24')](function(){return _0x49446f;});}else{return _0x49446f;}})[_0x9202('0x46')](function(_0x156127){logger[_0x9202('0x28')](_0x9202('0x53'),_0x156127);throw _0x156127;});}return _0x49446f;})[_0x9202('0x24')](respondWithResult(_0x182c1b,0xc9))[_0x9202('0x46')](handleError(_0x182c1b,null));};exports[_0x9202('0x23')]=function(_0x4ec315,_0x53f2a8){if(_0x4ec315[_0x9202('0x4c')]['id']){delete _0x4ec315['body']['id'];}return db[_0x9202('0x2e')][_0x9202('0x4a')]({'where':{'id':_0x4ec315[_0x9202('0x48')]['id']}})[_0x9202('0x24')](handleEntityNotFound(_0x53f2a8,null))[_0x9202('0x24')](saveUpdates(_0x4ec315[_0x9202('0x4c')],null))['then'](respondWithResult(_0x53f2a8,null))[_0x9202('0x46')](handleError(_0x53f2a8,null));};exports[_0x9202('0x25')]=function(_0x29cdd7,_0x5e58ae){return db[_0x9202('0x2e')][_0x9202('0x4a')]({'where':{'id':_0x29cdd7[_0x9202('0x48')]['id']}})[_0x9202('0x24')](handleEntityNotFound(_0x5e58ae,null))['then'](removeEntity(_0x5e58ae,null))[_0x9202('0x46')](handleError(_0x5e58ae,null));};exports['getMessages']=function(_0x5e37c1,_0x47db50,_0x27ab3d){return db['VoiceMail'][_0x9202('0x54')]({'where':{'id':_0x5e37c1[_0x9202('0x48')]['id']}})[_0x9202('0x24')](handleEntityNotFound(_0x47db50,null))[_0x9202('0x24')](function(_0x1353e4){var _0x3a4ded;var _0x26e1cb={},_0x493163={};_0x493163[_0x9202('0x33')]=_[_0x9202('0x35')](db['VoiceMailMessage'][_0x9202('0x2f')]);_0x493163[_0x9202('0x34')]=_['keys'](_0x5e37c1[_0x9202('0x34')]);_0x493163[_0x9202('0x36')]=_[_0x9202('0x37')](_0x493163[_0x9202('0x33')],_0x493163['query']);_0x26e1cb['attributes']=_['intersection'](_0x493163[_0x9202('0x33')],qs[_0x9202('0x39')](_0x5e37c1['query']['fields']));_0x26e1cb[_0x9202('0x38')]=_0x26e1cb[_0x9202('0x38')]['length']?_0x26e1cb[_0x9202('0x38')]:_0x493163[_0x9202('0x33')];if(!_0x5e37c1[_0x9202('0x34')]['hasOwnProperty'](_0x9202('0x55'))){_0x26e1cb['limit']=qs[_0x9202('0x1e')](_0x5e37c1[_0x9202('0x34')][_0x9202('0x1e')]);_0x26e1cb[_0x9202('0x1d')]=qs['offset'](_0x5e37c1['query'][_0x9202('0x1d')]);}_0x26e1cb[_0x9202('0x3c')]=qs[_0x9202('0x3d')](_0x5e37c1[_0x9202('0x34')][_0x9202('0x3d')]);_0x26e1cb[_0x9202('0x42')]=qs['filters'](_[_0x9202('0x3e')](_0x5e37c1[_0x9202('0x34')],_0x493163['filters']));if(_0x5e37c1[_0x9202('0x34')][_0x9202('0x3f')]){_0x26e1cb[_0x9202('0x42')]=_['merge'](_0x26e1cb[_0x9202('0x42')],{'$or':_[_0x9202('0x2d')](_0x26e1cb[_0x9202('0x38')],function(_0xf588b6){var _0x308960={};_0x308960[_0xf588b6]={'$like':'%'+_0x5e37c1[_0x9202('0x34')][_0x9202('0x3f')]+'%'};return _0x308960;})});}_0x26e1cb['where']=_[_0x9202('0x49')](_0x26e1cb[_0x9202('0x42')],{'mailboxuser':_0x1353e4[_0x9202('0x56')]});_0x26e1cb=_[_0x9202('0x49')]({},_0x26e1cb,_0x5e37c1[_0x9202('0x41')]);return db[_0x9202('0x57')][_0x9202('0x58')](_0x26e1cb)['then'](respondWithFilteredResult(_0x47db50,_0x26e1cb));})[_0x9202('0x46')](handleError(_0x47db50,null));};