995e062fdb56fdc212d86401ea92aa01de799503
[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 _0xdad6=['root','server/files/moh','directory','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','forEach','rmdirSync','Sequelize','message','addSound','Sound','converted_format','server/files/sounds/converted','format','%s.%s','basename','save_name','extname','ValidationError','removeSound','id2','findOne','createdAt','unlinkSync','getSounds','nolimit','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','fs-extra','lodash','squel','crypto','to-csv','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','status','json','undefined','count','offset','set','Content-Range','save','update','then','destroy','get','MusicOnHolds','UserProfileResource','error','stack','name','send','index','VoiceMusicOnHold','fieldName','type','key','model','map','query','attributes','intersection','hasOwnProperty','limit','order','sort','where','pick','filters','filter','merge','VIRTUAL','options','include','rows','catch','show','params','keys','rawAttributes','fields','length','find','body','create','sequelize','transaction','mode','files','join'];(function(_0x5a2d3f,_0x27b04e){var _0x5c65d8=function(_0x2d1965){while(--_0x2d1965){_0x5a2d3f['push'](_0x5a2d3f['shift']());}};_0x5c65d8(++_0x27b04e);}(_0xdad6,0x101));var _0x6dad=function(_0x1115e9,_0x3ed1cd){_0x1115e9=_0x1115e9-0x0;var _0x1153ed=_0xdad6[_0x1115e9];return _0x1153ed;};'use strict';var emlformat=require(_0x6dad('0x0'));var rimraf=require(_0x6dad('0x1'));var zipdir=require(_0x6dad('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x6dad('0x3'));var moment=require(_0x6dad('0x4'));var BPromise=require(_0x6dad('0x5'));var Mustache=require(_0x6dad('0x6'));var util=require(_0x6dad('0x7'));var path=require(_0x6dad('0x8'));var sox=require(_0x6dad('0x9'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x6dad('0xa'));var _=require(_0x6dad('0xb'));var squel=require(_0x6dad('0xc'));var crypto=require(_0x6dad('0xd'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x6dad('0xe'));var querystring=require(_0x6dad('0xf'));var Papa=require(_0x6dad('0x10'));var Redis=require('ioredis');var authService=require(_0x6dad('0x11'));var qs=require(_0x6dad('0x12'));var as=require(_0x6dad('0x13'));var hardwareService=require(_0x6dad('0x14'));var logger=require(_0x6dad('0x15'))(_0x6dad('0x16'));var utils=require(_0x6dad('0x17'));var config=require(_0x6dad('0x18'));var licenseUtil=require(_0x6dad('0x19'));var db=require(_0x6dad('0x1a'))['db'];function respondWithStatusCode(_0x4573ca,_0x46a6ff){_0x46a6ff=_0x46a6ff||0xcc;return function(_0xabc338){if(_0xabc338){return _0x4573ca[_0x6dad('0x1b')](_0x46a6ff);}return _0x4573ca['status'](_0x46a6ff)[_0x6dad('0x1c')]();};}function respondWithResult(_0x520a42,_0x30a166){_0x30a166=_0x30a166||0xc8;return function(_0x3e21d6){if(_0x3e21d6){return _0x520a42[_0x6dad('0x1d')](_0x30a166)[_0x6dad('0x1e')](_0x3e21d6);}};}function respondWithFilteredResult(_0x344614,_0x9bea91){return function(_0x1b27ab){if(_0x1b27ab){var _0x19862b=typeof _0x9bea91['offset']===_0x6dad('0x1f')&&typeof _0x9bea91['limit']===_0x6dad('0x1f');var _0x47e22b=_0x1b27ab['count'];var _0x34aa36=_0x19862b?0x0:_0x9bea91['offset'];var _0x3498ee=_0x19862b?_0x1b27ab[_0x6dad('0x20')]:_0x9bea91[_0x6dad('0x21')]+_0x9bea91['limit'];var _0x48655c;if(_0x3498ee>=_0x47e22b){_0x3498ee=_0x47e22b;_0x48655c=0xc8;}else{_0x48655c=0xce;}_0x344614['status'](_0x48655c);return _0x344614[_0x6dad('0x22')](_0x6dad('0x23'),_0x34aa36+'-'+_0x3498ee+'/'+_0x47e22b)[_0x6dad('0x1e')](_0x1b27ab);}return null;};}function patchUpdates(_0x45beb8){return function(_0x37bbda){try{jsonpatch['apply'](_0x37bbda,_0x45beb8,!![]);}catch(_0x20ee78){return BPromise['reject'](_0x20ee78);}return _0x37bbda[_0x6dad('0x24')]();};}function saveUpdates(_0x58b2b2,_0x3656a6){return function(_0x457bd3){if(_0x457bd3){return _0x457bd3[_0x6dad('0x25')](_0x58b2b2)[_0x6dad('0x26')](function(_0x2cb02f){return _0x2cb02f;});}return null;};}function removeEntity(_0x24aeb6,_0x140539){return function(_0x2eabbf){if(_0x2eabbf){return _0x2eabbf[_0x6dad('0x27')]()[_0x6dad('0x26')](function(){var _0x110d81=_0x2eabbf[_0x6dad('0x28')]({'plain':!![]});var _0x2e06b6=_0x6dad('0x29');return db[_0x6dad('0x2a')][_0x6dad('0x27')]({'where':{'type':_0x2e06b6,'resourceId':_0x110d81['id']}})['then'](function(){return _0x2eabbf;});})[_0x6dad('0x26')](function(){_0x24aeb6[_0x6dad('0x1d')](0xcc)[_0x6dad('0x1c')]();});}};}function handleEntityNotFound(_0x1ddb69,_0x503999){return function(_0x479961){if(!_0x479961){_0x1ddb69[_0x6dad('0x1b')](0x194);}return _0x479961;};}function handleError(_0x5dbfd2,_0x2bf600){_0x2bf600=_0x2bf600||0x1f4;return function(_0x552af7){logger[_0x6dad('0x2b')](_0x552af7[_0x6dad('0x2c')]);if(_0x552af7['name']){delete _0x552af7[_0x6dad('0x2d')];}_0x5dbfd2[_0x6dad('0x1d')](_0x2bf600)[_0x6dad('0x2e')](_0x552af7);};}exports[_0x6dad('0x2f')]=function(_0x5af207,_0x53ae1d){var _0xf1a152={},_0x56a8e7={},_0x365cbf={'count':0x0,'rows':[]};var _0xa34cd6=_['map'](db[_0x6dad('0x30')]['rawAttributes'],function(_0x363ff0){return{'name':_0x363ff0[_0x6dad('0x31')],'type':_0x363ff0[_0x6dad('0x32')][_0x6dad('0x33')]};});_0x56a8e7[_0x6dad('0x34')]=_[_0x6dad('0x35')](_0xa34cd6,_0x6dad('0x2d'));_0x56a8e7[_0x6dad('0x36')]=_['keys'](_0x5af207[_0x6dad('0x36')]);_0x56a8e7['filters']=_['intersection'](_0x56a8e7[_0x6dad('0x34')],_0x56a8e7[_0x6dad('0x36')]);_0xf1a152[_0x6dad('0x37')]=_[_0x6dad('0x38')](_0x56a8e7[_0x6dad('0x34')],qs['fields'](_0x5af207[_0x6dad('0x36')]['fields']));_0xf1a152['attributes']=_0xf1a152[_0x6dad('0x37')]['length']?_0xf1a152[_0x6dad('0x37')]:_0x56a8e7[_0x6dad('0x34')];if(!_0x5af207[_0x6dad('0x36')][_0x6dad('0x39')]('nolimit')){_0xf1a152[_0x6dad('0x3a')]=qs[_0x6dad('0x3a')](_0x5af207[_0x6dad('0x36')][_0x6dad('0x3a')]);_0xf1a152['offset']=qs[_0x6dad('0x21')](_0x5af207[_0x6dad('0x36')][_0x6dad('0x21')]);}_0xf1a152[_0x6dad('0x3b')]=qs[_0x6dad('0x3c')](_0x5af207['query'][_0x6dad('0x3c')]);delete _0x5af207[_0x6dad('0x36')]['sort'];_0xf1a152[_0x6dad('0x3d')]=qs['filters'](_[_0x6dad('0x3e')](_0x5af207[_0x6dad('0x36')],_0x56a8e7[_0x6dad('0x3f')]),_0xa34cd6);if(_0x5af207['query'][_0x6dad('0x40')]){_0xf1a152[_0x6dad('0x3d')]=_[_0x6dad('0x41')](_0xf1a152[_0x6dad('0x3d')],{'$or':_['map'](_0xa34cd6,function(_0x39e659){if(_0x39e659['type']!==_0x6dad('0x42')){var _0x1fef6c={};_0x1fef6c[_0x39e659[_0x6dad('0x2d')]]={'$like':'%'+_0x5af207['query'][_0x6dad('0x40')]+'%'};return _0x1fef6c;}})});}_0xf1a152=_[_0x6dad('0x41')]({},_0xf1a152,_0x5af207[_0x6dad('0x43')]);var _0x7a54a0={'where':_0xf1a152[_0x6dad('0x3d')]};return db[_0x6dad('0x30')][_0x6dad('0x20')](_0x7a54a0)[_0x6dad('0x26')](function(_0x540dc1){_0x365cbf[_0x6dad('0x20')]=_0x540dc1;if(_0x5af207['query']['includeAll']){_0xf1a152[_0x6dad('0x44')]=[{'all':!![]}];}return db['VoiceMusicOnHold']['findAll'](_0xf1a152);})[_0x6dad('0x26')](function(_0x2441f8){_0x365cbf[_0x6dad('0x45')]=_0x2441f8;return _0x365cbf;})[_0x6dad('0x26')](respondWithFilteredResult(_0x53ae1d,_0xf1a152))[_0x6dad('0x46')](handleError(_0x53ae1d,null));};exports[_0x6dad('0x47')]=function(_0xf1c176,_0x336d7d){var _0xf10291={'raw':![],'where':{'id':_0xf1c176[_0x6dad('0x48')]['id']}},_0x3029f6={};_0x3029f6[_0x6dad('0x34')]=_[_0x6dad('0x49')](db[_0x6dad('0x30')][_0x6dad('0x4a')]);_0x3029f6[_0x6dad('0x36')]=_[_0x6dad('0x49')](_0xf1c176['query']);_0x3029f6[_0x6dad('0x3f')]=_[_0x6dad('0x38')](_0x3029f6[_0x6dad('0x34')],_0x3029f6[_0x6dad('0x36')]);_0xf10291[_0x6dad('0x37')]=_[_0x6dad('0x38')](_0x3029f6['model'],qs[_0x6dad('0x4b')](_0xf1c176['query'][_0x6dad('0x4b')]));_0xf10291[_0x6dad('0x37')]=_0xf10291[_0x6dad('0x37')][_0x6dad('0x4c')]?_0xf10291[_0x6dad('0x37')]:_0x3029f6['model'];if(_0xf1c176[_0x6dad('0x36')]['includeAll']){_0xf10291['include']=[{'all':!![]}];}_0xf10291=_[_0x6dad('0x41')]({},_0xf10291,_0xf1c176[_0x6dad('0x43')]);return db[_0x6dad('0x30')][_0x6dad('0x4d')](_0xf10291)[_0x6dad('0x26')](handleEntityNotFound(_0x336d7d,null))[_0x6dad('0x26')](respondWithResult(_0x336d7d,null))[_0x6dad('0x46')](handleError(_0x336d7d,null));};exports[_0x6dad('0x25')]=function(_0x8ff35f,_0x2a2bdb){if(_0x8ff35f[_0x6dad('0x4e')]['id']){delete _0x8ff35f[_0x6dad('0x4e')]['id'];}return db[_0x6dad('0x30')]['find']({'where':{'id':_0x8ff35f[_0x6dad('0x48')]['id']}})[_0x6dad('0x26')](handleEntityNotFound(_0x2a2bdb,null))[_0x6dad('0x26')](saveUpdates(_0x8ff35f['body'],null))[_0x6dad('0x26')](respondWithResult(_0x2a2bdb,null))[_0x6dad('0x46')](handleError(_0x2a2bdb,null));};exports[_0x6dad('0x4f')]=function(_0x543a3a,_0x3803dd,_0x23e64c){return db[_0x6dad('0x50')][_0x6dad('0x51')](function(_0x434910){if(_0x543a3a[_0x6dad('0x4e')][_0x6dad('0x52')]===_0x6dad('0x53')){_0x543a3a[_0x6dad('0x4e')]['directory']=path[_0x6dad('0x54')](config[_0x6dad('0x55')],_0x6dad('0x56'),_0x543a3a['body'][_0x6dad('0x2d')]);}return db['VoiceMusicOnHold']['create'](_0x543a3a[_0x6dad('0x4e')],{'transaction':_0x434910})[_0x6dad('0x26')](function(_0x20f18a){if(_0x543a3a['body'][_0x6dad('0x52')]===_0x6dad('0x53')){fs['mkdirSync'](_0x20f18a[_0x6dad('0x57')],parseInt('0777',0x8));}var _0x143ce2=_0x543a3a[_0x6dad('0x58')][_0x6dad('0x28')]({'plain':!![]});if(!_0x143ce2)throw new Error(_0x6dad('0x59'));if(_0x143ce2[_0x6dad('0x5a')]===_0x6dad('0x58')){var _0x275ee3=_0x20f18a[_0x6dad('0x28')]({'plain':!![]});return db[_0x6dad('0x5b')]['find']({'where':{'name':_0x6dad('0x29'),'userProfileId':_0x143ce2['userProfileId']},'raw':!![]})[_0x6dad('0x26')](function(_0x9ade49){if(_0x9ade49&&_0x9ade49['autoAssociation']===0x0){return db[_0x6dad('0x2a')][_0x6dad('0x4f')]({'name':_0x275ee3[_0x6dad('0x2d')],'resourceId':_0x275ee3['id'],'type':_0x9ade49['name'],'sectionId':_0x9ade49['id']},{})['then'](function(){return _0x20f18a;});}else{return _0x20f18a;}})[_0x6dad('0x46')](function(_0x1584f7){logger[_0x6dad('0x2b')](_0x6dad('0x5c'),_0x1584f7);});}return _0x20f18a;});})['then'](respondWithResult(_0x3803dd,0xc9))[_0x6dad('0x46')](handleError(_0x3803dd,null));};exports[_0x6dad('0x27')]=function(_0x66bbeb,_0x1187ba,_0xa21121){var _0x43ce7e;return db[_0x6dad('0x30')]['find']({'where':{'id':_0x66bbeb[_0x6dad('0x48')]['id']}})[_0x6dad('0x26')](function(_0x4ee78a){if(_0x4ee78a){return db['sequelize']['transaction'](function(_0x49431b){return _0x4ee78a[_0x6dad('0x27')]({'transaction':_0x49431b,'raw':!![]})['then'](function(_0x380e46){if(_0x380e46['directory']){fs['readdirSync'](_0x380e46[_0x6dad('0x57')])[_0x6dad('0x5d')](function(_0x52aa0a){fs['unlinkSync'](path[_0x6dad('0x54')](_0x380e46[_0x6dad('0x57')],_0x52aa0a));});fs[_0x6dad('0x5e')](_0x380e46[_0x6dad('0x57')]);}return _0x380e46;});})[_0x6dad('0x46')](function(_0x48acff){throw new db[(_0x6dad('0x5f'))]['ValidationError'](_0x48acff[_0x6dad('0x60')]);});}})[_0x6dad('0x26')](handleEntityNotFound(_0x1187ba,null))['then'](removeEntity(_0x1187ba,null))['catch'](handleError(_0x1187ba,null));};exports[_0x6dad('0x61')]=function(_0x18534b,_0x33edcf,_0x1ecda3){return db['sequelize'][_0x6dad('0x51')](function(_0x184bf9){var _0xf0dc36;return db[_0x6dad('0x30')][_0x6dad('0x4d')]({'where':{'id':_0x18534b[_0x6dad('0x48')]['id']}})[_0x6dad('0x26')](function(_0x499f01){if(_0x499f01){_0xf0dc36=_0x499f01;return _0x499f01[_0x6dad('0x61')](_0x18534b['body']['id'],{'transaction':_0x184bf9});}})[_0x6dad('0x26')](function(_0x164446){if(_0x164446){return db[_0x6dad('0x62')]['findOne']({'where':{'id':_0x18534b[_0x6dad('0x4e')]['id']},'attributes':['id',_0x6dad('0x2d'),'save_name',_0x6dad('0x63'),'createdAt'],'raw':!![]});}})['then'](function(_0x50b461){if(_0x50b461){var _0x19796a=path[_0x6dad('0x54')](config[_0x6dad('0x55')],_0x6dad('0x64'),util[_0x6dad('0x65')](_0x6dad('0x66'),path[_0x6dad('0x67')](_0x50b461[_0x6dad('0x68')],path[_0x6dad('0x69')](_0x50b461[_0x6dad('0x68')])),_0x50b461['converted_format']));var _0x26783a=path[_0x6dad('0x54')](config[_0x6dad('0x55')],'server/files/moh',_0xf0dc36[_0x6dad('0x2d')],util['format'](_0x6dad('0x66'),_0x50b461[_0x6dad('0x2d')],_0x50b461['converted_format']));fs['symlinkSync'](_0x19796a,_0x26783a);return _0x50b461;}})['catch'](function(_0x186d90){throw new db[(_0x6dad('0x5f'))][(_0x6dad('0x6a'))](_0x186d90[_0x6dad('0x60')]);});})[_0x6dad('0x26')](handleEntityNotFound(_0x33edcf,null))[_0x6dad('0x26')](respondWithResult(_0x33edcf,0xc9))[_0x6dad('0x46')](handleError(_0x33edcf,null));};exports['removeSound']=function(_0x396eb6,_0x2d3e56,_0x2dd578){return db[_0x6dad('0x50')]['transaction'](function(_0x515aec){var _0x594c0b;return db[_0x6dad('0x30')]['findOne']({'where':{'id':_0x396eb6[_0x6dad('0x48')]['id']}})[_0x6dad('0x26')](handleEntityNotFound(_0x2d3e56,null))[_0x6dad('0x26')](function(_0x1f1ff0){if(_0x1f1ff0){_0x594c0b=_0x1f1ff0;return _0x1f1ff0[_0x6dad('0x6b')](_0x396eb6[_0x6dad('0x48')][_0x6dad('0x6c')]);}})[_0x6dad('0x26')](function(_0x3cc927){if(_0x3cc927){return db[_0x6dad('0x62')][_0x6dad('0x6d')]({'where':{'id':_0x396eb6[_0x6dad('0x48')][_0x6dad('0x6c')]},'attributes':['id',_0x6dad('0x2d'),_0x6dad('0x68'),_0x6dad('0x63'),_0x6dad('0x6e')],'raw':!![]});}})[_0x6dad('0x26')](function(_0x9050f2){if(_0x9050f2){fs[_0x6dad('0x6f')](path[_0x6dad('0x54')](_0x594c0b['directory'],util['format'](_0x6dad('0x66'),_0x9050f2[_0x6dad('0x2d')],_0x9050f2[_0x6dad('0x63')])));return _0x9050f2;}})[_0x6dad('0x46')](function(_0xd8e73d){throw new db[(_0x6dad('0x5f'))]['ValidationError'](_0xd8e73d[_0x6dad('0x60')]);});})['then'](handleEntityNotFound(_0x2d3e56,null))[_0x6dad('0x26')](respondWithStatusCode(_0x2d3e56,0xcc))[_0x6dad('0x46')](handleError(_0x2d3e56,null));};exports[_0x6dad('0x70')]=function(_0x80a319,_0x39d657,_0x2316e1){var _0x4d03d6={};var _0x419fb3={};var _0x283ba8;var _0x1a4f39;return db[_0x6dad('0x30')][_0x6dad('0x6d')]({'where':{'id':_0x80a319[_0x6dad('0x48')]['id']}})[_0x6dad('0x26')](handleEntityNotFound(_0x39d657,null))[_0x6dad('0x26')](function(_0x105ba8){if(_0x105ba8){_0x283ba8=_0x105ba8;_0x419fb3['model']=_[_0x6dad('0x49')](db['Sound']['rawAttributes']);_0x419fb3[_0x6dad('0x36')]=_[_0x6dad('0x49')](_0x80a319[_0x6dad('0x36')]);_0x419fb3[_0x6dad('0x3f')]=_[_0x6dad('0x38')](_0x419fb3[_0x6dad('0x34')],_0x419fb3[_0x6dad('0x36')]);_0x4d03d6[_0x6dad('0x37')]=_[_0x6dad('0x38')](_0x419fb3[_0x6dad('0x34')],qs[_0x6dad('0x4b')](_0x80a319[_0x6dad('0x36')]['fields']));_0x4d03d6[_0x6dad('0x37')]=_0x4d03d6['attributes'][_0x6dad('0x4c')]?_0x4d03d6[_0x6dad('0x37')]:_0x419fb3[_0x6dad('0x34')];_0x4d03d6[_0x6dad('0x3b')]=qs[_0x6dad('0x3c')](_0x80a319[_0x6dad('0x36')]['sort']);_0x4d03d6['where']=qs[_0x6dad('0x3f')](_['pick'](_0x80a319[_0x6dad('0x36')],_0x419fb3[_0x6dad('0x3f')]));if(_0x80a319[_0x6dad('0x36')]['filter']){_0x4d03d6[_0x6dad('0x3d')]=_[_0x6dad('0x41')](_0x4d03d6[_0x6dad('0x3d')],{'$or':_[_0x6dad('0x35')](_0x4d03d6[_0x6dad('0x37')],function(_0x459da1){var _0xc683bc={};_0xc683bc[_0x459da1]={'$like':'%'+_0x80a319['query'][_0x6dad('0x40')]+'%'};return _0xc683bc;})});}_0x4d03d6=_[_0x6dad('0x41')]({},_0x4d03d6,_0x80a319[_0x6dad('0x43')]);return _0x283ba8[_0x6dad('0x70')](_0x4d03d6);}})['then'](function(_0x45f18e){if(_0x45f18e){_0x1a4f39=_0x45f18e['length'];if(!_0x80a319[_0x6dad('0x36')][_0x6dad('0x39')](_0x6dad('0x71'))){_0x4d03d6[_0x6dad('0x3a')]=qs[_0x6dad('0x3a')](_0x80a319[_0x6dad('0x36')][_0x6dad('0x3a')]);_0x4d03d6[_0x6dad('0x21')]=qs['offset'](_0x80a319[_0x6dad('0x36')][_0x6dad('0x21')]);}return _0x283ba8[_0x6dad('0x70')](_0x4d03d6);}})[_0x6dad('0x26')](function(_0x53ec6b){if(_0x53ec6b){return _0x53ec6b?{'count':_0x1a4f39,'rows':_0x53ec6b}:null;}})['then'](respondWithResult(_0x39d657,null))['catch'](handleError(_0x39d657,null));};