900cc02fc18fbb15472acc034e8cc34710f40353
[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 _0xc435=['send','index','map','VoiceMusicOnHold','rawAttributes','fieldName','key','model','query','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','merge','type','filter','options','count','include','findAll','rows','catch','show','keys','includeAll','find','body','params','create','sequelize','transaction','directory','join','server/files/moh','files','mkdirSync','0777','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','userProfileId','autoAssociation','UserProfileResource','readdirSync','forEach','unlinkSync','rmdirSync','Sequelize','message','addSound','Sound','findOne','save_name','converted_format','createdAt','root','server/files/sounds/converted','format','%s.%s','basename','extname','ValidationError','removeSound','id2','getSounds','eml-format','zip-dir','fast-json-patch','request-promise','moment','path','sox','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','status','end','json','offset','limit','set','apply','reject','save','update','then','get','MusicOnHolds','destroy','error','name'];(function(_0x254abd,_0x1ab7f0){var _0x31bf1b=function(_0x447fd8){while(--_0x447fd8){_0x254abd['push'](_0x254abd['shift']());}};_0x31bf1b(++_0x1ab7f0);}(_0xc435,0x124));var _0x5c43=function(_0xb3aa90,_0xd46111){_0xb3aa90=_0xb3aa90-0x0;var _0x43988b=_0xc435[_0xb3aa90];return _0x43988b;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x5c43('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x5c43('0x1'));var jsonpatch=require(_0x5c43('0x2'));var rp=require(_0x5c43('0x3'));var moment=require(_0x5c43('0x4'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require('util');var path=require(_0x5c43('0x5'));var sox=require(_0x5c43('0x6'));var csv=require('to-csv');var ejs=require(_0x5c43('0x7'));var fs=require('fs');var _=require(_0x5c43('0x8'));var squel=require(_0x5c43('0x9'));var crypto=require(_0x5c43('0xa'));var jsforce=require(_0x5c43('0xb'));var deskjs=require(_0x5c43('0xc'));var toCsv=require('to-csv');var querystring=require(_0x5c43('0xd'));var Papa=require(_0x5c43('0xe'));var Redis=require('ioredis');var authService=require(_0x5c43('0xf'));var qs=require(_0x5c43('0x10'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x5c43('0x11'));var logger=require(_0x5c43('0x12'))('api');var utils=require(_0x5c43('0x13'));var config=require(_0x5c43('0x14'));var licenseUtil=require(_0x5c43('0x15'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x1a008b,_0x337063){_0x337063=_0x337063||0xcc;return function(_0x685334){if(_0x685334){return _0x1a008b['sendStatus'](_0x337063);}return _0x1a008b[_0x5c43('0x16')](_0x337063)[_0x5c43('0x17')]();};}function respondWithResult(_0x49028e,_0x4cf449){_0x4cf449=_0x4cf449||0xc8;return function(_0x54ac00){if(_0x54ac00){return _0x49028e[_0x5c43('0x16')](_0x4cf449)[_0x5c43('0x18')](_0x54ac00);}};}function respondWithFilteredResult(_0x497470,_0x51b621){return function(_0x7418f){if(_0x7418f){var _0xd7b7b0=_0x7418f['count'],_0x298ad8=_0x51b621[_0x5c43('0x19')],_0x2026f5=_0x51b621['offset']+_0x51b621[_0x5c43('0x1a')],_0xba8888;if(_0x2026f5>=_0xd7b7b0){_0x2026f5=_0xd7b7b0;_0xba8888=0xc8;}else{_0xba8888=0xce;}_0x497470[_0x5c43('0x16')](_0xba8888);return _0x497470[_0x5c43('0x1b')]('Content-Range',_0x298ad8+'-'+_0x2026f5+'/'+_0xd7b7b0)[_0x5c43('0x18')](_0x7418f);}return null;};}function patchUpdates(_0x5ee6df){return function(_0xb0c637){try{jsonpatch[_0x5c43('0x1c')](_0xb0c637,_0x5ee6df,!![]);}catch(_0x51aa75){return BPromise[_0x5c43('0x1d')](_0x51aa75);}return _0xb0c637[_0x5c43('0x1e')]();};}function saveUpdates(_0x18d556,_0x29871f){return function(_0x20c455){if(_0x20c455){return _0x20c455[_0x5c43('0x1f')](_0x18d556)[_0x5c43('0x20')](function(_0x5052cd){return _0x5052cd;});}return null;};}function removeEntity(_0x266cec,_0x316e2c){return function(_0x5c4ffe){if(_0x5c4ffe){return _0x5c4ffe['destroy']()['then'](function(){var _0x2da2d8=_0x5c4ffe[_0x5c43('0x21')]({'plain':!![]});var _0x17b211=_0x5c43('0x22');return db['UserProfileResource'][_0x5c43('0x23')]({'where':{'type':_0x17b211,'resourceId':_0x2da2d8['id']}})[_0x5c43('0x20')](function(){return _0x5c4ffe;});})[_0x5c43('0x20')](function(){_0x266cec['status'](0xcc)[_0x5c43('0x17')]();});}};}function handleEntityNotFound(_0x11cd9d,_0x47c3be){return function(_0x402e3d){if(!_0x402e3d){_0x11cd9d['sendStatus'](0x194);}return _0x402e3d;};}function handleError(_0x41a2d7,_0x140b02){_0x140b02=_0x140b02||0x1f4;return function(_0x1c59a9){logger[_0x5c43('0x24')](_0x1c59a9['stack']);if(_0x1c59a9[_0x5c43('0x25')]){delete _0x1c59a9[_0x5c43('0x25')];}_0x41a2d7[_0x5c43('0x16')](_0x140b02)[_0x5c43('0x26')](_0x1c59a9);};}exports[_0x5c43('0x27')]=function(_0x2c6ef7,_0x47d513){var _0x243767={},_0x1b308e={},_0x58e1bc={'count':0x0,'rows':[]};var _0x4f6531=_[_0x5c43('0x28')](db[_0x5c43('0x29')][_0x5c43('0x2a')],function(_0x404505){return{'name':_0x404505[_0x5c43('0x2b')],'type':_0x404505['type'][_0x5c43('0x2c')]};});_0x1b308e[_0x5c43('0x2d')]=_[_0x5c43('0x28')](_0x4f6531,_0x5c43('0x25'));_0x1b308e[_0x5c43('0x2e')]=_['keys'](_0x2c6ef7[_0x5c43('0x2e')]);_0x1b308e[_0x5c43('0x2f')]=_[_0x5c43('0x30')](_0x1b308e[_0x5c43('0x2d')],_0x1b308e['query']);_0x243767['attributes']=_['intersection'](_0x1b308e[_0x5c43('0x2d')],qs[_0x5c43('0x31')](_0x2c6ef7[_0x5c43('0x2e')]['fields']));_0x243767[_0x5c43('0x32')]=_0x243767['attributes'][_0x5c43('0x33')]?_0x243767[_0x5c43('0x32')]:_0x1b308e['model'];if(!_0x2c6ef7[_0x5c43('0x2e')][_0x5c43('0x34')](_0x5c43('0x35'))){_0x243767[_0x5c43('0x1a')]=qs['limit'](_0x2c6ef7[_0x5c43('0x2e')]['limit']);_0x243767[_0x5c43('0x19')]=qs['offset'](_0x2c6ef7[_0x5c43('0x2e')][_0x5c43('0x19')]);}_0x243767[_0x5c43('0x36')]=qs[_0x5c43('0x37')](_0x2c6ef7[_0x5c43('0x2e')][_0x5c43('0x37')]);_0x243767[_0x5c43('0x38')]=qs[_0x5c43('0x2f')](_[_0x5c43('0x39')](_0x2c6ef7['query'],_0x1b308e[_0x5c43('0x2f')]),_0x4f6531);if(_0x2c6ef7['query']['filter']){_0x243767[_0x5c43('0x38')]=_[_0x5c43('0x3a')](_0x243767[_0x5c43('0x38')],{'$or':_[_0x5c43('0x28')](_0x4f6531,function(_0x571459){if(_0x571459[_0x5c43('0x3b')]!=='VIRTUAL'){var _0x36438a={};_0x36438a[_0x571459[_0x5c43('0x25')]]={'$like':'%'+_0x2c6ef7[_0x5c43('0x2e')][_0x5c43('0x3c')]+'%'};return _0x36438a;}})});}_0x243767=_[_0x5c43('0x3a')]({},_0x243767,_0x2c6ef7[_0x5c43('0x3d')]);var _0xa742d6={'where':_0x243767[_0x5c43('0x38')]};return db[_0x5c43('0x29')]['count'](_0xa742d6)[_0x5c43('0x20')](function(_0x1fe7a3){_0x58e1bc[_0x5c43('0x3e')]=_0x1fe7a3;if(_0x2c6ef7['query']['includeAll']){_0x243767[_0x5c43('0x3f')]=[{'all':!![]}];}return db[_0x5c43('0x29')][_0x5c43('0x40')](_0x243767);})[_0x5c43('0x20')](function(_0x390d6a){_0x58e1bc[_0x5c43('0x41')]=_0x390d6a;return _0x58e1bc;})[_0x5c43('0x20')](respondWithFilteredResult(_0x47d513,_0x243767))[_0x5c43('0x42')](handleError(_0x47d513,null));};exports[_0x5c43('0x43')]=function(_0x4d1b06,_0x4cb90d){var _0x35d1e8={'raw':![],'where':{'id':_0x4d1b06['params']['id']}},_0x2ae9cb={};_0x2ae9cb['model']=_[_0x5c43('0x44')](db[_0x5c43('0x29')][_0x5c43('0x2a')]);_0x2ae9cb['query']=_[_0x5c43('0x44')](_0x4d1b06['query']);_0x2ae9cb[_0x5c43('0x2f')]=_[_0x5c43('0x30')](_0x2ae9cb[_0x5c43('0x2d')],_0x2ae9cb[_0x5c43('0x2e')]);_0x35d1e8[_0x5c43('0x32')]=_[_0x5c43('0x30')](_0x2ae9cb['model'],qs[_0x5c43('0x31')](_0x4d1b06['query'][_0x5c43('0x31')]));_0x35d1e8[_0x5c43('0x32')]=_0x35d1e8['attributes'][_0x5c43('0x33')]?_0x35d1e8[_0x5c43('0x32')]:_0x2ae9cb[_0x5c43('0x2d')];if(_0x4d1b06['query'][_0x5c43('0x45')]){_0x35d1e8[_0x5c43('0x3f')]=[{'all':!![]}];}_0x35d1e8=_[_0x5c43('0x3a')]({},_0x35d1e8,_0x4d1b06['options']);return db[_0x5c43('0x29')][_0x5c43('0x46')](_0x35d1e8)[_0x5c43('0x20')](handleEntityNotFound(_0x4cb90d,null))[_0x5c43('0x20')](respondWithResult(_0x4cb90d,null))[_0x5c43('0x42')](handleError(_0x4cb90d,null));};exports[_0x5c43('0x1f')]=function(_0x141111,_0x274d87){if(_0x141111[_0x5c43('0x47')]['id']){delete _0x141111['body']['id'];}return db[_0x5c43('0x29')][_0x5c43('0x46')]({'where':{'id':_0x141111[_0x5c43('0x48')]['id']}})['then'](handleEntityNotFound(_0x274d87,null))['then'](saveUpdates(_0x141111[_0x5c43('0x47')],null))[_0x5c43('0x20')](respondWithResult(_0x274d87,null))[_0x5c43('0x42')](handleError(_0x274d87,null));};exports[_0x5c43('0x49')]=function(_0x112824,_0x5086b2,_0x31adb5){return db[_0x5c43('0x4a')][_0x5c43('0x4b')](function(_0x893364){if(_0x112824['body']['mode']==='files'){_0x112824[_0x5c43('0x47')][_0x5c43('0x4c')]=path[_0x5c43('0x4d')](config['root'],_0x5c43('0x4e'),_0x112824[_0x5c43('0x47')][_0x5c43('0x25')]);}return db[_0x5c43('0x29')]['create'](_0x112824[_0x5c43('0x47')],{'transaction':_0x893364})[_0x5c43('0x20')](function(_0x58c7e3){if(_0x112824[_0x5c43('0x47')]['mode']===_0x5c43('0x4f')){fs[_0x5c43('0x50')](_0x58c7e3[_0x5c43('0x4c')],parseInt(_0x5c43('0x51'),0x8));}var _0x478075=_0x112824[_0x5c43('0x52')]['get']({'plain':!![]});if(!_0x478075)throw new Error(_0x5c43('0x53'));if(_0x478075[_0x5c43('0x54')]===_0x5c43('0x52')){var _0x572451=_0x58c7e3['get']({'plain':!![]});return db['UserProfileSection'][_0x5c43('0x46')]({'where':{'name':_0x5c43('0x22'),'userProfileId':_0x478075[_0x5c43('0x55')]},'raw':!![]})[_0x5c43('0x20')](function(_0x148106){if(_0x148106&&_0x148106[_0x5c43('0x56')]===0x0){return db[_0x5c43('0x57')][_0x5c43('0x49')]({'name':_0x572451[_0x5c43('0x25')],'resourceId':_0x572451['id'],'type':_0x148106[_0x5c43('0x25')],'sectionId':_0x148106['id']},{})[_0x5c43('0x20')](function(){return _0x58c7e3;});}else{return _0x58c7e3;}})[_0x5c43('0x42')](function(_0x3799c9){logger[_0x5c43('0x24')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x3799c9);});}return _0x58c7e3;});})['then'](respondWithResult(_0x5086b2,0xc9))[_0x5c43('0x42')](handleError(_0x5086b2,null));};exports[_0x5c43('0x23')]=function(_0x5e9937,_0x11c4a9,_0x496560){var _0x2bb192;return db[_0x5c43('0x29')][_0x5c43('0x46')]({'where':{'id':_0x5e9937['params']['id']}})[_0x5c43('0x20')](function(_0x20acf0){if(_0x20acf0){return db['sequelize'][_0x5c43('0x4b')](function(_0x359d72){return _0x20acf0['destroy']({'transaction':_0x359d72,'raw':!![]})[_0x5c43('0x20')](function(_0x2790df){if(_0x2790df['directory']){fs[_0x5c43('0x58')](_0x2790df[_0x5c43('0x4c')])[_0x5c43('0x59')](function(_0x431fcf){fs[_0x5c43('0x5a')](path[_0x5c43('0x4d')](_0x2790df[_0x5c43('0x4c')],_0x431fcf));});fs[_0x5c43('0x5b')](_0x2790df[_0x5c43('0x4c')]);}return _0x2790df;});})['catch'](function(_0x2a846d){throw new db[(_0x5c43('0x5c'))]['ValidationError'](_0x2a846d[_0x5c43('0x5d')]);});}})[_0x5c43('0x20')](handleEntityNotFound(_0x11c4a9,null))['then'](removeEntity(_0x11c4a9,null))[_0x5c43('0x42')](handleError(_0x11c4a9,null));};exports[_0x5c43('0x5e')]=function(_0xff5dc9,_0x5cc7bd,_0x5f5051){return db[_0x5c43('0x4a')][_0x5c43('0x4b')](function(_0x23dd09){var _0x4aba78;return db['VoiceMusicOnHold'][_0x5c43('0x46')]({'where':{'id':_0xff5dc9[_0x5c43('0x48')]['id']}})[_0x5c43('0x20')](function(_0x22c176){if(_0x22c176){_0x4aba78=_0x22c176;return _0x22c176[_0x5c43('0x5e')](_0xff5dc9['body']['id'],{'transaction':_0x23dd09});}})[_0x5c43('0x20')](function(_0xf947cb){if(_0xf947cb){return db[_0x5c43('0x5f')][_0x5c43('0x60')]({'where':{'id':_0xff5dc9[_0x5c43('0x47')]['id']},'attributes':['id','name',_0x5c43('0x61'),_0x5c43('0x62'),_0x5c43('0x63')],'raw':!![]});}})[_0x5c43('0x20')](function(_0x3e11a9){if(_0x3e11a9){var _0x5ae14d=path['join'](config[_0x5c43('0x64')],_0x5c43('0x65'),util[_0x5c43('0x66')](_0x5c43('0x67'),path[_0x5c43('0x68')](_0x3e11a9[_0x5c43('0x61')],path[_0x5c43('0x69')](_0x3e11a9['save_name'])),_0x3e11a9[_0x5c43('0x62')]));var _0x2078b6=path['join'](config[_0x5c43('0x64')],_0x5c43('0x4e'),_0x4aba78[_0x5c43('0x25')],util[_0x5c43('0x66')](_0x5c43('0x67'),_0x3e11a9[_0x5c43('0x25')],_0x3e11a9[_0x5c43('0x62')]));fs['symlinkSync'](_0x5ae14d,_0x2078b6);return _0x3e11a9;}})[_0x5c43('0x42')](function(_0x1d7387){throw new db['Sequelize'][(_0x5c43('0x6a'))](_0x1d7387[_0x5c43('0x5d')]);});})[_0x5c43('0x20')](handleEntityNotFound(_0x5cc7bd,null))[_0x5c43('0x20')](respondWithResult(_0x5cc7bd,0xc9))[_0x5c43('0x42')](handleError(_0x5cc7bd,null));};exports[_0x5c43('0x6b')]=function(_0x9aadf0,_0x4703b7,_0x5f04a5){return db[_0x5c43('0x4a')][_0x5c43('0x4b')](function(_0x3ad3fc){var _0x1aecc;return db['VoiceMusicOnHold'][_0x5c43('0x60')]({'where':{'id':_0x9aadf0[_0x5c43('0x48')]['id']}})[_0x5c43('0x20')](handleEntityNotFound(_0x4703b7,null))[_0x5c43('0x20')](function(_0x438172){if(_0x438172){_0x1aecc=_0x438172;return _0x438172[_0x5c43('0x6b')](_0x9aadf0['params'][_0x5c43('0x6c')]);}})['then'](function(_0x5d6a3b){if(_0x5d6a3b){return db['Sound']['findOne']({'where':{'id':_0x9aadf0[_0x5c43('0x48')][_0x5c43('0x6c')]},'attributes':['id',_0x5c43('0x25'),'save_name','converted_format',_0x5c43('0x63')],'raw':!![]});}})[_0x5c43('0x20')](function(_0x53727e){if(_0x53727e){fs[_0x5c43('0x5a')](path[_0x5c43('0x4d')](_0x1aecc[_0x5c43('0x4c')],util[_0x5c43('0x66')]('%s.%s',_0x53727e[_0x5c43('0x25')],_0x53727e[_0x5c43('0x62')])));return _0x53727e;}})[_0x5c43('0x42')](function(_0xe9df27){throw new db['Sequelize'][(_0x5c43('0x6a'))](_0xe9df27['message']);});})['then'](handleEntityNotFound(_0x4703b7,null))[_0x5c43('0x20')](respondWithStatusCode(_0x4703b7,0xcc))[_0x5c43('0x42')](handleError(_0x4703b7,null));};exports[_0x5c43('0x6d')]=function(_0x516f17,_0x3f5347,_0x3ba6ca){var _0x346550={};var _0xb82826={};var _0x75aba2;var _0x1e7162;return db[_0x5c43('0x29')][_0x5c43('0x60')]({'where':{'id':_0x516f17[_0x5c43('0x48')]['id']}})[_0x5c43('0x20')](handleEntityNotFound(_0x3f5347,null))['then'](function(_0x5f2d6c){if(_0x5f2d6c){_0x75aba2=_0x5f2d6c;_0xb82826[_0x5c43('0x2d')]=_[_0x5c43('0x44')](db[_0x5c43('0x5f')][_0x5c43('0x2a')]);_0xb82826[_0x5c43('0x2e')]=_[_0x5c43('0x44')](_0x516f17['query']);_0xb82826[_0x5c43('0x2f')]=_[_0x5c43('0x30')](_0xb82826[_0x5c43('0x2d')],_0xb82826[_0x5c43('0x2e')]);_0x346550[_0x5c43('0x32')]=_[_0x5c43('0x30')](_0xb82826[_0x5c43('0x2d')],qs['fields'](_0x516f17[_0x5c43('0x2e')][_0x5c43('0x31')]));_0x346550[_0x5c43('0x32')]=_0x346550[_0x5c43('0x32')][_0x5c43('0x33')]?_0x346550[_0x5c43('0x32')]:_0xb82826[_0x5c43('0x2d')];_0x346550['order']=qs[_0x5c43('0x37')](_0x516f17['query'][_0x5c43('0x37')]);_0x346550[_0x5c43('0x38')]=qs[_0x5c43('0x2f')](_[_0x5c43('0x39')](_0x516f17['query'],_0xb82826[_0x5c43('0x2f')]));if(_0x516f17[_0x5c43('0x2e')]['filter']){_0x346550[_0x5c43('0x38')]=_['merge'](_0x346550[_0x5c43('0x38')],{'$or':_['map'](_0x346550[_0x5c43('0x32')],function(_0x4989da){var _0x5f11cb={};_0x5f11cb[_0x4989da]={'$like':'%'+_0x516f17['query'][_0x5c43('0x3c')]+'%'};return _0x5f11cb;})});}_0x346550=_[_0x5c43('0x3a')]({},_0x346550,_0x516f17[_0x5c43('0x3d')]);return _0x75aba2['getSounds'](_0x346550);}})['then'](function(_0x8c65b7){if(_0x8c65b7){_0x1e7162=_0x8c65b7['length'];if(!_0x516f17['query'][_0x5c43('0x34')](_0x5c43('0x35'))){_0x346550[_0x5c43('0x1a')]=qs[_0x5c43('0x1a')](_0x516f17[_0x5c43('0x2e')]['limit']);_0x346550['offset']=qs[_0x5c43('0x19')](_0x516f17[_0x5c43('0x2e')][_0x5c43('0x19')]);}return _0x75aba2[_0x5c43('0x6d')](_0x346550);}})['then'](function(_0x255bd1){if(_0x255bd1){return _0x255bd1?{'count':_0x1e7162,'rows':_0x255bd1}:null;}})[_0x5c43('0x20')](respondWithResult(_0x3f5347,null))[_0x5c43('0x42')](handleError(_0x3f5347,null));};