e4a4d2aec4b0b7818d6014c5f274dec24f07905f
[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 _0xdce6=['format','%s.%s','converted_format','findOne','removeSound','id2','getSounds','eml-format','request-promise','moment','bluebird','util','path','sox','ejs','lodash','squel','crypto','jsforce','to-csv','querystring','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','update','then','destroy','get','error','name','send','index','rawAttributes','fieldName','type','key','map','query','keys','filters','intersection','model','attributes','hasOwnProperty','nolimit','order','sort','pick','where','merge','filter','options','VoiceMusicOnHold','includeAll','include','findAll','rows','catch','fields','length','find','body','create','sequelize','transaction','mode','files','directory','root','server/files/moh','mkdirSync','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','readdirSync','forEach','unlinkSync','join','rmdirSync','Sequelize','ValidationError','message','addSound','Sound','save_name','createdAt'];(function(_0x2555d0,_0x4150a6){var _0x3bb486=function(_0x1eb89f){while(--_0x1eb89f){_0x2555d0['push'](_0x2555d0['shift']());}};_0x3bb486(++_0x4150a6);}(_0xdce6,0x145));var _0x6dce=function(_0x1ac595,_0x5d2081){_0x1ac595=_0x1ac595-0x0;var _0x455fff=_0xdce6[_0x1ac595];return _0x455fff;};'use strict';var emlformat=require(_0x6dce('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x6dce('0x1'));var moment=require(_0x6dce('0x2'));var BPromise=require(_0x6dce('0x3'));var Mustache=require('mustache');var util=require(_0x6dce('0x4'));var path=require(_0x6dce('0x5'));var sox=require(_0x6dce('0x6'));var csv=require('to-csv');var ejs=require(_0x6dce('0x7'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x6dce('0x8'));var squel=require(_0x6dce('0x9'));var crypto=require(_0x6dce('0xa'));var jsforce=require(_0x6dce('0xb'));var deskjs=require('desk.js');var toCsv=require(_0x6dce('0xc'));var querystring=require(_0x6dce('0xd'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x6dce('0xe'));var qs=require(_0x6dce('0xf'));var as=require(_0x6dce('0x10'));var hardwareService=require(_0x6dce('0x11'));var logger=require(_0x6dce('0x12'))(_0x6dce('0x13'));var utils=require(_0x6dce('0x14'));var config=require(_0x6dce('0x15'));var licenseUtil=require(_0x6dce('0x16'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x155eed,_0x4db2a8){_0x4db2a8=_0x4db2a8||0xcc;return function(_0xa0ea2a){if(_0xa0ea2a){return _0x155eed[_0x6dce('0x17')](_0x4db2a8);}return _0x155eed[_0x6dce('0x18')](_0x4db2a8)[_0x6dce('0x19')]();};}function respondWithResult(_0x365e0f,_0x41b380){_0x41b380=_0x41b380||0xc8;return function(_0x8da005){if(_0x8da005){return _0x365e0f[_0x6dce('0x18')](_0x41b380)[_0x6dce('0x1a')](_0x8da005);}};}function respondWithFilteredResult(_0x3189d6,_0x2880e9){return function(_0x1b751b){if(_0x1b751b){var _0x54a9df=typeof _0x2880e9[_0x6dce('0x1b')]===_0x6dce('0x1c')&&typeof _0x2880e9[_0x6dce('0x1d')]==='undefined';var _0x591563=_0x1b751b[_0x6dce('0x1e')];var _0x40732f=_0x54a9df?0x0:_0x2880e9[_0x6dce('0x1b')];var _0x12b9c0=_0x54a9df?_0x1b751b[_0x6dce('0x1e')]:_0x2880e9['offset']+_0x2880e9[_0x6dce('0x1d')];var _0x5d0c18;if(_0x12b9c0>=_0x591563){_0x12b9c0=_0x591563;_0x5d0c18=0xc8;}else{_0x5d0c18=0xce;}_0x3189d6['status'](_0x5d0c18);return _0x3189d6[_0x6dce('0x1f')](_0x6dce('0x20'),_0x40732f+'-'+_0x12b9c0+'/'+_0x591563)[_0x6dce('0x1a')](_0x1b751b);}return null;};}function patchUpdates(_0x37f479){return function(_0x5008b9){try{jsonpatch[_0x6dce('0x21')](_0x5008b9,_0x37f479,!![]);}catch(_0x4db353){return BPromise['reject'](_0x4db353);}return _0x5008b9['save']();};}function saveUpdates(_0x5d9f86,_0x25d573){return function(_0x3b33eb){if(_0x3b33eb){return _0x3b33eb[_0x6dce('0x22')](_0x5d9f86)[_0x6dce('0x23')](function(_0x4a1844){return _0x4a1844;});}return null;};}function removeEntity(_0x33320e,_0x31e1c1){return function(_0x13b3d8){if(_0x13b3d8){return _0x13b3d8[_0x6dce('0x24')]()[_0x6dce('0x23')](function(){var _0x66d594=_0x13b3d8[_0x6dce('0x25')]({'plain':!![]});var _0x22f33f='MusicOnHolds';return db['UserProfileResource'][_0x6dce('0x24')]({'where':{'type':_0x22f33f,'resourceId':_0x66d594['id']}})[_0x6dce('0x23')](function(){return _0x13b3d8;});})[_0x6dce('0x23')](function(){_0x33320e[_0x6dce('0x18')](0xcc)[_0x6dce('0x19')]();});}};}function handleEntityNotFound(_0x4764f9,_0xc5c7a2){return function(_0x45f97d){if(!_0x45f97d){_0x4764f9['sendStatus'](0x194);}return _0x45f97d;};}function handleError(_0x11ccfe,_0x4063ad){_0x4063ad=_0x4063ad||0x1f4;return function(_0x3c73af){logger[_0x6dce('0x26')](_0x3c73af['stack']);if(_0x3c73af[_0x6dce('0x27')]){delete _0x3c73af[_0x6dce('0x27')];}_0x11ccfe['status'](_0x4063ad)[_0x6dce('0x28')](_0x3c73af);};}exports[_0x6dce('0x29')]=function(_0x3a6f17,_0x455a46){var _0x124702={},_0xa1a390={},_0x40448f={'count':0x0,'rows':[]};var _0x19c6a0=_['map'](db['VoiceMusicOnHold'][_0x6dce('0x2a')],function(_0x3d97c8){return{'name':_0x3d97c8[_0x6dce('0x2b')],'type':_0x3d97c8[_0x6dce('0x2c')][_0x6dce('0x2d')]};});_0xa1a390['model']=_[_0x6dce('0x2e')](_0x19c6a0,_0x6dce('0x27'));_0xa1a390[_0x6dce('0x2f')]=_[_0x6dce('0x30')](_0x3a6f17[_0x6dce('0x2f')]);_0xa1a390[_0x6dce('0x31')]=_[_0x6dce('0x32')](_0xa1a390[_0x6dce('0x33')],_0xa1a390[_0x6dce('0x2f')]);_0x124702[_0x6dce('0x34')]=_['intersection'](_0xa1a390[_0x6dce('0x33')],qs['fields'](_0x3a6f17['query']['fields']));_0x124702[_0x6dce('0x34')]=_0x124702[_0x6dce('0x34')]['length']?_0x124702[_0x6dce('0x34')]:_0xa1a390['model'];if(!_0x3a6f17[_0x6dce('0x2f')][_0x6dce('0x35')](_0x6dce('0x36'))){_0x124702[_0x6dce('0x1d')]=qs[_0x6dce('0x1d')](_0x3a6f17['query'][_0x6dce('0x1d')]);_0x124702[_0x6dce('0x1b')]=qs[_0x6dce('0x1b')](_0x3a6f17[_0x6dce('0x2f')][_0x6dce('0x1b')]);}_0x124702[_0x6dce('0x37')]=qs[_0x6dce('0x38')](_0x3a6f17[_0x6dce('0x2f')][_0x6dce('0x38')]);delete _0x3a6f17[_0x6dce('0x2f')][_0x6dce('0x38')];_0x124702['where']=qs[_0x6dce('0x31')](_[_0x6dce('0x39')](_0x3a6f17[_0x6dce('0x2f')],_0xa1a390[_0x6dce('0x31')]),_0x19c6a0);if(_0x3a6f17['query']['filter']){_0x124702[_0x6dce('0x3a')]=_[_0x6dce('0x3b')](_0x124702[_0x6dce('0x3a')],{'$or':_[_0x6dce('0x2e')](_0x19c6a0,function(_0x15b6d6){if(_0x15b6d6['type']!=='VIRTUAL'){var _0x51b78d={};_0x51b78d[_0x15b6d6['name']]={'$like':'%'+_0x3a6f17[_0x6dce('0x2f')][_0x6dce('0x3c')]+'%'};return _0x51b78d;}})});}_0x124702=_[_0x6dce('0x3b')]({},_0x124702,_0x3a6f17[_0x6dce('0x3d')]);var _0x16f425={'where':_0x124702[_0x6dce('0x3a')]};return db[_0x6dce('0x3e')][_0x6dce('0x1e')](_0x16f425)[_0x6dce('0x23')](function(_0x24b1e0){_0x40448f[_0x6dce('0x1e')]=_0x24b1e0;if(_0x3a6f17[_0x6dce('0x2f')][_0x6dce('0x3f')]){_0x124702[_0x6dce('0x40')]=[{'all':!![]}];}return db['VoiceMusicOnHold'][_0x6dce('0x41')](_0x124702);})[_0x6dce('0x23')](function(_0x2eeb55){_0x40448f[_0x6dce('0x42')]=_0x2eeb55;return _0x40448f;})[_0x6dce('0x23')](respondWithFilteredResult(_0x455a46,_0x124702))[_0x6dce('0x43')](handleError(_0x455a46,null));};exports['show']=function(_0x9dd8f4,_0x5928a5){var _0x5d8158={'raw':![],'where':{'id':_0x9dd8f4['params']['id']}},_0x3049a2={};_0x3049a2['model']=_[_0x6dce('0x30')](db['VoiceMusicOnHold'][_0x6dce('0x2a')]);_0x3049a2[_0x6dce('0x2f')]=_[_0x6dce('0x30')](_0x9dd8f4[_0x6dce('0x2f')]);_0x3049a2[_0x6dce('0x31')]=_['intersection'](_0x3049a2[_0x6dce('0x33')],_0x3049a2[_0x6dce('0x2f')]);_0x5d8158[_0x6dce('0x34')]=_[_0x6dce('0x32')](_0x3049a2['model'],qs[_0x6dce('0x44')](_0x9dd8f4[_0x6dce('0x2f')][_0x6dce('0x44')]));_0x5d8158['attributes']=_0x5d8158['attributes'][_0x6dce('0x45')]?_0x5d8158['attributes']:_0x3049a2[_0x6dce('0x33')];if(_0x9dd8f4[_0x6dce('0x2f')][_0x6dce('0x3f')]){_0x5d8158[_0x6dce('0x40')]=[{'all':!![]}];}_0x5d8158=_[_0x6dce('0x3b')]({},_0x5d8158,_0x9dd8f4['options']);return db[_0x6dce('0x3e')][_0x6dce('0x46')](_0x5d8158)[_0x6dce('0x23')](handleEntityNotFound(_0x5928a5,null))['then'](respondWithResult(_0x5928a5,null))[_0x6dce('0x43')](handleError(_0x5928a5,null));};exports['update']=function(_0x2ba56d,_0x24f1d5){if(_0x2ba56d[_0x6dce('0x47')]['id']){delete _0x2ba56d[_0x6dce('0x47')]['id'];}return db[_0x6dce('0x3e')]['find']({'where':{'id':_0x2ba56d['params']['id']}})[_0x6dce('0x23')](handleEntityNotFound(_0x24f1d5,null))[_0x6dce('0x23')](saveUpdates(_0x2ba56d['body'],null))[_0x6dce('0x23')](respondWithResult(_0x24f1d5,null))[_0x6dce('0x43')](handleError(_0x24f1d5,null));};exports[_0x6dce('0x48')]=function(_0x57677f,_0x515050,_0x266543){return db[_0x6dce('0x49')][_0x6dce('0x4a')](function(_0x4e5f36){if(_0x57677f[_0x6dce('0x47')][_0x6dce('0x4b')]===_0x6dce('0x4c')){_0x57677f[_0x6dce('0x47')][_0x6dce('0x4d')]=path['join'](config[_0x6dce('0x4e')],_0x6dce('0x4f'),_0x57677f[_0x6dce('0x47')][_0x6dce('0x27')]);}return db['VoiceMusicOnHold'][_0x6dce('0x48')](_0x57677f[_0x6dce('0x47')],{'transaction':_0x4e5f36})['then'](function(_0x32103c){if(_0x57677f[_0x6dce('0x47')]['mode']===_0x6dce('0x4c')){fs[_0x6dce('0x50')](_0x32103c[_0x6dce('0x4d')],parseInt('0777',0x8));}var _0x3c7d6b=_0x57677f['user'][_0x6dce('0x25')]({'plain':!![]});if(!_0x3c7d6b)throw new Error(_0x6dce('0x51'));if(_0x3c7d6b['role']===_0x6dce('0x52')){var _0x58b71c=_0x32103c['get']({'plain':!![]});return db['UserProfileSection'][_0x6dce('0x46')]({'where':{'name':'MusicOnHolds','userProfileId':_0x3c7d6b['userProfileId']},'raw':!![]})[_0x6dce('0x23')](function(_0x121cfe){if(_0x121cfe&&_0x121cfe[_0x6dce('0x53')]===0x0){return db[_0x6dce('0x54')]['create']({'name':_0x58b71c[_0x6dce('0x27')],'resourceId':_0x58b71c['id'],'type':_0x121cfe[_0x6dce('0x27')],'sectionId':_0x121cfe['id']},{})[_0x6dce('0x23')](function(){return _0x32103c;});}else{return _0x32103c;}})[_0x6dce('0x43')](function(_0xd6140b){logger['error'](_0x6dce('0x55'),_0xd6140b);});}return _0x32103c;});})[_0x6dce('0x23')](respondWithResult(_0x515050,0xc9))[_0x6dce('0x43')](handleError(_0x515050,null));};exports['destroy']=function(_0x3aa8ca,_0x3de86d,_0x44f406){var _0x5ddb7d;return db[_0x6dce('0x3e')][_0x6dce('0x46')]({'where':{'id':_0x3aa8ca[_0x6dce('0x56')]['id']}})['then'](function(_0x4d8bea){if(_0x4d8bea){return db[_0x6dce('0x49')][_0x6dce('0x4a')](function(_0x352cdd){return _0x4d8bea[_0x6dce('0x24')]({'transaction':_0x352cdd,'raw':!![]})['then'](function(_0x4a2891){if(_0x4a2891[_0x6dce('0x4d')]){fs[_0x6dce('0x57')](_0x4a2891[_0x6dce('0x4d')])[_0x6dce('0x58')](function(_0x2b038a){fs[_0x6dce('0x59')](path[_0x6dce('0x5a')](_0x4a2891['directory'],_0x2b038a));});fs[_0x6dce('0x5b')](_0x4a2891['directory']);}return _0x4a2891;});})['catch'](function(_0x44373f){throw new db[(_0x6dce('0x5c'))][(_0x6dce('0x5d'))](_0x44373f[_0x6dce('0x5e')]);});}})['then'](handleEntityNotFound(_0x3de86d,null))[_0x6dce('0x23')](removeEntity(_0x3de86d,null))[_0x6dce('0x43')](handleError(_0x3de86d,null));};exports['addSound']=function(_0x3d92bb,_0x1904db,_0x40f41f){return db[_0x6dce('0x49')][_0x6dce('0x4a')](function(_0x22d672){var _0x18edab;return db[_0x6dce('0x3e')]['find']({'where':{'id':_0x3d92bb[_0x6dce('0x56')]['id']}})['then'](function(_0x4bb0c0){if(_0x4bb0c0){_0x18edab=_0x4bb0c0;return _0x4bb0c0[_0x6dce('0x5f')](_0x3d92bb['body']['id'],{'transaction':_0x22d672});}})[_0x6dce('0x23')](function(_0x3d4344){if(_0x3d4344){return db[_0x6dce('0x60')]['findOne']({'where':{'id':_0x3d92bb[_0x6dce('0x47')]['id']},'attributes':['id',_0x6dce('0x27'),_0x6dce('0x61'),'converted_format',_0x6dce('0x62')],'raw':!![]});}})[_0x6dce('0x23')](function(_0x38ace4){if(_0x38ace4){var _0x2cefbb=path['join'](config['root'],'server/files/sounds/converted',util[_0x6dce('0x63')](_0x6dce('0x64'),path['basename'](_0x38ace4[_0x6dce('0x61')],path['extname'](_0x38ace4['save_name'])),_0x38ace4[_0x6dce('0x65')]));var _0x56af6a=path[_0x6dce('0x5a')](config[_0x6dce('0x4e')],_0x6dce('0x4f'),_0x18edab[_0x6dce('0x27')],util[_0x6dce('0x63')](_0x6dce('0x64'),_0x38ace4[_0x6dce('0x27')],_0x38ace4[_0x6dce('0x65')]));fs['symlinkSync'](_0x2cefbb,_0x56af6a);return _0x38ace4;}})[_0x6dce('0x43')](function(_0x180c94){throw new db[(_0x6dce('0x5c'))][(_0x6dce('0x5d'))](_0x180c94[_0x6dce('0x5e')]);});})[_0x6dce('0x23')](handleEntityNotFound(_0x1904db,null))['then'](respondWithResult(_0x1904db,0xc9))['catch'](handleError(_0x1904db,null));};exports['removeSound']=function(_0x811114,_0x5354f6,_0x3790ba){return db[_0x6dce('0x49')][_0x6dce('0x4a')](function(_0x206fc4){var _0x9a0cf6;return db[_0x6dce('0x3e')][_0x6dce('0x66')]({'where':{'id':_0x811114[_0x6dce('0x56')]['id']}})[_0x6dce('0x23')](handleEntityNotFound(_0x5354f6,null))['then'](function(_0x42a659){if(_0x42a659){_0x9a0cf6=_0x42a659;return _0x42a659[_0x6dce('0x67')](_0x811114[_0x6dce('0x56')][_0x6dce('0x68')]);}})[_0x6dce('0x23')](function(_0x42036c){if(_0x42036c){return db[_0x6dce('0x60')][_0x6dce('0x66')]({'where':{'id':_0x811114[_0x6dce('0x56')][_0x6dce('0x68')]},'attributes':['id',_0x6dce('0x27'),_0x6dce('0x61'),_0x6dce('0x65'),_0x6dce('0x62')],'raw':!![]});}})['then'](function(_0x525ea9){if(_0x525ea9){fs[_0x6dce('0x59')](path[_0x6dce('0x5a')](_0x9a0cf6['directory'],util[_0x6dce('0x63')](_0x6dce('0x64'),_0x525ea9[_0x6dce('0x27')],_0x525ea9[_0x6dce('0x65')])));return _0x525ea9;}})[_0x6dce('0x43')](function(_0x4f66ad){throw new db['Sequelize'][(_0x6dce('0x5d'))](_0x4f66ad[_0x6dce('0x5e')]);});})['then'](handleEntityNotFound(_0x5354f6,null))[_0x6dce('0x23')](respondWithStatusCode(_0x5354f6,0xcc))[_0x6dce('0x43')](handleError(_0x5354f6,null));};exports[_0x6dce('0x69')]=function(_0x3d7788,_0x1c4ea3,_0x525198){var _0x45032c={};var _0x26852e={};var _0x16de8f;var _0x50a3e9;return db[_0x6dce('0x3e')][_0x6dce('0x66')]({'where':{'id':_0x3d7788[_0x6dce('0x56')]['id']}})[_0x6dce('0x23')](handleEntityNotFound(_0x1c4ea3,null))[_0x6dce('0x23')](function(_0x5a77ad){if(_0x5a77ad){_0x16de8f=_0x5a77ad;_0x26852e[_0x6dce('0x33')]=_[_0x6dce('0x30')](db[_0x6dce('0x60')]['rawAttributes']);_0x26852e[_0x6dce('0x2f')]=_[_0x6dce('0x30')](_0x3d7788['query']);_0x26852e[_0x6dce('0x31')]=_[_0x6dce('0x32')](_0x26852e[_0x6dce('0x33')],_0x26852e[_0x6dce('0x2f')]);_0x45032c[_0x6dce('0x34')]=_[_0x6dce('0x32')](_0x26852e[_0x6dce('0x33')],qs[_0x6dce('0x44')](_0x3d7788[_0x6dce('0x2f')][_0x6dce('0x44')]));_0x45032c[_0x6dce('0x34')]=_0x45032c['attributes'][_0x6dce('0x45')]?_0x45032c['attributes']:_0x26852e[_0x6dce('0x33')];_0x45032c[_0x6dce('0x37')]=qs[_0x6dce('0x38')](_0x3d7788[_0x6dce('0x2f')][_0x6dce('0x38')]);_0x45032c[_0x6dce('0x3a')]=qs[_0x6dce('0x31')](_['pick'](_0x3d7788[_0x6dce('0x2f')],_0x26852e['filters']));if(_0x3d7788[_0x6dce('0x2f')][_0x6dce('0x3c')]){_0x45032c[_0x6dce('0x3a')]=_['merge'](_0x45032c[_0x6dce('0x3a')],{'$or':_[_0x6dce('0x2e')](_0x45032c['attributes'],function(_0x29d737){var _0x4e549c={};_0x4e549c[_0x29d737]={'$like':'%'+_0x3d7788[_0x6dce('0x2f')][_0x6dce('0x3c')]+'%'};return _0x4e549c;})});}_0x45032c=_[_0x6dce('0x3b')]({},_0x45032c,_0x3d7788[_0x6dce('0x3d')]);return _0x16de8f['getSounds'](_0x45032c);}})[_0x6dce('0x23')](function(_0xb994f6){if(_0xb994f6){_0x50a3e9=_0xb994f6[_0x6dce('0x45')];if(!_0x3d7788[_0x6dce('0x2f')]['hasOwnProperty'](_0x6dce('0x36'))){_0x45032c[_0x6dce('0x1d')]=qs[_0x6dce('0x1d')](_0x3d7788['query'][_0x6dce('0x1d')]);_0x45032c[_0x6dce('0x1b')]=qs[_0x6dce('0x1b')](_0x3d7788[_0x6dce('0x2f')]['offset']);}return _0x16de8f[_0x6dce('0x69')](_0x45032c);}})[_0x6dce('0x23')](function(_0x1761bb){if(_0x1761bb){return _0x1761bb?{'count':_0x50a3e9,'rows':_0x1761bb}:null;}})[_0x6dce('0x23')](respondWithResult(_0x1c4ea3,null))[_0x6dce('0x43')](handleError(_0x1c4ea3,null));};