Built motion from commit f16df95f.|2.5.40
[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 _0x2945=['../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','json','limit','undefined','count','save','update','then','destroy','get','MusicOnHolds','UserProfileResource','stack','name','send','index','map','VoiceMusicOnHold','rawAttributes','type','key','model','query','keys','intersection','fields','attributes','nolimit','offset','order','sort','where','filters','pick','merge','VIRTUAL','filter','options','includeAll','include','catch','show','length','find','params','body','create','sequelize','mode','files','directory','join','root','server/files/moh','mkdirSync','0777','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','transaction','readdirSync','forEach','unlinkSync','rmdirSync','Sequelize','ValidationError','message','addSound','Sound','findOne','save_name','converted_format','createdAt','server/files/sounds/converted','format','basename','extname','%s.%s','symlinkSync','removeSound','id2','getSounds','hasOwnProperty','eml-format','rimraf','zip-dir','request-promise','moment','mustache','path','sox','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','papaparse','ioredis'];(function(_0x15c421,_0x6366f7){var _0x5e5ed5=function(_0x206e66){while(--_0x206e66){_0x15c421['push'](_0x15c421['shift']());}};_0x5e5ed5(++_0x6366f7);}(_0x2945,0xd5));var _0x5294=function(_0x291374,_0x149155){_0x291374=_0x291374-0x0;var _0x239be2=_0x2945[_0x291374];return _0x239be2;};'use strict';var emlformat=require(_0x5294('0x0'));var rimraf=require(_0x5294('0x1'));var zipdir=require(_0x5294('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x5294('0x3'));var moment=require(_0x5294('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x5294('0x5'));var util=require('util');var path=require(_0x5294('0x6'));var sox=require(_0x5294('0x7'));var csv=require(_0x5294('0x8'));var ejs=require(_0x5294('0x9'));var fs=require('fs');var fs_extra=require(_0x5294('0xa'));var _=require('lodash');var squel=require(_0x5294('0xb'));var crypto=require(_0x5294('0xc'));var jsforce=require(_0x5294('0xd'));var deskjs=require(_0x5294('0xe'));var toCsv=require(_0x5294('0x8'));var querystring=require('querystring');var Papa=require(_0x5294('0xf'));var Redis=require(_0x5294('0x10'));var authService=require(_0x5294('0x11'));var qs=require(_0x5294('0x12'));var as=require(_0x5294('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x5294('0x14'))(_0x5294('0x15'));var utils=require(_0x5294('0x16'));var config=require(_0x5294('0x17'));var licenseUtil=require(_0x5294('0x18'));var db=require(_0x5294('0x19'))['db'];function respondWithStatusCode(_0x3a7592,_0x4d5e75){_0x4d5e75=_0x4d5e75||0xcc;return function(_0xf6c78f){if(_0xf6c78f){return _0x3a7592[_0x5294('0x1a')](_0x4d5e75);}return _0x3a7592[_0x5294('0x1b')](_0x4d5e75)['end']();};}function respondWithResult(_0x2bcb45,_0x276dec){_0x276dec=_0x276dec||0xc8;return function(_0xe00683){if(_0xe00683){return _0x2bcb45[_0x5294('0x1b')](_0x276dec)[_0x5294('0x1c')](_0xe00683);}};}function respondWithFilteredResult(_0x2154d5,_0x1302f4){return function(_0xb79536){if(_0xb79536){var _0x2fff0e=typeof _0x1302f4['offset']==='undefined'&&typeof _0x1302f4[_0x5294('0x1d')]===_0x5294('0x1e');var _0x521b5d=_0xb79536[_0x5294('0x1f')];var _0x3b8e1f=_0x2fff0e?0x0:_0x1302f4['offset'];var _0xb2ac45=_0x2fff0e?_0xb79536[_0x5294('0x1f')]:_0x1302f4['offset']+_0x1302f4['limit'];var _0x2500ad;if(_0xb2ac45>=_0x521b5d){_0xb2ac45=_0x521b5d;_0x2500ad=0xc8;}else{_0x2500ad=0xce;}_0x2154d5['status'](_0x2500ad);return _0x2154d5['set']('Content-Range',_0x3b8e1f+'-'+_0xb2ac45+'/'+_0x521b5d)['json'](_0xb79536);}return null;};}function patchUpdates(_0x4cd5ad){return function(_0x2a8e1a){try{jsonpatch['apply'](_0x2a8e1a,_0x4cd5ad,!![]);}catch(_0x56576d){return BPromise['reject'](_0x56576d);}return _0x2a8e1a[_0x5294('0x20')]();};}function saveUpdates(_0x2f83b2,_0x3f4031){return function(_0x4a6775){if(_0x4a6775){return _0x4a6775[_0x5294('0x21')](_0x2f83b2)[_0x5294('0x22')](function(_0x11d135){return _0x11d135;});}return null;};}function removeEntity(_0x2b26d4,_0xbf9cc5){return function(_0x57293c){if(_0x57293c){return _0x57293c[_0x5294('0x23')]()['then'](function(){var _0xe99968=_0x57293c[_0x5294('0x24')]({'plain':!![]});var _0x85583e=_0x5294('0x25');return db[_0x5294('0x26')][_0x5294('0x23')]({'where':{'type':_0x85583e,'resourceId':_0xe99968['id']}})[_0x5294('0x22')](function(){return _0x57293c;});})[_0x5294('0x22')](function(){_0x2b26d4[_0x5294('0x1b')](0xcc)['end']();});}};}function handleEntityNotFound(_0x1ee96d,_0x317da4){return function(_0x209d53){if(!_0x209d53){_0x1ee96d[_0x5294('0x1a')](0x194);}return _0x209d53;};}function handleError(_0x1bdbe6,_0x393ebf){_0x393ebf=_0x393ebf||0x1f4;return function(_0x5ee254){logger['error'](_0x5ee254[_0x5294('0x27')]);if(_0x5ee254[_0x5294('0x28')]){delete _0x5ee254['name'];}_0x1bdbe6[_0x5294('0x1b')](_0x393ebf)[_0x5294('0x29')](_0x5ee254);};}exports[_0x5294('0x2a')]=function(_0x5a325a,_0x5538d0){var _0x5657cd={},_0x3b26ac={},_0x2ed601={'count':0x0,'rows':[]};var _0x138251=_[_0x5294('0x2b')](db[_0x5294('0x2c')][_0x5294('0x2d')],function(_0x26e4d4){return{'name':_0x26e4d4['fieldName'],'type':_0x26e4d4[_0x5294('0x2e')][_0x5294('0x2f')]};});_0x3b26ac[_0x5294('0x30')]=_['map'](_0x138251,'name');_0x3b26ac[_0x5294('0x31')]=_[_0x5294('0x32')](_0x5a325a[_0x5294('0x31')]);_0x3b26ac['filters']=_[_0x5294('0x33')](_0x3b26ac['model'],_0x3b26ac[_0x5294('0x31')]);_0x5657cd['attributes']=_[_0x5294('0x33')](_0x3b26ac['model'],qs['fields'](_0x5a325a[_0x5294('0x31')][_0x5294('0x34')]));_0x5657cd[_0x5294('0x35')]=_0x5657cd['attributes']['length']?_0x5657cd[_0x5294('0x35')]:_0x3b26ac[_0x5294('0x30')];if(!_0x5a325a[_0x5294('0x31')]['hasOwnProperty'](_0x5294('0x36'))){_0x5657cd[_0x5294('0x1d')]=qs[_0x5294('0x1d')](_0x5a325a[_0x5294('0x31')][_0x5294('0x1d')]);_0x5657cd['offset']=qs[_0x5294('0x37')](_0x5a325a[_0x5294('0x31')][_0x5294('0x37')]);}_0x5657cd[_0x5294('0x38')]=qs[_0x5294('0x39')](_0x5a325a['query'][_0x5294('0x39')]);delete _0x5a325a[_0x5294('0x31')]['sort'];_0x5657cd[_0x5294('0x3a')]=qs[_0x5294('0x3b')](_[_0x5294('0x3c')](_0x5a325a[_0x5294('0x31')],_0x3b26ac[_0x5294('0x3b')]),_0x138251);if(_0x5a325a[_0x5294('0x31')]['filter']){_0x5657cd[_0x5294('0x3a')]=_[_0x5294('0x3d')](_0x5657cd[_0x5294('0x3a')],{'$or':_[_0x5294('0x2b')](_0x138251,function(_0x40ea9e){if(_0x40ea9e[_0x5294('0x2e')]!==_0x5294('0x3e')){var _0x4796de={};_0x4796de[_0x40ea9e[_0x5294('0x28')]]={'$like':'%'+_0x5a325a[_0x5294('0x31')][_0x5294('0x3f')]+'%'};return _0x4796de;}})});}_0x5657cd=_[_0x5294('0x3d')]({},_0x5657cd,_0x5a325a[_0x5294('0x40')]);var _0x47eb69={'where':_0x5657cd[_0x5294('0x3a')]};return db[_0x5294('0x2c')]['count'](_0x47eb69)[_0x5294('0x22')](function(_0xe28ce8){_0x2ed601[_0x5294('0x1f')]=_0xe28ce8;if(_0x5a325a[_0x5294('0x31')][_0x5294('0x41')]){_0x5657cd[_0x5294('0x42')]=[{'all':!![]}];}return db[_0x5294('0x2c')]['findAll'](_0x5657cd);})[_0x5294('0x22')](function(_0x44e4a6){_0x2ed601['rows']=_0x44e4a6;return _0x2ed601;})[_0x5294('0x22')](respondWithFilteredResult(_0x5538d0,_0x5657cd))[_0x5294('0x43')](handleError(_0x5538d0,null));};exports[_0x5294('0x44')]=function(_0x3a2afc,_0x2f55f4){var _0x547624={'raw':![],'where':{'id':_0x3a2afc['params']['id']}},_0x3da41e={};_0x3da41e['model']=_[_0x5294('0x32')](db[_0x5294('0x2c')]['rawAttributes']);_0x3da41e[_0x5294('0x31')]=_[_0x5294('0x32')](_0x3a2afc['query']);_0x3da41e[_0x5294('0x3b')]=_[_0x5294('0x33')](_0x3da41e[_0x5294('0x30')],_0x3da41e['query']);_0x547624[_0x5294('0x35')]=_[_0x5294('0x33')](_0x3da41e[_0x5294('0x30')],qs['fields'](_0x3a2afc[_0x5294('0x31')][_0x5294('0x34')]));_0x547624['attributes']=_0x547624[_0x5294('0x35')][_0x5294('0x45')]?_0x547624[_0x5294('0x35')]:_0x3da41e['model'];if(_0x3a2afc[_0x5294('0x31')]['includeAll']){_0x547624['include']=[{'all':!![]}];}_0x547624=_['merge']({},_0x547624,_0x3a2afc[_0x5294('0x40')]);return db[_0x5294('0x2c')][_0x5294('0x46')](_0x547624)['then'](handleEntityNotFound(_0x2f55f4,null))['then'](respondWithResult(_0x2f55f4,null))['catch'](handleError(_0x2f55f4,null));};exports[_0x5294('0x21')]=function(_0x3dfe10,_0x382658){if(_0x3dfe10['body']['id']){delete _0x3dfe10['body']['id'];}return db['VoiceMusicOnHold'][_0x5294('0x46')]({'where':{'id':_0x3dfe10[_0x5294('0x47')]['id']}})[_0x5294('0x22')](handleEntityNotFound(_0x382658,null))[_0x5294('0x22')](saveUpdates(_0x3dfe10[_0x5294('0x48')],null))[_0x5294('0x22')](respondWithResult(_0x382658,null))[_0x5294('0x43')](handleError(_0x382658,null));};exports[_0x5294('0x49')]=function(_0xb706a3,_0x1232a3,_0x54db1c){return db[_0x5294('0x4a')]['transaction'](function(_0x38085a){if(_0xb706a3[_0x5294('0x48')][_0x5294('0x4b')]===_0x5294('0x4c')){_0xb706a3[_0x5294('0x48')][_0x5294('0x4d')]=path[_0x5294('0x4e')](config[_0x5294('0x4f')],_0x5294('0x50'),_0xb706a3[_0x5294('0x48')][_0x5294('0x28')]);}return db[_0x5294('0x2c')]['create'](_0xb706a3[_0x5294('0x48')],{'transaction':_0x38085a})[_0x5294('0x22')](function(_0x407862){if(_0xb706a3[_0x5294('0x48')][_0x5294('0x4b')]===_0x5294('0x4c')){fs[_0x5294('0x51')](_0x407862[_0x5294('0x4d')],parseInt(_0x5294('0x52'),0x8));}var _0x425c8e=_0xb706a3[_0x5294('0x53')][_0x5294('0x24')]({'plain':!![]});if(!_0x425c8e)throw new Error(_0x5294('0x54'));if(_0x425c8e[_0x5294('0x55')]===_0x5294('0x53')){var _0x5a4422=_0x407862[_0x5294('0x24')]({'plain':!![]});return db[_0x5294('0x56')]['find']({'where':{'name':_0x5294('0x25'),'userProfileId':_0x425c8e[_0x5294('0x57')]},'raw':!![]})['then'](function(_0x2a6066){if(_0x2a6066&&_0x2a6066[_0x5294('0x58')]===0x0){return db[_0x5294('0x26')][_0x5294('0x49')]({'name':_0x5a4422[_0x5294('0x28')],'resourceId':_0x5a4422['id'],'type':_0x2a6066[_0x5294('0x28')],'sectionId':_0x2a6066['id']},{})[_0x5294('0x22')](function(){return _0x407862;});}else{return _0x407862;}})[_0x5294('0x43')](function(_0x37ffe6){logger[_0x5294('0x59')](_0x5294('0x5a'),_0x37ffe6);});}return _0x407862;});})[_0x5294('0x22')](respondWithResult(_0x1232a3,0xc9))[_0x5294('0x43')](handleError(_0x1232a3,null));};exports[_0x5294('0x23')]=function(_0x7a24fb,_0x206166,_0x230eb7){var _0x40f27b;return db[_0x5294('0x2c')]['find']({'where':{'id':_0x7a24fb[_0x5294('0x47')]['id']}})[_0x5294('0x22')](function(_0x275987){if(_0x275987){return db[_0x5294('0x4a')][_0x5294('0x5b')](function(_0x1e0261){return _0x275987[_0x5294('0x23')]({'transaction':_0x1e0261,'raw':!![]})[_0x5294('0x22')](function(_0x53b30d){if(_0x53b30d[_0x5294('0x4d')]){fs[_0x5294('0x5c')](_0x53b30d[_0x5294('0x4d')])[_0x5294('0x5d')](function(_0x105de2){fs[_0x5294('0x5e')](path[_0x5294('0x4e')](_0x53b30d['directory'],_0x105de2));});fs[_0x5294('0x5f')](_0x53b30d[_0x5294('0x4d')]);}return _0x53b30d;});})[_0x5294('0x43')](function(_0xe06ac2){throw new db[(_0x5294('0x60'))][(_0x5294('0x61'))](_0xe06ac2[_0x5294('0x62')]);});}})[_0x5294('0x22')](handleEntityNotFound(_0x206166,null))[_0x5294('0x22')](removeEntity(_0x206166,null))[_0x5294('0x43')](handleError(_0x206166,null));};exports['addSound']=function(_0x4d9dbe,_0x1196ea,_0xa52824){return db[_0x5294('0x4a')][_0x5294('0x5b')](function(_0x325ade){var _0x26c9bc;return db[_0x5294('0x2c')]['find']({'where':{'id':_0x4d9dbe[_0x5294('0x47')]['id']}})['then'](function(_0x444df2){if(_0x444df2){_0x26c9bc=_0x444df2;return _0x444df2[_0x5294('0x63')](_0x4d9dbe['body']['id'],{'transaction':_0x325ade});}})[_0x5294('0x22')](function(_0x519902){if(_0x519902){return db[_0x5294('0x64')][_0x5294('0x65')]({'where':{'id':_0x4d9dbe['body']['id']},'attributes':['id',_0x5294('0x28'),_0x5294('0x66'),_0x5294('0x67'),_0x5294('0x68')],'raw':!![]});}})['then'](function(_0x5073b1){if(_0x5073b1){var _0xd17d13=path['join'](config[_0x5294('0x4f')],_0x5294('0x69'),util[_0x5294('0x6a')]('%s.%s',path[_0x5294('0x6b')](_0x5073b1[_0x5294('0x66')],path[_0x5294('0x6c')](_0x5073b1[_0x5294('0x66')])),_0x5073b1[_0x5294('0x67')]));var _0x24f295=path[_0x5294('0x4e')](config['root'],'server/files/moh',_0x26c9bc['name'],util[_0x5294('0x6a')](_0x5294('0x6d'),_0x5073b1[_0x5294('0x28')],_0x5073b1[_0x5294('0x67')]));fs[_0x5294('0x6e')](_0xd17d13,_0x24f295);return _0x5073b1;}})[_0x5294('0x43')](function(_0x1dbf3e){throw new db[(_0x5294('0x60'))][(_0x5294('0x61'))](_0x1dbf3e[_0x5294('0x62')]);});})[_0x5294('0x22')](handleEntityNotFound(_0x1196ea,null))[_0x5294('0x22')](respondWithResult(_0x1196ea,0xc9))[_0x5294('0x43')](handleError(_0x1196ea,null));};exports[_0x5294('0x6f')]=function(_0xb81845,_0x1e7e4c,_0x20e1e9){return db[_0x5294('0x4a')]['transaction'](function(_0x2a2121){var _0x56e469;return db['VoiceMusicOnHold'][_0x5294('0x65')]({'where':{'id':_0xb81845['params']['id']}})[_0x5294('0x22')](handleEntityNotFound(_0x1e7e4c,null))[_0x5294('0x22')](function(_0x2cab15){if(_0x2cab15){_0x56e469=_0x2cab15;return _0x2cab15[_0x5294('0x6f')](_0xb81845[_0x5294('0x47')][_0x5294('0x70')]);}})[_0x5294('0x22')](function(_0x196f31){if(_0x196f31){return db['Sound'][_0x5294('0x65')]({'where':{'id':_0xb81845[_0x5294('0x47')][_0x5294('0x70')]},'attributes':['id','name','save_name','converted_format',_0x5294('0x68')],'raw':!![]});}})[_0x5294('0x22')](function(_0x29a5fc){if(_0x29a5fc){fs[_0x5294('0x5e')](path['join'](_0x56e469[_0x5294('0x4d')],util[_0x5294('0x6a')](_0x5294('0x6d'),_0x29a5fc[_0x5294('0x28')],_0x29a5fc[_0x5294('0x67')])));return _0x29a5fc;}})[_0x5294('0x43')](function(_0x3bcb27){throw new db[(_0x5294('0x60'))][(_0x5294('0x61'))](_0x3bcb27[_0x5294('0x62')]);});})[_0x5294('0x22')](handleEntityNotFound(_0x1e7e4c,null))['then'](respondWithStatusCode(_0x1e7e4c,0xcc))[_0x5294('0x43')](handleError(_0x1e7e4c,null));};exports[_0x5294('0x71')]=function(_0x5f3731,_0x5e53c5,_0x4d5630){var _0x1773cd={};var _0x34cf46={};var _0x5f2c22;var _0x1a21a7;return db[_0x5294('0x2c')][_0x5294('0x65')]({'where':{'id':_0x5f3731[_0x5294('0x47')]['id']}})['then'](handleEntityNotFound(_0x5e53c5,null))[_0x5294('0x22')](function(_0x240894){if(_0x240894){_0x5f2c22=_0x240894;_0x34cf46[_0x5294('0x30')]=_[_0x5294('0x32')](db[_0x5294('0x64')][_0x5294('0x2d')]);_0x34cf46[_0x5294('0x31')]=_[_0x5294('0x32')](_0x5f3731[_0x5294('0x31')]);_0x34cf46[_0x5294('0x3b')]=_['intersection'](_0x34cf46[_0x5294('0x30')],_0x34cf46['query']);_0x1773cd[_0x5294('0x35')]=_['intersection'](_0x34cf46[_0x5294('0x30')],qs[_0x5294('0x34')](_0x5f3731[_0x5294('0x31')]['fields']));_0x1773cd[_0x5294('0x35')]=_0x1773cd['attributes'][_0x5294('0x45')]?_0x1773cd[_0x5294('0x35')]:_0x34cf46[_0x5294('0x30')];_0x1773cd['order']=qs[_0x5294('0x39')](_0x5f3731[_0x5294('0x31')]['sort']);_0x1773cd['where']=qs[_0x5294('0x3b')](_[_0x5294('0x3c')](_0x5f3731[_0x5294('0x31')],_0x34cf46[_0x5294('0x3b')]));if(_0x5f3731[_0x5294('0x31')][_0x5294('0x3f')]){_0x1773cd['where']=_['merge'](_0x1773cd[_0x5294('0x3a')],{'$or':_[_0x5294('0x2b')](_0x1773cd[_0x5294('0x35')],function(_0x467183){var _0x45308c={};_0x45308c[_0x467183]={'$like':'%'+_0x5f3731[_0x5294('0x31')]['filter']+'%'};return _0x45308c;})});}_0x1773cd=_[_0x5294('0x3d')]({},_0x1773cd,_0x5f3731[_0x5294('0x40')]);return _0x5f2c22[_0x5294('0x71')](_0x1773cd);}})['then'](function(_0x3e7643){if(_0x3e7643){_0x1a21a7=_0x3e7643[_0x5294('0x45')];if(!_0x5f3731[_0x5294('0x31')][_0x5294('0x72')](_0x5294('0x36'))){_0x1773cd[_0x5294('0x1d')]=qs[_0x5294('0x1d')](_0x5f3731[_0x5294('0x31')][_0x5294('0x1d')]);_0x1773cd[_0x5294('0x37')]=qs['offset'](_0x5f3731[_0x5294('0x31')][_0x5294('0x37')]);}return _0x5f2c22[_0x5294('0x71')](_0x1773cd);}})[_0x5294('0x22')](function(_0x46ac96){if(_0x46ac96){return _0x46ac96?{'count':_0x1a21a7,'rows':_0x46ac96}:null;}})[_0x5294('0x22')](respondWithResult(_0x5e53c5,null))['catch'](handleError(_0x5e53c5,null));};