aa19ada6492d9854bc5ee409c44022c8a09edfc3
[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 _0x43d0=['query','keys','intersection','fields','attributes','length','hasOwnProperty','nolimit','limit','order','sort','where','filters','pick','filter','merge','VIRTUAL','includeAll','findAll','rows','catch','show','params','find','body','sequelize','transaction','directory','join','root','server/files/moh','mode','mkdirSync','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','UserProfileSection','userProfileId','create','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','forEach','unlinkSync','Sequelize','ValidationError','message','findOne','save_name','converted_format','server/files/sounds/converted','format','%s.%s','basename','extname','symlinkSync','id2','Sound','createdAt','options','getSounds','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','path','sox','to-csv','ejs','lodash','squel','jsforce','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','status','end','json','count','offset','Content-Range','apply','reject','update','then','get','MusicOnHolds','UserProfileResource','destroy','sendStatus','error','stack','name','send','map','VoiceMusicOnHold','rawAttributes','fieldName','type','key','model'];(function(_0x4acda3,_0x3e2426){var _0x7fbccb=function(_0x302444){while(--_0x302444){_0x4acda3['push'](_0x4acda3['shift']());}};_0x7fbccb(++_0x3e2426);}(_0x43d0,0x1ea));var _0x043d=function(_0x4849f6,_0x104836){_0x4849f6=_0x4849f6-0x0;var _0x1a3dcd=_0x43d0[_0x4849f6];return _0x1a3dcd;};'use strict';var pdf=require(_0x043d('0x0'));var emlformat=require(_0x043d('0x1'));var rimraf=require(_0x043d('0x2'));var zipdir=require(_0x043d('0x3'));var jsonpatch=require(_0x043d('0x4'));var rp=require(_0x043d('0x5'));var moment=require(_0x043d('0x6'));var BPromise=require(_0x043d('0x7'));var Mustache=require('mustache');var util=require('util');var path=require(_0x043d('0x8'));var sox=require(_0x043d('0x9'));var csv=require(_0x043d('0xa'));var ejs=require(_0x043d('0xb'));var fs=require('fs');var _=require(_0x043d('0xc'));var squel=require(_0x043d('0xd'));var crypto=require('crypto');var jsforce=require(_0x043d('0xe'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x043d('0xf'));var authService=require(_0x043d('0x10'));var qs=require('../../components/parsers/qs');var as=require(_0x043d('0x11'));var hardwareService=require(_0x043d('0x12'));var logger=require(_0x043d('0x13'))(_0x043d('0x14'));var utils=require('../../config/utils');var config=require(_0x043d('0x15'));var licenseUtil=require(_0x043d('0x16'));var db=require(_0x043d('0x17'))['db'];function respondWithStatusCode(_0x4d1b63,_0xcd0608){_0xcd0608=_0xcd0608||0xcc;return function(_0x236d5e){if(_0x236d5e){return _0x4d1b63['sendStatus'](_0xcd0608);}return _0x4d1b63[_0x043d('0x18')](_0xcd0608)[_0x043d('0x19')]();};}function respondWithResult(_0x11bca1,_0x59c47b){_0x59c47b=_0x59c47b||0xc8;return function(_0xbd574e){if(_0xbd574e){return _0x11bca1['status'](_0x59c47b)[_0x043d('0x1a')](_0xbd574e);}};}function respondWithFilteredResult(_0x5a3584,_0x18574c){return function(_0x2b7061){if(_0x2b7061){var _0x14e1e4=_0x2b7061[_0x043d('0x1b')],_0x1da162=_0x18574c['offset'],_0x5f08ef=_0x18574c[_0x043d('0x1c')]+_0x18574c['limit'],_0x472899;if(_0x5f08ef>=_0x14e1e4){_0x5f08ef=_0x14e1e4;_0x472899=0xc8;}else{_0x472899=0xce;}_0x5a3584[_0x043d('0x18')](_0x472899);return _0x5a3584['set'](_0x043d('0x1d'),_0x1da162+'-'+_0x5f08ef+'/'+_0x14e1e4)[_0x043d('0x1a')](_0x2b7061);}return null;};}function patchUpdates(_0x3d900f){return function(_0x2101a2){try{jsonpatch[_0x043d('0x1e')](_0x2101a2,_0x3d900f,!![]);}catch(_0x16f0fb){return BPromise[_0x043d('0x1f')](_0x16f0fb);}return _0x2101a2['save']();};}function saveUpdates(_0x3132a3,_0x2f38f0){return function(_0x4c2cbf){if(_0x4c2cbf){return _0x4c2cbf[_0x043d('0x20')](_0x3132a3)['then'](function(_0x2d1f02){return _0x2d1f02;});}return null;};}function removeEntity(_0x2abd10,_0x1ad5ba){return function(_0x3eacab){if(_0x3eacab){return _0x3eacab['destroy']()[_0x043d('0x21')](function(){var _0x22b81e=_0x3eacab[_0x043d('0x22')]({'plain':!![]});var _0x39dd7e=_0x043d('0x23');return db[_0x043d('0x24')][_0x043d('0x25')]({'where':{'type':_0x39dd7e,'resourceId':_0x22b81e['id']}})[_0x043d('0x21')](function(){return _0x3eacab;});})[_0x043d('0x21')](function(){_0x2abd10['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x3bff06,_0x357fbe){return function(_0x4bfc20){if(!_0x4bfc20){_0x3bff06[_0x043d('0x26')](0x194);}return _0x4bfc20;};}function handleError(_0x598aaa,_0x2dfbe3){_0x2dfbe3=_0x2dfbe3||0x1f4;return function(_0x2bea6f){logger[_0x043d('0x27')](_0x2bea6f[_0x043d('0x28')]);if(_0x2bea6f[_0x043d('0x29')]){delete _0x2bea6f[_0x043d('0x29')];}_0x598aaa['status'](_0x2dfbe3)[_0x043d('0x2a')](_0x2bea6f);};}exports['index']=function(_0x5c0635,_0x45253d){var _0x15d77f={},_0x115842={},_0x201d68={'count':0x0,'rows':[]};var _0x3fc8b7=_[_0x043d('0x2b')](db[_0x043d('0x2c')][_0x043d('0x2d')],function(_0x57d1fa){return{'name':_0x57d1fa[_0x043d('0x2e')],'type':_0x57d1fa[_0x043d('0x2f')][_0x043d('0x30')]};});_0x115842[_0x043d('0x31')]=_['map'](_0x3fc8b7,_0x043d('0x29'));_0x115842[_0x043d('0x32')]=_[_0x043d('0x33')](_0x5c0635[_0x043d('0x32')]);_0x115842['filters']=_['intersection'](_0x115842[_0x043d('0x31')],_0x115842['query']);_0x15d77f['attributes']=_[_0x043d('0x34')](_0x115842['model'],qs[_0x043d('0x35')](_0x5c0635['query'][_0x043d('0x35')]));_0x15d77f['attributes']=_0x15d77f[_0x043d('0x36')][_0x043d('0x37')]?_0x15d77f['attributes']:_0x115842[_0x043d('0x31')];if(!_0x5c0635[_0x043d('0x32')][_0x043d('0x38')](_0x043d('0x39'))){_0x15d77f[_0x043d('0x3a')]=qs[_0x043d('0x3a')](_0x5c0635['query']['limit']);_0x15d77f[_0x043d('0x1c')]=qs[_0x043d('0x1c')](_0x5c0635[_0x043d('0x32')][_0x043d('0x1c')]);}_0x15d77f[_0x043d('0x3b')]=qs[_0x043d('0x3c')](_0x5c0635['query'][_0x043d('0x3c')]);_0x15d77f[_0x043d('0x3d')]=qs[_0x043d('0x3e')](_[_0x043d('0x3f')](_0x5c0635['query'],_0x115842[_0x043d('0x3e')]),_0x3fc8b7);if(_0x5c0635[_0x043d('0x32')][_0x043d('0x40')]){_0x15d77f[_0x043d('0x3d')]=_[_0x043d('0x41')](_0x15d77f[_0x043d('0x3d')],{'$or':_['map'](_0x3fc8b7,function(_0x1de051){if(_0x1de051['type']!==_0x043d('0x42')){var _0x223896={};_0x223896[_0x1de051[_0x043d('0x29')]]={'$like':'%'+_0x5c0635[_0x043d('0x32')][_0x043d('0x40')]+'%'};return _0x223896;}})});}_0x15d77f=_[_0x043d('0x41')]({},_0x15d77f,_0x5c0635['options']);var _0x45fe1a={'where':_0x15d77f[_0x043d('0x3d')]};return db[_0x043d('0x2c')][_0x043d('0x1b')](_0x45fe1a)[_0x043d('0x21')](function(_0x75c70){_0x201d68['count']=_0x75c70;if(_0x5c0635[_0x043d('0x32')][_0x043d('0x43')]){_0x15d77f['include']=[{'all':!![]}];}return db[_0x043d('0x2c')][_0x043d('0x44')](_0x15d77f);})[_0x043d('0x21')](function(_0x34f501){_0x201d68[_0x043d('0x45')]=_0x34f501;return _0x201d68;})[_0x043d('0x21')](respondWithFilteredResult(_0x45253d,_0x15d77f))[_0x043d('0x46')](handleError(_0x45253d,null));};exports[_0x043d('0x47')]=function(_0x1518c8,_0x52a4cf){var _0x5dfe16={'raw':![],'where':{'id':_0x1518c8[_0x043d('0x48')]['id']}},_0x2f9508={};_0x2f9508[_0x043d('0x31')]=_[_0x043d('0x33')](db[_0x043d('0x2c')][_0x043d('0x2d')]);_0x2f9508[_0x043d('0x32')]=_[_0x043d('0x33')](_0x1518c8['query']);_0x2f9508['filters']=_[_0x043d('0x34')](_0x2f9508['model'],_0x2f9508[_0x043d('0x32')]);_0x5dfe16[_0x043d('0x36')]=_[_0x043d('0x34')](_0x2f9508[_0x043d('0x31')],qs['fields'](_0x1518c8[_0x043d('0x32')][_0x043d('0x35')]));_0x5dfe16[_0x043d('0x36')]=_0x5dfe16[_0x043d('0x36')][_0x043d('0x37')]?_0x5dfe16[_0x043d('0x36')]:_0x2f9508[_0x043d('0x31')];if(_0x1518c8[_0x043d('0x32')][_0x043d('0x43')]){_0x5dfe16['include']=[{'all':!![]}];}_0x5dfe16=_[_0x043d('0x41')]({},_0x5dfe16,_0x1518c8['options']);return db[_0x043d('0x2c')][_0x043d('0x49')](_0x5dfe16)[_0x043d('0x21')](handleEntityNotFound(_0x52a4cf,null))['then'](respondWithResult(_0x52a4cf,null))[_0x043d('0x46')](handleError(_0x52a4cf,null));};exports['update']=function(_0x1fc71d,_0x15fefd){if(_0x1fc71d[_0x043d('0x4a')]['id']){delete _0x1fc71d['body']['id'];}return db['VoiceMusicOnHold']['find']({'where':{'id':_0x1fc71d[_0x043d('0x48')]['id']}})[_0x043d('0x21')](handleEntityNotFound(_0x15fefd,null))['then'](saveUpdates(_0x1fc71d[_0x043d('0x4a')],null))[_0x043d('0x21')](respondWithResult(_0x15fefd,null))[_0x043d('0x46')](handleError(_0x15fefd,null));};exports['create']=function(_0xb2b1e9,_0x264a83,_0x4ff748){return db[_0x043d('0x4b')][_0x043d('0x4c')](function(_0x2210b5){if(_0xb2b1e9['body']['mode']==='files'){_0xb2b1e9[_0x043d('0x4a')][_0x043d('0x4d')]=path[_0x043d('0x4e')](config[_0x043d('0x4f')],_0x043d('0x50'),_0xb2b1e9[_0x043d('0x4a')][_0x043d('0x29')]);}return db['VoiceMusicOnHold']['create'](_0xb2b1e9[_0x043d('0x4a')],{'transaction':_0x2210b5})[_0x043d('0x21')](function(_0x432ac2){if(_0xb2b1e9[_0x043d('0x4a')][_0x043d('0x51')]==='files'){fs[_0x043d('0x52')](_0x432ac2[_0x043d('0x4d')],parseInt('0777',0x8));}var _0x2ca88f=_0xb2b1e9['user'][_0x043d('0x22')]({'plain':!![]});if(!_0x2ca88f)throw new Error(_0x043d('0x53'));if(_0x2ca88f['role']===_0x043d('0x54')){var _0x2b2281=_0x432ac2[_0x043d('0x22')]({'plain':!![]});return db[_0x043d('0x55')]['find']({'where':{'name':_0x043d('0x23'),'userProfileId':_0x2ca88f[_0x043d('0x56')]},'raw':!![]})[_0x043d('0x21')](function(_0x5eb920){if(_0x5eb920&&_0x5eb920['autoAssociation']===0x0){return db[_0x043d('0x24')][_0x043d('0x57')]({'name':_0x2b2281[_0x043d('0x29')],'resourceId':_0x2b2281['id'],'type':_0x5eb920['name'],'sectionId':_0x5eb920['id']},{})[_0x043d('0x21')](function(){return _0x432ac2;});}else{return _0x432ac2;}})[_0x043d('0x46')](function(_0x2157f4){logger[_0x043d('0x27')](_0x043d('0x58'),_0x2157f4);});}return _0x432ac2;});})[_0x043d('0x21')](respondWithResult(_0x264a83,0xc9))[_0x043d('0x46')](handleError(_0x264a83,null));};exports[_0x043d('0x25')]=function(_0x4f0a2e,_0x37148b,_0x27f090){var _0xded72a;return db[_0x043d('0x2c')][_0x043d('0x49')]({'where':{'id':_0x4f0a2e['params']['id']}})[_0x043d('0x21')](function(_0xc40a14){if(_0xc40a14){return db[_0x043d('0x4b')]['transaction'](function(_0x9aa44c){return _0xc40a14[_0x043d('0x25')]({'transaction':_0x9aa44c,'raw':!![]})[_0x043d('0x21')](function(_0x16da2f){if(_0x16da2f[_0x043d('0x4d')]){fs['readdirSync'](_0x16da2f[_0x043d('0x4d')])[_0x043d('0x59')](function(_0x46efa2){fs[_0x043d('0x5a')](path[_0x043d('0x4e')](_0x16da2f['directory'],_0x46efa2));});fs['rmdirSync'](_0x16da2f[_0x043d('0x4d')]);}return _0x16da2f;});})[_0x043d('0x46')](function(_0xf48250){throw new db[(_0x043d('0x5b'))][(_0x043d('0x5c'))](_0xf48250[_0x043d('0x5d')]);});}})[_0x043d('0x21')](handleEntityNotFound(_0x37148b,null))[_0x043d('0x21')](removeEntity(_0x37148b,null))[_0x043d('0x46')](handleError(_0x37148b,null));};exports['addSound']=function(_0x4be7fc,_0x332029,_0x430225){return db[_0x043d('0x4b')][_0x043d('0x4c')](function(_0x5bd9b8){var _0x3a895a;return db['VoiceMusicOnHold'][_0x043d('0x49')]({'where':{'id':_0x4be7fc[_0x043d('0x48')]['id']}})['then'](function(_0xa6578e){if(_0xa6578e){_0x3a895a=_0xa6578e;return _0xa6578e['addSound'](_0x4be7fc['body']['id'],{'transaction':_0x5bd9b8});}})['then'](function(_0x3028a1){if(_0x3028a1){return db['Sound'][_0x043d('0x5e')]({'where':{'id':_0x4be7fc['body']['id']},'attributes':['id','name',_0x043d('0x5f'),_0x043d('0x60'),'createdAt'],'raw':!![]});}})['then'](function(_0x10a977){if(_0x10a977){var _0x287e8d=path[_0x043d('0x4e')](config[_0x043d('0x4f')],_0x043d('0x61'),util[_0x043d('0x62')](_0x043d('0x63'),path[_0x043d('0x64')](_0x10a977[_0x043d('0x5f')],path[_0x043d('0x65')](_0x10a977[_0x043d('0x5f')])),_0x10a977['converted_format']));var _0x46eb2c=path[_0x043d('0x4e')](config[_0x043d('0x4f')],'server/files/moh',_0x3a895a[_0x043d('0x29')],util[_0x043d('0x62')](_0x043d('0x63'),_0x10a977[_0x043d('0x29')],_0x10a977['converted_format']));fs[_0x043d('0x66')](_0x287e8d,_0x46eb2c);return _0x10a977;}})[_0x043d('0x46')](function(_0x12464f){throw new db[(_0x043d('0x5b'))][(_0x043d('0x5c'))](_0x12464f['message']);});})['then'](handleEntityNotFound(_0x332029,null))[_0x043d('0x21')](respondWithResult(_0x332029,0xc9))[_0x043d('0x46')](handleError(_0x332029,null));};exports['removeSound']=function(_0x478231,_0x146b79,_0x2eedf4){return db[_0x043d('0x4b')][_0x043d('0x4c')](function(_0x87a679){var _0x3736ac;return db[_0x043d('0x2c')][_0x043d('0x5e')]({'where':{'id':_0x478231[_0x043d('0x48')]['id']}})[_0x043d('0x21')](handleEntityNotFound(_0x146b79,null))['then'](function(_0x5cb520){if(_0x5cb520){_0x3736ac=_0x5cb520;return _0x5cb520['removeSound'](_0x478231[_0x043d('0x48')][_0x043d('0x67')]);}})['then'](function(_0xf1d112){if(_0xf1d112){return db[_0x043d('0x68')][_0x043d('0x5e')]({'where':{'id':_0x478231[_0x043d('0x48')][_0x043d('0x67')]},'attributes':['id',_0x043d('0x29'),'save_name',_0x043d('0x60'),_0x043d('0x69')],'raw':!![]});}})[_0x043d('0x21')](function(_0x46f657){if(_0x46f657){fs['unlinkSync'](path['join'](_0x3736ac['directory'],util[_0x043d('0x62')](_0x043d('0x63'),_0x46f657[_0x043d('0x29')],_0x46f657['converted_format'])));return _0x46f657;}})[_0x043d('0x46')](function(_0x4e75e2){throw new db[(_0x043d('0x5b'))]['ValidationError'](_0x4e75e2[_0x043d('0x5d')]);});})[_0x043d('0x21')](handleEntityNotFound(_0x146b79,null))[_0x043d('0x21')](respondWithStatusCode(_0x146b79,0xcc))[_0x043d('0x46')](handleError(_0x146b79,null));};exports['getSounds']=function(_0x2c5240,_0x56a682,_0x64920e){var _0x5c74c9={};var _0x32dfbf={};var _0x3d528f;var _0x4a3989;return db[_0x043d('0x2c')][_0x043d('0x5e')]({'where':{'id':_0x2c5240[_0x043d('0x48')]['id']}})[_0x043d('0x21')](handleEntityNotFound(_0x56a682,null))[_0x043d('0x21')](function(_0x4be28c){if(_0x4be28c){_0x3d528f=_0x4be28c;_0x32dfbf[_0x043d('0x31')]=_[_0x043d('0x33')](db[_0x043d('0x68')][_0x043d('0x2d')]);_0x32dfbf[_0x043d('0x32')]=_[_0x043d('0x33')](_0x2c5240[_0x043d('0x32')]);_0x32dfbf['filters']=_[_0x043d('0x34')](_0x32dfbf[_0x043d('0x31')],_0x32dfbf[_0x043d('0x32')]);_0x5c74c9[_0x043d('0x36')]=_[_0x043d('0x34')](_0x32dfbf[_0x043d('0x31')],qs[_0x043d('0x35')](_0x2c5240[_0x043d('0x32')][_0x043d('0x35')]));_0x5c74c9['attributes']=_0x5c74c9[_0x043d('0x36')][_0x043d('0x37')]?_0x5c74c9[_0x043d('0x36')]:_0x32dfbf[_0x043d('0x31')];_0x5c74c9[_0x043d('0x3b')]=qs[_0x043d('0x3c')](_0x2c5240[_0x043d('0x32')][_0x043d('0x3c')]);_0x5c74c9[_0x043d('0x3d')]=qs[_0x043d('0x3e')](_[_0x043d('0x3f')](_0x2c5240[_0x043d('0x32')],_0x32dfbf['filters']));if(_0x2c5240[_0x043d('0x32')][_0x043d('0x40')]){_0x5c74c9[_0x043d('0x3d')]=_[_0x043d('0x41')](_0x5c74c9['where'],{'$or':_[_0x043d('0x2b')](_0x5c74c9[_0x043d('0x36')],function(_0x2c07a0){var _0x499476={};_0x499476[_0x2c07a0]={'$like':'%'+_0x2c5240[_0x043d('0x32')][_0x043d('0x40')]+'%'};return _0x499476;})});}_0x5c74c9=_[_0x043d('0x41')]({},_0x5c74c9,_0x2c5240[_0x043d('0x6a')]);return _0x3d528f['getSounds'](_0x5c74c9);}})[_0x043d('0x21')](function(_0x2a96eb){if(_0x2a96eb){_0x4a3989=_0x2a96eb[_0x043d('0x37')];if(!_0x2c5240[_0x043d('0x32')][_0x043d('0x38')](_0x043d('0x39'))){_0x5c74c9[_0x043d('0x3a')]=qs[_0x043d('0x3a')](_0x2c5240[_0x043d('0x32')][_0x043d('0x3a')]);_0x5c74c9[_0x043d('0x1c')]=qs[_0x043d('0x1c')](_0x2c5240[_0x043d('0x32')][_0x043d('0x1c')]);}return _0x3d528f[_0x043d('0x6b')](_0x5c74c9);}})[_0x043d('0x21')](function(_0x191f91){if(_0x191f91){return _0x191f91?{'count':_0x4a3989,'rows':_0x191f91}:null;}})[_0x043d('0x21')](respondWithResult(_0x56a682,null))['catch'](handleError(_0x56a682,null));};