45e79833a6557784742681b2dd9d3d438e91de1b
[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 _0x80e0=['Sequelize','ValidationError','Sound','findOne','save_name','converted_format','createdAt','server/files/sounds/converted','format','%s.%s','basename','extname','symlinkSync','removeSound','id2','getSounds','hasOwnProperty','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','squel','crypto','jsforce','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','../../config/license/util','sendStatus','status','end','json','offset','limit','undefined','count','set','reject','save','update','then','destroy','get','MusicOnHolds','stack','name','render','contact','message','agent','index','VoiceMusicOnHold','fieldName','type','map','keys','query','intersection','model','fields','attributes','length','nolimit','order','sort','filters','pick','filter','where','merge','includeAll','include','findAll','rows','catch','params','rawAttributes','options','body','find','transaction','mode','directory','join','root','server/files/moh','create','files','mkdirSync','0777','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','error','sequelize','readdirSync','forEach','unlinkSync'];(function(_0x2a84d6,_0x538497){var _0x55c2ea=function(_0x3f5d46){while(--_0x3f5d46){_0x2a84d6['push'](_0x2a84d6['shift']());}};_0x55c2ea(++_0x538497);}(_0x80e0,0x161));var _0x080e=function(_0x23e0c6,_0x467271){_0x23e0c6=_0x23e0c6-0x0;var _0x53671b=_0x80e0[_0x23e0c6];return _0x53671b;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x080e('0x0'));var jsonpatch=require(_0x080e('0x1'));var rp=require(_0x080e('0x2'));var moment=require(_0x080e('0x3'));var BPromise=require(_0x080e('0x4'));var Mustache=require(_0x080e('0x5'));var util=require(_0x080e('0x6'));var path=require(_0x080e('0x7'));var sox=require(_0x080e('0x8'));var csv=require(_0x080e('0x9'));var ejs=require(_0x080e('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0x080e('0xb'));var crypto=require(_0x080e('0xc'));var jsforce=require(_0x080e('0xd'));var deskjs=require('desk.js');var toCsv=require(_0x080e('0x9'));var querystring=require(_0x080e('0xe'));var Papa=require(_0x080e('0xf'));var Redis=require('ioredis');var authService=require(_0x080e('0x10'));var qs=require(_0x080e('0x11'));var as=require(_0x080e('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x080e('0x13'))('api');var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x080e('0x14'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0xf9ca6a,_0x1c48ee){_0x1c48ee=_0x1c48ee||0xcc;return function(_0x18ae8a){if(_0x18ae8a){return _0xf9ca6a[_0x080e('0x15')](_0x1c48ee);}return _0xf9ca6a[_0x080e('0x16')](_0x1c48ee)[_0x080e('0x17')]();};}function respondWithResult(_0x13abcb,_0x1cc766){_0x1cc766=_0x1cc766||0xc8;return function(_0x4775fe){if(_0x4775fe){return _0x13abcb[_0x080e('0x16')](_0x1cc766)[_0x080e('0x18')](_0x4775fe);}};}function respondWithFilteredResult(_0x497362,_0x2270c2){return function(_0x37cec1){if(_0x37cec1){var _0x17be2c=typeof _0x2270c2[_0x080e('0x19')]==='undefined'&&typeof _0x2270c2[_0x080e('0x1a')]===_0x080e('0x1b');var _0x39b28a=_0x37cec1[_0x080e('0x1c')];var _0x19c0f2=_0x17be2c?0x0:_0x2270c2[_0x080e('0x19')];var _0x42dda1=_0x17be2c?_0x37cec1[_0x080e('0x1c')]:_0x2270c2[_0x080e('0x19')]+_0x2270c2['limit'];var _0x4824ba;if(_0x42dda1>=_0x39b28a){_0x42dda1=_0x39b28a;_0x4824ba=0xc8;}else{_0x4824ba=0xce;}_0x497362['status'](_0x4824ba);return _0x497362[_0x080e('0x1d')]('Content-Range',_0x19c0f2+'-'+_0x42dda1+'/'+_0x39b28a)[_0x080e('0x18')](_0x37cec1);}return null;};}function patchUpdates(_0xbeba2){return function(_0x25d4b2){try{jsonpatch['apply'](_0x25d4b2,_0xbeba2,!![]);}catch(_0x5c99c0){return BPromise[_0x080e('0x1e')](_0x5c99c0);}return _0x25d4b2[_0x080e('0x1f')]();};}function saveUpdates(_0x57e359,_0x30d4d3){return function(_0x1ea27b){if(_0x1ea27b){return _0x1ea27b[_0x080e('0x20')](_0x57e359)[_0x080e('0x21')](function(_0x1dbf98){return _0x1dbf98;});}return null;};}function removeEntity(_0x4f0507,_0x1c8d9e){return function(_0x243fbc){if(_0x243fbc){return _0x243fbc[_0x080e('0x22')]()['then'](function(){var _0x10dc49=_0x243fbc[_0x080e('0x23')]({'plain':!![]});var _0xd41acc=_0x080e('0x24');return db['UserProfileResource'][_0x080e('0x22')]({'where':{'type':_0xd41acc,'resourceId':_0x10dc49['id']}})['then'](function(){return _0x243fbc;});})[_0x080e('0x21')](function(){_0x4f0507[_0x080e('0x16')](0xcc)['end']();});}};}function handleEntityNotFound(_0x8ac987,_0x2796cf){return function(_0x243f7a){if(!_0x243f7a){_0x8ac987['sendStatus'](0x194);}return _0x243f7a;};}function handleError(_0x234736,_0x5c44ca){_0x5c44ca=_0x5c44ca||0x1f4;return function(_0xacc950){logger['error'](_0xacc950[_0x080e('0x25')]);if(_0xacc950[_0x080e('0x26')]){delete _0xacc950['name'];}_0x234736[_0x080e('0x16')](_0x5c44ca)['send'](_0xacc950);};}function getMustacheRender(_0x369cc7,_0x10708f){return Mustache[_0x080e('0x27')](_0x369cc7,_['merge'](_0x10708f['body'],{'contact':_0x10708f[_0x080e('0x28')],'message':_0x10708f[_0x080e('0x29')],'agent':_0x10708f[_0x080e('0x2a')],'interaction':_0x10708f['interaction'],'account':_0x10708f['account']}))||'';}exports[_0x080e('0x2b')]=function(_0x2a3866,_0x4d303b){var _0x4823a1={},_0x217584={},_0x9a243e={'count':0x0,'rows':[]};var _0x51e712=_['map'](db[_0x080e('0x2c')]['rawAttributes'],function(_0x3b41fa){return{'name':_0x3b41fa[_0x080e('0x2d')],'type':_0x3b41fa[_0x080e('0x2e')]['key']};});_0x217584['model']=_[_0x080e('0x2f')](_0x51e712,_0x080e('0x26'));_0x217584['query']=_[_0x080e('0x30')](_0x2a3866[_0x080e('0x31')]);_0x217584['filters']=_[_0x080e('0x32')](_0x217584[_0x080e('0x33')],_0x217584[_0x080e('0x31')]);_0x4823a1['attributes']=_[_0x080e('0x32')](_0x217584[_0x080e('0x33')],qs[_0x080e('0x34')](_0x2a3866[_0x080e('0x31')][_0x080e('0x34')]));_0x4823a1['attributes']=_0x4823a1[_0x080e('0x35')][_0x080e('0x36')]?_0x4823a1[_0x080e('0x35')]:_0x217584[_0x080e('0x33')];if(!_0x2a3866[_0x080e('0x31')]['hasOwnProperty'](_0x080e('0x37'))){_0x4823a1[_0x080e('0x1a')]=qs[_0x080e('0x1a')](_0x2a3866['query'][_0x080e('0x1a')]);_0x4823a1[_0x080e('0x19')]=qs[_0x080e('0x19')](_0x2a3866[_0x080e('0x31')][_0x080e('0x19')]);}_0x4823a1[_0x080e('0x38')]=qs[_0x080e('0x39')](_0x2a3866[_0x080e('0x31')][_0x080e('0x39')]);delete _0x2a3866['query'][_0x080e('0x39')];_0x4823a1['where']=qs[_0x080e('0x3a')](_[_0x080e('0x3b')](_0x2a3866[_0x080e('0x31')],_0x217584[_0x080e('0x3a')]),_0x51e712);if(_0x2a3866[_0x080e('0x31')][_0x080e('0x3c')]){_0x4823a1[_0x080e('0x3d')]=_[_0x080e('0x3e')](_0x4823a1[_0x080e('0x3d')],{'$or':_[_0x080e('0x2f')](_0x51e712,function(_0x458d1b){if(_0x458d1b[_0x080e('0x2e')]!=='VIRTUAL'){var _0x4a2fab={};_0x4a2fab[_0x458d1b[_0x080e('0x26')]]={'$like':'%'+_0x2a3866[_0x080e('0x31')]['filter']+'%'};return _0x4a2fab;}})});}_0x4823a1=_['merge']({},_0x4823a1,_0x2a3866['options']);var _0x5dd707={'where':_0x4823a1[_0x080e('0x3d')]};return db['VoiceMusicOnHold'][_0x080e('0x1c')](_0x5dd707)[_0x080e('0x21')](function(_0x3e694b){_0x9a243e[_0x080e('0x1c')]=_0x3e694b;if(_0x2a3866[_0x080e('0x31')][_0x080e('0x3f')]){_0x4823a1[_0x080e('0x40')]=[{'all':!![]}];}return db[_0x080e('0x2c')][_0x080e('0x41')](_0x4823a1);})['then'](function(_0x5a6d50){_0x9a243e[_0x080e('0x42')]=_0x5a6d50;return _0x9a243e;})[_0x080e('0x21')](respondWithFilteredResult(_0x4d303b,_0x4823a1))[_0x080e('0x43')](handleError(_0x4d303b,null));};exports['show']=function(_0x126f0d,_0x4a4746){var _0x1f0dd1={'raw':![],'where':{'id':_0x126f0d[_0x080e('0x44')]['id']}},_0x35b57d={};_0x35b57d[_0x080e('0x33')]=_[_0x080e('0x30')](db[_0x080e('0x2c')][_0x080e('0x45')]);_0x35b57d[_0x080e('0x31')]=_[_0x080e('0x30')](_0x126f0d['query']);_0x35b57d[_0x080e('0x3a')]=_[_0x080e('0x32')](_0x35b57d['model'],_0x35b57d['query']);_0x1f0dd1[_0x080e('0x35')]=_[_0x080e('0x32')](_0x35b57d[_0x080e('0x33')],qs[_0x080e('0x34')](_0x126f0d[_0x080e('0x31')][_0x080e('0x34')]));_0x1f0dd1['attributes']=_0x1f0dd1['attributes'][_0x080e('0x36')]?_0x1f0dd1[_0x080e('0x35')]:_0x35b57d['model'];if(_0x126f0d[_0x080e('0x31')][_0x080e('0x3f')]){_0x1f0dd1[_0x080e('0x40')]=[{'all':!![]}];}_0x1f0dd1=_['merge']({},_0x1f0dd1,_0x126f0d[_0x080e('0x46')]);return db[_0x080e('0x2c')]['find'](_0x1f0dd1)['then'](handleEntityNotFound(_0x4a4746,null))[_0x080e('0x21')](respondWithResult(_0x4a4746,null))[_0x080e('0x43')](handleError(_0x4a4746,null));};exports[_0x080e('0x20')]=function(_0xf9faae,_0x1a62db){if(_0xf9faae['body']['id']){delete _0xf9faae[_0x080e('0x47')]['id'];}return db[_0x080e('0x2c')][_0x080e('0x48')]({'where':{'id':_0xf9faae[_0x080e('0x44')]['id']}})[_0x080e('0x21')](handleEntityNotFound(_0x1a62db,null))['then'](saveUpdates(_0xf9faae['body'],null))[_0x080e('0x21')](respondWithResult(_0x1a62db,null))['catch'](handleError(_0x1a62db,null));};exports['create']=function(_0x101084,_0x27ea49,_0x4df2c8){return db['sequelize'][_0x080e('0x49')](function(_0x494bfd){if(_0x101084['body'][_0x080e('0x4a')]==='files'){_0x101084[_0x080e('0x47')][_0x080e('0x4b')]=path[_0x080e('0x4c')](config[_0x080e('0x4d')],_0x080e('0x4e'),_0x101084[_0x080e('0x47')][_0x080e('0x26')]);}return db['VoiceMusicOnHold'][_0x080e('0x4f')](_0x101084['body'],{'transaction':_0x494bfd})[_0x080e('0x21')](function(_0x1742b8){if(_0x101084['body']['mode']===_0x080e('0x50')){fs[_0x080e('0x51')](_0x1742b8[_0x080e('0x4b')],parseInt(_0x080e('0x52'),0x8));}var _0x1c14d7=_0x101084[_0x080e('0x53')][_0x080e('0x23')]({'plain':!![]});if(!_0x1c14d7)throw new Error(_0x080e('0x54'));if(_0x1c14d7[_0x080e('0x55')]===_0x080e('0x53')){var _0x178c1f=_0x1742b8['get']({'plain':!![]});return db[_0x080e('0x56')][_0x080e('0x48')]({'where':{'name':'MusicOnHolds','userProfileId':_0x1c14d7[_0x080e('0x57')]},'raw':!![]})[_0x080e('0x21')](function(_0x4eec79){if(_0x4eec79&&_0x4eec79[_0x080e('0x58')]===0x0){return db[_0x080e('0x59')][_0x080e('0x4f')]({'name':_0x178c1f[_0x080e('0x26')],'resourceId':_0x178c1f['id'],'type':_0x4eec79[_0x080e('0x26')],'sectionId':_0x4eec79['id']},{})['then'](function(){return _0x1742b8;});}else{return _0x1742b8;}})[_0x080e('0x43')](function(_0x28639c){logger[_0x080e('0x5a')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x28639c);});}return _0x1742b8;});})[_0x080e('0x21')](respondWithResult(_0x27ea49,0xc9))[_0x080e('0x43')](handleError(_0x27ea49,null));};exports[_0x080e('0x22')]=function(_0x44d5bc,_0x19caab,_0x297420){var _0x2d8efe;return db[_0x080e('0x2c')]['find']({'where':{'id':_0x44d5bc['params']['id']}})[_0x080e('0x21')](function(_0x5e154e){if(_0x5e154e){return db[_0x080e('0x5b')][_0x080e('0x49')](function(_0x1b9bbd){return _0x5e154e[_0x080e('0x22')]({'transaction':_0x1b9bbd,'raw':!![]})[_0x080e('0x21')](function(_0x4c5796){if(_0x4c5796[_0x080e('0x4b')]){fs[_0x080e('0x5c')](_0x4c5796[_0x080e('0x4b')])[_0x080e('0x5d')](function(_0x551752){fs[_0x080e('0x5e')](path[_0x080e('0x4c')](_0x4c5796[_0x080e('0x4b')],_0x551752));});fs['rmdirSync'](_0x4c5796[_0x080e('0x4b')]);}return _0x4c5796;});})[_0x080e('0x43')](function(_0x523b16){throw new db[(_0x080e('0x5f'))][(_0x080e('0x60'))](_0x523b16['message']);});}})[_0x080e('0x21')](handleEntityNotFound(_0x19caab,null))[_0x080e('0x21')](removeEntity(_0x19caab,null))['catch'](handleError(_0x19caab,null));};exports['addSound']=function(_0x338a01,_0x22dfb9,_0x1c7385){return db[_0x080e('0x5b')][_0x080e('0x49')](function(_0x178281){var _0xbe50e1;return db['VoiceMusicOnHold']['find']({'where':{'id':_0x338a01[_0x080e('0x44')]['id']}})['then'](function(_0x997365){if(_0x997365){_0xbe50e1=_0x997365;return _0x997365['addSound'](_0x338a01[_0x080e('0x47')]['id'],{'transaction':_0x178281});}})[_0x080e('0x21')](function(_0x525ae0){if(_0x525ae0){return db[_0x080e('0x61')][_0x080e('0x62')]({'where':{'id':_0x338a01[_0x080e('0x47')]['id']},'attributes':['id',_0x080e('0x26'),_0x080e('0x63'),_0x080e('0x64'),_0x080e('0x65')],'raw':!![]});}})[_0x080e('0x21')](function(_0x3a139a){if(_0x3a139a){var _0x2718a0=path['join'](config[_0x080e('0x4d')],_0x080e('0x66'),util[_0x080e('0x67')](_0x080e('0x68'),path[_0x080e('0x69')](_0x3a139a[_0x080e('0x63')],path[_0x080e('0x6a')](_0x3a139a[_0x080e('0x63')])),_0x3a139a[_0x080e('0x64')]));var _0x5b5713=path[_0x080e('0x4c')](config['root'],'server/files/moh',_0xbe50e1[_0x080e('0x26')],util[_0x080e('0x67')](_0x080e('0x68'),_0x3a139a[_0x080e('0x26')],_0x3a139a[_0x080e('0x64')]));fs[_0x080e('0x6b')](_0x2718a0,_0x5b5713);return _0x3a139a;}})[_0x080e('0x43')](function(_0x15e012){throw new db[(_0x080e('0x5f'))][(_0x080e('0x60'))](_0x15e012[_0x080e('0x29')]);});})['then'](handleEntityNotFound(_0x22dfb9,null))[_0x080e('0x21')](respondWithResult(_0x22dfb9,0xc9))['catch'](handleError(_0x22dfb9,null));};exports[_0x080e('0x6c')]=function(_0x685bdf,_0x5c6534,_0x29b932){return db[_0x080e('0x5b')][_0x080e('0x49')](function(_0x578544){var _0x193ad0;return db[_0x080e('0x2c')][_0x080e('0x62')]({'where':{'id':_0x685bdf[_0x080e('0x44')]['id']}})['then'](handleEntityNotFound(_0x5c6534,null))[_0x080e('0x21')](function(_0x29265a){if(_0x29265a){_0x193ad0=_0x29265a;return _0x29265a[_0x080e('0x6c')](_0x685bdf[_0x080e('0x44')][_0x080e('0x6d')]);}})[_0x080e('0x21')](function(_0x1d2fee){if(_0x1d2fee){return db[_0x080e('0x61')][_0x080e('0x62')]({'where':{'id':_0x685bdf['params'][_0x080e('0x6d')]},'attributes':['id',_0x080e('0x26'),'save_name',_0x080e('0x64'),_0x080e('0x65')],'raw':!![]});}})[_0x080e('0x21')](function(_0x4f8251){if(_0x4f8251){fs[_0x080e('0x5e')](path[_0x080e('0x4c')](_0x193ad0['directory'],util['format'](_0x080e('0x68'),_0x4f8251[_0x080e('0x26')],_0x4f8251[_0x080e('0x64')])));return _0x4f8251;}})[_0x080e('0x43')](function(_0x55666c){throw new db[(_0x080e('0x5f'))][(_0x080e('0x60'))](_0x55666c[_0x080e('0x29')]);});})[_0x080e('0x21')](handleEntityNotFound(_0x5c6534,null))['then'](respondWithStatusCode(_0x5c6534,0xcc))[_0x080e('0x43')](handleError(_0x5c6534,null));};exports[_0x080e('0x6e')]=function(_0x1466ca,_0x8688a,_0x442304){var _0x1d8126={};var _0xd09c82={};var _0x503ca1;var _0x475f22;return db[_0x080e('0x2c')][_0x080e('0x62')]({'where':{'id':_0x1466ca[_0x080e('0x44')]['id']}})[_0x080e('0x21')](handleEntityNotFound(_0x8688a,null))[_0x080e('0x21')](function(_0x5dfd3e){if(_0x5dfd3e){_0x503ca1=_0x5dfd3e;_0xd09c82[_0x080e('0x33')]=_[_0x080e('0x30')](db['Sound']['rawAttributes']);_0xd09c82[_0x080e('0x31')]=_[_0x080e('0x30')](_0x1466ca[_0x080e('0x31')]);_0xd09c82[_0x080e('0x3a')]=_[_0x080e('0x32')](_0xd09c82['model'],_0xd09c82[_0x080e('0x31')]);_0x1d8126[_0x080e('0x35')]=_[_0x080e('0x32')](_0xd09c82['model'],qs[_0x080e('0x34')](_0x1466ca[_0x080e('0x31')][_0x080e('0x34')]));_0x1d8126[_0x080e('0x35')]=_0x1d8126['attributes'][_0x080e('0x36')]?_0x1d8126[_0x080e('0x35')]:_0xd09c82['model'];_0x1d8126['order']=qs[_0x080e('0x39')](_0x1466ca[_0x080e('0x31')][_0x080e('0x39')]);_0x1d8126[_0x080e('0x3d')]=qs[_0x080e('0x3a')](_[_0x080e('0x3b')](_0x1466ca[_0x080e('0x31')],_0xd09c82['filters']));if(_0x1466ca['query']['filter']){_0x1d8126[_0x080e('0x3d')]=_[_0x080e('0x3e')](_0x1d8126[_0x080e('0x3d')],{'$or':_['map'](_0x1d8126['attributes'],function(_0xf9a29e){var _0x296875={};_0x296875[_0xf9a29e]={'$like':'%'+_0x1466ca[_0x080e('0x31')][_0x080e('0x3c')]+'%'};return _0x296875;})});}_0x1d8126=_[_0x080e('0x3e')]({},_0x1d8126,_0x1466ca[_0x080e('0x46')]);return _0x503ca1[_0x080e('0x6e')](_0x1d8126);}})[_0x080e('0x21')](function(_0x2eac06){if(_0x2eac06){_0x475f22=_0x2eac06[_0x080e('0x36')];if(!_0x1466ca['query'][_0x080e('0x6f')]('nolimit')){_0x1d8126['limit']=qs[_0x080e('0x1a')](_0x1466ca[_0x080e('0x31')][_0x080e('0x1a')]);_0x1d8126[_0x080e('0x19')]=qs['offset'](_0x1466ca[_0x080e('0x31')][_0x080e('0x19')]);}return _0x503ca1[_0x080e('0x6e')](_0x1d8126);}})[_0x080e('0x21')](function(_0xb73cb7){if(_0xb73cb7){return _0xb73cb7?{'count':_0x475f22,'rows':_0xb73cb7}:null;}})[_0x080e('0x21')](respondWithResult(_0x8688a,null))[_0x080e('0x43')](handleError(_0x8688a,null));};