15ead51f2be7e85c77eab108f53884d4fc1e4615
[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 _0xc006=['rimraf','zip-dir','fast-json-patch','moment','mustache','util','fs-extra','squel','crypto','jsforce','desk.js','querystring','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','end','json','limit','offset','set','Content-Range','apply','save','then','destroy','get','MusicOnHolds','UserProfileResource','stack','name','send','index','VoiceMusicOnHold','rawAttributes','fieldName','type','key','model','map','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','pick','filter','merge','VIRTUAL','options','count','includeAll','include','rows','catch','show','params','find','update','body','sequelize','transaction','mode','directory','join','root','server/files/moh','create','files','mkdirSync','0777','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','autoAssociation','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','forEach','unlinkSync','rmdirSync','Sequelize','ValidationError','message','addSound','Sound','findOne','save_name','converted_format','createdAt','format','basename','extname','removeSound','%s.%s','getSounds','order','eml-format'];(function(_0x899a7b,_0x47f3fe){var _0x501574=function(_0x721be2){while(--_0x721be2){_0x899a7b['push'](_0x899a7b['shift']());}};_0x501574(++_0x47f3fe);}(_0xc006,0xd9));var _0x6c00=function(_0x40a73a,_0x4d3623){_0x40a73a=_0x40a73a-0x0;var _0x46e6cb=_0xc006[_0x40a73a];return _0x46e6cb;};'use strict';var emlformat=require(_0x6c00('0x0'));var rimraf=require(_0x6c00('0x1'));var zipdir=require(_0x6c00('0x2'));var jsonpatch=require(_0x6c00('0x3'));var rp=require('request-promise');var moment=require(_0x6c00('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x6c00('0x5'));var util=require(_0x6c00('0x6'));var path=require('path');var sox=require('sox');var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x6c00('0x7'));var _=require('lodash');var squel=require(_0x6c00('0x8'));var crypto=require(_0x6c00('0x9'));var jsforce=require(_0x6c00('0xa'));var deskjs=require(_0x6c00('0xb'));var toCsv=require('to-csv');var querystring=require(_0x6c00('0xc'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x6c00('0xd'));var qs=require(_0x6c00('0xe'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x6c00('0xf'));var logger=require(_0x6c00('0x10'))(_0x6c00('0x11'));var utils=require(_0x6c00('0x12'));var config=require(_0x6c00('0x13'));var licenseUtil=require(_0x6c00('0x14'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x10ad5b,_0xaa514){_0xaa514=_0xaa514||0xcc;return function(_0x394c0f){if(_0x394c0f){return _0x10ad5b[_0x6c00('0x15')](_0xaa514);}return _0x10ad5b[_0x6c00('0x16')](_0xaa514)[_0x6c00('0x17')]();};}function respondWithResult(_0x2b58c5,_0x74bb9c){_0x74bb9c=_0x74bb9c||0xc8;return function(_0x564bbf){if(_0x564bbf){return _0x2b58c5['status'](_0x74bb9c)[_0x6c00('0x18')](_0x564bbf);}};}function respondWithFilteredResult(_0x32b403,_0x57ee0a){return function(_0x32df64){if(_0x32df64){var _0x21e179=typeof _0x57ee0a['offset']==='undefined'&&typeof _0x57ee0a[_0x6c00('0x19')]==='undefined';var _0x2de68a=_0x32df64['count'];var _0x3ca69f=_0x21e179?0x0:_0x57ee0a[_0x6c00('0x1a')];var _0x2614f3=_0x21e179?_0x32df64['count']:_0x57ee0a[_0x6c00('0x1a')]+_0x57ee0a[_0x6c00('0x19')];var _0x3ba733;if(_0x2614f3>=_0x2de68a){_0x2614f3=_0x2de68a;_0x3ba733=0xc8;}else{_0x3ba733=0xce;}_0x32b403[_0x6c00('0x16')](_0x3ba733);return _0x32b403[_0x6c00('0x1b')](_0x6c00('0x1c'),_0x3ca69f+'-'+_0x2614f3+'/'+_0x2de68a)[_0x6c00('0x18')](_0x32df64);}return null;};}function patchUpdates(_0xa4d28a){return function(_0x15999c){try{jsonpatch[_0x6c00('0x1d')](_0x15999c,_0xa4d28a,!![]);}catch(_0x466044){return BPromise['reject'](_0x466044);}return _0x15999c[_0x6c00('0x1e')]();};}function saveUpdates(_0x311cb4,_0x196441){return function(_0x2e6229){if(_0x2e6229){return _0x2e6229['update'](_0x311cb4)[_0x6c00('0x1f')](function(_0x301201){return _0x301201;});}return null;};}function removeEntity(_0x3b52f4,_0x3da592){return function(_0x483869){if(_0x483869){return _0x483869[_0x6c00('0x20')]()[_0x6c00('0x1f')](function(){var _0x327f17=_0x483869[_0x6c00('0x21')]({'plain':!![]});var _0x3d3db5=_0x6c00('0x22');return db[_0x6c00('0x23')][_0x6c00('0x20')]({'where':{'type':_0x3d3db5,'resourceId':_0x327f17['id']}})[_0x6c00('0x1f')](function(){return _0x483869;});})[_0x6c00('0x1f')](function(){_0x3b52f4[_0x6c00('0x16')](0xcc)[_0x6c00('0x17')]();});}};}function handleEntityNotFound(_0x12515e,_0x3bdcc9){return function(_0x3f25d4){if(!_0x3f25d4){_0x12515e[_0x6c00('0x15')](0x194);}return _0x3f25d4;};}function handleError(_0x201d0d,_0x387374){_0x387374=_0x387374||0x1f4;return function(_0x355c5d){logger['error'](_0x355c5d[_0x6c00('0x24')]);if(_0x355c5d[_0x6c00('0x25')]){delete _0x355c5d[_0x6c00('0x25')];}_0x201d0d[_0x6c00('0x16')](_0x387374)[_0x6c00('0x26')](_0x355c5d);};}exports[_0x6c00('0x27')]=function(_0x554ba3,_0x814d1c){var _0x51bb37={},_0x20a281={},_0xa221bf={'count':0x0,'rows':[]};var _0x2c1368=_['map'](db[_0x6c00('0x28')][_0x6c00('0x29')],function(_0x346b97){return{'name':_0x346b97[_0x6c00('0x2a')],'type':_0x346b97[_0x6c00('0x2b')][_0x6c00('0x2c')]};});_0x20a281[_0x6c00('0x2d')]=_[_0x6c00('0x2e')](_0x2c1368,_0x6c00('0x25'));_0x20a281[_0x6c00('0x2f')]=_[_0x6c00('0x30')](_0x554ba3[_0x6c00('0x2f')]);_0x20a281[_0x6c00('0x31')]=_[_0x6c00('0x32')](_0x20a281[_0x6c00('0x2d')],_0x20a281[_0x6c00('0x2f')]);_0x51bb37[_0x6c00('0x33')]=_[_0x6c00('0x32')](_0x20a281[_0x6c00('0x2d')],qs[_0x6c00('0x34')](_0x554ba3[_0x6c00('0x2f')][_0x6c00('0x34')]));_0x51bb37[_0x6c00('0x33')]=_0x51bb37[_0x6c00('0x33')][_0x6c00('0x35')]?_0x51bb37[_0x6c00('0x33')]:_0x20a281[_0x6c00('0x2d')];if(!_0x554ba3['query'][_0x6c00('0x36')](_0x6c00('0x37'))){_0x51bb37['limit']=qs[_0x6c00('0x19')](_0x554ba3[_0x6c00('0x2f')][_0x6c00('0x19')]);_0x51bb37[_0x6c00('0x1a')]=qs[_0x6c00('0x1a')](_0x554ba3['query'][_0x6c00('0x1a')]);}_0x51bb37['order']=qs[_0x6c00('0x38')](_0x554ba3[_0x6c00('0x2f')]['sort']);delete _0x554ba3[_0x6c00('0x2f')][_0x6c00('0x38')];_0x51bb37[_0x6c00('0x39')]=qs['filters'](_[_0x6c00('0x3a')](_0x554ba3[_0x6c00('0x2f')],_0x20a281[_0x6c00('0x31')]),_0x2c1368);if(_0x554ba3[_0x6c00('0x2f')][_0x6c00('0x3b')]){_0x51bb37[_0x6c00('0x39')]=_[_0x6c00('0x3c')](_0x51bb37[_0x6c00('0x39')],{'$or':_[_0x6c00('0x2e')](_0x2c1368,function(_0x1e9fa8){if(_0x1e9fa8[_0x6c00('0x2b')]!==_0x6c00('0x3d')){var _0x3aa31c={};_0x3aa31c[_0x1e9fa8[_0x6c00('0x25')]]={'$like':'%'+_0x554ba3[_0x6c00('0x2f')][_0x6c00('0x3b')]+'%'};return _0x3aa31c;}})});}_0x51bb37=_['merge']({},_0x51bb37,_0x554ba3[_0x6c00('0x3e')]);var _0x368dda={'where':_0x51bb37['where']};return db[_0x6c00('0x28')][_0x6c00('0x3f')](_0x368dda)[_0x6c00('0x1f')](function(_0xfac481){_0xa221bf['count']=_0xfac481;if(_0x554ba3[_0x6c00('0x2f')][_0x6c00('0x40')]){_0x51bb37[_0x6c00('0x41')]=[{'all':!![]}];}return db[_0x6c00('0x28')]['findAll'](_0x51bb37);})[_0x6c00('0x1f')](function(_0x266b8c){_0xa221bf[_0x6c00('0x42')]=_0x266b8c;return _0xa221bf;})['then'](respondWithFilteredResult(_0x814d1c,_0x51bb37))[_0x6c00('0x43')](handleError(_0x814d1c,null));};exports[_0x6c00('0x44')]=function(_0x4e9ca7,_0x3c8194){var _0x5c67a5={'raw':![],'where':{'id':_0x4e9ca7[_0x6c00('0x45')]['id']}},_0x16a28f={};_0x16a28f[_0x6c00('0x2d')]=_[_0x6c00('0x30')](db[_0x6c00('0x28')][_0x6c00('0x29')]);_0x16a28f[_0x6c00('0x2f')]=_[_0x6c00('0x30')](_0x4e9ca7[_0x6c00('0x2f')]);_0x16a28f[_0x6c00('0x31')]=_['intersection'](_0x16a28f['model'],_0x16a28f[_0x6c00('0x2f')]);_0x5c67a5['attributes']=_['intersection'](_0x16a28f[_0x6c00('0x2d')],qs['fields'](_0x4e9ca7[_0x6c00('0x2f')][_0x6c00('0x34')]));_0x5c67a5[_0x6c00('0x33')]=_0x5c67a5[_0x6c00('0x33')][_0x6c00('0x35')]?_0x5c67a5[_0x6c00('0x33')]:_0x16a28f[_0x6c00('0x2d')];if(_0x4e9ca7[_0x6c00('0x2f')][_0x6c00('0x40')]){_0x5c67a5[_0x6c00('0x41')]=[{'all':!![]}];}_0x5c67a5=_['merge']({},_0x5c67a5,_0x4e9ca7[_0x6c00('0x3e')]);return db[_0x6c00('0x28')][_0x6c00('0x46')](_0x5c67a5)[_0x6c00('0x1f')](handleEntityNotFound(_0x3c8194,null))[_0x6c00('0x1f')](respondWithResult(_0x3c8194,null))['catch'](handleError(_0x3c8194,null));};exports[_0x6c00('0x47')]=function(_0x5831d0,_0x1b4a33){if(_0x5831d0[_0x6c00('0x48')]['id']){delete _0x5831d0[_0x6c00('0x48')]['id'];}return db[_0x6c00('0x28')][_0x6c00('0x46')]({'where':{'id':_0x5831d0[_0x6c00('0x45')]['id']}})[_0x6c00('0x1f')](handleEntityNotFound(_0x1b4a33,null))[_0x6c00('0x1f')](saveUpdates(_0x5831d0[_0x6c00('0x48')],null))[_0x6c00('0x1f')](respondWithResult(_0x1b4a33,null))['catch'](handleError(_0x1b4a33,null));};exports['create']=function(_0x3939fa,_0x594072,_0xee7571){return db[_0x6c00('0x49')][_0x6c00('0x4a')](function(_0x5abc56){if(_0x3939fa['body'][_0x6c00('0x4b')]==='files'){_0x3939fa[_0x6c00('0x48')][_0x6c00('0x4c')]=path[_0x6c00('0x4d')](config[_0x6c00('0x4e')],_0x6c00('0x4f'),_0x3939fa[_0x6c00('0x48')][_0x6c00('0x25')]);}return db['VoiceMusicOnHold'][_0x6c00('0x50')](_0x3939fa[_0x6c00('0x48')],{'transaction':_0x5abc56})['then'](function(_0x3db4e3){if(_0x3939fa[_0x6c00('0x48')][_0x6c00('0x4b')]===_0x6c00('0x51')){fs[_0x6c00('0x52')](_0x3db4e3[_0x6c00('0x4c')],parseInt(_0x6c00('0x53'),0x8));}var _0x411f64=_0x3939fa[_0x6c00('0x54')][_0x6c00('0x21')]({'plain':!![]});if(!_0x411f64)throw new Error(_0x6c00('0x55'));if(_0x411f64[_0x6c00('0x56')]===_0x6c00('0x54')){var _0x47f985=_0x3db4e3['get']({'plain':!![]});return db['UserProfileSection'][_0x6c00('0x46')]({'where':{'name':'MusicOnHolds','userProfileId':_0x411f64['userProfileId']},'raw':!![]})[_0x6c00('0x1f')](function(_0x5bf44a){if(_0x5bf44a&&_0x5bf44a[_0x6c00('0x57')]===0x0){return db['UserProfileResource'][_0x6c00('0x50')]({'name':_0x47f985[_0x6c00('0x25')],'resourceId':_0x47f985['id'],'type':_0x5bf44a[_0x6c00('0x25')],'sectionId':_0x5bf44a['id']},{})[_0x6c00('0x1f')](function(){return _0x3db4e3;});}else{return _0x3db4e3;}})[_0x6c00('0x43')](function(_0x3c8890){logger[_0x6c00('0x58')](_0x6c00('0x59'),_0x3c8890);});}return _0x3db4e3;});})[_0x6c00('0x1f')](respondWithResult(_0x594072,0xc9))[_0x6c00('0x43')](handleError(_0x594072,null));};exports[_0x6c00('0x20')]=function(_0x3d52d5,_0x3279b6,_0x51a55a){var _0x36b8cb;return db[_0x6c00('0x28')]['find']({'where':{'id':_0x3d52d5[_0x6c00('0x45')]['id']}})[_0x6c00('0x1f')](function(_0x3fba63){if(_0x3fba63){return db['sequelize'][_0x6c00('0x4a')](function(_0x10b5ab){return _0x3fba63[_0x6c00('0x20')]({'transaction':_0x10b5ab,'raw':!![]})[_0x6c00('0x1f')](function(_0x4c8e60){if(_0x4c8e60['directory']){fs['readdirSync'](_0x4c8e60[_0x6c00('0x4c')])[_0x6c00('0x5a')](function(_0xd7601e){fs[_0x6c00('0x5b')](path['join'](_0x4c8e60['directory'],_0xd7601e));});fs[_0x6c00('0x5c')](_0x4c8e60[_0x6c00('0x4c')]);}return _0x4c8e60;});})[_0x6c00('0x43')](function(_0x1a84c8){throw new db[(_0x6c00('0x5d'))][(_0x6c00('0x5e'))](_0x1a84c8[_0x6c00('0x5f')]);});}})[_0x6c00('0x1f')](handleEntityNotFound(_0x3279b6,null))[_0x6c00('0x1f')](removeEntity(_0x3279b6,null))['catch'](handleError(_0x3279b6,null));};exports[_0x6c00('0x60')]=function(_0x5aa9fe,_0x239f04,_0x1f46d1){return db[_0x6c00('0x49')]['transaction'](function(_0x20ce61){var _0x16a46c;return db['VoiceMusicOnHold'][_0x6c00('0x46')]({'where':{'id':_0x5aa9fe['params']['id']}})['then'](function(_0x3dcd42){if(_0x3dcd42){_0x16a46c=_0x3dcd42;return _0x3dcd42[_0x6c00('0x60')](_0x5aa9fe[_0x6c00('0x48')]['id'],{'transaction':_0x20ce61});}})[_0x6c00('0x1f')](function(_0x20deaf){if(_0x20deaf){return db[_0x6c00('0x61')][_0x6c00('0x62')]({'where':{'id':_0x5aa9fe['body']['id']},'attributes':['id',_0x6c00('0x25'),_0x6c00('0x63'),_0x6c00('0x64'),_0x6c00('0x65')],'raw':!![]});}})[_0x6c00('0x1f')](function(_0x507045){if(_0x507045){var _0x307c3b=path[_0x6c00('0x4d')](config[_0x6c00('0x4e')],'server/files/sounds/converted',util[_0x6c00('0x66')]('%s.%s',path[_0x6c00('0x67')](_0x507045[_0x6c00('0x63')],path[_0x6c00('0x68')](_0x507045[_0x6c00('0x63')])),_0x507045['converted_format']));var _0x162fe0=path[_0x6c00('0x4d')](config[_0x6c00('0x4e')],'server/files/moh',_0x16a46c[_0x6c00('0x25')],util[_0x6c00('0x66')]('%s.%s',_0x507045[_0x6c00('0x25')],_0x507045[_0x6c00('0x64')]));fs['symlinkSync'](_0x307c3b,_0x162fe0);return _0x507045;}})[_0x6c00('0x43')](function(_0x2ce376){throw new db['Sequelize'][(_0x6c00('0x5e'))](_0x2ce376[_0x6c00('0x5f')]);});})['then'](handleEntityNotFound(_0x239f04,null))[_0x6c00('0x1f')](respondWithResult(_0x239f04,0xc9))[_0x6c00('0x43')](handleError(_0x239f04,null));};exports[_0x6c00('0x69')]=function(_0x198bdc,_0x17e161,_0x254780){return db[_0x6c00('0x49')][_0x6c00('0x4a')](function(_0x49e792){var _0x5d1ebb;return db[_0x6c00('0x28')][_0x6c00('0x62')]({'where':{'id':_0x198bdc[_0x6c00('0x45')]['id']}})[_0x6c00('0x1f')](handleEntityNotFound(_0x17e161,null))[_0x6c00('0x1f')](function(_0x56c27f){if(_0x56c27f){_0x5d1ebb=_0x56c27f;return _0x56c27f[_0x6c00('0x69')](_0x198bdc[_0x6c00('0x45')]['id2']);}})['then'](function(_0x122a60){if(_0x122a60){return db['Sound'][_0x6c00('0x62')]({'where':{'id':_0x198bdc[_0x6c00('0x45')]['id2']},'attributes':['id','name','save_name',_0x6c00('0x64'),_0x6c00('0x65')],'raw':!![]});}})[_0x6c00('0x1f')](function(_0x202d21){if(_0x202d21){fs['unlinkSync'](path[_0x6c00('0x4d')](_0x5d1ebb[_0x6c00('0x4c')],util[_0x6c00('0x66')](_0x6c00('0x6a'),_0x202d21['name'],_0x202d21[_0x6c00('0x64')])));return _0x202d21;}})[_0x6c00('0x43')](function(_0x546ad8){throw new db[(_0x6c00('0x5d'))][(_0x6c00('0x5e'))](_0x546ad8['message']);});})[_0x6c00('0x1f')](handleEntityNotFound(_0x17e161,null))[_0x6c00('0x1f')](respondWithStatusCode(_0x17e161,0xcc))['catch'](handleError(_0x17e161,null));};exports[_0x6c00('0x6b')]=function(_0x4c92e1,_0x48ce1c,_0x57ff4b){var _0xd7cdaf={};var _0x683d50={};var _0x3390a9;var _0x2af910;return db['VoiceMusicOnHold'][_0x6c00('0x62')]({'where':{'id':_0x4c92e1[_0x6c00('0x45')]['id']}})[_0x6c00('0x1f')](handleEntityNotFound(_0x48ce1c,null))[_0x6c00('0x1f')](function(_0x1db526){if(_0x1db526){_0x3390a9=_0x1db526;_0x683d50['model']=_[_0x6c00('0x30')](db[_0x6c00('0x61')][_0x6c00('0x29')]);_0x683d50[_0x6c00('0x2f')]=_[_0x6c00('0x30')](_0x4c92e1[_0x6c00('0x2f')]);_0x683d50[_0x6c00('0x31')]=_['intersection'](_0x683d50[_0x6c00('0x2d')],_0x683d50[_0x6c00('0x2f')]);_0xd7cdaf['attributes']=_[_0x6c00('0x32')](_0x683d50[_0x6c00('0x2d')],qs[_0x6c00('0x34')](_0x4c92e1[_0x6c00('0x2f')][_0x6c00('0x34')]));_0xd7cdaf[_0x6c00('0x33')]=_0xd7cdaf[_0x6c00('0x33')][_0x6c00('0x35')]?_0xd7cdaf['attributes']:_0x683d50[_0x6c00('0x2d')];_0xd7cdaf[_0x6c00('0x6c')]=qs[_0x6c00('0x38')](_0x4c92e1[_0x6c00('0x2f')][_0x6c00('0x38')]);_0xd7cdaf[_0x6c00('0x39')]=qs[_0x6c00('0x31')](_[_0x6c00('0x3a')](_0x4c92e1['query'],_0x683d50[_0x6c00('0x31')]));if(_0x4c92e1[_0x6c00('0x2f')]['filter']){_0xd7cdaf[_0x6c00('0x39')]=_[_0x6c00('0x3c')](_0xd7cdaf[_0x6c00('0x39')],{'$or':_[_0x6c00('0x2e')](_0xd7cdaf[_0x6c00('0x33')],function(_0x3a288b){var _0x482e84={};_0x482e84[_0x3a288b]={'$like':'%'+_0x4c92e1['query'][_0x6c00('0x3b')]+'%'};return _0x482e84;})});}_0xd7cdaf=_[_0x6c00('0x3c')]({},_0xd7cdaf,_0x4c92e1[_0x6c00('0x3e')]);return _0x3390a9[_0x6c00('0x6b')](_0xd7cdaf);}})['then'](function(_0x28a174){if(_0x28a174){_0x2af910=_0x28a174[_0x6c00('0x35')];if(!_0x4c92e1[_0x6c00('0x2f')][_0x6c00('0x36')](_0x6c00('0x37'))){_0xd7cdaf['limit']=qs[_0x6c00('0x19')](_0x4c92e1[_0x6c00('0x2f')][_0x6c00('0x19')]);_0xd7cdaf[_0x6c00('0x1a')]=qs[_0x6c00('0x1a')](_0x4c92e1[_0x6c00('0x2f')][_0x6c00('0x1a')]);}return _0x3390a9[_0x6c00('0x6b')](_0xd7cdaf);}})[_0x6c00('0x1f')](function(_0x2719dc){if(_0x2719dc){return _0x2719dc?{'count':_0x2af910,'rows':_0x2719dc}:null;}})['then'](respondWithResult(_0x48ce1c,null))[_0x6c00('0x43')](handleError(_0x48ce1c,null));};