a08e27fdb03ced0a9458fa7455ce80313d7aa920
[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 _0x6e70=['fast-json-patch','request-promise','util','path','sox','to-csv','ejs','fs-extra','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/utils','../../mysqldb','status','end','json','offset','undefined','limit','count','set','reject','save','then','destroy','get','MusicOnHolds','UserProfileResource','error','name','send','map','VoiceMusicOnHold','rawAttributes','fieldName','key','model','query','filters','intersection','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','type','VIRTUAL','options','includeAll','findAll','rows','catch','show','keys','fields','include','find','body','sequelize','transaction','mode','files','directory','join','root','server/files/moh','create','mkdirSync','0777','user','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','readdirSync','forEach','unlinkSync','Sequelize','ValidationError','addSound','Sound','findOne','save_name','createdAt','basename','converted_format','format','%s.%s','symlinkSync','message','removeSound','id2','getSounds','eml-format','rimraf','zip-dir'];(function(_0x5c39a3,_0x24bef6){var _0x1bd672=function(_0x48774e){while(--_0x48774e){_0x5c39a3['push'](_0x5c39a3['shift']());}};_0x1bd672(++_0x24bef6);}(_0x6e70,0x147));var _0x06e7=function(_0x3570f7,_0x4a509d){_0x3570f7=_0x3570f7-0x0;var _0x5d3623=_0x6e70[_0x3570f7];return _0x5d3623;};'use strict';var emlformat=require(_0x06e7('0x0'));var rimraf=require(_0x06e7('0x1'));var zipdir=require(_0x06e7('0x2'));var jsonpatch=require(_0x06e7('0x3'));var rp=require(_0x06e7('0x4'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x06e7('0x5'));var path=require(_0x06e7('0x6'));var sox=require(_0x06e7('0x7'));var csv=require(_0x06e7('0x8'));var ejs=require(_0x06e7('0x9'));var fs=require('fs');var fs_extra=require(_0x06e7('0xa'));var _=require(_0x06e7('0xb'));var squel=require('squel');var crypto=require(_0x06e7('0xc'));var jsforce=require(_0x06e7('0xd'));var deskjs=require(_0x06e7('0xe'));var toCsv=require(_0x06e7('0x8'));var querystring=require(_0x06e7('0xf'));var Papa=require(_0x06e7('0x10'));var Redis=require(_0x06e7('0x11'));var authService=require(_0x06e7('0x12'));var qs=require(_0x06e7('0x13'));var as=require(_0x06e7('0x14'));var hardwareService=require(_0x06e7('0x15'));var logger=require('../../config/logger')('api');var utils=require(_0x06e7('0x16'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x06e7('0x17'))['db'];function respondWithStatusCode(_0x5cffd6,_0x21c26a){_0x21c26a=_0x21c26a||0xcc;return function(_0x2716d2){if(_0x2716d2){return _0x5cffd6['sendStatus'](_0x21c26a);}return _0x5cffd6[_0x06e7('0x18')](_0x21c26a)[_0x06e7('0x19')]();};}function respondWithResult(_0x33d510,_0x3da93e){_0x3da93e=_0x3da93e||0xc8;return function(_0x45bdc7){if(_0x45bdc7){return _0x33d510['status'](_0x3da93e)[_0x06e7('0x1a')](_0x45bdc7);}};}function respondWithFilteredResult(_0x257ca0,_0x7c6c73){return function(_0x1e2f42){if(_0x1e2f42){var _0x47eefc=typeof _0x7c6c73[_0x06e7('0x1b')]===_0x06e7('0x1c')&&typeof _0x7c6c73[_0x06e7('0x1d')]===_0x06e7('0x1c');var _0x1ab505=_0x1e2f42[_0x06e7('0x1e')];var _0x26892b=_0x47eefc?0x0:_0x7c6c73['offset'];var _0x305aca=_0x47eefc?_0x1e2f42[_0x06e7('0x1e')]:_0x7c6c73['offset']+_0x7c6c73['limit'];var _0x14360a;if(_0x305aca>=_0x1ab505){_0x305aca=_0x1ab505;_0x14360a=0xc8;}else{_0x14360a=0xce;}_0x257ca0[_0x06e7('0x18')](_0x14360a);return _0x257ca0[_0x06e7('0x1f')]('Content-Range',_0x26892b+'-'+_0x305aca+'/'+_0x1ab505)[_0x06e7('0x1a')](_0x1e2f42);}return null;};}function patchUpdates(_0x11d56e){return function(_0x531eb3){try{jsonpatch['apply'](_0x531eb3,_0x11d56e,!![]);}catch(_0x1aee9d){return BPromise[_0x06e7('0x20')](_0x1aee9d);}return _0x531eb3[_0x06e7('0x21')]();};}function saveUpdates(_0x25310e,_0x4fc040){return function(_0x51323b){if(_0x51323b){return _0x51323b['update'](_0x25310e)[_0x06e7('0x22')](function(_0x556e76){return _0x556e76;});}return null;};}function removeEntity(_0x278341,_0x45eec8){return function(_0x2bd219){if(_0x2bd219){return _0x2bd219[_0x06e7('0x23')]()[_0x06e7('0x22')](function(){var _0x180b2e=_0x2bd219[_0x06e7('0x24')]({'plain':!![]});var _0x1bb4e0=_0x06e7('0x25');return db[_0x06e7('0x26')][_0x06e7('0x23')]({'where':{'type':_0x1bb4e0,'resourceId':_0x180b2e['id']}})['then'](function(){return _0x2bd219;});})[_0x06e7('0x22')](function(){_0x278341[_0x06e7('0x18')](0xcc)['end']();});}};}function handleEntityNotFound(_0x3acb27,_0x4e5c12){return function(_0x4ad21c){if(!_0x4ad21c){_0x3acb27['sendStatus'](0x194);}return _0x4ad21c;};}function handleError(_0x4c554e,_0x576284){_0x576284=_0x576284||0x1f4;return function(_0x2d8423){logger[_0x06e7('0x27')](_0x2d8423['stack']);if(_0x2d8423[_0x06e7('0x28')]){delete _0x2d8423['name'];}_0x4c554e[_0x06e7('0x18')](_0x576284)[_0x06e7('0x29')](_0x2d8423);};}exports['index']=function(_0x19a8fb,_0x8d9f9c){var _0x52d7ee={},_0x3668ce={},_0x2ddc2d={'count':0x0,'rows':[]};var _0x587099=_[_0x06e7('0x2a')](db[_0x06e7('0x2b')][_0x06e7('0x2c')],function(_0x1d699c){return{'name':_0x1d699c[_0x06e7('0x2d')],'type':_0x1d699c['type'][_0x06e7('0x2e')]};});_0x3668ce[_0x06e7('0x2f')]=_[_0x06e7('0x2a')](_0x587099,_0x06e7('0x28'));_0x3668ce[_0x06e7('0x30')]=_['keys'](_0x19a8fb[_0x06e7('0x30')]);_0x3668ce[_0x06e7('0x31')]=_[_0x06e7('0x32')](_0x3668ce[_0x06e7('0x2f')],_0x3668ce[_0x06e7('0x30')]);_0x52d7ee[_0x06e7('0x33')]=_['intersection'](_0x3668ce[_0x06e7('0x2f')],qs['fields'](_0x19a8fb[_0x06e7('0x30')]['fields']));_0x52d7ee[_0x06e7('0x33')]=_0x52d7ee[_0x06e7('0x33')][_0x06e7('0x34')]?_0x52d7ee[_0x06e7('0x33')]:_0x3668ce[_0x06e7('0x2f')];if(!_0x19a8fb[_0x06e7('0x30')][_0x06e7('0x35')](_0x06e7('0x36'))){_0x52d7ee[_0x06e7('0x1d')]=qs[_0x06e7('0x1d')](_0x19a8fb[_0x06e7('0x30')]['limit']);_0x52d7ee[_0x06e7('0x1b')]=qs[_0x06e7('0x1b')](_0x19a8fb['query'][_0x06e7('0x1b')]);}_0x52d7ee[_0x06e7('0x37')]=qs[_0x06e7('0x38')](_0x19a8fb[_0x06e7('0x30')][_0x06e7('0x38')]);delete _0x19a8fb[_0x06e7('0x30')][_0x06e7('0x38')];_0x52d7ee[_0x06e7('0x39')]=qs['filters'](_[_0x06e7('0x3a')](_0x19a8fb[_0x06e7('0x30')],_0x3668ce['filters']),_0x587099);if(_0x19a8fb['query'][_0x06e7('0x3b')]){_0x52d7ee[_0x06e7('0x39')]=_[_0x06e7('0x3c')](_0x52d7ee['where'],{'$or':_[_0x06e7('0x2a')](_0x587099,function(_0x586da3){if(_0x586da3[_0x06e7('0x3d')]!==_0x06e7('0x3e')){var _0x269efd={};_0x269efd[_0x586da3[_0x06e7('0x28')]]={'$like':'%'+_0x19a8fb[_0x06e7('0x30')]['filter']+'%'};return _0x269efd;}})});}_0x52d7ee=_['merge']({},_0x52d7ee,_0x19a8fb[_0x06e7('0x3f')]);var _0x1c1099={'where':_0x52d7ee[_0x06e7('0x39')]};return db['VoiceMusicOnHold'][_0x06e7('0x1e')](_0x1c1099)[_0x06e7('0x22')](function(_0x348416){_0x2ddc2d[_0x06e7('0x1e')]=_0x348416;if(_0x19a8fb[_0x06e7('0x30')][_0x06e7('0x40')]){_0x52d7ee['include']=[{'all':!![]}];}return db[_0x06e7('0x2b')][_0x06e7('0x41')](_0x52d7ee);})[_0x06e7('0x22')](function(_0x317789){_0x2ddc2d[_0x06e7('0x42')]=_0x317789;return _0x2ddc2d;})[_0x06e7('0x22')](respondWithFilteredResult(_0x8d9f9c,_0x52d7ee))[_0x06e7('0x43')](handleError(_0x8d9f9c,null));};exports[_0x06e7('0x44')]=function(_0x23b8ed,_0x5e281f){var _0x3cca5f={'raw':![],'where':{'id':_0x23b8ed['params']['id']}},_0x14c827={};_0x14c827['model']=_[_0x06e7('0x45')](db[_0x06e7('0x2b')][_0x06e7('0x2c')]);_0x14c827[_0x06e7('0x30')]=_['keys'](_0x23b8ed[_0x06e7('0x30')]);_0x14c827[_0x06e7('0x31')]=_['intersection'](_0x14c827[_0x06e7('0x2f')],_0x14c827['query']);_0x3cca5f[_0x06e7('0x33')]=_['intersection'](_0x14c827[_0x06e7('0x2f')],qs[_0x06e7('0x46')](_0x23b8ed[_0x06e7('0x30')][_0x06e7('0x46')]));_0x3cca5f[_0x06e7('0x33')]=_0x3cca5f[_0x06e7('0x33')][_0x06e7('0x34')]?_0x3cca5f[_0x06e7('0x33')]:_0x14c827[_0x06e7('0x2f')];if(_0x23b8ed[_0x06e7('0x30')][_0x06e7('0x40')]){_0x3cca5f[_0x06e7('0x47')]=[{'all':!![]}];}_0x3cca5f=_[_0x06e7('0x3c')]({},_0x3cca5f,_0x23b8ed[_0x06e7('0x3f')]);return db['VoiceMusicOnHold'][_0x06e7('0x48')](_0x3cca5f)[_0x06e7('0x22')](handleEntityNotFound(_0x5e281f,null))[_0x06e7('0x22')](respondWithResult(_0x5e281f,null))[_0x06e7('0x43')](handleError(_0x5e281f,null));};exports['update']=function(_0x453ad4,_0x118aa9){if(_0x453ad4[_0x06e7('0x49')]['id']){delete _0x453ad4[_0x06e7('0x49')]['id'];}return db['VoiceMusicOnHold'][_0x06e7('0x48')]({'where':{'id':_0x453ad4['params']['id']}})[_0x06e7('0x22')](handleEntityNotFound(_0x118aa9,null))['then'](saveUpdates(_0x453ad4[_0x06e7('0x49')],null))[_0x06e7('0x22')](respondWithResult(_0x118aa9,null))[_0x06e7('0x43')](handleError(_0x118aa9,null));};exports['create']=function(_0x403841,_0x41af53,_0x2f763){return db[_0x06e7('0x4a')][_0x06e7('0x4b')](function(_0x2ff14d){if(_0x403841[_0x06e7('0x49')][_0x06e7('0x4c')]===_0x06e7('0x4d')){_0x403841[_0x06e7('0x49')][_0x06e7('0x4e')]=path[_0x06e7('0x4f')](config[_0x06e7('0x50')],_0x06e7('0x51'),_0x403841['body'][_0x06e7('0x28')]);}return db[_0x06e7('0x2b')][_0x06e7('0x52')](_0x403841['body'],{'transaction':_0x2ff14d})[_0x06e7('0x22')](function(_0x421328){if(_0x403841[_0x06e7('0x49')]['mode']===_0x06e7('0x4d')){fs[_0x06e7('0x53')](_0x421328[_0x06e7('0x4e')],parseInt(_0x06e7('0x54'),0x8));}var _0x1273f0=_0x403841[_0x06e7('0x55')][_0x06e7('0x24')]({'plain':!![]});if(!_0x1273f0)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x1273f0['role']===_0x06e7('0x55')){var _0x57fa26=_0x421328[_0x06e7('0x24')]({'plain':!![]});return db[_0x06e7('0x56')]['find']({'where':{'name':'MusicOnHolds','userProfileId':_0x1273f0[_0x06e7('0x57')]},'raw':!![]})[_0x06e7('0x22')](function(_0x2de1af){if(_0x2de1af&&_0x2de1af[_0x06e7('0x58')]===0x0){return db[_0x06e7('0x26')][_0x06e7('0x52')]({'name':_0x57fa26[_0x06e7('0x28')],'resourceId':_0x57fa26['id'],'type':_0x2de1af[_0x06e7('0x28')],'sectionId':_0x2de1af['id']},{})[_0x06e7('0x22')](function(){return _0x421328;});}else{return _0x421328;}})[_0x06e7('0x43')](function(_0x346a01){logger[_0x06e7('0x27')](_0x06e7('0x59'),_0x346a01);});}return _0x421328;});})[_0x06e7('0x22')](respondWithResult(_0x41af53,0xc9))[_0x06e7('0x43')](handleError(_0x41af53,null));};exports[_0x06e7('0x23')]=function(_0x2718fa,_0x30a250,_0x150901){var _0x3ac74c;return db[_0x06e7('0x2b')][_0x06e7('0x48')]({'where':{'id':_0x2718fa[_0x06e7('0x5a')]['id']}})[_0x06e7('0x22')](function(_0x2438b3){if(_0x2438b3){return db[_0x06e7('0x4a')][_0x06e7('0x4b')](function(_0x378758){return _0x2438b3[_0x06e7('0x23')]({'transaction':_0x378758,'raw':!![]})[_0x06e7('0x22')](function(_0x2bc5da){if(_0x2bc5da['directory']){fs[_0x06e7('0x5b')](_0x2bc5da[_0x06e7('0x4e')])[_0x06e7('0x5c')](function(_0xb2f2b8){fs[_0x06e7('0x5d')](path[_0x06e7('0x4f')](_0x2bc5da['directory'],_0xb2f2b8));});fs['rmdirSync'](_0x2bc5da[_0x06e7('0x4e')]);}return _0x2bc5da;});})[_0x06e7('0x43')](function(_0x41ae5f){throw new db[(_0x06e7('0x5e'))][(_0x06e7('0x5f'))](_0x41ae5f['message']);});}})[_0x06e7('0x22')](handleEntityNotFound(_0x30a250,null))['then'](removeEntity(_0x30a250,null))['catch'](handleError(_0x30a250,null));};exports[_0x06e7('0x60')]=function(_0x45af89,_0xf1494e,_0x3c6b4c){return db[_0x06e7('0x4a')][_0x06e7('0x4b')](function(_0x87d52a){var _0x912611;return db[_0x06e7('0x2b')][_0x06e7('0x48')]({'where':{'id':_0x45af89['params']['id']}})['then'](function(_0x20448d){if(_0x20448d){_0x912611=_0x20448d;return _0x20448d[_0x06e7('0x60')](_0x45af89[_0x06e7('0x49')]['id'],{'transaction':_0x87d52a});}})[_0x06e7('0x22')](function(_0x1a1a80){if(_0x1a1a80){return db[_0x06e7('0x61')][_0x06e7('0x62')]({'where':{'id':_0x45af89[_0x06e7('0x49')]['id']},'attributes':['id',_0x06e7('0x28'),_0x06e7('0x63'),'converted_format',_0x06e7('0x64')],'raw':!![]});}})[_0x06e7('0x22')](function(_0x1c8cb0){if(_0x1c8cb0){var _0x3743df=path[_0x06e7('0x4f')](config[_0x06e7('0x50')],'server/files/sounds/converted',util['format']('%s.%s',path[_0x06e7('0x65')](_0x1c8cb0[_0x06e7('0x63')],path['extname'](_0x1c8cb0[_0x06e7('0x63')])),_0x1c8cb0[_0x06e7('0x66')]));var _0xdb1174=path[_0x06e7('0x4f')](config[_0x06e7('0x50')],_0x06e7('0x51'),_0x912611[_0x06e7('0x28')],util[_0x06e7('0x67')](_0x06e7('0x68'),_0x1c8cb0[_0x06e7('0x28')],_0x1c8cb0[_0x06e7('0x66')]));fs[_0x06e7('0x69')](_0x3743df,_0xdb1174);return _0x1c8cb0;}})[_0x06e7('0x43')](function(_0x292af9){throw new db[(_0x06e7('0x5e'))][(_0x06e7('0x5f'))](_0x292af9[_0x06e7('0x6a')]);});})['then'](handleEntityNotFound(_0xf1494e,null))[_0x06e7('0x22')](respondWithResult(_0xf1494e,0xc9))[_0x06e7('0x43')](handleError(_0xf1494e,null));};exports[_0x06e7('0x6b')]=function(_0x1b7f4a,_0x302523,_0x497a03){return db['sequelize'][_0x06e7('0x4b')](function(_0x5df5ce){var _0x4d9556;return db['VoiceMusicOnHold'][_0x06e7('0x62')]({'where':{'id':_0x1b7f4a['params']['id']}})[_0x06e7('0x22')](handleEntityNotFound(_0x302523,null))[_0x06e7('0x22')](function(_0x331247){if(_0x331247){_0x4d9556=_0x331247;return _0x331247[_0x06e7('0x6b')](_0x1b7f4a[_0x06e7('0x5a')][_0x06e7('0x6c')]);}})[_0x06e7('0x22')](function(_0x413b0e){if(_0x413b0e){return db['Sound'][_0x06e7('0x62')]({'where':{'id':_0x1b7f4a[_0x06e7('0x5a')][_0x06e7('0x6c')]},'attributes':['id',_0x06e7('0x28'),'save_name',_0x06e7('0x66'),'createdAt'],'raw':!![]});}})[_0x06e7('0x22')](function(_0x1a72ec){if(_0x1a72ec){fs[_0x06e7('0x5d')](path[_0x06e7('0x4f')](_0x4d9556['directory'],util[_0x06e7('0x67')](_0x06e7('0x68'),_0x1a72ec[_0x06e7('0x28')],_0x1a72ec[_0x06e7('0x66')])));return _0x1a72ec;}})['catch'](function(_0x4b49f6){throw new db[(_0x06e7('0x5e'))][(_0x06e7('0x5f'))](_0x4b49f6[_0x06e7('0x6a')]);});})[_0x06e7('0x22')](handleEntityNotFound(_0x302523,null))[_0x06e7('0x22')](respondWithStatusCode(_0x302523,0xcc))[_0x06e7('0x43')](handleError(_0x302523,null));};exports[_0x06e7('0x6d')]=function(_0x5708ae,_0x14ef94,_0x35c84a){var _0x3b4a35={};var _0x5e88d4={};var _0x5d7677;var _0x485d7b;return db[_0x06e7('0x2b')][_0x06e7('0x62')]({'where':{'id':_0x5708ae[_0x06e7('0x5a')]['id']}})[_0x06e7('0x22')](handleEntityNotFound(_0x14ef94,null))[_0x06e7('0x22')](function(_0x35d342){if(_0x35d342){_0x5d7677=_0x35d342;_0x5e88d4['model']=_[_0x06e7('0x45')](db['Sound'][_0x06e7('0x2c')]);_0x5e88d4[_0x06e7('0x30')]=_[_0x06e7('0x45')](_0x5708ae[_0x06e7('0x30')]);_0x5e88d4[_0x06e7('0x31')]=_[_0x06e7('0x32')](_0x5e88d4['model'],_0x5e88d4[_0x06e7('0x30')]);_0x3b4a35[_0x06e7('0x33')]=_[_0x06e7('0x32')](_0x5e88d4[_0x06e7('0x2f')],qs[_0x06e7('0x46')](_0x5708ae['query'][_0x06e7('0x46')]));_0x3b4a35[_0x06e7('0x33')]=_0x3b4a35[_0x06e7('0x33')]['length']?_0x3b4a35['attributes']:_0x5e88d4[_0x06e7('0x2f')];_0x3b4a35[_0x06e7('0x37')]=qs[_0x06e7('0x38')](_0x5708ae['query'][_0x06e7('0x38')]);_0x3b4a35[_0x06e7('0x39')]=qs[_0x06e7('0x31')](_[_0x06e7('0x3a')](_0x5708ae['query'],_0x5e88d4['filters']));if(_0x5708ae[_0x06e7('0x30')]['filter']){_0x3b4a35[_0x06e7('0x39')]=_[_0x06e7('0x3c')](_0x3b4a35[_0x06e7('0x39')],{'$or':_[_0x06e7('0x2a')](_0x3b4a35[_0x06e7('0x33')],function(_0xe446a2){var _0x38f454={};_0x38f454[_0xe446a2]={'$like':'%'+_0x5708ae['query'][_0x06e7('0x3b')]+'%'};return _0x38f454;})});}_0x3b4a35=_[_0x06e7('0x3c')]({},_0x3b4a35,_0x5708ae['options']);return _0x5d7677[_0x06e7('0x6d')](_0x3b4a35);}})['then'](function(_0x1de022){if(_0x1de022){_0x485d7b=_0x1de022['length'];if(!_0x5708ae[_0x06e7('0x30')][_0x06e7('0x35')](_0x06e7('0x36'))){_0x3b4a35[_0x06e7('0x1d')]=qs[_0x06e7('0x1d')](_0x5708ae[_0x06e7('0x30')][_0x06e7('0x1d')]);_0x3b4a35[_0x06e7('0x1b')]=qs[_0x06e7('0x1b')](_0x5708ae[_0x06e7('0x30')][_0x06e7('0x1b')]);}return _0x5d7677[_0x06e7('0x6d')](_0x3b4a35);}})[_0x06e7('0x22')](function(_0x2ecd2a){if(_0x2ecd2a){return _0x2ecd2a?{'count':_0x485d7b,'rows':_0x2ecd2a}:null;}})[_0x06e7('0x22')](respondWithResult(_0x14ef94,null))[_0x06e7('0x43')](handleError(_0x14ef94,null));};