e353e97b04a8cd6ffafe6358896c51041f1b5dd3
[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 _0x14aa=['filters','intersection','model','fields','attributes','hasOwnProperty','nolimit','order','sort','where','filter','merge','VIRTUAL','options','VoiceMusicOnHold','includeAll','include','findAll','rows','catch','show','length','find','body','create','sequelize','mode','directory','root','server/files/moh','files','0777','user','get','role','UserProfileSection','MusicOnHolds','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','transaction','readdirSync','unlinkSync','rmdirSync','Sequelize','ValidationError','message','addSound','Sound','findOne','save_name','createdAt','server/files/sounds/converted','format','%s.%s','converted_format','join','removeSound','id2','getSounds','map','html-pdf','eml-format','zip-dir','fast-json-patch','request-promise','mustache','util','path','to-csv','ejs','lodash','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','count','offset','limit','Content-Range','apply','reject','save','update','then','destroy','end','error','stack','name','rawAttributes','fieldName','key','keys','query'];(function(_0xdb1bcd,_0x3f169a){var _0x47ae2b=function(_0x78826d){while(--_0x78826d){_0xdb1bcd['push'](_0xdb1bcd['shift']());}};_0x47ae2b(++_0x3f169a);}(_0x14aa,0x1ee));var _0xa14a=function(_0x680ed2,_0xb0866b){_0x680ed2=_0x680ed2-0x0;var _0x4e9fe4=_0x14aa[_0x680ed2];return _0x4e9fe4;};'use strict';var pdf=require(_0xa14a('0x0'));var emlformat=require(_0xa14a('0x1'));var rimraf=require('rimraf');var zipdir=require(_0xa14a('0x2'));var jsonpatch=require(_0xa14a('0x3'));var rp=require(_0xa14a('0x4'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0xa14a('0x5'));var util=require(_0xa14a('0x6'));var path=require(_0xa14a('0x7'));var sox=require('sox');var csv=require(_0xa14a('0x8'));var ejs=require(_0xa14a('0x9'));var fs=require('fs');var _=require(_0xa14a('0xa'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0xa14a('0xb'));var deskjs=require(_0xa14a('0xc'));var toCsv=require(_0xa14a('0x8'));var querystring=require(_0xa14a('0xd'));var Papa=require(_0xa14a('0xe'));var Redis=require(_0xa14a('0xf'));var authService=require(_0xa14a('0x10'));var qs=require(_0xa14a('0x11'));var as=require(_0xa14a('0x12'));var hardwareService=require(_0xa14a('0x13'));var logger=require(_0xa14a('0x14'))(_0xa14a('0x15'));var utils=require(_0xa14a('0x16'));var config=require(_0xa14a('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0xa14a('0x18'))['db'];function respondWithStatusCode(_0x3646c9,_0x488e82){_0x488e82=_0x488e82||0xcc;return function(_0x47e6ac){if(_0x47e6ac){return _0x3646c9[_0xa14a('0x19')](_0x488e82);}return _0x3646c9[_0xa14a('0x1a')](_0x488e82)['end']();};}function respondWithResult(_0x14b7f0,_0x229ed1){_0x229ed1=_0x229ed1||0xc8;return function(_0x12554b){if(_0x12554b){return _0x14b7f0['status'](_0x229ed1)['json'](_0x12554b);}};}function respondWithFilteredResult(_0x1b3dec,_0x527a31){return function(_0x112cf9){if(_0x112cf9){var _0x5b424a=_0x112cf9[_0xa14a('0x1b')],_0x25b20d=_0x527a31[_0xa14a('0x1c')],_0x2b4220=_0x527a31[_0xa14a('0x1c')]+_0x527a31[_0xa14a('0x1d')],_0x420b5f;if(_0x2b4220>=_0x5b424a){_0x2b4220=_0x5b424a;_0x420b5f=0xc8;}else{_0x420b5f=0xce;}_0x1b3dec[_0xa14a('0x1a')](_0x420b5f);return _0x1b3dec['set'](_0xa14a('0x1e'),_0x25b20d+'-'+_0x2b4220+'/'+_0x5b424a)['json'](_0x112cf9);}return null;};}function patchUpdates(_0x156297){return function(_0xc68f5e){try{jsonpatch[_0xa14a('0x1f')](_0xc68f5e,_0x156297,!![]);}catch(_0x5913a9){return BPromise[_0xa14a('0x20')](_0x5913a9);}return _0xc68f5e[_0xa14a('0x21')]();};}function saveUpdates(_0x33996f,_0x3af89b){return function(_0x3929b1){if(_0x3929b1){return _0x3929b1[_0xa14a('0x22')](_0x33996f)[_0xa14a('0x23')](function(_0x5c6d5a){return _0x5c6d5a;});}return null;};}function removeEntity(_0x1be66e,_0x46cd48){return function(_0x280822){if(_0x280822){return _0x280822[_0xa14a('0x24')]()[_0xa14a('0x23')](function(){var _0x4a3f16=_0x280822['get']({'plain':!![]});var _0x39cad0='MusicOnHolds';return db['UserProfileResource'][_0xa14a('0x24')]({'where':{'type':_0x39cad0,'resourceId':_0x4a3f16['id']}})['then'](function(){return _0x280822;});})[_0xa14a('0x23')](function(){_0x1be66e[_0xa14a('0x1a')](0xcc)[_0xa14a('0x25')]();});}};}function handleEntityNotFound(_0x303874,_0x14ad6c){return function(_0x25b8f9){if(!_0x25b8f9){_0x303874['sendStatus'](0x194);}return _0x25b8f9;};}function handleError(_0x1472e2,_0x2996a5){_0x2996a5=_0x2996a5||0x1f4;return function(_0x539a07){logger[_0xa14a('0x26')](_0x539a07[_0xa14a('0x27')]);if(_0x539a07[_0xa14a('0x28')]){delete _0x539a07['name'];}_0x1472e2[_0xa14a('0x1a')](_0x2996a5)['send'](_0x539a07);};}exports['index']=function(_0xd687e8,_0x50b848){var _0x4d7525={},_0x491089={},_0x3a702a={'count':0x0,'rows':[]};var _0x2863cc=_['map'](db['VoiceMusicOnHold'][_0xa14a('0x29')],function(_0x10a906){return{'name':_0x10a906[_0xa14a('0x2a')],'type':_0x10a906['type'][_0xa14a('0x2b')]};});_0x491089['model']=_['map'](_0x2863cc,'name');_0x491089['query']=_[_0xa14a('0x2c')](_0xd687e8[_0xa14a('0x2d')]);_0x491089[_0xa14a('0x2e')]=_['intersection'](_0x491089['model'],_0x491089[_0xa14a('0x2d')]);_0x4d7525['attributes']=_[_0xa14a('0x2f')](_0x491089[_0xa14a('0x30')],qs[_0xa14a('0x31')](_0xd687e8[_0xa14a('0x2d')][_0xa14a('0x31')]));_0x4d7525[_0xa14a('0x32')]=_0x4d7525[_0xa14a('0x32')]['length']?_0x4d7525['attributes']:_0x491089[_0xa14a('0x30')];if(!_0xd687e8[_0xa14a('0x2d')][_0xa14a('0x33')](_0xa14a('0x34'))){_0x4d7525['limit']=qs[_0xa14a('0x1d')](_0xd687e8[_0xa14a('0x2d')]['limit']);_0x4d7525['offset']=qs[_0xa14a('0x1c')](_0xd687e8[_0xa14a('0x2d')]['offset']);}_0x4d7525[_0xa14a('0x35')]=qs[_0xa14a('0x36')](_0xd687e8['query']['sort']);_0x4d7525[_0xa14a('0x37')]=qs[_0xa14a('0x2e')](_['pick'](_0xd687e8[_0xa14a('0x2d')],_0x491089[_0xa14a('0x2e')]),_0x2863cc);if(_0xd687e8['query'][_0xa14a('0x38')]){_0x4d7525['where']=_[_0xa14a('0x39')](_0x4d7525[_0xa14a('0x37')],{'$or':_['map'](_0x2863cc,function(_0x2a6aab){if(_0x2a6aab['type']!==_0xa14a('0x3a')){var _0x1df1b0={};_0x1df1b0[_0x2a6aab[_0xa14a('0x28')]]={'$like':'%'+_0xd687e8['query']['filter']+'%'};return _0x1df1b0;}})});}_0x4d7525=_['merge']({},_0x4d7525,_0xd687e8[_0xa14a('0x3b')]);var _0x1f7d90={'where':_0x4d7525[_0xa14a('0x37')]};return db[_0xa14a('0x3c')]['count'](_0x1f7d90)['then'](function(_0x2bf171){_0x3a702a['count']=_0x2bf171;if(_0xd687e8[_0xa14a('0x2d')][_0xa14a('0x3d')]){_0x4d7525[_0xa14a('0x3e')]=[{'all':!![]}];}return db[_0xa14a('0x3c')][_0xa14a('0x3f')](_0x4d7525);})[_0xa14a('0x23')](function(_0xbf442e){_0x3a702a[_0xa14a('0x40')]=_0xbf442e;return _0x3a702a;})['then'](respondWithFilteredResult(_0x50b848,_0x4d7525))[_0xa14a('0x41')](handleError(_0x50b848,null));};exports[_0xa14a('0x42')]=function(_0x5df36b,_0x56f416){var _0x5280eb={'raw':![],'where':{'id':_0x5df36b['params']['id']}},_0x9bb26e={};_0x9bb26e[_0xa14a('0x30')]=_[_0xa14a('0x2c')](db[_0xa14a('0x3c')][_0xa14a('0x29')]);_0x9bb26e[_0xa14a('0x2d')]=_[_0xa14a('0x2c')](_0x5df36b[_0xa14a('0x2d')]);_0x9bb26e[_0xa14a('0x2e')]=_[_0xa14a('0x2f')](_0x9bb26e[_0xa14a('0x30')],_0x9bb26e[_0xa14a('0x2d')]);_0x5280eb[_0xa14a('0x32')]=_[_0xa14a('0x2f')](_0x9bb26e['model'],qs[_0xa14a('0x31')](_0x5df36b[_0xa14a('0x2d')][_0xa14a('0x31')]));_0x5280eb[_0xa14a('0x32')]=_0x5280eb[_0xa14a('0x32')][_0xa14a('0x43')]?_0x5280eb[_0xa14a('0x32')]:_0x9bb26e[_0xa14a('0x30')];if(_0x5df36b[_0xa14a('0x2d')]['includeAll']){_0x5280eb['include']=[{'all':!![]}];}_0x5280eb=_[_0xa14a('0x39')]({},_0x5280eb,_0x5df36b[_0xa14a('0x3b')]);return db[_0xa14a('0x3c')][_0xa14a('0x44')](_0x5280eb)[_0xa14a('0x23')](handleEntityNotFound(_0x56f416,null))[_0xa14a('0x23')](respondWithResult(_0x56f416,null))[_0xa14a('0x41')](handleError(_0x56f416,null));};exports[_0xa14a('0x22')]=function(_0x51cd01,_0x3b9a1f){if(_0x51cd01[_0xa14a('0x45')]['id']){delete _0x51cd01[_0xa14a('0x45')]['id'];}return db[_0xa14a('0x3c')][_0xa14a('0x44')]({'where':{'id':_0x51cd01['params']['id']}})['then'](handleEntityNotFound(_0x3b9a1f,null))[_0xa14a('0x23')](saveUpdates(_0x51cd01[_0xa14a('0x45')],null))[_0xa14a('0x23')](respondWithResult(_0x3b9a1f,null))[_0xa14a('0x41')](handleError(_0x3b9a1f,null));};exports[_0xa14a('0x46')]=function(_0x53c483,_0x47072e,_0xf24acd){return db[_0xa14a('0x47')]['transaction'](function(_0x4c8581){if(_0x53c483[_0xa14a('0x45')][_0xa14a('0x48')]==='files'){_0x53c483[_0xa14a('0x45')][_0xa14a('0x49')]=path['join'](config[_0xa14a('0x4a')],_0xa14a('0x4b'),_0x53c483[_0xa14a('0x45')][_0xa14a('0x28')]);}return db['VoiceMusicOnHold'][_0xa14a('0x46')](_0x53c483[_0xa14a('0x45')],{'transaction':_0x4c8581})[_0xa14a('0x23')](function(_0x3e7b56){if(_0x53c483[_0xa14a('0x45')][_0xa14a('0x48')]===_0xa14a('0x4c')){fs['mkdirSync'](_0x3e7b56[_0xa14a('0x49')],parseInt(_0xa14a('0x4d'),0x8));}var _0x595374=_0x53c483[_0xa14a('0x4e')][_0xa14a('0x4f')]({'plain':!![]});if(!_0x595374)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x595374[_0xa14a('0x50')]===_0xa14a('0x4e')){var _0x2c0358=_0x3e7b56[_0xa14a('0x4f')]({'plain':!![]});return db[_0xa14a('0x51')][_0xa14a('0x44')]({'where':{'name':_0xa14a('0x52'),'userProfileId':_0x595374[_0xa14a('0x53')]},'raw':!![]})[_0xa14a('0x23')](function(_0x31fc8d){if(_0x31fc8d&&_0x31fc8d[_0xa14a('0x54')]===0x0){return db['UserProfileResource']['create']({'name':_0x2c0358[_0xa14a('0x28')],'resourceId':_0x2c0358['id'],'type':_0x31fc8d[_0xa14a('0x28')],'sectionId':_0x31fc8d['id']},{})[_0xa14a('0x23')](function(){return _0x3e7b56;});}else{return _0x3e7b56;}})[_0xa14a('0x41')](function(_0x153521){logger[_0xa14a('0x26')](_0xa14a('0x55'),_0x153521);});}return _0x3e7b56;});})['then'](respondWithResult(_0x47072e,0xc9))[_0xa14a('0x41')](handleError(_0x47072e,null));};exports[_0xa14a('0x24')]=function(_0x2b30a6,_0x58ca02,_0x27b7ba){var _0x1cc4ee;return db[_0xa14a('0x3c')]['find']({'where':{'id':_0x2b30a6[_0xa14a('0x56')]['id']}})[_0xa14a('0x23')](function(_0x1fa037){if(_0x1fa037){return db[_0xa14a('0x47')][_0xa14a('0x57')](function(_0x148044){return _0x1fa037[_0xa14a('0x24')]({'transaction':_0x148044,'raw':!![]})[_0xa14a('0x23')](function(_0x52cdf2){if(_0x52cdf2[_0xa14a('0x49')]){fs[_0xa14a('0x58')](_0x52cdf2[_0xa14a('0x49')])['forEach'](function(_0x478d29){fs[_0xa14a('0x59')](path['join'](_0x52cdf2[_0xa14a('0x49')],_0x478d29));});fs[_0xa14a('0x5a')](_0x52cdf2['directory']);}return _0x52cdf2;});})['catch'](function(_0x3e7719){throw new db[(_0xa14a('0x5b'))][(_0xa14a('0x5c'))](_0x3e7719[_0xa14a('0x5d')]);});}})[_0xa14a('0x23')](handleEntityNotFound(_0x58ca02,null))[_0xa14a('0x23')](removeEntity(_0x58ca02,null))['catch'](handleError(_0x58ca02,null));};exports[_0xa14a('0x5e')]=function(_0x33a3b3,_0x99bfa9,_0x29ca44){return db[_0xa14a('0x47')][_0xa14a('0x57')](function(_0x963978){var _0x431310;return db[_0xa14a('0x3c')][_0xa14a('0x44')]({'where':{'id':_0x33a3b3[_0xa14a('0x56')]['id']}})['then'](function(_0x581c0e){if(_0x581c0e){_0x431310=_0x581c0e;return _0x581c0e['addSound'](_0x33a3b3[_0xa14a('0x45')]['id'],{'transaction':_0x963978});}})[_0xa14a('0x23')](function(_0x116357){if(_0x116357){return db[_0xa14a('0x5f')][_0xa14a('0x60')]({'where':{'id':_0x33a3b3['body']['id']},'attributes':['id','name',_0xa14a('0x61'),'converted_format',_0xa14a('0x62')],'raw':!![]});}})['then'](function(_0x2cc9d9){if(_0x2cc9d9){var _0x2bbc54=path['join'](config[_0xa14a('0x4a')],_0xa14a('0x63'),util[_0xa14a('0x64')](_0xa14a('0x65'),path['basename'](_0x2cc9d9[_0xa14a('0x61')],path['extname'](_0x2cc9d9[_0xa14a('0x61')])),_0x2cc9d9[_0xa14a('0x66')]));var _0x211af3=path[_0xa14a('0x67')](config[_0xa14a('0x4a')],'server/files/moh',_0x431310[_0xa14a('0x28')],util[_0xa14a('0x64')](_0xa14a('0x65'),_0x2cc9d9[_0xa14a('0x28')],_0x2cc9d9['converted_format']));fs['symlinkSync'](_0x2bbc54,_0x211af3);return _0x2cc9d9;}})[_0xa14a('0x41')](function(_0x53ed8d){throw new db[(_0xa14a('0x5b'))]['ValidationError'](_0x53ed8d[_0xa14a('0x5d')]);});})[_0xa14a('0x23')](handleEntityNotFound(_0x99bfa9,null))['then'](respondWithResult(_0x99bfa9,0xc9))[_0xa14a('0x41')](handleError(_0x99bfa9,null));};exports[_0xa14a('0x68')]=function(_0x3d6c5f,_0x3e8b7d,_0x417bee){return db[_0xa14a('0x47')][_0xa14a('0x57')](function(_0x27f665){var _0x5b6661;return db[_0xa14a('0x3c')][_0xa14a('0x60')]({'where':{'id':_0x3d6c5f['params']['id']}})[_0xa14a('0x23')](handleEntityNotFound(_0x3e8b7d,null))[_0xa14a('0x23')](function(_0x5cc1d3){if(_0x5cc1d3){_0x5b6661=_0x5cc1d3;return _0x5cc1d3[_0xa14a('0x68')](_0x3d6c5f[_0xa14a('0x56')][_0xa14a('0x69')]);}})['then'](function(_0x13285c){if(_0x13285c){return db[_0xa14a('0x5f')][_0xa14a('0x60')]({'where':{'id':_0x3d6c5f[_0xa14a('0x56')][_0xa14a('0x69')]},'attributes':['id',_0xa14a('0x28'),_0xa14a('0x61'),'converted_format',_0xa14a('0x62')],'raw':!![]});}})[_0xa14a('0x23')](function(_0x51c51d){if(_0x51c51d){fs['unlinkSync'](path[_0xa14a('0x67')](_0x5b6661[_0xa14a('0x49')],util[_0xa14a('0x64')](_0xa14a('0x65'),_0x51c51d[_0xa14a('0x28')],_0x51c51d['converted_format'])));return _0x51c51d;}})[_0xa14a('0x41')](function(_0x551c65){throw new db[(_0xa14a('0x5b'))][(_0xa14a('0x5c'))](_0x551c65[_0xa14a('0x5d')]);});})[_0xa14a('0x23')](handleEntityNotFound(_0x3e8b7d,null))[_0xa14a('0x23')](respondWithStatusCode(_0x3e8b7d,0xcc))[_0xa14a('0x41')](handleError(_0x3e8b7d,null));};exports[_0xa14a('0x6a')]=function(_0x50dca0,_0x319d45,_0x108082){var _0x53c79b={};var _0x2e092c={};var _0x2ebb27;var _0x34a06d;return db[_0xa14a('0x3c')]['findOne']({'where':{'id':_0x50dca0[_0xa14a('0x56')]['id']}})[_0xa14a('0x23')](handleEntityNotFound(_0x319d45,null))[_0xa14a('0x23')](function(_0x693f50){if(_0x693f50){_0x2ebb27=_0x693f50;_0x2e092c[_0xa14a('0x30')]=_[_0xa14a('0x2c')](db[_0xa14a('0x5f')][_0xa14a('0x29')]);_0x2e092c[_0xa14a('0x2d')]=_[_0xa14a('0x2c')](_0x50dca0[_0xa14a('0x2d')]);_0x2e092c[_0xa14a('0x2e')]=_[_0xa14a('0x2f')](_0x2e092c[_0xa14a('0x30')],_0x2e092c[_0xa14a('0x2d')]);_0x53c79b['attributes']=_[_0xa14a('0x2f')](_0x2e092c['model'],qs[_0xa14a('0x31')](_0x50dca0['query']['fields']));_0x53c79b[_0xa14a('0x32')]=_0x53c79b[_0xa14a('0x32')][_0xa14a('0x43')]?_0x53c79b[_0xa14a('0x32')]:_0x2e092c[_0xa14a('0x30')];_0x53c79b[_0xa14a('0x35')]=qs[_0xa14a('0x36')](_0x50dca0['query'][_0xa14a('0x36')]);_0x53c79b[_0xa14a('0x37')]=qs['filters'](_['pick'](_0x50dca0[_0xa14a('0x2d')],_0x2e092c['filters']));if(_0x50dca0['query'][_0xa14a('0x38')]){_0x53c79b[_0xa14a('0x37')]=_[_0xa14a('0x39')](_0x53c79b[_0xa14a('0x37')],{'$or':_[_0xa14a('0x6b')](_0x53c79b[_0xa14a('0x32')],function(_0xe0da81){var _0x464514={};_0x464514[_0xe0da81]={'$like':'%'+_0x50dca0[_0xa14a('0x2d')][_0xa14a('0x38')]+'%'};return _0x464514;})});}_0x53c79b=_[_0xa14a('0x39')]({},_0x53c79b,_0x50dca0['options']);return _0x2ebb27[_0xa14a('0x6a')](_0x53c79b);}})[_0xa14a('0x23')](function(_0x2e4056){if(_0x2e4056){_0x34a06d=_0x2e4056[_0xa14a('0x43')];if(!_0x50dca0[_0xa14a('0x2d')]['hasOwnProperty'](_0xa14a('0x34'))){_0x53c79b[_0xa14a('0x1d')]=qs[_0xa14a('0x1d')](_0x50dca0[_0xa14a('0x2d')][_0xa14a('0x1d')]);_0x53c79b[_0xa14a('0x1c')]=qs[_0xa14a('0x1c')](_0x50dca0[_0xa14a('0x2d')]['offset']);}return _0x2ebb27[_0xa14a('0x6a')](_0x53c79b);}})[_0xa14a('0x23')](function(_0xf25af2){if(_0xf25af2){return _0xf25af2?{'count':_0x34a06d,'rows':_0xf25af2}:null;}})['then'](respondWithResult(_0x319d45,null))[_0xa14a('0x41')](handleError(_0x319d45,null));};