f9230247ab2c06bafe974f8c351f70e287ada70d
[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 _0x58aa=['../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','limit','undefined','count','offset','set','Content-Range','apply','reject','update','then','destroy','get','MusicOnHolds','UserProfileResource','error','stack','send','index','map','VoiceMusicOnHold','fieldName','model','name','query','keys','filters','intersection','attributes','fields','nolimit','order','sort','pick','filter','where','merge','type','options','include','findAll','rows','catch','show','rawAttributes','includeAll','body','params','create','sequelize','transaction','join','server/files/moh','mode','mkdirSync','directory','0777','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','readdirSync','unlinkSync','Sequelize','ValidationError','addSound','find','Sound','findOne','save_name','createdAt','root','server/files/sounds/converted','format','%s.%s','basename','converted_format','symlinkSync','removeSound','id2','getSounds','length','hasOwnProperty','eml-format','rimraf','fast-json-patch','bluebird','mustache','util','path','sox','fs-extra','lodash','squel','crypto','jsforce','to-csv','querystring','ioredis'];(function(_0x87b0ff,_0x314389){var _0x3bc0b2=function(_0x41682b){while(--_0x41682b){_0x87b0ff['push'](_0x87b0ff['shift']());}};_0x3bc0b2(++_0x314389);}(_0x58aa,0x1b0));var _0xa58a=function(_0x17e417,_0x53e0d8){_0x17e417=_0x17e417-0x0;var _0x41dc1f=_0x58aa[_0x17e417];return _0x41dc1f;};'use strict';var emlformat=require(_0xa58a('0x0'));var rimraf=require(_0xa58a('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xa58a('0x2'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0xa58a('0x3'));var Mustache=require(_0xa58a('0x4'));var util=require(_0xa58a('0x5'));var path=require(_0xa58a('0x6'));var sox=require(_0xa58a('0x7'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xa58a('0x8'));var _=require(_0xa58a('0x9'));var squel=require(_0xa58a('0xa'));var crypto=require(_0xa58a('0xb'));var jsforce=require(_0xa58a('0xc'));var deskjs=require('desk.js');var toCsv=require(_0xa58a('0xd'));var querystring=require(_0xa58a('0xe'));var Papa=require('papaparse');var Redis=require(_0xa58a('0xf'));var authService=require(_0xa58a('0x10'));var qs=require(_0xa58a('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xa58a('0x12'));var logger=require(_0xa58a('0x13'))(_0xa58a('0x14'));var utils=require('../../config/utils');var config=require(_0xa58a('0x15'));var licenseUtil=require(_0xa58a('0x16'));var db=require(_0xa58a('0x17'))['db'];function respondWithStatusCode(_0x4e67e2,_0x1eaf40){_0x1eaf40=_0x1eaf40||0xcc;return function(_0x2bbee9){if(_0x2bbee9){return _0x4e67e2[_0xa58a('0x18')](_0x1eaf40);}return _0x4e67e2[_0xa58a('0x19')](_0x1eaf40)[_0xa58a('0x1a')]();};}function respondWithResult(_0x1af345,_0x895973){_0x895973=_0x895973||0xc8;return function(_0x2acfa8){if(_0x2acfa8){return _0x1af345[_0xa58a('0x19')](_0x895973)[_0xa58a('0x1b')](_0x2acfa8);}};}function respondWithFilteredResult(_0xa4fb75,_0x2d6787){return function(_0x4ec53f){if(_0x4ec53f){var _0x5e0f13=typeof _0x2d6787['offset']==='undefined'&&typeof _0x2d6787[_0xa58a('0x1c')]===_0xa58a('0x1d');var _0x33c6cc=_0x4ec53f[_0xa58a('0x1e')];var _0x493402=_0x5e0f13?0x0:_0x2d6787[_0xa58a('0x1f')];var _0x527642=_0x5e0f13?_0x4ec53f['count']:_0x2d6787[_0xa58a('0x1f')]+_0x2d6787['limit'];var _0x1834ee;if(_0x527642>=_0x33c6cc){_0x527642=_0x33c6cc;_0x1834ee=0xc8;}else{_0x1834ee=0xce;}_0xa4fb75['status'](_0x1834ee);return _0xa4fb75[_0xa58a('0x20')](_0xa58a('0x21'),_0x493402+'-'+_0x527642+'/'+_0x33c6cc)[_0xa58a('0x1b')](_0x4ec53f);}return null;};}function patchUpdates(_0x4d189e){return function(_0x4388f1){try{jsonpatch[_0xa58a('0x22')](_0x4388f1,_0x4d189e,!![]);}catch(_0x542347){return BPromise[_0xa58a('0x23')](_0x542347);}return _0x4388f1['save']();};}function saveUpdates(_0x1d20f6,_0x50e95e){return function(_0x39a31f){if(_0x39a31f){return _0x39a31f[_0xa58a('0x24')](_0x1d20f6)[_0xa58a('0x25')](function(_0x3fb965){return _0x3fb965;});}return null;};}function removeEntity(_0x323a63,_0x35e8c3){return function(_0x2127c0){if(_0x2127c0){return _0x2127c0[_0xa58a('0x26')]()[_0xa58a('0x25')](function(){var _0x361924=_0x2127c0[_0xa58a('0x27')]({'plain':!![]});var _0x56b6a9=_0xa58a('0x28');return db[_0xa58a('0x29')][_0xa58a('0x26')]({'where':{'type':_0x56b6a9,'resourceId':_0x361924['id']}})[_0xa58a('0x25')](function(){return _0x2127c0;});})[_0xa58a('0x25')](function(){_0x323a63['status'](0xcc)[_0xa58a('0x1a')]();});}};}function handleEntityNotFound(_0x1240f2,_0x84bfc0){return function(_0x323225){if(!_0x323225){_0x1240f2[_0xa58a('0x18')](0x194);}return _0x323225;};}function handleError(_0xaa5ccb,_0x31ab3e){_0x31ab3e=_0x31ab3e||0x1f4;return function(_0x1af5b6){logger[_0xa58a('0x2a')](_0x1af5b6[_0xa58a('0x2b')]);if(_0x1af5b6['name']){delete _0x1af5b6['name'];}_0xaa5ccb[_0xa58a('0x19')](_0x31ab3e)[_0xa58a('0x2c')](_0x1af5b6);};}exports[_0xa58a('0x2d')]=function(_0x51cead,_0x1cec77){var _0x140c48={},_0x3a8991={},_0x279689={'count':0x0,'rows':[]};var _0x544948=_[_0xa58a('0x2e')](db[_0xa58a('0x2f')]['rawAttributes'],function(_0x5f05f0){return{'name':_0x5f05f0[_0xa58a('0x30')],'type':_0x5f05f0['type']['key']};});_0x3a8991[_0xa58a('0x31')]=_[_0xa58a('0x2e')](_0x544948,_0xa58a('0x32'));_0x3a8991[_0xa58a('0x33')]=_[_0xa58a('0x34')](_0x51cead[_0xa58a('0x33')]);_0x3a8991[_0xa58a('0x35')]=_[_0xa58a('0x36')](_0x3a8991[_0xa58a('0x31')],_0x3a8991[_0xa58a('0x33')]);_0x140c48[_0xa58a('0x37')]=_['intersection'](_0x3a8991[_0xa58a('0x31')],qs[_0xa58a('0x38')](_0x51cead[_0xa58a('0x33')]['fields']));_0x140c48[_0xa58a('0x37')]=_0x140c48['attributes']['length']?_0x140c48[_0xa58a('0x37')]:_0x3a8991[_0xa58a('0x31')];if(!_0x51cead[_0xa58a('0x33')]['hasOwnProperty'](_0xa58a('0x39'))){_0x140c48[_0xa58a('0x1c')]=qs[_0xa58a('0x1c')](_0x51cead[_0xa58a('0x33')]['limit']);_0x140c48[_0xa58a('0x1f')]=qs[_0xa58a('0x1f')](_0x51cead[_0xa58a('0x33')]['offset']);}_0x140c48[_0xa58a('0x3a')]=qs['sort'](_0x51cead[_0xa58a('0x33')][_0xa58a('0x3b')]);delete _0x51cead[_0xa58a('0x33')][_0xa58a('0x3b')];_0x140c48['where']=qs[_0xa58a('0x35')](_[_0xa58a('0x3c')](_0x51cead[_0xa58a('0x33')],_0x3a8991[_0xa58a('0x35')]),_0x544948);if(_0x51cead[_0xa58a('0x33')][_0xa58a('0x3d')]){_0x140c48[_0xa58a('0x3e')]=_[_0xa58a('0x3f')](_0x140c48[_0xa58a('0x3e')],{'$or':_[_0xa58a('0x2e')](_0x544948,function(_0x1d6e79){if(_0x1d6e79[_0xa58a('0x40')]!=='VIRTUAL'){var _0x5dce3a={};_0x5dce3a[_0x1d6e79[_0xa58a('0x32')]]={'$like':'%'+_0x51cead[_0xa58a('0x33')][_0xa58a('0x3d')]+'%'};return _0x5dce3a;}})});}_0x140c48=_[_0xa58a('0x3f')]({},_0x140c48,_0x51cead[_0xa58a('0x41')]);var _0x23376f={'where':_0x140c48[_0xa58a('0x3e')]};return db[_0xa58a('0x2f')][_0xa58a('0x1e')](_0x23376f)[_0xa58a('0x25')](function(_0x2e5c60){_0x279689['count']=_0x2e5c60;if(_0x51cead['query']['includeAll']){_0x140c48[_0xa58a('0x42')]=[{'all':!![]}];}return db[_0xa58a('0x2f')][_0xa58a('0x43')](_0x140c48);})[_0xa58a('0x25')](function(_0x383599){_0x279689[_0xa58a('0x44')]=_0x383599;return _0x279689;})[_0xa58a('0x25')](respondWithFilteredResult(_0x1cec77,_0x140c48))[_0xa58a('0x45')](handleError(_0x1cec77,null));};exports[_0xa58a('0x46')]=function(_0x164fcc,_0x22a2b9){var _0x11d347={'raw':![],'where':{'id':_0x164fcc['params']['id']}},_0x546553={};_0x546553[_0xa58a('0x31')]=_[_0xa58a('0x34')](db[_0xa58a('0x2f')][_0xa58a('0x47')]);_0x546553[_0xa58a('0x33')]=_[_0xa58a('0x34')](_0x164fcc[_0xa58a('0x33')]);_0x546553['filters']=_[_0xa58a('0x36')](_0x546553[_0xa58a('0x31')],_0x546553[_0xa58a('0x33')]);_0x11d347[_0xa58a('0x37')]=_[_0xa58a('0x36')](_0x546553[_0xa58a('0x31')],qs[_0xa58a('0x38')](_0x164fcc[_0xa58a('0x33')][_0xa58a('0x38')]));_0x11d347[_0xa58a('0x37')]=_0x11d347[_0xa58a('0x37')]['length']?_0x11d347[_0xa58a('0x37')]:_0x546553[_0xa58a('0x31')];if(_0x164fcc['query'][_0xa58a('0x48')]){_0x11d347[_0xa58a('0x42')]=[{'all':!![]}];}_0x11d347=_[_0xa58a('0x3f')]({},_0x11d347,_0x164fcc[_0xa58a('0x41')]);return db[_0xa58a('0x2f')]['find'](_0x11d347)['then'](handleEntityNotFound(_0x22a2b9,null))[_0xa58a('0x25')](respondWithResult(_0x22a2b9,null))[_0xa58a('0x45')](handleError(_0x22a2b9,null));};exports[_0xa58a('0x24')]=function(_0x51b1f0,_0x215c92){if(_0x51b1f0[_0xa58a('0x49')]['id']){delete _0x51b1f0[_0xa58a('0x49')]['id'];}return db[_0xa58a('0x2f')]['find']({'where':{'id':_0x51b1f0[_0xa58a('0x4a')]['id']}})[_0xa58a('0x25')](handleEntityNotFound(_0x215c92,null))[_0xa58a('0x25')](saveUpdates(_0x51b1f0[_0xa58a('0x49')],null))[_0xa58a('0x25')](respondWithResult(_0x215c92,null))[_0xa58a('0x45')](handleError(_0x215c92,null));};exports[_0xa58a('0x4b')]=function(_0x1d815f,_0x457ab8,_0x2670f2){return db[_0xa58a('0x4c')][_0xa58a('0x4d')](function(_0x5d3032){if(_0x1d815f[_0xa58a('0x49')]['mode']==='files'){_0x1d815f[_0xa58a('0x49')]['directory']=path[_0xa58a('0x4e')](config['root'],_0xa58a('0x4f'),_0x1d815f[_0xa58a('0x49')][_0xa58a('0x32')]);}return db[_0xa58a('0x2f')][_0xa58a('0x4b')](_0x1d815f[_0xa58a('0x49')],{'transaction':_0x5d3032})[_0xa58a('0x25')](function(_0x2ad128){if(_0x1d815f['body'][_0xa58a('0x50')]==='files'){fs[_0xa58a('0x51')](_0x2ad128[_0xa58a('0x52')],parseInt(_0xa58a('0x53'),0x8));}var _0x2ef62c=_0x1d815f[_0xa58a('0x54')][_0xa58a('0x27')]({'plain':!![]});if(!_0x2ef62c)throw new Error(_0xa58a('0x55'));if(_0x2ef62c[_0xa58a('0x56')]==='user'){var _0x37bfb3=_0x2ad128['get']({'plain':!![]});return db[_0xa58a('0x57')]['find']({'where':{'name':'MusicOnHolds','userProfileId':_0x2ef62c['userProfileId']},'raw':!![]})['then'](function(_0x6a1dc6){if(_0x6a1dc6&&_0x6a1dc6[_0xa58a('0x58')]===0x0){return db[_0xa58a('0x29')][_0xa58a('0x4b')]({'name':_0x37bfb3[_0xa58a('0x32')],'resourceId':_0x37bfb3['id'],'type':_0x6a1dc6[_0xa58a('0x32')],'sectionId':_0x6a1dc6['id']},{})[_0xa58a('0x25')](function(){return _0x2ad128;});}else{return _0x2ad128;}})[_0xa58a('0x45')](function(_0x37f8b5){logger[_0xa58a('0x2a')](_0xa58a('0x59'),_0x37f8b5);});}return _0x2ad128;});})[_0xa58a('0x25')](respondWithResult(_0x457ab8,0xc9))['catch'](handleError(_0x457ab8,null));};exports[_0xa58a('0x26')]=function(_0x555b7c,_0x2a6221,_0x1fb693){var _0x2f8755;return db[_0xa58a('0x2f')]['find']({'where':{'id':_0x555b7c[_0xa58a('0x4a')]['id']}})[_0xa58a('0x25')](function(_0x274846){if(_0x274846){return db['sequelize'][_0xa58a('0x4d')](function(_0x167482){return _0x274846['destroy']({'transaction':_0x167482,'raw':!![]})[_0xa58a('0x25')](function(_0x4aeda4){if(_0x4aeda4[_0xa58a('0x52')]){fs[_0xa58a('0x5a')](_0x4aeda4[_0xa58a('0x52')])['forEach'](function(_0xa96173){fs[_0xa58a('0x5b')](path[_0xa58a('0x4e')](_0x4aeda4[_0xa58a('0x52')],_0xa96173));});fs['rmdirSync'](_0x4aeda4['directory']);}return _0x4aeda4;});})[_0xa58a('0x45')](function(_0x4e8b2b){throw new db[(_0xa58a('0x5c'))][(_0xa58a('0x5d'))](_0x4e8b2b['message']);});}})['then'](handleEntityNotFound(_0x2a6221,null))[_0xa58a('0x25')](removeEntity(_0x2a6221,null))['catch'](handleError(_0x2a6221,null));};exports[_0xa58a('0x5e')]=function(_0x7ad93d,_0x353890,_0x50ad42){return db[_0xa58a('0x4c')]['transaction'](function(_0x1649bb){var _0x4c52e0;return db['VoiceMusicOnHold'][_0xa58a('0x5f')]({'where':{'id':_0x7ad93d[_0xa58a('0x4a')]['id']}})['then'](function(_0x21a475){if(_0x21a475){_0x4c52e0=_0x21a475;return _0x21a475[_0xa58a('0x5e')](_0x7ad93d['body']['id'],{'transaction':_0x1649bb});}})[_0xa58a('0x25')](function(_0x59efb1){if(_0x59efb1){return db[_0xa58a('0x60')][_0xa58a('0x61')]({'where':{'id':_0x7ad93d[_0xa58a('0x49')]['id']},'attributes':['id',_0xa58a('0x32'),_0xa58a('0x62'),'converted_format',_0xa58a('0x63')],'raw':!![]});}})[_0xa58a('0x25')](function(_0x375e47){if(_0x375e47){var _0x50d30d=path[_0xa58a('0x4e')](config[_0xa58a('0x64')],_0xa58a('0x65'),util[_0xa58a('0x66')](_0xa58a('0x67'),path[_0xa58a('0x68')](_0x375e47[_0xa58a('0x62')],path['extname'](_0x375e47['save_name'])),_0x375e47[_0xa58a('0x69')]));var _0x18343c=path[_0xa58a('0x4e')](config[_0xa58a('0x64')],'server/files/moh',_0x4c52e0['name'],util[_0xa58a('0x66')]('%s.%s',_0x375e47[_0xa58a('0x32')],_0x375e47[_0xa58a('0x69')]));fs[_0xa58a('0x6a')](_0x50d30d,_0x18343c);return _0x375e47;}})[_0xa58a('0x45')](function(_0x7e1827){throw new db[(_0xa58a('0x5c'))][(_0xa58a('0x5d'))](_0x7e1827['message']);});})['then'](handleEntityNotFound(_0x353890,null))['then'](respondWithResult(_0x353890,0xc9))[_0xa58a('0x45')](handleError(_0x353890,null));};exports['removeSound']=function(_0x23bf33,_0x988f15,_0x5cd7d5){return db[_0xa58a('0x4c')]['transaction'](function(_0x3b006e){var _0x4dfb0e;return db[_0xa58a('0x2f')][_0xa58a('0x61')]({'where':{'id':_0x23bf33[_0xa58a('0x4a')]['id']}})[_0xa58a('0x25')](handleEntityNotFound(_0x988f15,null))[_0xa58a('0x25')](function(_0x1a25d0){if(_0x1a25d0){_0x4dfb0e=_0x1a25d0;return _0x1a25d0[_0xa58a('0x6b')](_0x23bf33[_0xa58a('0x4a')]['id2']);}})['then'](function(_0x38db96){if(_0x38db96){return db['Sound'][_0xa58a('0x61')]({'where':{'id':_0x23bf33[_0xa58a('0x4a')][_0xa58a('0x6c')]},'attributes':['id',_0xa58a('0x32'),_0xa58a('0x62'),_0xa58a('0x69'),_0xa58a('0x63')],'raw':!![]});}})[_0xa58a('0x25')](function(_0x289b24){if(_0x289b24){fs[_0xa58a('0x5b')](path[_0xa58a('0x4e')](_0x4dfb0e[_0xa58a('0x52')],util['format'](_0xa58a('0x67'),_0x289b24[_0xa58a('0x32')],_0x289b24['converted_format'])));return _0x289b24;}})[_0xa58a('0x45')](function(_0x3e3b4a){throw new db[(_0xa58a('0x5c'))]['ValidationError'](_0x3e3b4a['message']);});})[_0xa58a('0x25')](handleEntityNotFound(_0x988f15,null))[_0xa58a('0x25')](respondWithStatusCode(_0x988f15,0xcc))[_0xa58a('0x45')](handleError(_0x988f15,null));};exports[_0xa58a('0x6d')]=function(_0x1c7165,_0x1e200e,_0x23877a){var _0x35fdd4={};var _0x177157={};var _0x3f8271;var _0x1d8768;return db[_0xa58a('0x2f')][_0xa58a('0x61')]({'where':{'id':_0x1c7165[_0xa58a('0x4a')]['id']}})['then'](handleEntityNotFound(_0x1e200e,null))[_0xa58a('0x25')](function(_0x545025){if(_0x545025){_0x3f8271=_0x545025;_0x177157['model']=_[_0xa58a('0x34')](db[_0xa58a('0x60')][_0xa58a('0x47')]);_0x177157[_0xa58a('0x33')]=_[_0xa58a('0x34')](_0x1c7165[_0xa58a('0x33')]);_0x177157[_0xa58a('0x35')]=_[_0xa58a('0x36')](_0x177157[_0xa58a('0x31')],_0x177157[_0xa58a('0x33')]);_0x35fdd4[_0xa58a('0x37')]=_['intersection'](_0x177157[_0xa58a('0x31')],qs[_0xa58a('0x38')](_0x1c7165[_0xa58a('0x33')][_0xa58a('0x38')]));_0x35fdd4[_0xa58a('0x37')]=_0x35fdd4[_0xa58a('0x37')]['length']?_0x35fdd4[_0xa58a('0x37')]:_0x177157[_0xa58a('0x31')];_0x35fdd4['order']=qs[_0xa58a('0x3b')](_0x1c7165[_0xa58a('0x33')][_0xa58a('0x3b')]);_0x35fdd4['where']=qs[_0xa58a('0x35')](_[_0xa58a('0x3c')](_0x1c7165['query'],_0x177157[_0xa58a('0x35')]));if(_0x1c7165['query']['filter']){_0x35fdd4[_0xa58a('0x3e')]=_[_0xa58a('0x3f')](_0x35fdd4[_0xa58a('0x3e')],{'$or':_['map'](_0x35fdd4['attributes'],function(_0x407ef5){var _0x1fd042={};_0x1fd042[_0x407ef5]={'$like':'%'+_0x1c7165[_0xa58a('0x33')]['filter']+'%'};return _0x1fd042;})});}_0x35fdd4=_[_0xa58a('0x3f')]({},_0x35fdd4,_0x1c7165[_0xa58a('0x41')]);return _0x3f8271[_0xa58a('0x6d')](_0x35fdd4);}})[_0xa58a('0x25')](function(_0xb75040){if(_0xb75040){_0x1d8768=_0xb75040[_0xa58a('0x6e')];if(!_0x1c7165[_0xa58a('0x33')][_0xa58a('0x6f')](_0xa58a('0x39'))){_0x35fdd4['limit']=qs[_0xa58a('0x1c')](_0x1c7165['query'][_0xa58a('0x1c')]);_0x35fdd4[_0xa58a('0x1f')]=qs[_0xa58a('0x1f')](_0x1c7165['query'][_0xa58a('0x1f')]);}return _0x3f8271[_0xa58a('0x6d')](_0x35fdd4);}})[_0xa58a('0x25')](function(_0x2108b1){if(_0x2108b1){return _0x2108b1?{'count':_0x1d8768,'rows':_0x2108b1}:null;}})['then'](respondWithResult(_0x1e200e,null))['catch'](handleError(_0x1e200e,null));};