ea445f97b0e079e32380a74efe9303c19a3dfc9c
[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 _0xa9e0=['json','offset','limit','set','Content-Range','apply','reject','save','update','destroy','then','MusicOnHolds','UserProfileResource','stack','name','send','index','map','VoiceMusicOnHold','rawAttributes','fieldName','type','key','model','query','keys','intersection','attributes','fields','length','hasOwnProperty','order','sort','filters','pick','filter','where','merge','options','includeAll','include','findAll','rows','catch','show','params','body','find','create','sequelize','directory','join','root','server/files/moh','mode','files','0777','get','role','UserProfileSection','userProfileId','autoAssociation','transaction','readdirSync','Sequelize','ValidationError','message','addSound','Sound','findOne','save_name','converted_format','createdAt','server/files/sounds/converted','format','%s.%s','basename','extname','removeSound','id2','getSounds','eml-format','rimraf','zip-dir','moment','mustache','util','path','sox','to-csv','fs-extra','lodash','squel','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/license/util','../../mysqldb','sendStatus','end','status'];(function(_0x1ac595,_0x5d2081){var _0x455fff=function(_0x3043ee){while(--_0x3043ee){_0x1ac595['push'](_0x1ac595['shift']());}};_0x455fff(++_0x5d2081);}(_0xa9e0,0x123));var _0x0a9e=function(_0x3c2a69,_0x4c8b41){_0x3c2a69=_0x3c2a69-0x0;var _0x596bc8=_0xa9e0[_0x3c2a69];return _0x596bc8;};'use strict';var emlformat=require(_0x0a9e('0x0'));var rimraf=require(_0x0a9e('0x1'));var zipdir=require(_0x0a9e('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x0a9e('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x0a9e('0x4'));var util=require(_0x0a9e('0x5'));var path=require(_0x0a9e('0x6'));var sox=require(_0x0a9e('0x7'));var csv=require(_0x0a9e('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x0a9e('0x9'));var _=require(_0x0a9e('0xa'));var squel=require(_0x0a9e('0xb'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x0a9e('0xc'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x0a9e('0xd'));var Redis=require(_0x0a9e('0xe'));var authService=require(_0x0a9e('0xf'));var qs=require(_0x0a9e('0x10'));var as=require(_0x0a9e('0x11'));var hardwareService=require(_0x0a9e('0x12'));var logger=require('../../config/logger')('api');var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x0a9e('0x13'));var db=require(_0x0a9e('0x14'))['db'];function respondWithStatusCode(_0xd5b662,_0x26d672){_0x26d672=_0x26d672||0xcc;return function(_0x32d742){if(_0x32d742){return _0xd5b662[_0x0a9e('0x15')](_0x26d672);}return _0xd5b662['status'](_0x26d672)[_0x0a9e('0x16')]();};}function respondWithResult(_0x239b12,_0x2b4227){_0x2b4227=_0x2b4227||0xc8;return function(_0x281129){if(_0x281129){return _0x239b12[_0x0a9e('0x17')](_0x2b4227)[_0x0a9e('0x18')](_0x281129);}};}function respondWithFilteredResult(_0x52a03d,_0x22dccb){return function(_0x5d0880){if(_0x5d0880){var _0x1985b6=_0x5d0880['count'],_0x519dfd=_0x22dccb[_0x0a9e('0x19')],_0x16033c=_0x22dccb['offset']+_0x22dccb[_0x0a9e('0x1a')],_0x12066b;if(_0x16033c>=_0x1985b6){_0x16033c=_0x1985b6;_0x12066b=0xc8;}else{_0x12066b=0xce;}_0x52a03d[_0x0a9e('0x17')](_0x12066b);return _0x52a03d[_0x0a9e('0x1b')](_0x0a9e('0x1c'),_0x519dfd+'-'+_0x16033c+'/'+_0x1985b6)[_0x0a9e('0x18')](_0x5d0880);}return null;};}function patchUpdates(_0x2eb11f){return function(_0x530eb7){try{jsonpatch[_0x0a9e('0x1d')](_0x530eb7,_0x2eb11f,!![]);}catch(_0x1314ae){return BPromise[_0x0a9e('0x1e')](_0x1314ae);}return _0x530eb7[_0x0a9e('0x1f')]();};}function saveUpdates(_0x105080,_0x4bb1e3){return function(_0x2c3407){if(_0x2c3407){return _0x2c3407[_0x0a9e('0x20')](_0x105080)['then'](function(_0x20f109){return _0x20f109;});}return null;};}function removeEntity(_0x5a09ef,_0x588269){return function(_0x3a02e1){if(_0x3a02e1){return _0x3a02e1[_0x0a9e('0x21')]()[_0x0a9e('0x22')](function(){var _0x30bae6=_0x3a02e1['get']({'plain':!![]});var _0xfb6e48=_0x0a9e('0x23');return db[_0x0a9e('0x24')][_0x0a9e('0x21')]({'where':{'type':_0xfb6e48,'resourceId':_0x30bae6['id']}})[_0x0a9e('0x22')](function(){return _0x3a02e1;});})[_0x0a9e('0x22')](function(){_0x5a09ef[_0x0a9e('0x17')](0xcc)['end']();});}};}function handleEntityNotFound(_0x59181e,_0x197ec0){return function(_0x3a8e58){if(!_0x3a8e58){_0x59181e[_0x0a9e('0x15')](0x194);}return _0x3a8e58;};}function handleError(_0x33161b,_0x526cf3){_0x526cf3=_0x526cf3||0x1f4;return function(_0x384319){logger['error'](_0x384319[_0x0a9e('0x25')]);if(_0x384319['name']){delete _0x384319[_0x0a9e('0x26')];}_0x33161b[_0x0a9e('0x17')](_0x526cf3)[_0x0a9e('0x27')](_0x384319);};}exports[_0x0a9e('0x28')]=function(_0x140511,_0x1538a4){var _0x11c3b6={},_0x14de77={},_0x5a101a={'count':0x0,'rows':[]};var _0x3652a7=_[_0x0a9e('0x29')](db[_0x0a9e('0x2a')][_0x0a9e('0x2b')],function(_0x5c877d){return{'name':_0x5c877d[_0x0a9e('0x2c')],'type':_0x5c877d[_0x0a9e('0x2d')][_0x0a9e('0x2e')]};});_0x14de77[_0x0a9e('0x2f')]=_[_0x0a9e('0x29')](_0x3652a7,_0x0a9e('0x26'));_0x14de77[_0x0a9e('0x30')]=_[_0x0a9e('0x31')](_0x140511[_0x0a9e('0x30')]);_0x14de77['filters']=_[_0x0a9e('0x32')](_0x14de77['model'],_0x14de77[_0x0a9e('0x30')]);_0x11c3b6[_0x0a9e('0x33')]=_[_0x0a9e('0x32')](_0x14de77[_0x0a9e('0x2f')],qs[_0x0a9e('0x34')](_0x140511['query'][_0x0a9e('0x34')]));_0x11c3b6[_0x0a9e('0x33')]=_0x11c3b6[_0x0a9e('0x33')][_0x0a9e('0x35')]?_0x11c3b6[_0x0a9e('0x33')]:_0x14de77[_0x0a9e('0x2f')];if(!_0x140511[_0x0a9e('0x30')][_0x0a9e('0x36')]('nolimit')){_0x11c3b6[_0x0a9e('0x1a')]=qs['limit'](_0x140511[_0x0a9e('0x30')][_0x0a9e('0x1a')]);_0x11c3b6[_0x0a9e('0x19')]=qs[_0x0a9e('0x19')](_0x140511['query'][_0x0a9e('0x19')]);}_0x11c3b6[_0x0a9e('0x37')]=qs[_0x0a9e('0x38')](_0x140511[_0x0a9e('0x30')]['sort']);delete _0x140511['query'][_0x0a9e('0x38')];_0x11c3b6['where']=qs[_0x0a9e('0x39')](_[_0x0a9e('0x3a')](_0x140511[_0x0a9e('0x30')],_0x14de77[_0x0a9e('0x39')]),_0x3652a7);if(_0x140511['query'][_0x0a9e('0x3b')]){_0x11c3b6[_0x0a9e('0x3c')]=_[_0x0a9e('0x3d')](_0x11c3b6['where'],{'$or':_[_0x0a9e('0x29')](_0x3652a7,function(_0x1a180b){if(_0x1a180b[_0x0a9e('0x2d')]!=='VIRTUAL'){var _0x546ef8={};_0x546ef8[_0x1a180b[_0x0a9e('0x26')]]={'$like':'%'+_0x140511[_0x0a9e('0x30')]['filter']+'%'};return _0x546ef8;}})});}_0x11c3b6=_[_0x0a9e('0x3d')]({},_0x11c3b6,_0x140511[_0x0a9e('0x3e')]);var _0x2e1b3a={'where':_0x11c3b6[_0x0a9e('0x3c')]};return db['VoiceMusicOnHold']['count'](_0x2e1b3a)[_0x0a9e('0x22')](function(_0x45b3d0){_0x5a101a['count']=_0x45b3d0;if(_0x140511[_0x0a9e('0x30')][_0x0a9e('0x3f')]){_0x11c3b6[_0x0a9e('0x40')]=[{'all':!![]}];}return db['VoiceMusicOnHold'][_0x0a9e('0x41')](_0x11c3b6);})[_0x0a9e('0x22')](function(_0x274e8e){_0x5a101a[_0x0a9e('0x42')]=_0x274e8e;return _0x5a101a;})[_0x0a9e('0x22')](respondWithFilteredResult(_0x1538a4,_0x11c3b6))[_0x0a9e('0x43')](handleError(_0x1538a4,null));};exports[_0x0a9e('0x44')]=function(_0x45a9b8,_0x23b089){var _0x3da2cd={'raw':![],'where':{'id':_0x45a9b8[_0x0a9e('0x45')]['id']}},_0x2c3711={};_0x2c3711[_0x0a9e('0x2f')]=_[_0x0a9e('0x31')](db[_0x0a9e('0x2a')]['rawAttributes']);_0x2c3711['query']=_[_0x0a9e('0x31')](_0x45a9b8[_0x0a9e('0x30')]);_0x2c3711[_0x0a9e('0x39')]=_[_0x0a9e('0x32')](_0x2c3711[_0x0a9e('0x2f')],_0x2c3711[_0x0a9e('0x30')]);_0x3da2cd[_0x0a9e('0x33')]=_[_0x0a9e('0x32')](_0x2c3711[_0x0a9e('0x2f')],qs[_0x0a9e('0x34')](_0x45a9b8[_0x0a9e('0x30')][_0x0a9e('0x34')]));_0x3da2cd['attributes']=_0x3da2cd[_0x0a9e('0x33')][_0x0a9e('0x35')]?_0x3da2cd[_0x0a9e('0x33')]:_0x2c3711[_0x0a9e('0x2f')];if(_0x45a9b8[_0x0a9e('0x30')][_0x0a9e('0x3f')]){_0x3da2cd[_0x0a9e('0x40')]=[{'all':!![]}];}_0x3da2cd=_[_0x0a9e('0x3d')]({},_0x3da2cd,_0x45a9b8['options']);return db[_0x0a9e('0x2a')]['find'](_0x3da2cd)[_0x0a9e('0x22')](handleEntityNotFound(_0x23b089,null))[_0x0a9e('0x22')](respondWithResult(_0x23b089,null))[_0x0a9e('0x43')](handleError(_0x23b089,null));};exports['update']=function(_0x14bec2,_0x7f6eb1){if(_0x14bec2[_0x0a9e('0x46')]['id']){delete _0x14bec2[_0x0a9e('0x46')]['id'];}return db[_0x0a9e('0x2a')][_0x0a9e('0x47')]({'where':{'id':_0x14bec2[_0x0a9e('0x45')]['id']}})['then'](handleEntityNotFound(_0x7f6eb1,null))[_0x0a9e('0x22')](saveUpdates(_0x14bec2[_0x0a9e('0x46')],null))[_0x0a9e('0x22')](respondWithResult(_0x7f6eb1,null))[_0x0a9e('0x43')](handleError(_0x7f6eb1,null));};exports[_0x0a9e('0x48')]=function(_0x992c77,_0x6054ee,_0x19383e){return db[_0x0a9e('0x49')]['transaction'](function(_0xe401a){if(_0x992c77[_0x0a9e('0x46')]['mode']==='files'){_0x992c77['body'][_0x0a9e('0x4a')]=path[_0x0a9e('0x4b')](config[_0x0a9e('0x4c')],_0x0a9e('0x4d'),_0x992c77[_0x0a9e('0x46')][_0x0a9e('0x26')]);}return db[_0x0a9e('0x2a')][_0x0a9e('0x48')](_0x992c77['body'],{'transaction':_0xe401a})['then'](function(_0x53975a){if(_0x992c77[_0x0a9e('0x46')][_0x0a9e('0x4e')]===_0x0a9e('0x4f')){fs['mkdirSync'](_0x53975a[_0x0a9e('0x4a')],parseInt(_0x0a9e('0x50'),0x8));}var _0x53d113=_0x992c77['user'][_0x0a9e('0x51')]({'plain':!![]});if(!_0x53d113)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x53d113[_0x0a9e('0x52')]==='user'){var _0x2e5e62=_0x53975a[_0x0a9e('0x51')]({'plain':!![]});return db[_0x0a9e('0x53')]['find']({'where':{'name':_0x0a9e('0x23'),'userProfileId':_0x53d113[_0x0a9e('0x54')]},'raw':!![]})['then'](function(_0x50f687){if(_0x50f687&&_0x50f687[_0x0a9e('0x55')]===0x0){return db[_0x0a9e('0x24')]['create']({'name':_0x2e5e62[_0x0a9e('0x26')],'resourceId':_0x2e5e62['id'],'type':_0x50f687['name'],'sectionId':_0x50f687['id']},{})[_0x0a9e('0x22')](function(){return _0x53975a;});}else{return _0x53975a;}})['catch'](function(_0xe22ccc){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0xe22ccc);});}return _0x53975a;});})['then'](respondWithResult(_0x6054ee,0xc9))[_0x0a9e('0x43')](handleError(_0x6054ee,null));};exports['destroy']=function(_0x2f7092,_0x65432,_0x3cfd00){var _0x19b4df;return db[_0x0a9e('0x2a')][_0x0a9e('0x47')]({'where':{'id':_0x2f7092[_0x0a9e('0x45')]['id']}})[_0x0a9e('0x22')](function(_0x4e67ab){if(_0x4e67ab){return db[_0x0a9e('0x49')][_0x0a9e('0x56')](function(_0x2642bb){return _0x4e67ab[_0x0a9e('0x21')]({'transaction':_0x2642bb,'raw':!![]})[_0x0a9e('0x22')](function(_0x156662){if(_0x156662['directory']){fs[_0x0a9e('0x57')](_0x156662[_0x0a9e('0x4a')])['forEach'](function(_0x3649cc){fs['unlinkSync'](path[_0x0a9e('0x4b')](_0x156662['directory'],_0x3649cc));});fs['rmdirSync'](_0x156662['directory']);}return _0x156662;});})[_0x0a9e('0x43')](function(_0x49d231){throw new db[(_0x0a9e('0x58'))][(_0x0a9e('0x59'))](_0x49d231[_0x0a9e('0x5a')]);});}})[_0x0a9e('0x22')](handleEntityNotFound(_0x65432,null))[_0x0a9e('0x22')](removeEntity(_0x65432,null))[_0x0a9e('0x43')](handleError(_0x65432,null));};exports['addSound']=function(_0x1627a7,_0x5854cc,_0xca4ade){return db[_0x0a9e('0x49')][_0x0a9e('0x56')](function(_0x5adf8f){var _0x453360;return db[_0x0a9e('0x2a')][_0x0a9e('0x47')]({'where':{'id':_0x1627a7[_0x0a9e('0x45')]['id']}})['then'](function(_0x1d0dc8){if(_0x1d0dc8){_0x453360=_0x1d0dc8;return _0x1d0dc8[_0x0a9e('0x5b')](_0x1627a7['body']['id'],{'transaction':_0x5adf8f});}})[_0x0a9e('0x22')](function(_0x17e88c){if(_0x17e88c){return db[_0x0a9e('0x5c')][_0x0a9e('0x5d')]({'where':{'id':_0x1627a7[_0x0a9e('0x46')]['id']},'attributes':['id','name',_0x0a9e('0x5e'),_0x0a9e('0x5f'),_0x0a9e('0x60')],'raw':!![]});}})['then'](function(_0x3528b7){if(_0x3528b7){var _0x4f1e60=path['join'](config[_0x0a9e('0x4c')],_0x0a9e('0x61'),util[_0x0a9e('0x62')](_0x0a9e('0x63'),path[_0x0a9e('0x64')](_0x3528b7[_0x0a9e('0x5e')],path[_0x0a9e('0x65')](_0x3528b7[_0x0a9e('0x5e')])),_0x3528b7[_0x0a9e('0x5f')]));var _0x1cc4f3=path[_0x0a9e('0x4b')](config[_0x0a9e('0x4c')],_0x0a9e('0x4d'),_0x453360[_0x0a9e('0x26')],util[_0x0a9e('0x62')](_0x0a9e('0x63'),_0x3528b7[_0x0a9e('0x26')],_0x3528b7[_0x0a9e('0x5f')]));fs['symlinkSync'](_0x4f1e60,_0x1cc4f3);return _0x3528b7;}})[_0x0a9e('0x43')](function(_0x295763){throw new db[(_0x0a9e('0x58'))]['ValidationError'](_0x295763[_0x0a9e('0x5a')]);});})[_0x0a9e('0x22')](handleEntityNotFound(_0x5854cc,null))['then'](respondWithResult(_0x5854cc,0xc9))[_0x0a9e('0x43')](handleError(_0x5854cc,null));};exports[_0x0a9e('0x66')]=function(_0x3ef315,_0x427946,_0x13b5c0){return db['sequelize']['transaction'](function(_0x4a2438){var _0x40fb85;return db[_0x0a9e('0x2a')][_0x0a9e('0x5d')]({'where':{'id':_0x3ef315[_0x0a9e('0x45')]['id']}})[_0x0a9e('0x22')](handleEntityNotFound(_0x427946,null))[_0x0a9e('0x22')](function(_0xeef20){if(_0xeef20){_0x40fb85=_0xeef20;return _0xeef20[_0x0a9e('0x66')](_0x3ef315['params'][_0x0a9e('0x67')]);}})[_0x0a9e('0x22')](function(_0x12ccdb){if(_0x12ccdb){return db['Sound'][_0x0a9e('0x5d')]({'where':{'id':_0x3ef315['params'][_0x0a9e('0x67')]},'attributes':['id',_0x0a9e('0x26'),'save_name',_0x0a9e('0x5f'),_0x0a9e('0x60')],'raw':!![]});}})[_0x0a9e('0x22')](function(_0x317c0c){if(_0x317c0c){fs['unlinkSync'](path[_0x0a9e('0x4b')](_0x40fb85[_0x0a9e('0x4a')],util[_0x0a9e('0x62')](_0x0a9e('0x63'),_0x317c0c['name'],_0x317c0c[_0x0a9e('0x5f')])));return _0x317c0c;}})[_0x0a9e('0x43')](function(_0x2d5506){throw new db[(_0x0a9e('0x58'))]['ValidationError'](_0x2d5506[_0x0a9e('0x5a')]);});})[_0x0a9e('0x22')](handleEntityNotFound(_0x427946,null))[_0x0a9e('0x22')](respondWithStatusCode(_0x427946,0xcc))[_0x0a9e('0x43')](handleError(_0x427946,null));};exports[_0x0a9e('0x68')]=function(_0xdb98ca,_0x40fc56,_0x3df0e3){var _0x1a7b03={};var _0x336dc3={};var _0xc4c230;var _0x1f10ef;return db[_0x0a9e('0x2a')][_0x0a9e('0x5d')]({'where':{'id':_0xdb98ca['params']['id']}})[_0x0a9e('0x22')](handleEntityNotFound(_0x40fc56,null))[_0x0a9e('0x22')](function(_0xc599b3){if(_0xc599b3){_0xc4c230=_0xc599b3;_0x336dc3['model']=_[_0x0a9e('0x31')](db[_0x0a9e('0x5c')][_0x0a9e('0x2b')]);_0x336dc3[_0x0a9e('0x30')]=_['keys'](_0xdb98ca['query']);_0x336dc3[_0x0a9e('0x39')]=_[_0x0a9e('0x32')](_0x336dc3['model'],_0x336dc3[_0x0a9e('0x30')]);_0x1a7b03['attributes']=_[_0x0a9e('0x32')](_0x336dc3[_0x0a9e('0x2f')],qs['fields'](_0xdb98ca[_0x0a9e('0x30')][_0x0a9e('0x34')]));_0x1a7b03[_0x0a9e('0x33')]=_0x1a7b03[_0x0a9e('0x33')][_0x0a9e('0x35')]?_0x1a7b03[_0x0a9e('0x33')]:_0x336dc3[_0x0a9e('0x2f')];_0x1a7b03['order']=qs[_0x0a9e('0x38')](_0xdb98ca[_0x0a9e('0x30')][_0x0a9e('0x38')]);_0x1a7b03[_0x0a9e('0x3c')]=qs['filters'](_[_0x0a9e('0x3a')](_0xdb98ca[_0x0a9e('0x30')],_0x336dc3['filters']));if(_0xdb98ca[_0x0a9e('0x30')]['filter']){_0x1a7b03[_0x0a9e('0x3c')]=_[_0x0a9e('0x3d')](_0x1a7b03[_0x0a9e('0x3c')],{'$or':_[_0x0a9e('0x29')](_0x1a7b03['attributes'],function(_0x51ccd7){var _0x353384={};_0x353384[_0x51ccd7]={'$like':'%'+_0xdb98ca[_0x0a9e('0x30')][_0x0a9e('0x3b')]+'%'};return _0x353384;})});}_0x1a7b03=_['merge']({},_0x1a7b03,_0xdb98ca[_0x0a9e('0x3e')]);return _0xc4c230[_0x0a9e('0x68')](_0x1a7b03);}})['then'](function(_0x4e46b2){if(_0x4e46b2){_0x1f10ef=_0x4e46b2[_0x0a9e('0x35')];if(!_0xdb98ca['query']['hasOwnProperty']('nolimit')){_0x1a7b03[_0x0a9e('0x1a')]=qs[_0x0a9e('0x1a')](_0xdb98ca[_0x0a9e('0x30')][_0x0a9e('0x1a')]);_0x1a7b03[_0x0a9e('0x19')]=qs[_0x0a9e('0x19')](_0xdb98ca['query'][_0x0a9e('0x19')]);}return _0xc4c230['getSounds'](_0x1a7b03);}})[_0x0a9e('0x22')](function(_0x2aabab){if(_0x2aabab){return _0x2aabab?{'count':_0x1f10ef,'rows':_0x2aabab}:null;}})[_0x0a9e('0x22')](respondWithResult(_0x40fc56,null))[_0x0a9e('0x43')](handleError(_0x40fc56,null));};