2e2010ecfc54bef1a12665c9e7dddb8a08c2cab4
[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 _0x8c78=['root','server/files/moh','mkdirSync','0777','user','get','role','userProfileId','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','readdirSync','forEach','unlinkSync','join','Sequelize','ValidationError','message','addSound','Sound','findOne','save_name','converted_format','server/files/sounds/converted','format','%s.%s','extname','symlinkSync','id2','createdAt','getSounds','order','rimraf','zip-dir','fast-json-patch','moment','bluebird','util','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','api','../../config/environment','sendStatus','status','end','offset','undefined','limit','count','Content-Range','apply','reject','save','update','then','destroy','MusicOnHolds','error','stack','name','send','index','map','VoiceMusicOnHold','rawAttributes','type','key','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','sort','where','filter','merge','options','includeAll','findAll','rows','catch','show','params','include','find','body','create','sequelize','transaction','mode','files','directory'];(function(_0x4e4e10,_0x1ef041){var _0x3d8866=function(_0x424d04){while(--_0x424d04){_0x4e4e10['push'](_0x4e4e10['shift']());}};_0x3d8866(++_0x1ef041);}(_0x8c78,0xf6));var _0x88c7=function(_0x2be8c2,_0x14a4b5){_0x2be8c2=_0x2be8c2-0x0;var _0x97f531=_0x8c78[_0x2be8c2];return _0x97f531;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x88c7('0x0'));var zipdir=require(_0x88c7('0x1'));var jsonpatch=require(_0x88c7('0x2'));var rp=require('request-promise');var moment=require(_0x88c7('0x3'));var BPromise=require(_0x88c7('0x4'));var Mustache=require('mustache');var util=require(_0x88c7('0x5'));var path=require('path');var sox=require(_0x88c7('0x6'));var csv=require(_0x88c7('0x7'));var ejs=require(_0x88c7('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x88c7('0x9'));var squel=require(_0x88c7('0xa'));var crypto=require(_0x88c7('0xb'));var jsforce=require(_0x88c7('0xc'));var deskjs=require(_0x88c7('0xd'));var toCsv=require(_0x88c7('0x7'));var querystring=require(_0x88c7('0xe'));var Papa=require(_0x88c7('0xf'));var Redis=require(_0x88c7('0x10'));var authService=require(_0x88c7('0x11'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x88c7('0x12'));var utils=require('../../config/utils');var config=require(_0x88c7('0x13'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x499c75,_0x3cf34d){_0x3cf34d=_0x3cf34d||0xcc;return function(_0x21c7bc){if(_0x21c7bc){return _0x499c75[_0x88c7('0x14')](_0x3cf34d);}return _0x499c75[_0x88c7('0x15')](_0x3cf34d)[_0x88c7('0x16')]();};}function respondWithResult(_0x8d1215,_0x4fd945){_0x4fd945=_0x4fd945||0xc8;return function(_0x59e5ce){if(_0x59e5ce){return _0x8d1215[_0x88c7('0x15')](_0x4fd945)['json'](_0x59e5ce);}};}function respondWithFilteredResult(_0x384306,_0x399bf4){return function(_0x3ed296){if(_0x3ed296){var _0x4f891a=typeof _0x399bf4[_0x88c7('0x17')]===_0x88c7('0x18')&&typeof _0x399bf4[_0x88c7('0x19')]==='undefined';var _0x23a46e=_0x3ed296[_0x88c7('0x1a')];var _0x240519=_0x4f891a?0x0:_0x399bf4['offset'];var _0x26bb46=_0x4f891a?_0x3ed296[_0x88c7('0x1a')]:_0x399bf4[_0x88c7('0x17')]+_0x399bf4[_0x88c7('0x19')];var _0x2f3c58;if(_0x26bb46>=_0x23a46e){_0x26bb46=_0x23a46e;_0x2f3c58=0xc8;}else{_0x2f3c58=0xce;}_0x384306['status'](_0x2f3c58);return _0x384306['set'](_0x88c7('0x1b'),_0x240519+'-'+_0x26bb46+'/'+_0x23a46e)['json'](_0x3ed296);}return null;};}function patchUpdates(_0x104620){return function(_0x388712){try{jsonpatch[_0x88c7('0x1c')](_0x388712,_0x104620,!![]);}catch(_0x269eb4){return BPromise[_0x88c7('0x1d')](_0x269eb4);}return _0x388712[_0x88c7('0x1e')]();};}function saveUpdates(_0x547985,_0x3e6465){return function(_0x10710b){if(_0x10710b){return _0x10710b[_0x88c7('0x1f')](_0x547985)[_0x88c7('0x20')](function(_0x69e383){return _0x69e383;});}return null;};}function removeEntity(_0x3d635d,_0x5e6cd7){return function(_0x3756f2){if(_0x3756f2){return _0x3756f2[_0x88c7('0x21')]()[_0x88c7('0x20')](function(){var _0x191dc6=_0x3756f2['get']({'plain':!![]});var _0x47b851=_0x88c7('0x22');return db['UserProfileResource'][_0x88c7('0x21')]({'where':{'type':_0x47b851,'resourceId':_0x191dc6['id']}})[_0x88c7('0x20')](function(){return _0x3756f2;});})['then'](function(){_0x3d635d[_0x88c7('0x15')](0xcc)[_0x88c7('0x16')]();});}};}function handleEntityNotFound(_0xa5a1ae,_0x2619d4){return function(_0x5708e3){if(!_0x5708e3){_0xa5a1ae[_0x88c7('0x14')](0x194);}return _0x5708e3;};}function handleError(_0x47e8d6,_0x5aa111){_0x5aa111=_0x5aa111||0x1f4;return function(_0x5e4c75){logger[_0x88c7('0x23')](_0x5e4c75[_0x88c7('0x24')]);if(_0x5e4c75['name']){delete _0x5e4c75[_0x88c7('0x25')];}_0x47e8d6[_0x88c7('0x15')](_0x5aa111)[_0x88c7('0x26')](_0x5e4c75);};}exports[_0x88c7('0x27')]=function(_0x1aecab,_0x44cf6c){var _0x3e0360={},_0x5962fe={},_0x38ec93={'count':0x0,'rows':[]};var _0x4835be=_[_0x88c7('0x28')](db[_0x88c7('0x29')][_0x88c7('0x2a')],function(_0x508144){return{'name':_0x508144['fieldName'],'type':_0x508144[_0x88c7('0x2b')][_0x88c7('0x2c')]};});_0x5962fe[_0x88c7('0x2d')]=_['map'](_0x4835be,_0x88c7('0x25'));_0x5962fe[_0x88c7('0x2e')]=_[_0x88c7('0x2f')](_0x1aecab[_0x88c7('0x2e')]);_0x5962fe[_0x88c7('0x30')]=_[_0x88c7('0x31')](_0x5962fe['model'],_0x5962fe[_0x88c7('0x2e')]);_0x3e0360['attributes']=_[_0x88c7('0x31')](_0x5962fe[_0x88c7('0x2d')],qs['fields'](_0x1aecab[_0x88c7('0x2e')][_0x88c7('0x32')]));_0x3e0360[_0x88c7('0x33')]=_0x3e0360['attributes'][_0x88c7('0x34')]?_0x3e0360[_0x88c7('0x33')]:_0x5962fe[_0x88c7('0x2d')];if(!_0x1aecab[_0x88c7('0x2e')][_0x88c7('0x35')](_0x88c7('0x36'))){_0x3e0360['limit']=qs[_0x88c7('0x19')](_0x1aecab[_0x88c7('0x2e')][_0x88c7('0x19')]);_0x3e0360[_0x88c7('0x17')]=qs[_0x88c7('0x17')](_0x1aecab['query']['offset']);}_0x3e0360['order']=qs[_0x88c7('0x37')](_0x1aecab[_0x88c7('0x2e')]['sort']);delete _0x1aecab['query'][_0x88c7('0x37')];_0x3e0360[_0x88c7('0x38')]=qs[_0x88c7('0x30')](_['pick'](_0x1aecab[_0x88c7('0x2e')],_0x5962fe[_0x88c7('0x30')]),_0x4835be);if(_0x1aecab['query'][_0x88c7('0x39')]){_0x3e0360[_0x88c7('0x38')]=_[_0x88c7('0x3a')](_0x3e0360[_0x88c7('0x38')],{'$or':_[_0x88c7('0x28')](_0x4835be,function(_0x5ba2e9){if(_0x5ba2e9[_0x88c7('0x2b')]!=='VIRTUAL'){var _0x450072={};_0x450072[_0x5ba2e9[_0x88c7('0x25')]]={'$like':'%'+_0x1aecab[_0x88c7('0x2e')][_0x88c7('0x39')]+'%'};return _0x450072;}})});}_0x3e0360=_[_0x88c7('0x3a')]({},_0x3e0360,_0x1aecab[_0x88c7('0x3b')]);var _0x5bb2bc={'where':_0x3e0360['where']};return db[_0x88c7('0x29')][_0x88c7('0x1a')](_0x5bb2bc)[_0x88c7('0x20')](function(_0x3b5e2b){_0x38ec93['count']=_0x3b5e2b;if(_0x1aecab[_0x88c7('0x2e')][_0x88c7('0x3c')]){_0x3e0360['include']=[{'all':!![]}];}return db[_0x88c7('0x29')][_0x88c7('0x3d')](_0x3e0360);})['then'](function(_0x14c37f){_0x38ec93[_0x88c7('0x3e')]=_0x14c37f;return _0x38ec93;})[_0x88c7('0x20')](respondWithFilteredResult(_0x44cf6c,_0x3e0360))[_0x88c7('0x3f')](handleError(_0x44cf6c,null));};exports[_0x88c7('0x40')]=function(_0x9e7b2f,_0x39fbeb){var _0x23b5c3={'raw':![],'where':{'id':_0x9e7b2f[_0x88c7('0x41')]['id']}},_0x4fa622={};_0x4fa622['model']=_[_0x88c7('0x2f')](db['VoiceMusicOnHold'][_0x88c7('0x2a')]);_0x4fa622[_0x88c7('0x2e')]=_[_0x88c7('0x2f')](_0x9e7b2f['query']);_0x4fa622[_0x88c7('0x30')]=_[_0x88c7('0x31')](_0x4fa622[_0x88c7('0x2d')],_0x4fa622['query']);_0x23b5c3[_0x88c7('0x33')]=_['intersection'](_0x4fa622[_0x88c7('0x2d')],qs['fields'](_0x9e7b2f[_0x88c7('0x2e')][_0x88c7('0x32')]));_0x23b5c3[_0x88c7('0x33')]=_0x23b5c3[_0x88c7('0x33')][_0x88c7('0x34')]?_0x23b5c3[_0x88c7('0x33')]:_0x4fa622[_0x88c7('0x2d')];if(_0x9e7b2f[_0x88c7('0x2e')][_0x88c7('0x3c')]){_0x23b5c3[_0x88c7('0x42')]=[{'all':!![]}];}_0x23b5c3=_[_0x88c7('0x3a')]({},_0x23b5c3,_0x9e7b2f['options']);return db[_0x88c7('0x29')][_0x88c7('0x43')](_0x23b5c3)[_0x88c7('0x20')](handleEntityNotFound(_0x39fbeb,null))[_0x88c7('0x20')](respondWithResult(_0x39fbeb,null))['catch'](handleError(_0x39fbeb,null));};exports[_0x88c7('0x1f')]=function(_0x209ba9,_0x1a5f71){if(_0x209ba9[_0x88c7('0x44')]['id']){delete _0x209ba9[_0x88c7('0x44')]['id'];}return db[_0x88c7('0x29')][_0x88c7('0x43')]({'where':{'id':_0x209ba9['params']['id']}})[_0x88c7('0x20')](handleEntityNotFound(_0x1a5f71,null))[_0x88c7('0x20')](saveUpdates(_0x209ba9['body'],null))[_0x88c7('0x20')](respondWithResult(_0x1a5f71,null))[_0x88c7('0x3f')](handleError(_0x1a5f71,null));};exports[_0x88c7('0x45')]=function(_0x5169e3,_0x1198dd,_0x5b62b0){return db[_0x88c7('0x46')][_0x88c7('0x47')](function(_0x2b795b){if(_0x5169e3[_0x88c7('0x44')][_0x88c7('0x48')]===_0x88c7('0x49')){_0x5169e3['body'][_0x88c7('0x4a')]=path['join'](config[_0x88c7('0x4b')],_0x88c7('0x4c'),_0x5169e3[_0x88c7('0x44')][_0x88c7('0x25')]);}return db[_0x88c7('0x29')][_0x88c7('0x45')](_0x5169e3[_0x88c7('0x44')],{'transaction':_0x2b795b})['then'](function(_0x333d57){if(_0x5169e3[_0x88c7('0x44')][_0x88c7('0x48')]===_0x88c7('0x49')){fs[_0x88c7('0x4d')](_0x333d57[_0x88c7('0x4a')],parseInt(_0x88c7('0x4e'),0x8));}var _0x3267f4=_0x5169e3[_0x88c7('0x4f')][_0x88c7('0x50')]({'plain':!![]});if(!_0x3267f4)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x3267f4[_0x88c7('0x51')]==='user'){var _0x2b65c0=_0x333d57[_0x88c7('0x50')]({'plain':!![]});return db['UserProfileSection'][_0x88c7('0x43')]({'where':{'name':_0x88c7('0x22'),'userProfileId':_0x3267f4[_0x88c7('0x52')]},'raw':!![]})[_0x88c7('0x20')](function(_0x80f1b6){if(_0x80f1b6&&_0x80f1b6[_0x88c7('0x53')]===0x0){return db[_0x88c7('0x54')][_0x88c7('0x45')]({'name':_0x2b65c0[_0x88c7('0x25')],'resourceId':_0x2b65c0['id'],'type':_0x80f1b6['name'],'sectionId':_0x80f1b6['id']},{})['then'](function(){return _0x333d57;});}else{return _0x333d57;}})['catch'](function(_0x226998){logger[_0x88c7('0x23')](_0x88c7('0x55'),_0x226998);});}return _0x333d57;});})[_0x88c7('0x20')](respondWithResult(_0x1198dd,0xc9))[_0x88c7('0x3f')](handleError(_0x1198dd,null));};exports['destroy']=function(_0x135d8e,_0x3e5ae4,_0x5509d3){var _0x73e991;return db[_0x88c7('0x29')][_0x88c7('0x43')]({'where':{'id':_0x135d8e[_0x88c7('0x41')]['id']}})[_0x88c7('0x20')](function(_0x4d1a1d){if(_0x4d1a1d){return db[_0x88c7('0x46')][_0x88c7('0x47')](function(_0x1d13bf){return _0x4d1a1d[_0x88c7('0x21')]({'transaction':_0x1d13bf,'raw':!![]})[_0x88c7('0x20')](function(_0x2aa760){if(_0x2aa760[_0x88c7('0x4a')]){fs[_0x88c7('0x56')](_0x2aa760[_0x88c7('0x4a')])[_0x88c7('0x57')](function(_0x93c477){fs[_0x88c7('0x58')](path[_0x88c7('0x59')](_0x2aa760[_0x88c7('0x4a')],_0x93c477));});fs['rmdirSync'](_0x2aa760[_0x88c7('0x4a')]);}return _0x2aa760;});})[_0x88c7('0x3f')](function(_0x722554){throw new db[(_0x88c7('0x5a'))][(_0x88c7('0x5b'))](_0x722554[_0x88c7('0x5c')]);});}})[_0x88c7('0x20')](handleEntityNotFound(_0x3e5ae4,null))[_0x88c7('0x20')](removeEntity(_0x3e5ae4,null))['catch'](handleError(_0x3e5ae4,null));};exports[_0x88c7('0x5d')]=function(_0x5b5043,_0x4f84df,_0x589e9d){return db[_0x88c7('0x46')][_0x88c7('0x47')](function(_0x1bc1c1){var _0xf329e3;return db[_0x88c7('0x29')][_0x88c7('0x43')]({'where':{'id':_0x5b5043[_0x88c7('0x41')]['id']}})[_0x88c7('0x20')](function(_0x1f47fe){if(_0x1f47fe){_0xf329e3=_0x1f47fe;return _0x1f47fe[_0x88c7('0x5d')](_0x5b5043[_0x88c7('0x44')]['id'],{'transaction':_0x1bc1c1});}})[_0x88c7('0x20')](function(_0x2ef5c0){if(_0x2ef5c0){return db[_0x88c7('0x5e')][_0x88c7('0x5f')]({'where':{'id':_0x5b5043[_0x88c7('0x44')]['id']},'attributes':['id',_0x88c7('0x25'),_0x88c7('0x60'),_0x88c7('0x61'),'createdAt'],'raw':!![]});}})['then'](function(_0x30e3db){if(_0x30e3db){var _0x3a57ec=path[_0x88c7('0x59')](config[_0x88c7('0x4b')],_0x88c7('0x62'),util[_0x88c7('0x63')](_0x88c7('0x64'),path['basename'](_0x30e3db['save_name'],path[_0x88c7('0x65')](_0x30e3db[_0x88c7('0x60')])),_0x30e3db[_0x88c7('0x61')]));var _0x2a671b=path[_0x88c7('0x59')](config[_0x88c7('0x4b')],_0x88c7('0x4c'),_0xf329e3[_0x88c7('0x25')],util[_0x88c7('0x63')](_0x88c7('0x64'),_0x30e3db[_0x88c7('0x25')],_0x30e3db['converted_format']));fs[_0x88c7('0x66')](_0x3a57ec,_0x2a671b);return _0x30e3db;}})['catch'](function(_0x32960d){throw new db[(_0x88c7('0x5a'))][(_0x88c7('0x5b'))](_0x32960d[_0x88c7('0x5c')]);});})['then'](handleEntityNotFound(_0x4f84df,null))['then'](respondWithResult(_0x4f84df,0xc9))[_0x88c7('0x3f')](handleError(_0x4f84df,null));};exports['removeSound']=function(_0x12d919,_0x2530c5,_0x2767ef){return db[_0x88c7('0x46')][_0x88c7('0x47')](function(_0x4bafaa){var _0x10f0ec;return db[_0x88c7('0x29')][_0x88c7('0x5f')]({'where':{'id':_0x12d919[_0x88c7('0x41')]['id']}})[_0x88c7('0x20')](handleEntityNotFound(_0x2530c5,null))[_0x88c7('0x20')](function(_0x30541b){if(_0x30541b){_0x10f0ec=_0x30541b;return _0x30541b['removeSound'](_0x12d919[_0x88c7('0x41')][_0x88c7('0x67')]);}})['then'](function(_0x426871){if(_0x426871){return db[_0x88c7('0x5e')][_0x88c7('0x5f')]({'where':{'id':_0x12d919[_0x88c7('0x41')][_0x88c7('0x67')]},'attributes':['id',_0x88c7('0x25'),_0x88c7('0x60'),'converted_format',_0x88c7('0x68')],'raw':!![]});}})[_0x88c7('0x20')](function(_0x5a2e59){if(_0x5a2e59){fs[_0x88c7('0x58')](path[_0x88c7('0x59')](_0x10f0ec[_0x88c7('0x4a')],util[_0x88c7('0x63')](_0x88c7('0x64'),_0x5a2e59[_0x88c7('0x25')],_0x5a2e59[_0x88c7('0x61')])));return _0x5a2e59;}})[_0x88c7('0x3f')](function(_0x2ca81d){throw new db[(_0x88c7('0x5a'))][(_0x88c7('0x5b'))](_0x2ca81d[_0x88c7('0x5c')]);});})[_0x88c7('0x20')](handleEntityNotFound(_0x2530c5,null))[_0x88c7('0x20')](respondWithStatusCode(_0x2530c5,0xcc))[_0x88c7('0x3f')](handleError(_0x2530c5,null));};exports[_0x88c7('0x69')]=function(_0x2b04f3,_0x27e2e8,_0x135656){var _0x23e7b8={};var _0x1088ed={};var _0x1ed351;var _0x48d807;return db['VoiceMusicOnHold'][_0x88c7('0x5f')]({'where':{'id':_0x2b04f3['params']['id']}})[_0x88c7('0x20')](handleEntityNotFound(_0x27e2e8,null))[_0x88c7('0x20')](function(_0x1500fb){if(_0x1500fb){_0x1ed351=_0x1500fb;_0x1088ed[_0x88c7('0x2d')]=_[_0x88c7('0x2f')](db[_0x88c7('0x5e')][_0x88c7('0x2a')]);_0x1088ed[_0x88c7('0x2e')]=_[_0x88c7('0x2f')](_0x2b04f3[_0x88c7('0x2e')]);_0x1088ed[_0x88c7('0x30')]=_[_0x88c7('0x31')](_0x1088ed[_0x88c7('0x2d')],_0x1088ed[_0x88c7('0x2e')]);_0x23e7b8[_0x88c7('0x33')]=_[_0x88c7('0x31')](_0x1088ed['model'],qs[_0x88c7('0x32')](_0x2b04f3[_0x88c7('0x2e')]['fields']));_0x23e7b8['attributes']=_0x23e7b8[_0x88c7('0x33')][_0x88c7('0x34')]?_0x23e7b8[_0x88c7('0x33')]:_0x1088ed['model'];_0x23e7b8[_0x88c7('0x6a')]=qs[_0x88c7('0x37')](_0x2b04f3[_0x88c7('0x2e')][_0x88c7('0x37')]);_0x23e7b8[_0x88c7('0x38')]=qs[_0x88c7('0x30')](_['pick'](_0x2b04f3[_0x88c7('0x2e')],_0x1088ed['filters']));if(_0x2b04f3[_0x88c7('0x2e')][_0x88c7('0x39')]){_0x23e7b8[_0x88c7('0x38')]=_[_0x88c7('0x3a')](_0x23e7b8[_0x88c7('0x38')],{'$or':_[_0x88c7('0x28')](_0x23e7b8[_0x88c7('0x33')],function(_0xbe63bd){var _0x52eb8b={};_0x52eb8b[_0xbe63bd]={'$like':'%'+_0x2b04f3[_0x88c7('0x2e')][_0x88c7('0x39')]+'%'};return _0x52eb8b;})});}_0x23e7b8=_[_0x88c7('0x3a')]({},_0x23e7b8,_0x2b04f3['options']);return _0x1ed351[_0x88c7('0x69')](_0x23e7b8);}})[_0x88c7('0x20')](function(_0xb08fa2){if(_0xb08fa2){_0x48d807=_0xb08fa2['length'];if(!_0x2b04f3[_0x88c7('0x2e')][_0x88c7('0x35')]('nolimit')){_0x23e7b8[_0x88c7('0x19')]=qs[_0x88c7('0x19')](_0x2b04f3[_0x88c7('0x2e')]['limit']);_0x23e7b8[_0x88c7('0x17')]=qs['offset'](_0x2b04f3[_0x88c7('0x2e')][_0x88c7('0x17')]);}return _0x1ed351[_0x88c7('0x69')](_0x23e7b8);}})[_0x88c7('0x20')](function(_0x4b59f4){if(_0x4b59f4){return _0x4b59f4?{'count':_0x48d807,'rows':_0x4b59f4}:null;}})['then'](respondWithResult(_0x27e2e8,null))['catch'](handleError(_0x27e2e8,null));};