9cc921d7b5ca057b9d169ca4ddce2dc470a6f2ac
[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 _0x0354=['fs-extra','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','offset','limit','count','Content-Range','reject','update','then','destroy','get','end','sendStatus','name','send','index','map','VoiceMusicOnHold','rawAttributes','fieldName','type','key','model','keys','query','filters','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','show','params','intersection','length','find','catch','body','create','transaction','mode','files','directory','root','server/files/moh','mkdirSync','0777','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','MusicOnHolds','userProfileId','UserProfileResource','error','sequelize','readdirSync','unlinkSync','join','rmdirSync','Sequelize','ValidationError','message','addSound','Sound','save_name','createdAt','server/files/sounds/converted','format','%s.%s','basename','converted_format','symlinkSync','removeSound','findOne','id2','getSounds','fast-json-patch','request-promise','bluebird','util','sox','to-csv'];(function(_0x4b2863,_0x494899){var _0x567d67=function(_0x751f03){while(--_0x751f03){_0x4b2863['push'](_0x4b2863['shift']());}};_0x567d67(++_0x494899);}(_0x0354,0xd2));var _0x4035=function(_0x2158d4,_0x3adcf6){_0x2158d4=_0x2158d4-0x0;var _0x1b174a=_0x0354[_0x2158d4];return _0x1b174a;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x4035('0x0'));var rp=require(_0x4035('0x1'));var moment=require('moment');var BPromise=require(_0x4035('0x2'));var Mustache=require('mustache');var util=require(_0x4035('0x3'));var path=require('path');var sox=require(_0x4035('0x4'));var csv=require(_0x4035('0x5'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x4035('0x6'));var _=require(_0x4035('0x7'));var squel=require(_0x4035('0x8'));var crypto=require('crypto');var jsforce=require(_0x4035('0x9'));var deskjs=require(_0x4035('0xa'));var toCsv=require(_0x4035('0x5'));var querystring=require(_0x4035('0xb'));var Papa=require(_0x4035('0xc'));var Redis=require(_0x4035('0xd'));var authService=require('../../components/auth/service');var qs=require(_0x4035('0xe'));var as=require(_0x4035('0xf'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x4035('0x10'))('api');var utils=require(_0x4035('0x11'));var config=require(_0x4035('0x12'));var licenseUtil=require(_0x4035('0x13'));var db=require(_0x4035('0x14'))['db'];function respondWithStatusCode(_0x2544c7,_0x510d19){_0x510d19=_0x510d19||0xcc;return function(_0x5afb81){if(_0x5afb81){return _0x2544c7['sendStatus'](_0x510d19);}return _0x2544c7[_0x4035('0x15')](_0x510d19)['end']();};}function respondWithResult(_0x1adaaf,_0xdbb1b){_0xdbb1b=_0xdbb1b||0xc8;return function(_0x3123c7){if(_0x3123c7){return _0x1adaaf[_0x4035('0x15')](_0xdbb1b)['json'](_0x3123c7);}};}function respondWithFilteredResult(_0x31efb3,_0x4b1234){return function(_0xab060d){if(_0xab060d){var _0x2831f4=typeof _0x4b1234[_0x4035('0x16')]==='undefined'&&typeof _0x4b1234[_0x4035('0x17')]==='undefined';var _0x19c667=_0xab060d[_0x4035('0x18')];var _0x3213da=_0x2831f4?0x0:_0x4b1234['offset'];var _0x36fed8=_0x2831f4?_0xab060d[_0x4035('0x18')]:_0x4b1234[_0x4035('0x16')]+_0x4b1234[_0x4035('0x17')];var _0x2ddce6;if(_0x36fed8>=_0x19c667){_0x36fed8=_0x19c667;_0x2ddce6=0xc8;}else{_0x2ddce6=0xce;}_0x31efb3[_0x4035('0x15')](_0x2ddce6);return _0x31efb3['set'](_0x4035('0x19'),_0x3213da+'-'+_0x36fed8+'/'+_0x19c667)['json'](_0xab060d);}return null;};}function patchUpdates(_0x43eacb){return function(_0x20ced6){try{jsonpatch['apply'](_0x20ced6,_0x43eacb,!![]);}catch(_0x1bcebd){return BPromise[_0x4035('0x1a')](_0x1bcebd);}return _0x20ced6['save']();};}function saveUpdates(_0x5651db,_0x2a12d0){return function(_0x5aa8f3){if(_0x5aa8f3){return _0x5aa8f3[_0x4035('0x1b')](_0x5651db)[_0x4035('0x1c')](function(_0x2aef77){return _0x2aef77;});}return null;};}function removeEntity(_0x2a51b3,_0x33fb12){return function(_0xd70de4){if(_0xd70de4){return _0xd70de4[_0x4035('0x1d')]()[_0x4035('0x1c')](function(){var _0x274840=_0xd70de4[_0x4035('0x1e')]({'plain':!![]});var _0x2ec3b9='MusicOnHolds';return db['UserProfileResource']['destroy']({'where':{'type':_0x2ec3b9,'resourceId':_0x274840['id']}})['then'](function(){return _0xd70de4;});})[_0x4035('0x1c')](function(){_0x2a51b3[_0x4035('0x15')](0xcc)[_0x4035('0x1f')]();});}};}function handleEntityNotFound(_0x61aa97,_0x5dee2e){return function(_0x5e429f){if(!_0x5e429f){_0x61aa97[_0x4035('0x20')](0x194);}return _0x5e429f;};}function handleError(_0x46cb84,_0x1b61e){_0x1b61e=_0x1b61e||0x1f4;return function(_0x39a6fc){logger['error'](_0x39a6fc['stack']);if(_0x39a6fc['name']){delete _0x39a6fc[_0x4035('0x21')];}_0x46cb84[_0x4035('0x15')](_0x1b61e)[_0x4035('0x22')](_0x39a6fc);};}exports[_0x4035('0x23')]=function(_0x36c668,_0x189492){var _0x5a9081={},_0x175fd5={},_0x3ca130={'count':0x0,'rows':[]};var _0x1315ba=_[_0x4035('0x24')](db[_0x4035('0x25')][_0x4035('0x26')],function(_0x2e858b){return{'name':_0x2e858b[_0x4035('0x27')],'type':_0x2e858b[_0x4035('0x28')][_0x4035('0x29')]};});_0x175fd5[_0x4035('0x2a')]=_[_0x4035('0x24')](_0x1315ba,'name');_0x175fd5['query']=_[_0x4035('0x2b')](_0x36c668[_0x4035('0x2c')]);_0x175fd5[_0x4035('0x2d')]=_['intersection'](_0x175fd5[_0x4035('0x2a')],_0x175fd5[_0x4035('0x2c')]);_0x5a9081[_0x4035('0x2e')]=_['intersection'](_0x175fd5[_0x4035('0x2a')],qs['fields'](_0x36c668['query'][_0x4035('0x2f')]));_0x5a9081[_0x4035('0x2e')]=_0x5a9081[_0x4035('0x2e')]['length']?_0x5a9081[_0x4035('0x2e')]:_0x175fd5[_0x4035('0x2a')];if(!_0x36c668[_0x4035('0x2c')][_0x4035('0x30')](_0x4035('0x31'))){_0x5a9081['limit']=qs['limit'](_0x36c668[_0x4035('0x2c')][_0x4035('0x17')]);_0x5a9081[_0x4035('0x16')]=qs[_0x4035('0x16')](_0x36c668['query'][_0x4035('0x16')]);}_0x5a9081[_0x4035('0x32')]=qs[_0x4035('0x33')](_0x36c668[_0x4035('0x2c')][_0x4035('0x33')]);delete _0x36c668['query'][_0x4035('0x33')];_0x5a9081[_0x4035('0x34')]=qs[_0x4035('0x2d')](_[_0x4035('0x35')](_0x36c668[_0x4035('0x2c')],_0x175fd5['filters']),_0x1315ba);if(_0x36c668['query'][_0x4035('0x36')]){_0x5a9081[_0x4035('0x34')]=_[_0x4035('0x37')](_0x5a9081[_0x4035('0x34')],{'$or':_[_0x4035('0x24')](_0x1315ba,function(_0x367db8){if(_0x367db8[_0x4035('0x28')]!==_0x4035('0x38')){var _0x3def93={};_0x3def93[_0x367db8[_0x4035('0x21')]]={'$like':'%'+_0x36c668[_0x4035('0x2c')][_0x4035('0x36')]+'%'};return _0x3def93;}})});}_0x5a9081=_[_0x4035('0x37')]({},_0x5a9081,_0x36c668[_0x4035('0x39')]);var _0x57a65b={'where':_0x5a9081[_0x4035('0x34')]};return db[_0x4035('0x25')]['count'](_0x57a65b)[_0x4035('0x1c')](function(_0x155992){_0x3ca130[_0x4035('0x18')]=_0x155992;if(_0x36c668['query'][_0x4035('0x3a')]){_0x5a9081[_0x4035('0x3b')]=[{'all':!![]}];}return db[_0x4035('0x25')][_0x4035('0x3c')](_0x5a9081);})[_0x4035('0x1c')](function(_0xd7a48d){_0x3ca130[_0x4035('0x3d')]=_0xd7a48d;return _0x3ca130;})[_0x4035('0x1c')](respondWithFilteredResult(_0x189492,_0x5a9081))['catch'](handleError(_0x189492,null));};exports[_0x4035('0x3e')]=function(_0x388cea,_0x378a46){var _0xc2ebe6={'raw':![],'where':{'id':_0x388cea[_0x4035('0x3f')]['id']}},_0x101fcc={};_0x101fcc[_0x4035('0x2a')]=_[_0x4035('0x2b')](db[_0x4035('0x25')]['rawAttributes']);_0x101fcc['query']=_[_0x4035('0x2b')](_0x388cea['query']);_0x101fcc[_0x4035('0x2d')]=_[_0x4035('0x40')](_0x101fcc[_0x4035('0x2a')],_0x101fcc[_0x4035('0x2c')]);_0xc2ebe6[_0x4035('0x2e')]=_[_0x4035('0x40')](_0x101fcc[_0x4035('0x2a')],qs[_0x4035('0x2f')](_0x388cea['query']['fields']));_0xc2ebe6['attributes']=_0xc2ebe6[_0x4035('0x2e')][_0x4035('0x41')]?_0xc2ebe6['attributes']:_0x101fcc[_0x4035('0x2a')];if(_0x388cea['query'][_0x4035('0x3a')]){_0xc2ebe6[_0x4035('0x3b')]=[{'all':!![]}];}_0xc2ebe6=_[_0x4035('0x37')]({},_0xc2ebe6,_0x388cea[_0x4035('0x39')]);return db[_0x4035('0x25')][_0x4035('0x42')](_0xc2ebe6)[_0x4035('0x1c')](handleEntityNotFound(_0x378a46,null))[_0x4035('0x1c')](respondWithResult(_0x378a46,null))[_0x4035('0x43')](handleError(_0x378a46,null));};exports[_0x4035('0x1b')]=function(_0x3a62f3,_0x4b3b0c){if(_0x3a62f3[_0x4035('0x44')]['id']){delete _0x3a62f3[_0x4035('0x44')]['id'];}return db['VoiceMusicOnHold'][_0x4035('0x42')]({'where':{'id':_0x3a62f3[_0x4035('0x3f')]['id']}})[_0x4035('0x1c')](handleEntityNotFound(_0x4b3b0c,null))['then'](saveUpdates(_0x3a62f3[_0x4035('0x44')],null))[_0x4035('0x1c')](respondWithResult(_0x4b3b0c,null))[_0x4035('0x43')](handleError(_0x4b3b0c,null));};exports[_0x4035('0x45')]=function(_0x142298,_0x14842a,_0x3c4b1f){return db['sequelize'][_0x4035('0x46')](function(_0x5e27c0){if(_0x142298[_0x4035('0x44')][_0x4035('0x47')]===_0x4035('0x48')){_0x142298[_0x4035('0x44')][_0x4035('0x49')]=path['join'](config[_0x4035('0x4a')],_0x4035('0x4b'),_0x142298[_0x4035('0x44')][_0x4035('0x21')]);}return db[_0x4035('0x25')][_0x4035('0x45')](_0x142298[_0x4035('0x44')],{'transaction':_0x5e27c0})[_0x4035('0x1c')](function(_0x52eb68){if(_0x142298[_0x4035('0x44')][_0x4035('0x47')]==='files'){fs[_0x4035('0x4c')](_0x52eb68[_0x4035('0x49')],parseInt(_0x4035('0x4d'),0x8));}var _0x5dfc34=_0x142298[_0x4035('0x4e')][_0x4035('0x1e')]({'plain':!![]});if(!_0x5dfc34)throw new Error(_0x4035('0x4f'));if(_0x5dfc34[_0x4035('0x50')]===_0x4035('0x4e')){var _0x36454b=_0x52eb68[_0x4035('0x1e')]({'plain':!![]});return db[_0x4035('0x51')][_0x4035('0x42')]({'where':{'name':_0x4035('0x52'),'userProfileId':_0x5dfc34[_0x4035('0x53')]},'raw':!![]})[_0x4035('0x1c')](function(_0x1d9388){if(_0x1d9388&&_0x1d9388['autoAssociation']===0x0){return db[_0x4035('0x54')][_0x4035('0x45')]({'name':_0x36454b[_0x4035('0x21')],'resourceId':_0x36454b['id'],'type':_0x1d9388[_0x4035('0x21')],'sectionId':_0x1d9388['id']},{})[_0x4035('0x1c')](function(){return _0x52eb68;});}else{return _0x52eb68;}})['catch'](function(_0x3d221e){logger[_0x4035('0x55')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x3d221e);});}return _0x52eb68;});})[_0x4035('0x1c')](respondWithResult(_0x14842a,0xc9))[_0x4035('0x43')](handleError(_0x14842a,null));};exports[_0x4035('0x1d')]=function(_0x1bd555,_0x23e14a,_0x3511da){var _0x3a95d3;return db['VoiceMusicOnHold'][_0x4035('0x42')]({'where':{'id':_0x1bd555[_0x4035('0x3f')]['id']}})[_0x4035('0x1c')](function(_0x15df97){if(_0x15df97){return db[_0x4035('0x56')]['transaction'](function(_0x31aeb3){return _0x15df97['destroy']({'transaction':_0x31aeb3,'raw':!![]})['then'](function(_0x568f48){if(_0x568f48[_0x4035('0x49')]){fs[_0x4035('0x57')](_0x568f48['directory'])['forEach'](function(_0x15f541){fs[_0x4035('0x58')](path[_0x4035('0x59')](_0x568f48['directory'],_0x15f541));});fs[_0x4035('0x5a')](_0x568f48[_0x4035('0x49')]);}return _0x568f48;});})['catch'](function(_0x32c9bc){throw new db[(_0x4035('0x5b'))][(_0x4035('0x5c'))](_0x32c9bc[_0x4035('0x5d')]);});}})[_0x4035('0x1c')](handleEntityNotFound(_0x23e14a,null))[_0x4035('0x1c')](removeEntity(_0x23e14a,null))[_0x4035('0x43')](handleError(_0x23e14a,null));};exports[_0x4035('0x5e')]=function(_0x465a6b,_0x111d0a,_0x233976){return db[_0x4035('0x56')][_0x4035('0x46')](function(_0x423332){var _0x3a73c3;return db['VoiceMusicOnHold'][_0x4035('0x42')]({'where':{'id':_0x465a6b[_0x4035('0x3f')]['id']}})['then'](function(_0xebd02a){if(_0xebd02a){_0x3a73c3=_0xebd02a;return _0xebd02a[_0x4035('0x5e')](_0x465a6b[_0x4035('0x44')]['id'],{'transaction':_0x423332});}})[_0x4035('0x1c')](function(_0x16df3a){if(_0x16df3a){return db[_0x4035('0x5f')]['findOne']({'where':{'id':_0x465a6b[_0x4035('0x44')]['id']},'attributes':['id',_0x4035('0x21'),_0x4035('0x60'),'converted_format',_0x4035('0x61')],'raw':!![]});}})[_0x4035('0x1c')](function(_0x3d051a){if(_0x3d051a){var _0xa3c9e4=path[_0x4035('0x59')](config[_0x4035('0x4a')],_0x4035('0x62'),util[_0x4035('0x63')](_0x4035('0x64'),path[_0x4035('0x65')](_0x3d051a[_0x4035('0x60')],path['extname'](_0x3d051a[_0x4035('0x60')])),_0x3d051a['converted_format']));var _0xa48ace=path[_0x4035('0x59')](config['root'],'server/files/moh',_0x3a73c3[_0x4035('0x21')],util['format'](_0x4035('0x64'),_0x3d051a[_0x4035('0x21')],_0x3d051a[_0x4035('0x66')]));fs[_0x4035('0x67')](_0xa3c9e4,_0xa48ace);return _0x3d051a;}})[_0x4035('0x43')](function(_0x4f996e){throw new db[(_0x4035('0x5b'))][(_0x4035('0x5c'))](_0x4f996e[_0x4035('0x5d')]);});})[_0x4035('0x1c')](handleEntityNotFound(_0x111d0a,null))['then'](respondWithResult(_0x111d0a,0xc9))['catch'](handleError(_0x111d0a,null));};exports[_0x4035('0x68')]=function(_0x39bed2,_0x48c283,_0x51a23d){return db[_0x4035('0x56')][_0x4035('0x46')](function(_0x5bbe34){var _0x3534a5;return db['VoiceMusicOnHold']['findOne']({'where':{'id':_0x39bed2['params']['id']}})['then'](handleEntityNotFound(_0x48c283,null))[_0x4035('0x1c')](function(_0x3f09e9){if(_0x3f09e9){_0x3534a5=_0x3f09e9;return _0x3f09e9[_0x4035('0x68')](_0x39bed2[_0x4035('0x3f')]['id2']);}})['then'](function(_0x481aae){if(_0x481aae){return db[_0x4035('0x5f')][_0x4035('0x69')]({'where':{'id':_0x39bed2[_0x4035('0x3f')][_0x4035('0x6a')]},'attributes':['id',_0x4035('0x21'),_0x4035('0x60'),_0x4035('0x66'),'createdAt'],'raw':!![]});}})[_0x4035('0x1c')](function(_0x54de64){if(_0x54de64){fs['unlinkSync'](path['join'](_0x3534a5[_0x4035('0x49')],util['format']('%s.%s',_0x54de64['name'],_0x54de64[_0x4035('0x66')])));return _0x54de64;}})['catch'](function(_0x22f3f8){throw new db[(_0x4035('0x5b'))]['ValidationError'](_0x22f3f8[_0x4035('0x5d')]);});})['then'](handleEntityNotFound(_0x48c283,null))[_0x4035('0x1c')](respondWithStatusCode(_0x48c283,0xcc))[_0x4035('0x43')](handleError(_0x48c283,null));};exports[_0x4035('0x6b')]=function(_0x1425b5,_0x3d06c4,_0x427cdc){var _0x4950d8={};var _0x9bb154={};var _0x3b3b52;var _0x2d478e;return db[_0x4035('0x25')][_0x4035('0x69')]({'where':{'id':_0x1425b5['params']['id']}})[_0x4035('0x1c')](handleEntityNotFound(_0x3d06c4,null))[_0x4035('0x1c')](function(_0x4e29ef){if(_0x4e29ef){_0x3b3b52=_0x4e29ef;_0x9bb154['model']=_[_0x4035('0x2b')](db[_0x4035('0x5f')]['rawAttributes']);_0x9bb154[_0x4035('0x2c')]=_[_0x4035('0x2b')](_0x1425b5[_0x4035('0x2c')]);_0x9bb154[_0x4035('0x2d')]=_[_0x4035('0x40')](_0x9bb154[_0x4035('0x2a')],_0x9bb154['query']);_0x4950d8['attributes']=_[_0x4035('0x40')](_0x9bb154[_0x4035('0x2a')],qs[_0x4035('0x2f')](_0x1425b5[_0x4035('0x2c')][_0x4035('0x2f')]));_0x4950d8[_0x4035('0x2e')]=_0x4950d8[_0x4035('0x2e')][_0x4035('0x41')]?_0x4950d8['attributes']:_0x9bb154[_0x4035('0x2a')];_0x4950d8[_0x4035('0x32')]=qs[_0x4035('0x33')](_0x1425b5[_0x4035('0x2c')][_0x4035('0x33')]);_0x4950d8[_0x4035('0x34')]=qs[_0x4035('0x2d')](_['pick'](_0x1425b5[_0x4035('0x2c')],_0x9bb154[_0x4035('0x2d')]));if(_0x1425b5['query'][_0x4035('0x36')]){_0x4950d8[_0x4035('0x34')]=_['merge'](_0x4950d8[_0x4035('0x34')],{'$or':_[_0x4035('0x24')](_0x4950d8[_0x4035('0x2e')],function(_0x46d5f6){var _0x227ba3={};_0x227ba3[_0x46d5f6]={'$like':'%'+_0x1425b5['query'][_0x4035('0x36')]+'%'};return _0x227ba3;})});}_0x4950d8=_[_0x4035('0x37')]({},_0x4950d8,_0x1425b5[_0x4035('0x39')]);return _0x3b3b52[_0x4035('0x6b')](_0x4950d8);}})[_0x4035('0x1c')](function(_0x3d3b48){if(_0x3d3b48){_0x2d478e=_0x3d3b48[_0x4035('0x41')];if(!_0x1425b5[_0x4035('0x2c')]['hasOwnProperty'](_0x4035('0x31'))){_0x4950d8['limit']=qs[_0x4035('0x17')](_0x1425b5['query'][_0x4035('0x17')]);_0x4950d8[_0x4035('0x16')]=qs[_0x4035('0x16')](_0x1425b5[_0x4035('0x2c')][_0x4035('0x16')]);}return _0x3b3b52[_0x4035('0x6b')](_0x4950d8);}})[_0x4035('0x1c')](function(_0x18b411){if(_0x18b411){return _0x18b411?{'count':_0x2d478e,'rows':_0x18b411}:null;}})[_0x4035('0x1c')](respondWithResult(_0x3d06c4,null))[_0x4035('0x43')](handleError(_0x3d06c4,null));};