Built motion from commit 25580385.|2.6.2
[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 _0xd804=['includeAll','include','catch','show','params','keys','options','find','body','create','sequelize','transaction','mode','directory','server/files/moh','mkdirSync','0777','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','userProfileId','autoAssociation','readdirSync','forEach','unlinkSync','join','rmdirSync','Sequelize','message','addSound','Sound','save_name','converted_format','createdAt','server/files/sounds/converted','format','%s.%s','extname','root','ValidationError','removeSound','findOne','id2','getSounds','eml-format','zip-dir','fast-json-patch','moment','path','sox','to-csv','ejs','fs-extra','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/environment','../../mysqldb','sendStatus','status','json','offset','undefined','count','set','Content-Range','apply','reject','save','update','then','get','MusicOnHolds','UserProfileResource','destroy','end','stack','name','send','index','map','rawAttributes','fieldName','key','model','query','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','limit','order','sort','where','pick','merge','type','filter','VoiceMusicOnHold'];(function(_0x15dda5,_0x4a1121){var _0x3b29c2=function(_0x406889){while(--_0x406889){_0x15dda5['push'](_0x15dda5['shift']());}};_0x3b29c2(++_0x4a1121);}(_0xd804,0x176));var _0x4d80=function(_0x5b3dfb,_0x1b629c){_0x5b3dfb=_0x5b3dfb-0x0;var _0x503711=_0xd804[_0x5b3dfb];return _0x503711;};'use strict';var emlformat=require(_0x4d80('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x4d80('0x1'));var jsonpatch=require(_0x4d80('0x2'));var rp=require('request-promise');var moment=require(_0x4d80('0x3'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require('util');var path=require(_0x4d80('0x4'));var sox=require(_0x4d80('0x5'));var csv=require(_0x4d80('0x6'));var ejs=require(_0x4d80('0x7'));var fs=require('fs');var fs_extra=require(_0x4d80('0x8'));var _=require('lodash');var squel=require(_0x4d80('0x9'));var crypto=require(_0x4d80('0xa'));var jsforce=require('jsforce');var deskjs=require(_0x4d80('0xb'));var toCsv=require('to-csv');var querystring=require(_0x4d80('0xc'));var Papa=require(_0x4d80('0xd'));var Redis=require(_0x4d80('0xe'));var authService=require(_0x4d80('0xf'));var qs=require(_0x4d80('0x10'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x4d80('0x11'));var logger=require(_0x4d80('0x12'))(_0x4d80('0x13'));var utils=require('../../config/utils');var config=require(_0x4d80('0x14'));var licenseUtil=require('../../config/license/util');var db=require(_0x4d80('0x15'))['db'];function respondWithStatusCode(_0x4bad00,_0x4cb6bd){_0x4cb6bd=_0x4cb6bd||0xcc;return function(_0x2cfd31){if(_0x2cfd31){return _0x4bad00[_0x4d80('0x16')](_0x4cb6bd);}return _0x4bad00[_0x4d80('0x17')](_0x4cb6bd)['end']();};}function respondWithResult(_0x1167e7,_0x238d25){_0x238d25=_0x238d25||0xc8;return function(_0x5eeb35){if(_0x5eeb35){return _0x1167e7['status'](_0x238d25)[_0x4d80('0x18')](_0x5eeb35);}};}function respondWithFilteredResult(_0xc75d36,_0x52532e){return function(_0x581d58){if(_0x581d58){var _0x3a2de1=typeof _0x52532e[_0x4d80('0x19')]==='undefined'&&typeof _0x52532e['limit']===_0x4d80('0x1a');var _0x4b14c9=_0x581d58['count'];var _0x5aad86=_0x3a2de1?0x0:_0x52532e['offset'];var _0x596fd8=_0x3a2de1?_0x581d58[_0x4d80('0x1b')]:_0x52532e[_0x4d80('0x19')]+_0x52532e['limit'];var _0x1afb1b;if(_0x596fd8>=_0x4b14c9){_0x596fd8=_0x4b14c9;_0x1afb1b=0xc8;}else{_0x1afb1b=0xce;}_0xc75d36[_0x4d80('0x17')](_0x1afb1b);return _0xc75d36[_0x4d80('0x1c')](_0x4d80('0x1d'),_0x5aad86+'-'+_0x596fd8+'/'+_0x4b14c9)['json'](_0x581d58);}return null;};}function patchUpdates(_0x5702eb){return function(_0x42c2c6){try{jsonpatch[_0x4d80('0x1e')](_0x42c2c6,_0x5702eb,!![]);}catch(_0x225f4b){return BPromise[_0x4d80('0x1f')](_0x225f4b);}return _0x42c2c6[_0x4d80('0x20')]();};}function saveUpdates(_0x241178,_0x19f998){return function(_0x3f33b5){if(_0x3f33b5){return _0x3f33b5[_0x4d80('0x21')](_0x241178)[_0x4d80('0x22')](function(_0x3f8668){return _0x3f8668;});}return null;};}function removeEntity(_0xdf2f46,_0x4f263e){return function(_0x167da8){if(_0x167da8){return _0x167da8['destroy']()[_0x4d80('0x22')](function(){var _0x5ef07a=_0x167da8[_0x4d80('0x23')]({'plain':!![]});var _0x5c5f4d=_0x4d80('0x24');return db[_0x4d80('0x25')][_0x4d80('0x26')]({'where':{'type':_0x5c5f4d,'resourceId':_0x5ef07a['id']}})[_0x4d80('0x22')](function(){return _0x167da8;});})['then'](function(){_0xdf2f46[_0x4d80('0x17')](0xcc)[_0x4d80('0x27')]();});}};}function handleEntityNotFound(_0x5243cd,_0x4dc0e4){return function(_0x228cdc){if(!_0x228cdc){_0x5243cd[_0x4d80('0x16')](0x194);}return _0x228cdc;};}function handleError(_0x442b33,_0x4d472d){_0x4d472d=_0x4d472d||0x1f4;return function(_0xa7dbd0){logger['error'](_0xa7dbd0[_0x4d80('0x28')]);if(_0xa7dbd0[_0x4d80('0x29')]){delete _0xa7dbd0[_0x4d80('0x29')];}_0x442b33[_0x4d80('0x17')](_0x4d472d)[_0x4d80('0x2a')](_0xa7dbd0);};}exports[_0x4d80('0x2b')]=function(_0x5ce8e7,_0x1801fc){var _0x9cf3c5={},_0x5a4e44={},_0x561001={'count':0x0,'rows':[]};var _0x25468a=_[_0x4d80('0x2c')](db['VoiceMusicOnHold'][_0x4d80('0x2d')],function(_0x4901e7){return{'name':_0x4901e7[_0x4d80('0x2e')],'type':_0x4901e7['type'][_0x4d80('0x2f')]};});_0x5a4e44[_0x4d80('0x30')]=_[_0x4d80('0x2c')](_0x25468a,_0x4d80('0x29'));_0x5a4e44[_0x4d80('0x31')]=_['keys'](_0x5ce8e7[_0x4d80('0x31')]);_0x5a4e44[_0x4d80('0x32')]=_['intersection'](_0x5a4e44[_0x4d80('0x30')],_0x5a4e44[_0x4d80('0x31')]);_0x9cf3c5[_0x4d80('0x33')]=_[_0x4d80('0x34')](_0x5a4e44[_0x4d80('0x30')],qs['fields'](_0x5ce8e7[_0x4d80('0x31')][_0x4d80('0x35')]));_0x9cf3c5['attributes']=_0x9cf3c5['attributes'][_0x4d80('0x36')]?_0x9cf3c5['attributes']:_0x5a4e44[_0x4d80('0x30')];if(!_0x5ce8e7[_0x4d80('0x31')][_0x4d80('0x37')](_0x4d80('0x38'))){_0x9cf3c5['limit']=qs[_0x4d80('0x39')](_0x5ce8e7[_0x4d80('0x31')][_0x4d80('0x39')]);_0x9cf3c5[_0x4d80('0x19')]=qs['offset'](_0x5ce8e7[_0x4d80('0x31')][_0x4d80('0x19')]);}_0x9cf3c5[_0x4d80('0x3a')]=qs[_0x4d80('0x3b')](_0x5ce8e7[_0x4d80('0x31')]['sort']);delete _0x5ce8e7['query'][_0x4d80('0x3b')];_0x9cf3c5[_0x4d80('0x3c')]=qs[_0x4d80('0x32')](_[_0x4d80('0x3d')](_0x5ce8e7[_0x4d80('0x31')],_0x5a4e44[_0x4d80('0x32')]),_0x25468a);if(_0x5ce8e7['query']['filter']){_0x9cf3c5[_0x4d80('0x3c')]=_[_0x4d80('0x3e')](_0x9cf3c5[_0x4d80('0x3c')],{'$or':_[_0x4d80('0x2c')](_0x25468a,function(_0x51f643){if(_0x51f643[_0x4d80('0x3f')]!=='VIRTUAL'){var _0x50d5c9={};_0x50d5c9[_0x51f643[_0x4d80('0x29')]]={'$like':'%'+_0x5ce8e7[_0x4d80('0x31')][_0x4d80('0x40')]+'%'};return _0x50d5c9;}})});}_0x9cf3c5=_[_0x4d80('0x3e')]({},_0x9cf3c5,_0x5ce8e7['options']);var _0x48c154={'where':_0x9cf3c5['where']};return db[_0x4d80('0x41')]['count'](_0x48c154)['then'](function(_0x348e91){_0x561001[_0x4d80('0x1b')]=_0x348e91;if(_0x5ce8e7[_0x4d80('0x31')][_0x4d80('0x42')]){_0x9cf3c5[_0x4d80('0x43')]=[{'all':!![]}];}return db[_0x4d80('0x41')]['findAll'](_0x9cf3c5);})[_0x4d80('0x22')](function(_0x1c6222){_0x561001['rows']=_0x1c6222;return _0x561001;})[_0x4d80('0x22')](respondWithFilteredResult(_0x1801fc,_0x9cf3c5))[_0x4d80('0x44')](handleError(_0x1801fc,null));};exports[_0x4d80('0x45')]=function(_0x75a0cd,_0x5ca171){var _0xfe59a3={'raw':![],'where':{'id':_0x75a0cd[_0x4d80('0x46')]['id']}},_0x284d63={};_0x284d63[_0x4d80('0x30')]=_[_0x4d80('0x47')](db[_0x4d80('0x41')][_0x4d80('0x2d')]);_0x284d63[_0x4d80('0x31')]=_[_0x4d80('0x47')](_0x75a0cd[_0x4d80('0x31')]);_0x284d63['filters']=_[_0x4d80('0x34')](_0x284d63[_0x4d80('0x30')],_0x284d63[_0x4d80('0x31')]);_0xfe59a3[_0x4d80('0x33')]=_[_0x4d80('0x34')](_0x284d63[_0x4d80('0x30')],qs['fields'](_0x75a0cd[_0x4d80('0x31')][_0x4d80('0x35')]));_0xfe59a3[_0x4d80('0x33')]=_0xfe59a3[_0x4d80('0x33')][_0x4d80('0x36')]?_0xfe59a3['attributes']:_0x284d63[_0x4d80('0x30')];if(_0x75a0cd[_0x4d80('0x31')]['includeAll']){_0xfe59a3[_0x4d80('0x43')]=[{'all':!![]}];}_0xfe59a3=_[_0x4d80('0x3e')]({},_0xfe59a3,_0x75a0cd[_0x4d80('0x48')]);return db['VoiceMusicOnHold'][_0x4d80('0x49')](_0xfe59a3)[_0x4d80('0x22')](handleEntityNotFound(_0x5ca171,null))['then'](respondWithResult(_0x5ca171,null))[_0x4d80('0x44')](handleError(_0x5ca171,null));};exports[_0x4d80('0x21')]=function(_0x2b2738,_0x40aaef){if(_0x2b2738[_0x4d80('0x4a')]['id']){delete _0x2b2738['body']['id'];}return db['VoiceMusicOnHold']['find']({'where':{'id':_0x2b2738[_0x4d80('0x46')]['id']}})[_0x4d80('0x22')](handleEntityNotFound(_0x40aaef,null))[_0x4d80('0x22')](saveUpdates(_0x2b2738[_0x4d80('0x4a')],null))[_0x4d80('0x22')](respondWithResult(_0x40aaef,null))[_0x4d80('0x44')](handleError(_0x40aaef,null));};exports[_0x4d80('0x4b')]=function(_0x3993ae,_0x2c6355,_0x538e9e){return db[_0x4d80('0x4c')][_0x4d80('0x4d')](function(_0xbd0b80){if(_0x3993ae[_0x4d80('0x4a')][_0x4d80('0x4e')]==='files'){_0x3993ae[_0x4d80('0x4a')][_0x4d80('0x4f')]=path['join'](config['root'],_0x4d80('0x50'),_0x3993ae[_0x4d80('0x4a')][_0x4d80('0x29')]);}return db[_0x4d80('0x41')][_0x4d80('0x4b')](_0x3993ae['body'],{'transaction':_0xbd0b80})['then'](function(_0x591e85){if(_0x3993ae[_0x4d80('0x4a')][_0x4d80('0x4e')]==='files'){fs[_0x4d80('0x51')](_0x591e85[_0x4d80('0x4f')],parseInt(_0x4d80('0x52'),0x8));}var _0x2367b1=_0x3993ae[_0x4d80('0x53')][_0x4d80('0x23')]({'plain':!![]});if(!_0x2367b1)throw new Error(_0x4d80('0x54'));if(_0x2367b1['role']===_0x4d80('0x53')){var _0x39d859=_0x591e85[_0x4d80('0x23')]({'plain':!![]});return db[_0x4d80('0x55')]['find']({'where':{'name':'MusicOnHolds','userProfileId':_0x2367b1[_0x4d80('0x56')]},'raw':!![]})[_0x4d80('0x22')](function(_0x39c704){if(_0x39c704&&_0x39c704[_0x4d80('0x57')]===0x0){return db[_0x4d80('0x25')][_0x4d80('0x4b')]({'name':_0x39d859[_0x4d80('0x29')],'resourceId':_0x39d859['id'],'type':_0x39c704[_0x4d80('0x29')],'sectionId':_0x39c704['id']},{})[_0x4d80('0x22')](function(){return _0x591e85;});}else{return _0x591e85;}})[_0x4d80('0x44')](function(_0x373edd){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x373edd);});}return _0x591e85;});})[_0x4d80('0x22')](respondWithResult(_0x2c6355,0xc9))[_0x4d80('0x44')](handleError(_0x2c6355,null));};exports[_0x4d80('0x26')]=function(_0x4e004b,_0x1c1892,_0x1855fb){var _0x587882;return db[_0x4d80('0x41')][_0x4d80('0x49')]({'where':{'id':_0x4e004b[_0x4d80('0x46')]['id']}})['then'](function(_0x3b8575){if(_0x3b8575){return db[_0x4d80('0x4c')][_0x4d80('0x4d')](function(_0xc04f42){return _0x3b8575[_0x4d80('0x26')]({'transaction':_0xc04f42,'raw':!![]})[_0x4d80('0x22')](function(_0x26c040){if(_0x26c040[_0x4d80('0x4f')]){fs[_0x4d80('0x58')](_0x26c040['directory'])[_0x4d80('0x59')](function(_0x3440d0){fs[_0x4d80('0x5a')](path[_0x4d80('0x5b')](_0x26c040[_0x4d80('0x4f')],_0x3440d0));});fs[_0x4d80('0x5c')](_0x26c040['directory']);}return _0x26c040;});})[_0x4d80('0x44')](function(_0x3b5418){throw new db[(_0x4d80('0x5d'))]['ValidationError'](_0x3b5418[_0x4d80('0x5e')]);});}})[_0x4d80('0x22')](handleEntityNotFound(_0x1c1892,null))['then'](removeEntity(_0x1c1892,null))[_0x4d80('0x44')](handleError(_0x1c1892,null));};exports['addSound']=function(_0x53aeff,_0x33fa9f,_0x41441d){return db['sequelize']['transaction'](function(_0x5a00c3){var _0x97a7ad;return db[_0x4d80('0x41')][_0x4d80('0x49')]({'where':{'id':_0x53aeff[_0x4d80('0x46')]['id']}})[_0x4d80('0x22')](function(_0x483ed7){if(_0x483ed7){_0x97a7ad=_0x483ed7;return _0x483ed7[_0x4d80('0x5f')](_0x53aeff['body']['id'],{'transaction':_0x5a00c3});}})[_0x4d80('0x22')](function(_0x2357c4){if(_0x2357c4){return db[_0x4d80('0x60')]['findOne']({'where':{'id':_0x53aeff['body']['id']},'attributes':['id',_0x4d80('0x29'),_0x4d80('0x61'),_0x4d80('0x62'),_0x4d80('0x63')],'raw':!![]});}})[_0x4d80('0x22')](function(_0x13865c){if(_0x13865c){var _0x374715=path['join'](config['root'],_0x4d80('0x64'),util[_0x4d80('0x65')](_0x4d80('0x66'),path['basename'](_0x13865c[_0x4d80('0x61')],path[_0x4d80('0x67')](_0x13865c[_0x4d80('0x61')])),_0x13865c[_0x4d80('0x62')]));var _0x4a135d=path['join'](config[_0x4d80('0x68')],_0x4d80('0x50'),_0x97a7ad[_0x4d80('0x29')],util[_0x4d80('0x65')](_0x4d80('0x66'),_0x13865c[_0x4d80('0x29')],_0x13865c[_0x4d80('0x62')]));fs['symlinkSync'](_0x374715,_0x4a135d);return _0x13865c;}})[_0x4d80('0x44')](function(_0x4feac6){throw new db[(_0x4d80('0x5d'))][(_0x4d80('0x69'))](_0x4feac6[_0x4d80('0x5e')]);});})[_0x4d80('0x22')](handleEntityNotFound(_0x33fa9f,null))['then'](respondWithResult(_0x33fa9f,0xc9))['catch'](handleError(_0x33fa9f,null));};exports[_0x4d80('0x6a')]=function(_0x5f1be8,_0x268778,_0x5e16ec){return db[_0x4d80('0x4c')]['transaction'](function(_0x23e91b){var _0x12327e;return db[_0x4d80('0x41')][_0x4d80('0x6b')]({'where':{'id':_0x5f1be8[_0x4d80('0x46')]['id']}})[_0x4d80('0x22')](handleEntityNotFound(_0x268778,null))[_0x4d80('0x22')](function(_0x12d259){if(_0x12d259){_0x12327e=_0x12d259;return _0x12d259['removeSound'](_0x5f1be8[_0x4d80('0x46')][_0x4d80('0x6c')]);}})[_0x4d80('0x22')](function(_0x2a0c0e){if(_0x2a0c0e){return db[_0x4d80('0x60')][_0x4d80('0x6b')]({'where':{'id':_0x5f1be8[_0x4d80('0x46')][_0x4d80('0x6c')]},'attributes':['id','name','save_name',_0x4d80('0x62'),_0x4d80('0x63')],'raw':!![]});}})[_0x4d80('0x22')](function(_0x486a13){if(_0x486a13){fs['unlinkSync'](path[_0x4d80('0x5b')](_0x12327e[_0x4d80('0x4f')],util['format'](_0x4d80('0x66'),_0x486a13['name'],_0x486a13[_0x4d80('0x62')])));return _0x486a13;}})[_0x4d80('0x44')](function(_0x5a2451){throw new db[(_0x4d80('0x5d'))][(_0x4d80('0x69'))](_0x5a2451[_0x4d80('0x5e')]);});})[_0x4d80('0x22')](handleEntityNotFound(_0x268778,null))[_0x4d80('0x22')](respondWithStatusCode(_0x268778,0xcc))[_0x4d80('0x44')](handleError(_0x268778,null));};exports[_0x4d80('0x6d')]=function(_0x2cbf46,_0x1ca1ca,_0x597c9c){var _0x545bba={};var _0x202e22={};var _0x45a2da;var _0x343e8a;return db['VoiceMusicOnHold'][_0x4d80('0x6b')]({'where':{'id':_0x2cbf46['params']['id']}})[_0x4d80('0x22')](handleEntityNotFound(_0x1ca1ca,null))['then'](function(_0x23ae9b){if(_0x23ae9b){_0x45a2da=_0x23ae9b;_0x202e22['model']=_['keys'](db['Sound'][_0x4d80('0x2d')]);_0x202e22[_0x4d80('0x31')]=_[_0x4d80('0x47')](_0x2cbf46[_0x4d80('0x31')]);_0x202e22[_0x4d80('0x32')]=_[_0x4d80('0x34')](_0x202e22[_0x4d80('0x30')],_0x202e22['query']);_0x545bba[_0x4d80('0x33')]=_[_0x4d80('0x34')](_0x202e22[_0x4d80('0x30')],qs['fields'](_0x2cbf46[_0x4d80('0x31')][_0x4d80('0x35')]));_0x545bba[_0x4d80('0x33')]=_0x545bba['attributes'][_0x4d80('0x36')]?_0x545bba[_0x4d80('0x33')]:_0x202e22[_0x4d80('0x30')];_0x545bba[_0x4d80('0x3a')]=qs['sort'](_0x2cbf46[_0x4d80('0x31')][_0x4d80('0x3b')]);_0x545bba[_0x4d80('0x3c')]=qs[_0x4d80('0x32')](_[_0x4d80('0x3d')](_0x2cbf46[_0x4d80('0x31')],_0x202e22['filters']));if(_0x2cbf46[_0x4d80('0x31')][_0x4d80('0x40')]){_0x545bba['where']=_['merge'](_0x545bba[_0x4d80('0x3c')],{'$or':_['map'](_0x545bba[_0x4d80('0x33')],function(_0x382f3f){var _0xb67355={};_0xb67355[_0x382f3f]={'$like':'%'+_0x2cbf46[_0x4d80('0x31')][_0x4d80('0x40')]+'%'};return _0xb67355;})});}_0x545bba=_[_0x4d80('0x3e')]({},_0x545bba,_0x2cbf46[_0x4d80('0x48')]);return _0x45a2da[_0x4d80('0x6d')](_0x545bba);}})['then'](function(_0x28c65c){if(_0x28c65c){_0x343e8a=_0x28c65c[_0x4d80('0x36')];if(!_0x2cbf46['query'][_0x4d80('0x37')](_0x4d80('0x38'))){_0x545bba[_0x4d80('0x39')]=qs[_0x4d80('0x39')](_0x2cbf46[_0x4d80('0x31')][_0x4d80('0x39')]);_0x545bba[_0x4d80('0x19')]=qs[_0x4d80('0x19')](_0x2cbf46[_0x4d80('0x31')][_0x4d80('0x19')]);}return _0x45a2da[_0x4d80('0x6d')](_0x545bba);}})[_0x4d80('0x22')](function(_0x20d46c){if(_0x20d46c){return _0x20d46c?{'count':_0x343e8a,'rows':_0x20d46c}:null;}})[_0x4d80('0x22')](respondWithResult(_0x1ca1ca,null))[_0x4d80('0x44')](handleError(_0x1ca1ca,null));};