Built motion from commit (unavailable).|2.5.21
[motion2.git] / server / api / voiceMusicOnHold / voiceMusicOnHold.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 _0xe46e=['root','server/files/moh','directory','0777','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','UserProfileSection','userProfileId','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','forEach','Sequelize','ValidationError','addSound','Sound','findOne','save_name','converted_format','createdAt','server/files/sounds/converted','format','%s.%s','basename','extname','symlinkSync','removeSound','id2','unlinkSync','message','getSounds','nolimit','html-pdf','eml-format','rimraf','fast-json-patch','request-promise','path','ejs','lodash','crypto','jsforce','desk.js','to-csv','querystring','papaparse','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','set','Content-Range','reject','save','update','then','destroy','get','MusicOnHolds','error','stack','name','send','index','map','VoiceMusicOnHold','rawAttributes','fieldName','type','key','model','keys','intersection','query','attributes','fields','length','hasOwnProperty','limit','order','sort','where','filters','pick','filter','merge','VIRTUAL','options','count','includeAll','findAll','rows','catch','params','include','find','body','create','sequelize','transaction','mode','files','join'];(function(_0x4454b2,_0x3f408b){var _0x50b8f1=function(_0x5bdbe8){while(--_0x5bdbe8){_0x4454b2['push'](_0x4454b2['shift']());}};_0x50b8f1(++_0x3f408b);}(_0xe46e,0xfe));var _0xee46=function(_0x5cbc0a,_0x5f2123){_0x5cbc0a=_0x5cbc0a-0x0;var _0x44dda3=_0xe46e[_0x5cbc0a];return _0x44dda3;};'use strict';var pdf=require(_0xee46('0x0'));var emlformat=require(_0xee46('0x1'));var rimraf=require(_0xee46('0x2'));var zipdir=require('zip-dir');var jsonpatch=require(_0xee46('0x3'));var rp=require(_0xee46('0x4'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require('mustache');var util=require('util');var path=require(_0xee46('0x5'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0xee46('0x6'));var fs=require('fs');var _=require(_0xee46('0x7'));var squel=require('squel');var crypto=require(_0xee46('0x8'));var jsforce=require(_0xee46('0x9'));var deskjs=require(_0xee46('0xa'));var toCsv=require(_0xee46('0xb'));var querystring=require(_0xee46('0xc'));var Papa=require(_0xee46('0xd'));var Redis=require('ioredis');var authService=require(_0xee46('0xe'));var qs=require('../../components/parsers/qs');var as=require(_0xee46('0xf'));var hardwareService=require(_0xee46('0x10'));var logger=require(_0xee46('0x11'))(_0xee46('0x12'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0xee46('0x13'));var db=require(_0xee46('0x14'))['db'];function respondWithStatusCode(_0x32b3eb,_0x1478bd){_0x1478bd=_0x1478bd||0xcc;return function(_0x3970b5){if(_0x3970b5){return _0x32b3eb[_0xee46('0x15')](_0x1478bd);}return _0x32b3eb[_0xee46('0x16')](_0x1478bd)[_0xee46('0x17')]();};}function respondWithResult(_0x53753e,_0xb97d33){_0xb97d33=_0xb97d33||0xc8;return function(_0x27bd76){if(_0x27bd76){return _0x53753e[_0xee46('0x16')](_0xb97d33)[_0xee46('0x18')](_0x27bd76);}};}function respondWithFilteredResult(_0xc094a5,_0x2b062f){return function(_0x44f937){if(_0x44f937){var _0x16b2f6=_0x44f937['count'],_0x3f4868=_0x2b062f[_0xee46('0x19')],_0xf4cbcb=_0x2b062f[_0xee46('0x19')]+_0x2b062f['limit'],_0xc3dd79;if(_0xf4cbcb>=_0x16b2f6){_0xf4cbcb=_0x16b2f6;_0xc3dd79=0xc8;}else{_0xc3dd79=0xce;}_0xc094a5['status'](_0xc3dd79);return _0xc094a5[_0xee46('0x1a')](_0xee46('0x1b'),_0x3f4868+'-'+_0xf4cbcb+'/'+_0x16b2f6)['json'](_0x44f937);}return null;};}function patchUpdates(_0x13b283){return function(_0x4caf40){try{jsonpatch['apply'](_0x4caf40,_0x13b283,!![]);}catch(_0x53a106){return BPromise[_0xee46('0x1c')](_0x53a106);}return _0x4caf40[_0xee46('0x1d')]();};}function saveUpdates(_0x385f80,_0x45579c){return function(_0x5909ed){if(_0x5909ed){return _0x5909ed[_0xee46('0x1e')](_0x385f80)[_0xee46('0x1f')](function(_0x4016d8){return _0x4016d8;});}return null;};}function removeEntity(_0x3a7107,_0x35200a){return function(_0x257709){if(_0x257709){return _0x257709[_0xee46('0x20')]()['then'](function(){var _0x18cdf4=_0x257709[_0xee46('0x21')]({'plain':!![]});var _0x5f5c8f=_0xee46('0x22');return db['UserProfileResource'][_0xee46('0x20')]({'where':{'type':_0x5f5c8f,'resourceId':_0x18cdf4['id']}})[_0xee46('0x1f')](function(){return _0x257709;});})[_0xee46('0x1f')](function(){_0x3a7107[_0xee46('0x16')](0xcc)[_0xee46('0x17')]();});}};}function handleEntityNotFound(_0x4c558d,_0x364dcc){return function(_0xe584e2){if(!_0xe584e2){_0x4c558d[_0xee46('0x15')](0x194);}return _0xe584e2;};}function handleError(_0x5addad,_0x22cdf5){_0x22cdf5=_0x22cdf5||0x1f4;return function(_0x3ef6e1){logger[_0xee46('0x23')](_0x3ef6e1[_0xee46('0x24')]);if(_0x3ef6e1[_0xee46('0x25')]){delete _0x3ef6e1['name'];}_0x5addad['status'](_0x22cdf5)[_0xee46('0x26')](_0x3ef6e1);};}exports[_0xee46('0x27')]=function(_0xb720f7,_0x3a5be0){var _0x578f0d={},_0x3ab6c6={},_0x52f9ef={'count':0x0,'rows':[]};var _0x17d36d=_[_0xee46('0x28')](db[_0xee46('0x29')][_0xee46('0x2a')],function(_0x2a2301){return{'name':_0x2a2301[_0xee46('0x2b')],'type':_0x2a2301[_0xee46('0x2c')][_0xee46('0x2d')]};});_0x3ab6c6[_0xee46('0x2e')]=_['map'](_0x17d36d,_0xee46('0x25'));_0x3ab6c6['query']=_[_0xee46('0x2f')](_0xb720f7['query']);_0x3ab6c6['filters']=_[_0xee46('0x30')](_0x3ab6c6['model'],_0x3ab6c6[_0xee46('0x31')]);_0x578f0d[_0xee46('0x32')]=_[_0xee46('0x30')](_0x3ab6c6[_0xee46('0x2e')],qs[_0xee46('0x33')](_0xb720f7[_0xee46('0x31')]['fields']));_0x578f0d[_0xee46('0x32')]=_0x578f0d[_0xee46('0x32')][_0xee46('0x34')]?_0x578f0d[_0xee46('0x32')]:_0x3ab6c6[_0xee46('0x2e')];if(!_0xb720f7[_0xee46('0x31')][_0xee46('0x35')]('nolimit')){_0x578f0d[_0xee46('0x36')]=qs[_0xee46('0x36')](_0xb720f7[_0xee46('0x31')][_0xee46('0x36')]);_0x578f0d['offset']=qs['offset'](_0xb720f7[_0xee46('0x31')][_0xee46('0x19')]);}_0x578f0d[_0xee46('0x37')]=qs[_0xee46('0x38')](_0xb720f7['query'][_0xee46('0x38')]);_0x578f0d[_0xee46('0x39')]=qs[_0xee46('0x3a')](_[_0xee46('0x3b')](_0xb720f7['query'],_0x3ab6c6[_0xee46('0x3a')]),_0x17d36d);if(_0xb720f7[_0xee46('0x31')][_0xee46('0x3c')]){_0x578f0d[_0xee46('0x39')]=_[_0xee46('0x3d')](_0x578f0d[_0xee46('0x39')],{'$or':_[_0xee46('0x28')](_0x17d36d,function(_0x446f82){if(_0x446f82[_0xee46('0x2c')]!==_0xee46('0x3e')){var _0x3bac95={};_0x3bac95[_0x446f82['name']]={'$like':'%'+_0xb720f7[_0xee46('0x31')][_0xee46('0x3c')]+'%'};return _0x3bac95;}})});}_0x578f0d=_[_0xee46('0x3d')]({},_0x578f0d,_0xb720f7[_0xee46('0x3f')]);var _0x14a5d0={'where':_0x578f0d[_0xee46('0x39')]};return db['VoiceMusicOnHold'][_0xee46('0x40')](_0x14a5d0)[_0xee46('0x1f')](function(_0x2bd349){_0x52f9ef[_0xee46('0x40')]=_0x2bd349;if(_0xb720f7[_0xee46('0x31')][_0xee46('0x41')]){_0x578f0d['include']=[{'all':!![]}];}return db[_0xee46('0x29')][_0xee46('0x42')](_0x578f0d);})[_0xee46('0x1f')](function(_0x2e5dc5){_0x52f9ef[_0xee46('0x43')]=_0x2e5dc5;return _0x52f9ef;})[_0xee46('0x1f')](respondWithFilteredResult(_0x3a5be0,_0x578f0d))[_0xee46('0x44')](handleError(_0x3a5be0,null));};exports['show']=function(_0x8139b8,_0x5aace4){var _0x23da15={'raw':![],'where':{'id':_0x8139b8[_0xee46('0x45')]['id']}},_0x3d2dbb={};_0x3d2dbb[_0xee46('0x2e')]=_[_0xee46('0x2f')](db[_0xee46('0x29')][_0xee46('0x2a')]);_0x3d2dbb['query']=_[_0xee46('0x2f')](_0x8139b8['query']);_0x3d2dbb['filters']=_[_0xee46('0x30')](_0x3d2dbb[_0xee46('0x2e')],_0x3d2dbb[_0xee46('0x31')]);_0x23da15[_0xee46('0x32')]=_[_0xee46('0x30')](_0x3d2dbb['model'],qs[_0xee46('0x33')](_0x8139b8[_0xee46('0x31')]['fields']));_0x23da15[_0xee46('0x32')]=_0x23da15['attributes'][_0xee46('0x34')]?_0x23da15['attributes']:_0x3d2dbb[_0xee46('0x2e')];if(_0x8139b8[_0xee46('0x31')][_0xee46('0x41')]){_0x23da15[_0xee46('0x46')]=[{'all':!![]}];}_0x23da15=_[_0xee46('0x3d')]({},_0x23da15,_0x8139b8['options']);return db[_0xee46('0x29')][_0xee46('0x47')](_0x23da15)['then'](handleEntityNotFound(_0x5aace4,null))[_0xee46('0x1f')](respondWithResult(_0x5aace4,null))[_0xee46('0x44')](handleError(_0x5aace4,null));};exports[_0xee46('0x1e')]=function(_0x14a038,_0x4fe0cf){if(_0x14a038[_0xee46('0x48')]['id']){delete _0x14a038[_0xee46('0x48')]['id'];}return db[_0xee46('0x29')]['find']({'where':{'id':_0x14a038['params']['id']}})[_0xee46('0x1f')](handleEntityNotFound(_0x4fe0cf,null))[_0xee46('0x1f')](saveUpdates(_0x14a038[_0xee46('0x48')],null))[_0xee46('0x1f')](respondWithResult(_0x4fe0cf,null))[_0xee46('0x44')](handleError(_0x4fe0cf,null));};exports[_0xee46('0x49')]=function(_0x574a49,_0x262159,_0x8d902){return db[_0xee46('0x4a')][_0xee46('0x4b')](function(_0x56dc6c){if(_0x574a49[_0xee46('0x48')][_0xee46('0x4c')]===_0xee46('0x4d')){_0x574a49['body']['directory']=path[_0xee46('0x4e')](config[_0xee46('0x4f')],_0xee46('0x50'),_0x574a49[_0xee46('0x48')]['name']);}return db[_0xee46('0x29')]['create'](_0x574a49[_0xee46('0x48')],{'transaction':_0x56dc6c})['then'](function(_0x5b4b63){if(_0x574a49[_0xee46('0x48')][_0xee46('0x4c')]==='files'){fs['mkdirSync'](_0x5b4b63[_0xee46('0x51')],parseInt(_0xee46('0x52'),0x8));}var _0x42dc4b=_0x574a49['user'][_0xee46('0x21')]({'plain':!![]});if(!_0x42dc4b)throw new Error(_0xee46('0x53'));if(_0x42dc4b[_0xee46('0x54')]===_0xee46('0x55')){var _0x4c9aeb=_0x5b4b63[_0xee46('0x21')]({'plain':!![]});return db[_0xee46('0x56')][_0xee46('0x47')]({'where':{'name':_0xee46('0x22'),'userProfileId':_0x42dc4b[_0xee46('0x57')]},'raw':!![]})[_0xee46('0x1f')](function(_0x1ede5e){if(_0x1ede5e&&_0x1ede5e['autoAssociation']===0x0){return db[_0xee46('0x58')]['create']({'name':_0x4c9aeb[_0xee46('0x25')],'resourceId':_0x4c9aeb['id'],'type':_0x1ede5e[_0xee46('0x25')],'sectionId':_0x1ede5e['id']},{})[_0xee46('0x1f')](function(){return _0x5b4b63;});}else{return _0x5b4b63;}})[_0xee46('0x44')](function(_0x54aaa2){logger[_0xee46('0x23')](_0xee46('0x59'),_0x54aaa2);});}return _0x5b4b63;});})['then'](respondWithResult(_0x262159,0xc9))[_0xee46('0x44')](handleError(_0x262159,null));};exports[_0xee46('0x20')]=function(_0xe327e1,_0x24c40a,_0x302c40){var _0x3522b9;return db[_0xee46('0x29')]['find']({'where':{'id':_0xe327e1[_0xee46('0x45')]['id']}})[_0xee46('0x1f')](function(_0x4cd581){if(_0x4cd581){return db[_0xee46('0x4a')][_0xee46('0x4b')](function(_0x4646b0){return _0x4cd581[_0xee46('0x20')]({'transaction':_0x4646b0,'raw':!![]})['then'](function(_0x336b53){if(_0x336b53['directory']){fs['readdirSync'](_0x336b53['directory'])[_0xee46('0x5a')](function(_0x86dc86){fs['unlinkSync'](path[_0xee46('0x4e')](_0x336b53['directory'],_0x86dc86));});fs['rmdirSync'](_0x336b53[_0xee46('0x51')]);}return _0x336b53;});})[_0xee46('0x44')](function(_0x1fd82e){throw new db[(_0xee46('0x5b'))][(_0xee46('0x5c'))](_0x1fd82e['message']);});}})[_0xee46('0x1f')](handleEntityNotFound(_0x24c40a,null))[_0xee46('0x1f')](removeEntity(_0x24c40a,null))[_0xee46('0x44')](handleError(_0x24c40a,null));};exports[_0xee46('0x5d')]=function(_0x20db39,_0x436ac2,_0x1ff5a8){return db[_0xee46('0x4a')][_0xee46('0x4b')](function(_0x406b4a){var _0x3f9554;return db[_0xee46('0x29')][_0xee46('0x47')]({'where':{'id':_0x20db39[_0xee46('0x45')]['id']}})[_0xee46('0x1f')](function(_0x86da92){if(_0x86da92){_0x3f9554=_0x86da92;return _0x86da92['addSound'](_0x20db39[_0xee46('0x48')]['id'],{'transaction':_0x406b4a});}})[_0xee46('0x1f')](function(_0x1437af){if(_0x1437af){return db[_0xee46('0x5e')][_0xee46('0x5f')]({'where':{'id':_0x20db39[_0xee46('0x48')]['id']},'attributes':['id',_0xee46('0x25'),_0xee46('0x60'),_0xee46('0x61'),_0xee46('0x62')],'raw':!![]});}})[_0xee46('0x1f')](function(_0x385d3e){if(_0x385d3e){var _0x3f53c3=path[_0xee46('0x4e')](config['root'],_0xee46('0x63'),util[_0xee46('0x64')](_0xee46('0x65'),path[_0xee46('0x66')](_0x385d3e[_0xee46('0x60')],path[_0xee46('0x67')](_0x385d3e[_0xee46('0x60')])),_0x385d3e['converted_format']));var _0x9085fd=path['join'](config[_0xee46('0x4f')],_0xee46('0x50'),_0x3f9554['name'],util['format'](_0xee46('0x65'),_0x385d3e['name'],_0x385d3e[_0xee46('0x61')]));fs[_0xee46('0x68')](_0x3f53c3,_0x9085fd);return _0x385d3e;}})[_0xee46('0x44')](function(_0x2b1027){throw new db[(_0xee46('0x5b'))][(_0xee46('0x5c'))](_0x2b1027['message']);});})[_0xee46('0x1f')](handleEntityNotFound(_0x436ac2,null))['then'](respondWithResult(_0x436ac2,0xc9))[_0xee46('0x44')](handleError(_0x436ac2,null));};exports[_0xee46('0x69')]=function(_0x1d88ed,_0x3fe6cb,_0x226cf4){return db[_0xee46('0x4a')]['transaction'](function(_0xef19b2){var _0x21860b;return db[_0xee46('0x29')][_0xee46('0x5f')]({'where':{'id':_0x1d88ed[_0xee46('0x45')]['id']}})[_0xee46('0x1f')](handleEntityNotFound(_0x3fe6cb,null))['then'](function(_0x53b2f8){if(_0x53b2f8){_0x21860b=_0x53b2f8;return _0x53b2f8[_0xee46('0x69')](_0x1d88ed[_0xee46('0x45')][_0xee46('0x6a')]);}})[_0xee46('0x1f')](function(_0x2cbad2){if(_0x2cbad2){return db[_0xee46('0x5e')]['findOne']({'where':{'id':_0x1d88ed[_0xee46('0x45')][_0xee46('0x6a')]},'attributes':['id',_0xee46('0x25'),_0xee46('0x60'),'converted_format',_0xee46('0x62')],'raw':!![]});}})[_0xee46('0x1f')](function(_0x5b530d){if(_0x5b530d){fs[_0xee46('0x6b')](path['join'](_0x21860b[_0xee46('0x51')],util[_0xee46('0x64')](_0xee46('0x65'),_0x5b530d[_0xee46('0x25')],_0x5b530d[_0xee46('0x61')])));return _0x5b530d;}})[_0xee46('0x44')](function(_0x57f79d){throw new db[(_0xee46('0x5b'))][(_0xee46('0x5c'))](_0x57f79d[_0xee46('0x6c')]);});})[_0xee46('0x1f')](handleEntityNotFound(_0x3fe6cb,null))[_0xee46('0x1f')](respondWithStatusCode(_0x3fe6cb,0xcc))['catch'](handleError(_0x3fe6cb,null));};exports[_0xee46('0x6d')]=function(_0x255123,_0x2baf8f,_0x37525e){var _0x65f3a7={};var _0x5ee4a0={};var _0x40f354;var _0x2707f8;return db['VoiceMusicOnHold']['findOne']({'where':{'id':_0x255123[_0xee46('0x45')]['id']}})[_0xee46('0x1f')](handleEntityNotFound(_0x2baf8f,null))[_0xee46('0x1f')](function(_0x1b4d32){if(_0x1b4d32){_0x40f354=_0x1b4d32;_0x5ee4a0[_0xee46('0x2e')]=_['keys'](db[_0xee46('0x5e')]['rawAttributes']);_0x5ee4a0[_0xee46('0x31')]=_[_0xee46('0x2f')](_0x255123['query']);_0x5ee4a0['filters']=_['intersection'](_0x5ee4a0[_0xee46('0x2e')],_0x5ee4a0[_0xee46('0x31')]);_0x65f3a7[_0xee46('0x32')]=_[_0xee46('0x30')](_0x5ee4a0[_0xee46('0x2e')],qs[_0xee46('0x33')](_0x255123['query'][_0xee46('0x33')]));_0x65f3a7[_0xee46('0x32')]=_0x65f3a7[_0xee46('0x32')][_0xee46('0x34')]?_0x65f3a7[_0xee46('0x32')]:_0x5ee4a0[_0xee46('0x2e')];_0x65f3a7[_0xee46('0x37')]=qs[_0xee46('0x38')](_0x255123[_0xee46('0x31')][_0xee46('0x38')]);_0x65f3a7[_0xee46('0x39')]=qs[_0xee46('0x3a')](_['pick'](_0x255123[_0xee46('0x31')],_0x5ee4a0[_0xee46('0x3a')]));if(_0x255123[_0xee46('0x31')][_0xee46('0x3c')]){_0x65f3a7['where']=_[_0xee46('0x3d')](_0x65f3a7['where'],{'$or':_[_0xee46('0x28')](_0x65f3a7[_0xee46('0x32')],function(_0x78003f){var _0x309707={};_0x309707[_0x78003f]={'$like':'%'+_0x255123['query'][_0xee46('0x3c')]+'%'};return _0x309707;})});}_0x65f3a7=_[_0xee46('0x3d')]({},_0x65f3a7,_0x255123['options']);return _0x40f354[_0xee46('0x6d')](_0x65f3a7);}})[_0xee46('0x1f')](function(_0x337bee){if(_0x337bee){_0x2707f8=_0x337bee[_0xee46('0x34')];if(!_0x255123[_0xee46('0x31')][_0xee46('0x35')](_0xee46('0x6e'))){_0x65f3a7[_0xee46('0x36')]=qs[_0xee46('0x36')](_0x255123[_0xee46('0x31')][_0xee46('0x36')]);_0x65f3a7[_0xee46('0x19')]=qs['offset'](_0x255123[_0xee46('0x31')][_0xee46('0x19')]);}return _0x40f354[_0xee46('0x6d')](_0x65f3a7);}})[_0xee46('0x1f')](function(_0x3f131f){if(_0x3f131f){return _0x3f131f?{'count':_0x2707f8,'rows':_0x3f131f}:null;}})[_0xee46('0x1f')](respondWithResult(_0x2baf8f,null))[_0xee46('0x44')](handleError(_0x2baf8f,null));};