Built motion from commit 497d3d92.|2.5.43
[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 _0x42ea=['rawAttributes','keys','includeAll','body','find','mode','files','directory','join','server/files/moh','mkdirSync','0777','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','autoAssociation','UserProfileResource','create','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','sequelize','transaction','readdirSync','forEach','unlinkSync','rmdirSync','Sequelize','ValidationError','message','addSound','Sound','save_name','converted_format','createdAt','root','server/files/sounds/converted','extname','format','%s.%s','symlinkSync','removeSound','id2','findOne','length','sort','getSounds','eml-format','fast-json-patch','path','sox','ejs','fs-extra','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','status','offset','undefined','limit','count','set','Content-Range','json','apply','reject','save','update','then','destroy','MusicOnHolds','name','send','index','VoiceMusicOnHold','type','model','map','query','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','where','pick','merge','filter','options','include','findAll','rows','catch','show','params'];(function(_0xb44cd5,_0x494c4e){var _0x25f0ce=function(_0xe32788){while(--_0xe32788){_0xb44cd5['push'](_0xb44cd5['shift']());}};_0x25f0ce(++_0x494c4e);}(_0x42ea,0x9f));var _0xa42e=function(_0x49c752,_0x2c906f){_0x49c752=_0x49c752-0x0;var _0x29fffe=_0x42ea[_0x49c752];return _0x29fffe;};'use strict';var emlformat=require(_0xa42e('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0xa42e('0x1'));var rp=require('request-promise');var moment=require('moment');var BPromise=require('bluebird');var Mustache=require('mustache');var util=require('util');var path=require(_0xa42e('0x2'));var sox=require(_0xa42e('0x3'));var csv=require('to-csv');var ejs=require(_0xa42e('0x4'));var fs=require('fs');var fs_extra=require(_0xa42e('0x5'));var _=require('lodash');var squel=require(_0xa42e('0x6'));var crypto=require(_0xa42e('0x7'));var jsforce=require(_0xa42e('0x8'));var deskjs=require(_0xa42e('0x9'));var toCsv=require('to-csv');var querystring=require(_0xa42e('0xa'));var Papa=require('papaparse');var Redis=require(_0xa42e('0xb'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0xa42e('0xc'));var hardwareService=require(_0xa42e('0xd'));var logger=require(_0xa42e('0xe'))(_0xa42e('0xf'));var utils=require(_0xa42e('0x10'));var config=require(_0xa42e('0x11'));var licenseUtil=require(_0xa42e('0x12'));var db=require(_0xa42e('0x13'))['db'];function respondWithStatusCode(_0x3af0b6,_0x2937a1){_0x2937a1=_0x2937a1||0xcc;return function(_0xbcf877){if(_0xbcf877){return _0x3af0b6[_0xa42e('0x14')](_0x2937a1);}return _0x3af0b6['status'](_0x2937a1)[_0xa42e('0x15')]();};}function respondWithResult(_0x195752,_0x2b8a3e){_0x2b8a3e=_0x2b8a3e||0xc8;return function(_0x277c51){if(_0x277c51){return _0x195752[_0xa42e('0x16')](_0x2b8a3e)['json'](_0x277c51);}};}function respondWithFilteredResult(_0xf7ef1b,_0x3f7e1e){return function(_0x13beaa){if(_0x13beaa){var _0x439cff=typeof _0x3f7e1e[_0xa42e('0x17')]===_0xa42e('0x18')&&typeof _0x3f7e1e[_0xa42e('0x19')]===_0xa42e('0x18');var _0x38f4d2=_0x13beaa[_0xa42e('0x1a')];var _0x549748=_0x439cff?0x0:_0x3f7e1e[_0xa42e('0x17')];var _0x4ffd39=_0x439cff?_0x13beaa[_0xa42e('0x1a')]:_0x3f7e1e[_0xa42e('0x17')]+_0x3f7e1e[_0xa42e('0x19')];var _0x2fecba;if(_0x4ffd39>=_0x38f4d2){_0x4ffd39=_0x38f4d2;_0x2fecba=0xc8;}else{_0x2fecba=0xce;}_0xf7ef1b[_0xa42e('0x16')](_0x2fecba);return _0xf7ef1b[_0xa42e('0x1b')](_0xa42e('0x1c'),_0x549748+'-'+_0x4ffd39+'/'+_0x38f4d2)[_0xa42e('0x1d')](_0x13beaa);}return null;};}function patchUpdates(_0x354f15){return function(_0x16b5b7){try{jsonpatch[_0xa42e('0x1e')](_0x16b5b7,_0x354f15,!![]);}catch(_0x3ac372){return BPromise[_0xa42e('0x1f')](_0x3ac372);}return _0x16b5b7[_0xa42e('0x20')]();};}function saveUpdates(_0x394ce2,_0x2d4327){return function(_0x327e98){if(_0x327e98){return _0x327e98[_0xa42e('0x21')](_0x394ce2)[_0xa42e('0x22')](function(_0x476359){return _0x476359;});}return null;};}function removeEntity(_0x1374e4,_0x2cad4f){return function(_0x2f09f8){if(_0x2f09f8){return _0x2f09f8[_0xa42e('0x23')]()[_0xa42e('0x22')](function(){var _0x131bad=_0x2f09f8['get']({'plain':!![]});var _0x32a278=_0xa42e('0x24');return db['UserProfileResource']['destroy']({'where':{'type':_0x32a278,'resourceId':_0x131bad['id']}})['then'](function(){return _0x2f09f8;});})['then'](function(){_0x1374e4[_0xa42e('0x16')](0xcc)[_0xa42e('0x15')]();});}};}function handleEntityNotFound(_0x4a1036,_0xf36816){return function(_0x456087){if(!_0x456087){_0x4a1036[_0xa42e('0x14')](0x194);}return _0x456087;};}function handleError(_0x6440d7,_0x41245a){_0x41245a=_0x41245a||0x1f4;return function(_0x33ae19){logger['error'](_0x33ae19['stack']);if(_0x33ae19[_0xa42e('0x25')]){delete _0x33ae19[_0xa42e('0x25')];}_0x6440d7[_0xa42e('0x16')](_0x41245a)[_0xa42e('0x26')](_0x33ae19);};}exports[_0xa42e('0x27')]=function(_0x37f87a,_0x4b7157){var _0x17f67c={},_0xd69792={},_0x387b50={'count':0x0,'rows':[]};var _0x1e7f8c=_['map'](db[_0xa42e('0x28')]['rawAttributes'],function(_0x4c8076){return{'name':_0x4c8076['fieldName'],'type':_0x4c8076[_0xa42e('0x29')]['key']};});_0xd69792[_0xa42e('0x2a')]=_[_0xa42e('0x2b')](_0x1e7f8c,'name');_0xd69792[_0xa42e('0x2c')]=_['keys'](_0x37f87a[_0xa42e('0x2c')]);_0xd69792[_0xa42e('0x2d')]=_[_0xa42e('0x2e')](_0xd69792[_0xa42e('0x2a')],_0xd69792['query']);_0x17f67c[_0xa42e('0x2f')]=_[_0xa42e('0x2e')](_0xd69792[_0xa42e('0x2a')],qs[_0xa42e('0x30')](_0x37f87a[_0xa42e('0x2c')][_0xa42e('0x30')]));_0x17f67c['attributes']=_0x17f67c['attributes']['length']?_0x17f67c['attributes']:_0xd69792[_0xa42e('0x2a')];if(!_0x37f87a[_0xa42e('0x2c')][_0xa42e('0x31')](_0xa42e('0x32'))){_0x17f67c[_0xa42e('0x19')]=qs[_0xa42e('0x19')](_0x37f87a[_0xa42e('0x2c')]['limit']);_0x17f67c[_0xa42e('0x17')]=qs['offset'](_0x37f87a[_0xa42e('0x2c')][_0xa42e('0x17')]);}_0x17f67c[_0xa42e('0x33')]=qs['sort'](_0x37f87a[_0xa42e('0x2c')]['sort']);delete _0x37f87a[_0xa42e('0x2c')]['sort'];_0x17f67c[_0xa42e('0x34')]=qs['filters'](_[_0xa42e('0x35')](_0x37f87a[_0xa42e('0x2c')],_0xd69792[_0xa42e('0x2d')]),_0x1e7f8c);if(_0x37f87a['query']['filter']){_0x17f67c['where']=_[_0xa42e('0x36')](_0x17f67c[_0xa42e('0x34')],{'$or':_[_0xa42e('0x2b')](_0x1e7f8c,function(_0x59a83c){if(_0x59a83c[_0xa42e('0x29')]!=='VIRTUAL'){var _0x86cac5={};_0x86cac5[_0x59a83c['name']]={'$like':'%'+_0x37f87a[_0xa42e('0x2c')][_0xa42e('0x37')]+'%'};return _0x86cac5;}})});}_0x17f67c=_['merge']({},_0x17f67c,_0x37f87a[_0xa42e('0x38')]);var _0x3e1c8e={'where':_0x17f67c[_0xa42e('0x34')]};return db[_0xa42e('0x28')]['count'](_0x3e1c8e)[_0xa42e('0x22')](function(_0x22e511){_0x387b50['count']=_0x22e511;if(_0x37f87a['query']['includeAll']){_0x17f67c[_0xa42e('0x39')]=[{'all':!![]}];}return db[_0xa42e('0x28')][_0xa42e('0x3a')](_0x17f67c);})[_0xa42e('0x22')](function(_0x58e921){_0x387b50[_0xa42e('0x3b')]=_0x58e921;return _0x387b50;})[_0xa42e('0x22')](respondWithFilteredResult(_0x4b7157,_0x17f67c))[_0xa42e('0x3c')](handleError(_0x4b7157,null));};exports[_0xa42e('0x3d')]=function(_0x306449,_0x2dbb48){var _0x1beb23={'raw':![],'where':{'id':_0x306449[_0xa42e('0x3e')]['id']}},_0x421304={};_0x421304['model']=_['keys'](db[_0xa42e('0x28')][_0xa42e('0x3f')]);_0x421304[_0xa42e('0x2c')]=_[_0xa42e('0x40')](_0x306449['query']);_0x421304[_0xa42e('0x2d')]=_[_0xa42e('0x2e')](_0x421304['model'],_0x421304[_0xa42e('0x2c')]);_0x1beb23[_0xa42e('0x2f')]=_['intersection'](_0x421304['model'],qs[_0xa42e('0x30')](_0x306449[_0xa42e('0x2c')][_0xa42e('0x30')]));_0x1beb23['attributes']=_0x1beb23[_0xa42e('0x2f')]['length']?_0x1beb23[_0xa42e('0x2f')]:_0x421304[_0xa42e('0x2a')];if(_0x306449[_0xa42e('0x2c')][_0xa42e('0x41')]){_0x1beb23[_0xa42e('0x39')]=[{'all':!![]}];}_0x1beb23=_[_0xa42e('0x36')]({},_0x1beb23,_0x306449[_0xa42e('0x38')]);return db[_0xa42e('0x28')]['find'](_0x1beb23)[_0xa42e('0x22')](handleEntityNotFound(_0x2dbb48,null))['then'](respondWithResult(_0x2dbb48,null))['catch'](handleError(_0x2dbb48,null));};exports[_0xa42e('0x21')]=function(_0x5039de,_0x25d1ac){if(_0x5039de[_0xa42e('0x42')]['id']){delete _0x5039de[_0xa42e('0x42')]['id'];}return db['VoiceMusicOnHold'][_0xa42e('0x43')]({'where':{'id':_0x5039de[_0xa42e('0x3e')]['id']}})['then'](handleEntityNotFound(_0x25d1ac,null))[_0xa42e('0x22')](saveUpdates(_0x5039de[_0xa42e('0x42')],null))[_0xa42e('0x22')](respondWithResult(_0x25d1ac,null))[_0xa42e('0x3c')](handleError(_0x25d1ac,null));};exports['create']=function(_0x12ca30,_0x9fc0a6,_0x4676e3){return db['sequelize']['transaction'](function(_0x209526){if(_0x12ca30[_0xa42e('0x42')][_0xa42e('0x44')]===_0xa42e('0x45')){_0x12ca30['body'][_0xa42e('0x46')]=path[_0xa42e('0x47')](config['root'],_0xa42e('0x48'),_0x12ca30['body'][_0xa42e('0x25')]);}return db[_0xa42e('0x28')]['create'](_0x12ca30[_0xa42e('0x42')],{'transaction':_0x209526})[_0xa42e('0x22')](function(_0x3d0335){if(_0x12ca30[_0xa42e('0x42')][_0xa42e('0x44')]===_0xa42e('0x45')){fs[_0xa42e('0x49')](_0x3d0335[_0xa42e('0x46')],parseInt(_0xa42e('0x4a'),0x8));}var _0x4a5e38=_0x12ca30[_0xa42e('0x4b')][_0xa42e('0x4c')]({'plain':!![]});if(!_0x4a5e38)throw new Error(_0xa42e('0x4d'));if(_0x4a5e38[_0xa42e('0x4e')]===_0xa42e('0x4b')){var _0x37ca6f=_0x3d0335[_0xa42e('0x4c')]({'plain':!![]});return db[_0xa42e('0x4f')]['find']({'where':{'name':_0xa42e('0x24'),'userProfileId':_0x4a5e38['userProfileId']},'raw':!![]})[_0xa42e('0x22')](function(_0x22b634){if(_0x22b634&&_0x22b634[_0xa42e('0x50')]===0x0){return db[_0xa42e('0x51')][_0xa42e('0x52')]({'name':_0x37ca6f[_0xa42e('0x25')],'resourceId':_0x37ca6f['id'],'type':_0x22b634[_0xa42e('0x25')],'sectionId':_0x22b634['id']},{})[_0xa42e('0x22')](function(){return _0x3d0335;});}else{return _0x3d0335;}})[_0xa42e('0x3c')](function(_0x5f1702){logger[_0xa42e('0x53')](_0xa42e('0x54'),_0x5f1702);});}return _0x3d0335;});})[_0xa42e('0x22')](respondWithResult(_0x9fc0a6,0xc9))[_0xa42e('0x3c')](handleError(_0x9fc0a6,null));};exports[_0xa42e('0x23')]=function(_0x598be2,_0x38bd8c,_0x1bb589){var _0x21bd2a;return db[_0xa42e('0x28')]['find']({'where':{'id':_0x598be2[_0xa42e('0x3e')]['id']}})[_0xa42e('0x22')](function(_0x190d9b){if(_0x190d9b){return db[_0xa42e('0x55')][_0xa42e('0x56')](function(_0x3cb219){return _0x190d9b['destroy']({'transaction':_0x3cb219,'raw':!![]})[_0xa42e('0x22')](function(_0x3745d3){if(_0x3745d3['directory']){fs[_0xa42e('0x57')](_0x3745d3[_0xa42e('0x46')])[_0xa42e('0x58')](function(_0x9c071){fs[_0xa42e('0x59')](path[_0xa42e('0x47')](_0x3745d3['directory'],_0x9c071));});fs[_0xa42e('0x5a')](_0x3745d3[_0xa42e('0x46')]);}return _0x3745d3;});})[_0xa42e('0x3c')](function(_0x3b1147){throw new db[(_0xa42e('0x5b'))][(_0xa42e('0x5c'))](_0x3b1147[_0xa42e('0x5d')]);});}})[_0xa42e('0x22')](handleEntityNotFound(_0x38bd8c,null))[_0xa42e('0x22')](removeEntity(_0x38bd8c,null))[_0xa42e('0x3c')](handleError(_0x38bd8c,null));};exports[_0xa42e('0x5e')]=function(_0x1fca82,_0x5f2b1d,_0x1cc6fe){return db[_0xa42e('0x55')]['transaction'](function(_0x12da1d){var _0x1af17d;return db[_0xa42e('0x28')][_0xa42e('0x43')]({'where':{'id':_0x1fca82[_0xa42e('0x3e')]['id']}})['then'](function(_0x54de95){if(_0x54de95){_0x1af17d=_0x54de95;return _0x54de95[_0xa42e('0x5e')](_0x1fca82[_0xa42e('0x42')]['id'],{'transaction':_0x12da1d});}})[_0xa42e('0x22')](function(_0x3b1b77){if(_0x3b1b77){return db[_0xa42e('0x5f')]['findOne']({'where':{'id':_0x1fca82['body']['id']},'attributes':['id',_0xa42e('0x25'),_0xa42e('0x60'),_0xa42e('0x61'),_0xa42e('0x62')],'raw':!![]});}})[_0xa42e('0x22')](function(_0x923160){if(_0x923160){var _0x27d951=path[_0xa42e('0x47')](config[_0xa42e('0x63')],_0xa42e('0x64'),util['format']('%s.%s',path['basename'](_0x923160[_0xa42e('0x60')],path[_0xa42e('0x65')](_0x923160['save_name'])),_0x923160['converted_format']));var _0x21bcc8=path[_0xa42e('0x47')](config[_0xa42e('0x63')],'server/files/moh',_0x1af17d[_0xa42e('0x25')],util[_0xa42e('0x66')](_0xa42e('0x67'),_0x923160[_0xa42e('0x25')],_0x923160[_0xa42e('0x61')]));fs[_0xa42e('0x68')](_0x27d951,_0x21bcc8);return _0x923160;}})[_0xa42e('0x3c')](function(_0x27428e){throw new db[(_0xa42e('0x5b'))][(_0xa42e('0x5c'))](_0x27428e[_0xa42e('0x5d')]);});})[_0xa42e('0x22')](handleEntityNotFound(_0x5f2b1d,null))[_0xa42e('0x22')](respondWithResult(_0x5f2b1d,0xc9))[_0xa42e('0x3c')](handleError(_0x5f2b1d,null));};exports[_0xa42e('0x69')]=function(_0x5efeb9,_0x2966f1,_0x40b80f){return db[_0xa42e('0x55')]['transaction'](function(_0x4a49f8){var _0x119b76;return db[_0xa42e('0x28')]['findOne']({'where':{'id':_0x5efeb9[_0xa42e('0x3e')]['id']}})[_0xa42e('0x22')](handleEntityNotFound(_0x2966f1,null))['then'](function(_0x414321){if(_0x414321){_0x119b76=_0x414321;return _0x414321[_0xa42e('0x69')](_0x5efeb9['params'][_0xa42e('0x6a')]);}})[_0xa42e('0x22')](function(_0x2e3d3d){if(_0x2e3d3d){return db[_0xa42e('0x5f')][_0xa42e('0x6b')]({'where':{'id':_0x5efeb9[_0xa42e('0x3e')][_0xa42e('0x6a')]},'attributes':['id',_0xa42e('0x25'),_0xa42e('0x60'),_0xa42e('0x61'),_0xa42e('0x62')],'raw':!![]});}})[_0xa42e('0x22')](function(_0x4741f2){if(_0x4741f2){fs[_0xa42e('0x59')](path['join'](_0x119b76['directory'],util['format']('%s.%s',_0x4741f2['name'],_0x4741f2[_0xa42e('0x61')])));return _0x4741f2;}})[_0xa42e('0x3c')](function(_0x1e5137){throw new db[(_0xa42e('0x5b'))][(_0xa42e('0x5c'))](_0x1e5137['message']);});})[_0xa42e('0x22')](handleEntityNotFound(_0x2966f1,null))[_0xa42e('0x22')](respondWithStatusCode(_0x2966f1,0xcc))[_0xa42e('0x3c')](handleError(_0x2966f1,null));};exports['getSounds']=function(_0xb6814f,_0x52a90d,_0x42b45d){var _0x25414e={};var _0xc9c6ea={};var _0x39e07d;var _0x465f21;return db['VoiceMusicOnHold'][_0xa42e('0x6b')]({'where':{'id':_0xb6814f[_0xa42e('0x3e')]['id']}})['then'](handleEntityNotFound(_0x52a90d,null))['then'](function(_0x293e4a){if(_0x293e4a){_0x39e07d=_0x293e4a;_0xc9c6ea['model']=_[_0xa42e('0x40')](db[_0xa42e('0x5f')]['rawAttributes']);_0xc9c6ea[_0xa42e('0x2c')]=_['keys'](_0xb6814f['query']);_0xc9c6ea[_0xa42e('0x2d')]=_[_0xa42e('0x2e')](_0xc9c6ea['model'],_0xc9c6ea['query']);_0x25414e['attributes']=_[_0xa42e('0x2e')](_0xc9c6ea[_0xa42e('0x2a')],qs['fields'](_0xb6814f[_0xa42e('0x2c')][_0xa42e('0x30')]));_0x25414e[_0xa42e('0x2f')]=_0x25414e['attributes'][_0xa42e('0x6c')]?_0x25414e['attributes']:_0xc9c6ea['model'];_0x25414e['order']=qs[_0xa42e('0x6d')](_0xb6814f[_0xa42e('0x2c')]['sort']);_0x25414e['where']=qs[_0xa42e('0x2d')](_[_0xa42e('0x35')](_0xb6814f[_0xa42e('0x2c')],_0xc9c6ea[_0xa42e('0x2d')]));if(_0xb6814f[_0xa42e('0x2c')][_0xa42e('0x37')]){_0x25414e['where']=_['merge'](_0x25414e['where'],{'$or':_[_0xa42e('0x2b')](_0x25414e['attributes'],function(_0x521a50){var _0xa11820={};_0xa11820[_0x521a50]={'$like':'%'+_0xb6814f[_0xa42e('0x2c')][_0xa42e('0x37')]+'%'};return _0xa11820;})});}_0x25414e=_[_0xa42e('0x36')]({},_0x25414e,_0xb6814f[_0xa42e('0x38')]);return _0x39e07d[_0xa42e('0x6e')](_0x25414e);}})[_0xa42e('0x22')](function(_0x12fa52){if(_0x12fa52){_0x465f21=_0x12fa52[_0xa42e('0x6c')];if(!_0xb6814f[_0xa42e('0x2c')][_0xa42e('0x31')](_0xa42e('0x32'))){_0x25414e[_0xa42e('0x19')]=qs[_0xa42e('0x19')](_0xb6814f['query']['limit']);_0x25414e[_0xa42e('0x17')]=qs[_0xa42e('0x17')](_0xb6814f[_0xa42e('0x2c')][_0xa42e('0x17')]);}return _0x39e07d['getSounds'](_0x25414e);}})[_0xa42e('0x22')](function(_0x57f407){if(_0x57f407){return _0x57f407?{'count':_0x465f21,'rows':_0x57f407}:null;}})['then'](respondWithResult(_0x52a90d,null))['catch'](handleError(_0x52a90d,null));};