Built motion from commit ab870f9e.|2.5.44
[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 _0x66c2=['VIRTUAL','filter','merge','options','VoiceMusicOnHold','includeAll','include','findAll','rows','catch','show','keys','find','body','params','create','sequelize','mode','files','join','root','server/files/moh','mkdirSync','directory','0777','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','readdirSync','forEach','unlinkSync','rmdirSync','Sequelize','ValidationError','message','addSound','transaction','Sound','findOne','save_name','converted_format','createdAt','server/files/sounds/converted','format','%s.%s','extname','symlinkSync','id2','getSounds','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','papaparse','../../components/parsers/qs','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','end','json','offset','undefined','count','set','Content-Range','reject','save','update','then','get','destroy','sendStatus','error','name','send','index','rawAttributes','fieldName','type','key','model','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','limit','order','sort','where','pick','map'];(function(_0x4cc508,_0x4b1b60){var _0x134884=function(_0x14fab6){while(--_0x14fab6){_0x4cc508['push'](_0x4cc508['shift']());}};_0x134884(++_0x4b1b60);}(_0x66c2,0x11b));var _0x266c=function(_0xa73d59,_0x3a5134){_0xa73d59=_0xa73d59-0x0;var _0x3b9e42=_0x66c2[_0xa73d59];return _0x3b9e42;};'use strict';var emlformat=require(_0x266c('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x266c('0x1'));var jsonpatch=require(_0x266c('0x2'));var rp=require(_0x266c('0x3'));var moment=require(_0x266c('0x4'));var BPromise=require(_0x266c('0x5'));var Mustache=require(_0x266c('0x6'));var util=require(_0x266c('0x7'));var path=require('path');var sox=require(_0x266c('0x8'));var csv=require(_0x266c('0x9'));var ejs=require(_0x266c('0xa'));var fs=require('fs');var fs_extra=require(_0x266c('0xb'));var _=require('lodash');var squel=require(_0x266c('0xc'));var crypto=require(_0x266c('0xd'));var jsforce=require(_0x266c('0xe'));var deskjs=require(_0x266c('0xf'));var toCsv=require(_0x266c('0x9'));var querystring=require('querystring');var Papa=require(_0x266c('0x10'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x266c('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x266c('0x12'));var logger=require(_0x266c('0x13'))('api');var utils=require(_0x266c('0x14'));var config=require(_0x266c('0x15'));var licenseUtil=require(_0x266c('0x16'));var db=require(_0x266c('0x17'))['db'];function respondWithStatusCode(_0x5c6e65,_0x135ffe){_0x135ffe=_0x135ffe||0xcc;return function(_0x4087b8){if(_0x4087b8){return _0x5c6e65['sendStatus'](_0x135ffe);}return _0x5c6e65[_0x266c('0x18')](_0x135ffe)[_0x266c('0x19')]();};}function respondWithResult(_0x1627d4,_0x44c3e6){_0x44c3e6=_0x44c3e6||0xc8;return function(_0x3ba083){if(_0x3ba083){return _0x1627d4[_0x266c('0x18')](_0x44c3e6)[_0x266c('0x1a')](_0x3ba083);}};}function respondWithFilteredResult(_0x11fb93,_0x3b5a4c){return function(_0x4b2f11){if(_0x4b2f11){var _0x12d1e6=typeof _0x3b5a4c[_0x266c('0x1b')]==='undefined'&&typeof _0x3b5a4c['limit']===_0x266c('0x1c');var _0x3541e9=_0x4b2f11[_0x266c('0x1d')];var _0xfe503e=_0x12d1e6?0x0:_0x3b5a4c[_0x266c('0x1b')];var _0x3bcf98=_0x12d1e6?_0x4b2f11[_0x266c('0x1d')]:_0x3b5a4c['offset']+_0x3b5a4c['limit'];var _0x103919;if(_0x3bcf98>=_0x3541e9){_0x3bcf98=_0x3541e9;_0x103919=0xc8;}else{_0x103919=0xce;}_0x11fb93[_0x266c('0x18')](_0x103919);return _0x11fb93[_0x266c('0x1e')](_0x266c('0x1f'),_0xfe503e+'-'+_0x3bcf98+'/'+_0x3541e9)['json'](_0x4b2f11);}return null;};}function patchUpdates(_0x42b7d0){return function(_0x4ab280){try{jsonpatch['apply'](_0x4ab280,_0x42b7d0,!![]);}catch(_0xb8d070){return BPromise[_0x266c('0x20')](_0xb8d070);}return _0x4ab280[_0x266c('0x21')]();};}function saveUpdates(_0x52f051,_0x20a789){return function(_0x22199d){if(_0x22199d){return _0x22199d[_0x266c('0x22')](_0x52f051)['then'](function(_0x49b143){return _0x49b143;});}return null;};}function removeEntity(_0x3c977b,_0x5167e5){return function(_0x35d4a5){if(_0x35d4a5){return _0x35d4a5['destroy']()[_0x266c('0x23')](function(){var _0x536379=_0x35d4a5[_0x266c('0x24')]({'plain':!![]});var _0x438b77='MusicOnHolds';return db['UserProfileResource'][_0x266c('0x25')]({'where':{'type':_0x438b77,'resourceId':_0x536379['id']}})[_0x266c('0x23')](function(){return _0x35d4a5;});})[_0x266c('0x23')](function(){_0x3c977b[_0x266c('0x18')](0xcc)[_0x266c('0x19')]();});}};}function handleEntityNotFound(_0x361376,_0x26bbaa){return function(_0x4a7645){if(!_0x4a7645){_0x361376[_0x266c('0x26')](0x194);}return _0x4a7645;};}function handleError(_0xe3e109,_0x455207){_0x455207=_0x455207||0x1f4;return function(_0x528497){logger[_0x266c('0x27')](_0x528497['stack']);if(_0x528497[_0x266c('0x28')]){delete _0x528497[_0x266c('0x28')];}_0xe3e109[_0x266c('0x18')](_0x455207)[_0x266c('0x29')](_0x528497);};}exports[_0x266c('0x2a')]=function(_0x5421c0,_0x5ce912){var _0x194a0f={},_0x2c8d0c={},_0x1e7fe3={'count':0x0,'rows':[]};var _0xca76a4=_['map'](db['VoiceMusicOnHold'][_0x266c('0x2b')],function(_0xf577e5){return{'name':_0xf577e5[_0x266c('0x2c')],'type':_0xf577e5[_0x266c('0x2d')][_0x266c('0x2e')]};});_0x2c8d0c[_0x266c('0x2f')]=_['map'](_0xca76a4,_0x266c('0x28'));_0x2c8d0c[_0x266c('0x30')]=_['keys'](_0x5421c0[_0x266c('0x30')]);_0x2c8d0c[_0x266c('0x31')]=_[_0x266c('0x32')](_0x2c8d0c[_0x266c('0x2f')],_0x2c8d0c['query']);_0x194a0f[_0x266c('0x33')]=_[_0x266c('0x32')](_0x2c8d0c['model'],qs[_0x266c('0x34')](_0x5421c0[_0x266c('0x30')][_0x266c('0x34')]));_0x194a0f[_0x266c('0x33')]=_0x194a0f['attributes'][_0x266c('0x35')]?_0x194a0f[_0x266c('0x33')]:_0x2c8d0c[_0x266c('0x2f')];if(!_0x5421c0[_0x266c('0x30')][_0x266c('0x36')](_0x266c('0x37'))){_0x194a0f[_0x266c('0x38')]=qs['limit'](_0x5421c0[_0x266c('0x30')]['limit']);_0x194a0f[_0x266c('0x1b')]=qs['offset'](_0x5421c0[_0x266c('0x30')][_0x266c('0x1b')]);}_0x194a0f[_0x266c('0x39')]=qs['sort'](_0x5421c0[_0x266c('0x30')][_0x266c('0x3a')]);delete _0x5421c0[_0x266c('0x30')][_0x266c('0x3a')];_0x194a0f[_0x266c('0x3b')]=qs['filters'](_[_0x266c('0x3c')](_0x5421c0[_0x266c('0x30')],_0x2c8d0c['filters']),_0xca76a4);if(_0x5421c0['query']['filter']){_0x194a0f['where']=_['merge'](_0x194a0f[_0x266c('0x3b')],{'$or':_[_0x266c('0x3d')](_0xca76a4,function(_0xeb1578){if(_0xeb1578[_0x266c('0x2d')]!==_0x266c('0x3e')){var _0x448495={};_0x448495[_0xeb1578[_0x266c('0x28')]]={'$like':'%'+_0x5421c0[_0x266c('0x30')][_0x266c('0x3f')]+'%'};return _0x448495;}})});}_0x194a0f=_[_0x266c('0x40')]({},_0x194a0f,_0x5421c0[_0x266c('0x41')]);var _0x19a5ed={'where':_0x194a0f[_0x266c('0x3b')]};return db[_0x266c('0x42')][_0x266c('0x1d')](_0x19a5ed)[_0x266c('0x23')](function(_0x18c3b5){_0x1e7fe3['count']=_0x18c3b5;if(_0x5421c0[_0x266c('0x30')][_0x266c('0x43')]){_0x194a0f[_0x266c('0x44')]=[{'all':!![]}];}return db[_0x266c('0x42')][_0x266c('0x45')](_0x194a0f);})['then'](function(_0x2e0ad8){_0x1e7fe3[_0x266c('0x46')]=_0x2e0ad8;return _0x1e7fe3;})[_0x266c('0x23')](respondWithFilteredResult(_0x5ce912,_0x194a0f))[_0x266c('0x47')](handleError(_0x5ce912,null));};exports[_0x266c('0x48')]=function(_0x5bd4e6,_0x23093b){var _0x5466e8={'raw':![],'where':{'id':_0x5bd4e6['params']['id']}},_0x564865={};_0x564865[_0x266c('0x2f')]=_[_0x266c('0x49')](db[_0x266c('0x42')]['rawAttributes']);_0x564865['query']=_[_0x266c('0x49')](_0x5bd4e6[_0x266c('0x30')]);_0x564865[_0x266c('0x31')]=_[_0x266c('0x32')](_0x564865[_0x266c('0x2f')],_0x564865[_0x266c('0x30')]);_0x5466e8['attributes']=_['intersection'](_0x564865['model'],qs['fields'](_0x5bd4e6[_0x266c('0x30')][_0x266c('0x34')]));_0x5466e8[_0x266c('0x33')]=_0x5466e8[_0x266c('0x33')][_0x266c('0x35')]?_0x5466e8[_0x266c('0x33')]:_0x564865[_0x266c('0x2f')];if(_0x5bd4e6[_0x266c('0x30')][_0x266c('0x43')]){_0x5466e8[_0x266c('0x44')]=[{'all':!![]}];}_0x5466e8=_[_0x266c('0x40')]({},_0x5466e8,_0x5bd4e6[_0x266c('0x41')]);return db[_0x266c('0x42')][_0x266c('0x4a')](_0x5466e8)[_0x266c('0x23')](handleEntityNotFound(_0x23093b,null))[_0x266c('0x23')](respondWithResult(_0x23093b,null))[_0x266c('0x47')](handleError(_0x23093b,null));};exports['update']=function(_0xe5a1fd,_0x57d07a){if(_0xe5a1fd['body']['id']){delete _0xe5a1fd[_0x266c('0x4b')]['id'];}return db[_0x266c('0x42')][_0x266c('0x4a')]({'where':{'id':_0xe5a1fd[_0x266c('0x4c')]['id']}})[_0x266c('0x23')](handleEntityNotFound(_0x57d07a,null))['then'](saveUpdates(_0xe5a1fd[_0x266c('0x4b')],null))['then'](respondWithResult(_0x57d07a,null))[_0x266c('0x47')](handleError(_0x57d07a,null));};exports[_0x266c('0x4d')]=function(_0x277289,_0x34ceb4,_0xfbf3eb){return db[_0x266c('0x4e')]['transaction'](function(_0x193cbc){if(_0x277289[_0x266c('0x4b')][_0x266c('0x4f')]===_0x266c('0x50')){_0x277289[_0x266c('0x4b')]['directory']=path[_0x266c('0x51')](config[_0x266c('0x52')],_0x266c('0x53'),_0x277289[_0x266c('0x4b')]['name']);}return db[_0x266c('0x42')][_0x266c('0x4d')](_0x277289['body'],{'transaction':_0x193cbc})['then'](function(_0x4bc05f){if(_0x277289[_0x266c('0x4b')][_0x266c('0x4f')]===_0x266c('0x50')){fs[_0x266c('0x54')](_0x4bc05f[_0x266c('0x55')],parseInt(_0x266c('0x56'),0x8));}var _0x580ec9=_0x277289['user']['get']({'plain':!![]});if(!_0x580ec9)throw new Error(_0x266c('0x57'));if(_0x580ec9[_0x266c('0x58')]===_0x266c('0x59')){var _0x58ed6f=_0x4bc05f[_0x266c('0x24')]({'plain':!![]});return db[_0x266c('0x5a')]['find']({'where':{'name':'MusicOnHolds','userProfileId':_0x580ec9[_0x266c('0x5b')]},'raw':!![]})[_0x266c('0x23')](function(_0x134476){if(_0x134476&&_0x134476[_0x266c('0x5c')]===0x0){return db['UserProfileResource'][_0x266c('0x4d')]({'name':_0x58ed6f[_0x266c('0x28')],'resourceId':_0x58ed6f['id'],'type':_0x134476[_0x266c('0x28')],'sectionId':_0x134476['id']},{})[_0x266c('0x23')](function(){return _0x4bc05f;});}else{return _0x4bc05f;}})[_0x266c('0x47')](function(_0x34822d){logger[_0x266c('0x27')](_0x266c('0x5d'),_0x34822d);});}return _0x4bc05f;});})[_0x266c('0x23')](respondWithResult(_0x34ceb4,0xc9))[_0x266c('0x47')](handleError(_0x34ceb4,null));};exports[_0x266c('0x25')]=function(_0x550f6e,_0x20ce56,_0x32f822){var _0xbbdcc0;return db['VoiceMusicOnHold'][_0x266c('0x4a')]({'where':{'id':_0x550f6e[_0x266c('0x4c')]['id']}})[_0x266c('0x23')](function(_0x1e593d){if(_0x1e593d){return db['sequelize']['transaction'](function(_0x508987){return _0x1e593d[_0x266c('0x25')]({'transaction':_0x508987,'raw':!![]})[_0x266c('0x23')](function(_0x56b6c0){if(_0x56b6c0[_0x266c('0x55')]){fs[_0x266c('0x5e')](_0x56b6c0['directory'])[_0x266c('0x5f')](function(_0x2b5216){fs[_0x266c('0x60')](path[_0x266c('0x51')](_0x56b6c0['directory'],_0x2b5216));});fs[_0x266c('0x61')](_0x56b6c0[_0x266c('0x55')]);}return _0x56b6c0;});})[_0x266c('0x47')](function(_0x4bd780){throw new db[(_0x266c('0x62'))][(_0x266c('0x63'))](_0x4bd780[_0x266c('0x64')]);});}})['then'](handleEntityNotFound(_0x20ce56,null))['then'](removeEntity(_0x20ce56,null))[_0x266c('0x47')](handleError(_0x20ce56,null));};exports[_0x266c('0x65')]=function(_0x4a4018,_0x4fa267,_0x16ca50){return db[_0x266c('0x4e')][_0x266c('0x66')](function(_0x313c8d){var _0x232ac2;return db[_0x266c('0x42')]['find']({'where':{'id':_0x4a4018[_0x266c('0x4c')]['id']}})[_0x266c('0x23')](function(_0x19ec37){if(_0x19ec37){_0x232ac2=_0x19ec37;return _0x19ec37[_0x266c('0x65')](_0x4a4018['body']['id'],{'transaction':_0x313c8d});}})[_0x266c('0x23')](function(_0x3a54d0){if(_0x3a54d0){return db[_0x266c('0x67')][_0x266c('0x68')]({'where':{'id':_0x4a4018[_0x266c('0x4b')]['id']},'attributes':['id','name',_0x266c('0x69'),_0x266c('0x6a'),_0x266c('0x6b')],'raw':!![]});}})[_0x266c('0x23')](function(_0x284c78){if(_0x284c78){var _0xfc2220=path[_0x266c('0x51')](config[_0x266c('0x52')],_0x266c('0x6c'),util[_0x266c('0x6d')](_0x266c('0x6e'),path['basename'](_0x284c78[_0x266c('0x69')],path[_0x266c('0x6f')](_0x284c78['save_name'])),_0x284c78[_0x266c('0x6a')]));var _0x7a710=path[_0x266c('0x51')](config['root'],_0x266c('0x53'),_0x232ac2[_0x266c('0x28')],util[_0x266c('0x6d')](_0x266c('0x6e'),_0x284c78[_0x266c('0x28')],_0x284c78[_0x266c('0x6a')]));fs[_0x266c('0x70')](_0xfc2220,_0x7a710);return _0x284c78;}})[_0x266c('0x47')](function(_0x5c6f14){throw new db[(_0x266c('0x62'))][(_0x266c('0x63'))](_0x5c6f14[_0x266c('0x64')]);});})[_0x266c('0x23')](handleEntityNotFound(_0x4fa267,null))['then'](respondWithResult(_0x4fa267,0xc9))[_0x266c('0x47')](handleError(_0x4fa267,null));};exports['removeSound']=function(_0x14084a,_0x58b293,_0x4f8360){return db[_0x266c('0x4e')]['transaction'](function(_0x200a0c){var _0x402c0e;return db[_0x266c('0x42')][_0x266c('0x68')]({'where':{'id':_0x14084a['params']['id']}})[_0x266c('0x23')](handleEntityNotFound(_0x58b293,null))[_0x266c('0x23')](function(_0x6b46f){if(_0x6b46f){_0x402c0e=_0x6b46f;return _0x6b46f['removeSound'](_0x14084a[_0x266c('0x4c')][_0x266c('0x71')]);}})[_0x266c('0x23')](function(_0x1b5fbf){if(_0x1b5fbf){return db[_0x266c('0x67')][_0x266c('0x68')]({'where':{'id':_0x14084a['params']['id2']},'attributes':['id',_0x266c('0x28'),_0x266c('0x69'),_0x266c('0x6a'),_0x266c('0x6b')],'raw':!![]});}})[_0x266c('0x23')](function(_0x4105d5){if(_0x4105d5){fs['unlinkSync'](path[_0x266c('0x51')](_0x402c0e[_0x266c('0x55')],util[_0x266c('0x6d')](_0x266c('0x6e'),_0x4105d5[_0x266c('0x28')],_0x4105d5[_0x266c('0x6a')])));return _0x4105d5;}})[_0x266c('0x47')](function(_0x347dc7){throw new db[(_0x266c('0x62'))][(_0x266c('0x63'))](_0x347dc7[_0x266c('0x64')]);});})[_0x266c('0x23')](handleEntityNotFound(_0x58b293,null))[_0x266c('0x23')](respondWithStatusCode(_0x58b293,0xcc))['catch'](handleError(_0x58b293,null));};exports[_0x266c('0x72')]=function(_0x12e0eb,_0xa6eb91,_0x17e7b5){var _0x37bc27={};var _0x217489={};var _0xfff5d1;var _0xf48cdd;return db[_0x266c('0x42')][_0x266c('0x68')]({'where':{'id':_0x12e0eb[_0x266c('0x4c')]['id']}})[_0x266c('0x23')](handleEntityNotFound(_0xa6eb91,null))[_0x266c('0x23')](function(_0x479b01){if(_0x479b01){_0xfff5d1=_0x479b01;_0x217489[_0x266c('0x2f')]=_['keys'](db['Sound']['rawAttributes']);_0x217489['query']=_['keys'](_0x12e0eb[_0x266c('0x30')]);_0x217489[_0x266c('0x31')]=_[_0x266c('0x32')](_0x217489[_0x266c('0x2f')],_0x217489[_0x266c('0x30')]);_0x37bc27[_0x266c('0x33')]=_['intersection'](_0x217489[_0x266c('0x2f')],qs[_0x266c('0x34')](_0x12e0eb[_0x266c('0x30')][_0x266c('0x34')]));_0x37bc27[_0x266c('0x33')]=_0x37bc27[_0x266c('0x33')][_0x266c('0x35')]?_0x37bc27[_0x266c('0x33')]:_0x217489[_0x266c('0x2f')];_0x37bc27[_0x266c('0x39')]=qs['sort'](_0x12e0eb['query'][_0x266c('0x3a')]);_0x37bc27['where']=qs[_0x266c('0x31')](_[_0x266c('0x3c')](_0x12e0eb['query'],_0x217489[_0x266c('0x31')]));if(_0x12e0eb['query'][_0x266c('0x3f')]){_0x37bc27[_0x266c('0x3b')]=_[_0x266c('0x40')](_0x37bc27[_0x266c('0x3b')],{'$or':_['map'](_0x37bc27[_0x266c('0x33')],function(_0x36b117){var _0xb5594b={};_0xb5594b[_0x36b117]={'$like':'%'+_0x12e0eb[_0x266c('0x30')][_0x266c('0x3f')]+'%'};return _0xb5594b;})});}_0x37bc27=_['merge']({},_0x37bc27,_0x12e0eb[_0x266c('0x41')]);return _0xfff5d1[_0x266c('0x72')](_0x37bc27);}})[_0x266c('0x23')](function(_0x208b53){if(_0x208b53){_0xf48cdd=_0x208b53[_0x266c('0x35')];if(!_0x12e0eb[_0x266c('0x30')]['hasOwnProperty']('nolimit')){_0x37bc27[_0x266c('0x38')]=qs[_0x266c('0x38')](_0x12e0eb[_0x266c('0x30')][_0x266c('0x38')]);_0x37bc27[_0x266c('0x1b')]=qs['offset'](_0x12e0eb[_0x266c('0x30')][_0x266c('0x1b')]);}return _0xfff5d1[_0x266c('0x72')](_0x37bc27);}})[_0x266c('0x23')](function(_0x462cbe){if(_0x462cbe){return _0x462cbe?{'count':_0xf48cdd,'rows':_0x462cbe}:null;}})['then'](respondWithResult(_0xa6eb91,null))[_0x266c('0x47')](handleError(_0xa6eb91,null));};