b84c426b71c3b40f5e0196d6158732cb0c79b177
[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 _0x2451=['fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','crypto','desk.js','papaparse','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../mysqldb','sendStatus','status','count','offset','limit','set','Content-Range','apply','reject','save','update','then','MusicOnHolds','UserProfileResource','end','name','send','index','map','VoiceMusicOnHold','rawAttributes','fieldName','type','key','query','keys','intersection','fields','attributes','length','model','hasOwnProperty','nolimit','order','sort','where','filters','pick','filter','VIRTUAL','merge','options','includeAll','rows','catch','params','include','find','body','sequelize','transaction','mode','join','root','server/files/moh','create','files','mkdirSync','directory','0777','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','userProfileId','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','destroy','readdirSync','forEach','unlinkSync','Sequelize','message','addSound','Sound','createdAt','server/files/sounds/converted','format','%s.%s','basename','save_name','extname','converted_format','ValidationError','findOne','id2','getSounds','html-pdf','eml-format','rimraf','zip-dir'];(function(_0x15797a,_0x16274f){var _0x3e2618=function(_0x2b6e99){while(--_0x2b6e99){_0x15797a['push'](_0x15797a['shift']());}};_0x3e2618(++_0x16274f);}(_0x2451,0x6b));var _0x1245=function(_0x54d4fe,_0x55e869){_0x54d4fe=_0x54d4fe-0x0;var _0x1ab5bb=_0x2451[_0x54d4fe];return _0x1ab5bb;};'use strict';var pdf=require(_0x1245('0x0'));var emlformat=require(_0x1245('0x1'));var rimraf=require(_0x1245('0x2'));var zipdir=require(_0x1245('0x3'));var jsonpatch=require(_0x1245('0x4'));var rp=require(_0x1245('0x5'));var moment=require(_0x1245('0x6'));var BPromise=require(_0x1245('0x7'));var Mustache=require(_0x1245('0x8'));var util=require(_0x1245('0x9'));var path=require(_0x1245('0xa'));var sox=require(_0x1245('0xb'));var csv=require(_0x1245('0xc'));var ejs=require(_0x1245('0xd'));var fs=require('fs');var _=require(_0x1245('0xe'));var squel=require('squel');var crypto=require(_0x1245('0xf'));var jsforce=require('jsforce');var deskjs=require(_0x1245('0x10'));var toCsv=require(_0x1245('0xc'));var querystring=require('querystring');var Papa=require(_0x1245('0x11'));var Redis=require('ioredis');var authService=require(_0x1245('0x12'));var qs=require('../../components/parsers/qs');var as=require(_0x1245('0x13'));var hardwareService=require(_0x1245('0x14'));var logger=require('../../config/logger')(_0x1245('0x15'));var utils=require(_0x1245('0x16'));var config=require('../../config/environment');var db=require(_0x1245('0x17'))['db'];function respondWithStatusCode(_0x1e8c83,_0x1d16c){_0x1d16c=_0x1d16c||0xcc;return function(_0x1a1eb1){if(_0x1a1eb1){return _0x1e8c83[_0x1245('0x18')](_0x1d16c);}return _0x1e8c83['status'](_0x1d16c)['end']();};}function respondWithResult(_0x2c0589,_0x240743){_0x240743=_0x240743||0xc8;return function(_0x5c7a51){if(_0x5c7a51){return _0x2c0589[_0x1245('0x19')](_0x240743)['json'](_0x5c7a51);}};}function respondWithFilteredResult(_0x540bdc,_0x44a96c){return function(_0x263366){if(_0x263366){var _0x3f8f49=_0x263366[_0x1245('0x1a')],_0x4d4118=_0x44a96c[_0x1245('0x1b')],_0x293c2c=_0x44a96c[_0x1245('0x1b')]+_0x44a96c[_0x1245('0x1c')],_0xdcc6ef;if(_0x293c2c>=_0x3f8f49){_0x293c2c=_0x3f8f49;_0xdcc6ef=0xc8;}else{_0xdcc6ef=0xce;}_0x540bdc[_0x1245('0x19')](_0xdcc6ef);return _0x540bdc[_0x1245('0x1d')](_0x1245('0x1e'),_0x4d4118+'-'+_0x293c2c+'/'+_0x3f8f49)['json'](_0x263366);}return null;};}function patchUpdates(_0x1944d7){return function(_0x2d7204){try{jsonpatch[_0x1245('0x1f')](_0x2d7204,_0x1944d7,!![]);}catch(_0x331813){return BPromise[_0x1245('0x20')](_0x331813);}return _0x2d7204[_0x1245('0x21')]();};}function saveUpdates(_0x2c0493,_0x4e3b8a){return function(_0x4968ec){if(_0x4968ec){return _0x4968ec[_0x1245('0x22')](_0x2c0493)[_0x1245('0x23')](function(_0x2da419){return _0x2da419;});}return null;};}function removeEntity(_0x347f4d,_0x58157f){return function(_0x4a340e){if(_0x4a340e){return _0x4a340e['destroy']()[_0x1245('0x23')](function(){var _0x863e6e=_0x4a340e['get']({'plain':!![]});var _0x35534e=_0x1245('0x24');return db[_0x1245('0x25')]['destroy']({'where':{'type':_0x35534e,'resourceId':_0x863e6e['id']}})[_0x1245('0x23')](function(){return _0x4a340e;});})['then'](function(){_0x347f4d[_0x1245('0x19')](0xcc)[_0x1245('0x26')]();});}};}function handleEntityNotFound(_0x2db48e,_0x1c2ccb){return function(_0x20a23e){if(!_0x20a23e){_0x2db48e['sendStatus'](0x194);}return _0x20a23e;};}function handleError(_0xb06e4f,_0x4acc85){_0x4acc85=_0x4acc85||0x1f4;return function(_0x9395d1){logger['error'](_0x9395d1['stack']);if(_0x9395d1[_0x1245('0x27')]){delete _0x9395d1[_0x1245('0x27')];}_0xb06e4f[_0x1245('0x19')](_0x4acc85)[_0x1245('0x28')](_0x9395d1);};}exports[_0x1245('0x29')]=function(_0x128bc9,_0x4e1e0c){var _0x3b8b39={},_0x539bb1={},_0x33b40e={'count':0x0,'rows':[]};var _0x48266a=_[_0x1245('0x2a')](db[_0x1245('0x2b')][_0x1245('0x2c')],function(_0x3859a1){return{'name':_0x3859a1[_0x1245('0x2d')],'type':_0x3859a1[_0x1245('0x2e')][_0x1245('0x2f')]};});_0x539bb1['model']=_[_0x1245('0x2a')](_0x48266a,_0x1245('0x27'));_0x539bb1[_0x1245('0x30')]=_[_0x1245('0x31')](_0x128bc9[_0x1245('0x30')]);_0x539bb1['filters']=_[_0x1245('0x32')](_0x539bb1['model'],_0x539bb1[_0x1245('0x30')]);_0x3b8b39['attributes']=_['intersection'](_0x539bb1['model'],qs['fields'](_0x128bc9['query'][_0x1245('0x33')]));_0x3b8b39[_0x1245('0x34')]=_0x3b8b39[_0x1245('0x34')][_0x1245('0x35')]?_0x3b8b39[_0x1245('0x34')]:_0x539bb1[_0x1245('0x36')];if(!_0x128bc9[_0x1245('0x30')][_0x1245('0x37')](_0x1245('0x38'))){_0x3b8b39[_0x1245('0x1c')]=qs['limit'](_0x128bc9[_0x1245('0x30')][_0x1245('0x1c')]);_0x3b8b39[_0x1245('0x1b')]=qs[_0x1245('0x1b')](_0x128bc9[_0x1245('0x30')][_0x1245('0x1b')]);}_0x3b8b39[_0x1245('0x39')]=qs[_0x1245('0x3a')](_0x128bc9['query'][_0x1245('0x3a')]);_0x3b8b39[_0x1245('0x3b')]=qs[_0x1245('0x3c')](_[_0x1245('0x3d')](_0x128bc9[_0x1245('0x30')],_0x539bb1['filters']));if(_0x128bc9[_0x1245('0x30')][_0x1245('0x3e')]){_0x3b8b39[_0x1245('0x3b')]=_['merge'](_0x3b8b39[_0x1245('0x3b')],{'$or':_[_0x1245('0x2a')](_0x48266a,function(_0x3ffce2){if(_0x3ffce2[_0x1245('0x2e')]!==_0x1245('0x3f')){var _0x58b99b={};_0x58b99b[_0x3ffce2['name']]={'$like':'%'+_0x128bc9[_0x1245('0x30')]['filter']+'%'};return _0x58b99b;}})});}_0x3b8b39=_[_0x1245('0x40')]({},_0x3b8b39,_0x128bc9[_0x1245('0x41')]);var _0x3432d3={'where':_0x3b8b39[_0x1245('0x3b')]};return db[_0x1245('0x2b')][_0x1245('0x1a')](_0x3432d3)[_0x1245('0x23')](function(_0x1033ba){_0x33b40e[_0x1245('0x1a')]=_0x1033ba;if(_0x128bc9[_0x1245('0x30')][_0x1245('0x42')]){_0x3b8b39['include']=[{'all':!![]}];}return db['VoiceMusicOnHold']['findAll'](_0x3b8b39);})['then'](function(_0x9c8135){_0x33b40e[_0x1245('0x43')]=_0x9c8135;return _0x33b40e;})['then'](respondWithFilteredResult(_0x4e1e0c,_0x3b8b39))[_0x1245('0x44')](handleError(_0x4e1e0c,null));};exports['show']=function(_0x5a472d,_0x590b45){var _0x4a0592={'raw':![],'where':{'id':_0x5a472d[_0x1245('0x45')]['id']}},_0x3bfb49={};_0x3bfb49[_0x1245('0x36')]=_[_0x1245('0x31')](db[_0x1245('0x2b')][_0x1245('0x2c')]);_0x3bfb49['query']=_[_0x1245('0x31')](_0x5a472d[_0x1245('0x30')]);_0x3bfb49[_0x1245('0x3c')]=_[_0x1245('0x32')](_0x3bfb49[_0x1245('0x36')],_0x3bfb49[_0x1245('0x30')]);_0x4a0592[_0x1245('0x34')]=_['intersection'](_0x3bfb49[_0x1245('0x36')],qs[_0x1245('0x33')](_0x5a472d['query'][_0x1245('0x33')]));_0x4a0592[_0x1245('0x34')]=_0x4a0592['attributes'][_0x1245('0x35')]?_0x4a0592[_0x1245('0x34')]:_0x3bfb49[_0x1245('0x36')];if(_0x5a472d['query'][_0x1245('0x42')]){_0x4a0592[_0x1245('0x46')]=[{'all':!![]}];}_0x4a0592=_[_0x1245('0x40')]({},_0x4a0592,_0x5a472d['options']);return db[_0x1245('0x2b')][_0x1245('0x47')](_0x4a0592)['then'](handleEntityNotFound(_0x590b45,null))[_0x1245('0x23')](respondWithResult(_0x590b45,null))[_0x1245('0x44')](handleError(_0x590b45,null));};exports[_0x1245('0x22')]=function(_0x5c935b,_0x96a13d){if(_0x5c935b['body']['id']){delete _0x5c935b['body']['id'];}return db[_0x1245('0x2b')][_0x1245('0x47')]({'where':{'id':_0x5c935b['params']['id']}})[_0x1245('0x23')](handleEntityNotFound(_0x96a13d,null))[_0x1245('0x23')](saveUpdates(_0x5c935b[_0x1245('0x48')],null))[_0x1245('0x23')](respondWithResult(_0x96a13d,null))[_0x1245('0x44')](handleError(_0x96a13d,null));};exports['create']=function(_0x5dafa8,_0x448502,_0x1f5a41){return db[_0x1245('0x49')][_0x1245('0x4a')](function(_0x3534d8){if(_0x5dafa8[_0x1245('0x48')][_0x1245('0x4b')]==='files'){_0x5dafa8[_0x1245('0x48')]['directory']=path[_0x1245('0x4c')](config[_0x1245('0x4d')],_0x1245('0x4e'),_0x5dafa8[_0x1245('0x48')]['name']);}return db[_0x1245('0x2b')][_0x1245('0x4f')](_0x5dafa8[_0x1245('0x48')],{'transaction':_0x3534d8})[_0x1245('0x23')](function(_0x5b6450){if(_0x5dafa8[_0x1245('0x48')][_0x1245('0x4b')]===_0x1245('0x50')){fs[_0x1245('0x51')](_0x5b6450[_0x1245('0x52')],parseInt(_0x1245('0x53'),0x8));}var _0x1fa523=_0x5dafa8[_0x1245('0x54')][_0x1245('0x55')]({'plain':!![]});if(!_0x1fa523)throw new Error(_0x1245('0x56'));if(_0x1fa523['role']==='user'){var _0x906fa0=_0x5b6450[_0x1245('0x55')]({'plain':!![]});return db[_0x1245('0x57')][_0x1245('0x47')]({'where':{'name':'MusicOnHolds','userProfileId':_0x1fa523[_0x1245('0x58')]},'raw':!![]})[_0x1245('0x23')](function(_0x213801){if(_0x213801&&_0x213801['autoAssociation']===0x0){return db[_0x1245('0x25')][_0x1245('0x4f')]({'name':_0x906fa0['name'],'resourceId':_0x906fa0['id'],'type':_0x213801['name'],'sectionId':_0x213801['id']},{})[_0x1245('0x23')](function(){return _0x5b6450;});}else{return _0x5b6450;}})[_0x1245('0x44')](function(_0x175c90){logger[_0x1245('0x59')](_0x1245('0x5a'),_0x175c90);});}return _0x5b6450;});})['then'](respondWithResult(_0x448502,0xc9))['catch'](handleError(_0x448502,null));};exports[_0x1245('0x5b')]=function(_0x4cf2f1,_0x5d29f3,_0xb294c8){var _0x18b2ec;return db[_0x1245('0x2b')][_0x1245('0x47')]({'where':{'id':_0x4cf2f1[_0x1245('0x45')]['id']}})[_0x1245('0x23')](function(_0x58c112){if(_0x58c112){return db[_0x1245('0x49')][_0x1245('0x4a')](function(_0x13ae7f){return _0x58c112['destroy']({'transaction':_0x13ae7f,'raw':!![]})[_0x1245('0x23')](function(_0x482165){if(_0x482165[_0x1245('0x52')]){fs[_0x1245('0x5c')](_0x482165[_0x1245('0x52')])[_0x1245('0x5d')](function(_0x160bc7){fs[_0x1245('0x5e')](path['join'](_0x482165[_0x1245('0x52')],_0x160bc7));});fs['rmdirSync'](_0x482165[_0x1245('0x52')]);}return _0x482165;});})['catch'](function(_0x364be5){throw new db[(_0x1245('0x5f'))]['ValidationError'](_0x364be5[_0x1245('0x60')]);});}})[_0x1245('0x23')](handleEntityNotFound(_0x5d29f3,null))[_0x1245('0x23')](removeEntity(_0x5d29f3,null))[_0x1245('0x44')](handleError(_0x5d29f3,null));};exports[_0x1245('0x61')]=function(_0x29db2c,_0x4f559f,_0x2b0d7c){return db['sequelize'][_0x1245('0x4a')](function(_0x4f64a1){var _0xe4ced3;return db['VoiceMusicOnHold'][_0x1245('0x47')]({'where':{'id':_0x29db2c[_0x1245('0x45')]['id']}})[_0x1245('0x23')](function(_0x1af686){if(_0x1af686){_0xe4ced3=_0x1af686;return _0x1af686['addSound'](_0x29db2c['body']['id'],{'transaction':_0x4f64a1});}})[_0x1245('0x23')](function(_0x2885a5){if(_0x2885a5){return db[_0x1245('0x62')]['findOne']({'where':{'id':_0x29db2c[_0x1245('0x48')]['id']},'attributes':['id',_0x1245('0x27'),'save_name','converted_format',_0x1245('0x63')],'raw':!![]});}})['then'](function(_0x430c84){if(_0x430c84){var _0x4141c3=path[_0x1245('0x4c')](config[_0x1245('0x4d')],_0x1245('0x64'),util[_0x1245('0x65')](_0x1245('0x66'),path[_0x1245('0x67')](_0x430c84[_0x1245('0x68')],path[_0x1245('0x69')](_0x430c84[_0x1245('0x68')])),_0x430c84[_0x1245('0x6a')]));var _0x387a1c=path[_0x1245('0x4c')](config[_0x1245('0x4d')],_0x1245('0x4e'),_0xe4ced3['name'],util[_0x1245('0x65')](_0x1245('0x66'),_0x430c84[_0x1245('0x27')],_0x430c84[_0x1245('0x6a')]));fs['symlinkSync'](_0x4141c3,_0x387a1c);return _0x430c84;}})[_0x1245('0x44')](function(_0x4f51ee){throw new db[(_0x1245('0x5f'))][(_0x1245('0x6b'))](_0x4f51ee[_0x1245('0x60')]);});})[_0x1245('0x23')](handleEntityNotFound(_0x4f559f,null))[_0x1245('0x23')](respondWithResult(_0x4f559f,0xc9))[_0x1245('0x44')](handleError(_0x4f559f,null));};exports['removeSound']=function(_0x590553,_0x565136,_0x2180eb){return db['sequelize'][_0x1245('0x4a')](function(_0x1d20e4){var _0x5a6b71;return db[_0x1245('0x2b')][_0x1245('0x6c')]({'where':{'id':_0x590553['params']['id']}})[_0x1245('0x23')](handleEntityNotFound(_0x565136,null))[_0x1245('0x23')](function(_0x236569){if(_0x236569){_0x5a6b71=_0x236569;return _0x236569['removeSound'](_0x590553[_0x1245('0x45')][_0x1245('0x6d')]);}})['then'](function(_0x565533){if(_0x565533){return db['Sound'][_0x1245('0x6c')]({'where':{'id':_0x590553[_0x1245('0x45')][_0x1245('0x6d')]},'attributes':['id',_0x1245('0x27'),'save_name',_0x1245('0x6a'),_0x1245('0x63')],'raw':!![]});}})[_0x1245('0x23')](function(_0x41f574){if(_0x41f574){fs['unlinkSync'](path[_0x1245('0x4c')](_0x5a6b71['directory'],util[_0x1245('0x65')](_0x1245('0x66'),_0x41f574[_0x1245('0x27')],_0x41f574['converted_format'])));return _0x41f574;}})[_0x1245('0x44')](function(_0x41f990){throw new db['Sequelize'][(_0x1245('0x6b'))](_0x41f990[_0x1245('0x60')]);});})[_0x1245('0x23')](handleEntityNotFound(_0x565136,null))['then'](respondWithStatusCode(_0x565136,0xcc))[_0x1245('0x44')](handleError(_0x565136,null));};exports[_0x1245('0x6e')]=function(_0x104113,_0x180475,_0xe7edc0){var _0x501dc2={};var _0x26bbde={};var _0xcbf92a;var _0x4ee97e;return db['VoiceMusicOnHold'][_0x1245('0x6c')]({'where':{'id':_0x104113[_0x1245('0x45')]['id']}})[_0x1245('0x23')](handleEntityNotFound(_0x180475,null))[_0x1245('0x23')](function(_0x12b467){if(_0x12b467){_0xcbf92a=_0x12b467;_0x26bbde['model']=_[_0x1245('0x31')](db['Sound'][_0x1245('0x2c')]);_0x26bbde[_0x1245('0x30')]=_['keys'](_0x104113[_0x1245('0x30')]);_0x26bbde[_0x1245('0x3c')]=_[_0x1245('0x32')](_0x26bbde[_0x1245('0x36')],_0x26bbde['query']);_0x501dc2[_0x1245('0x34')]=_[_0x1245('0x32')](_0x26bbde['model'],qs['fields'](_0x104113[_0x1245('0x30')][_0x1245('0x33')]));_0x501dc2[_0x1245('0x34')]=_0x501dc2[_0x1245('0x34')][_0x1245('0x35')]?_0x501dc2[_0x1245('0x34')]:_0x26bbde[_0x1245('0x36')];_0x501dc2['order']=qs[_0x1245('0x3a')](_0x104113[_0x1245('0x30')][_0x1245('0x3a')]);_0x501dc2[_0x1245('0x3b')]=qs[_0x1245('0x3c')](_[_0x1245('0x3d')](_0x104113[_0x1245('0x30')],_0x26bbde['filters']));if(_0x104113[_0x1245('0x30')][_0x1245('0x3e')]){_0x501dc2[_0x1245('0x3b')]=_[_0x1245('0x40')](_0x501dc2[_0x1245('0x3b')],{'$or':_[_0x1245('0x2a')](_0x501dc2[_0x1245('0x34')],function(_0x5e4ed4){var _0x5e2b23={};_0x5e2b23[_0x5e4ed4]={'$like':'%'+_0x104113['query']['filter']+'%'};return _0x5e2b23;})});}_0x501dc2=_['merge']({},_0x501dc2,_0x104113['options']);return _0xcbf92a['getSounds'](_0x501dc2);}})[_0x1245('0x23')](function(_0x158498){if(_0x158498){_0x4ee97e=_0x158498['length'];if(!_0x104113[_0x1245('0x30')][_0x1245('0x37')](_0x1245('0x38'))){_0x501dc2[_0x1245('0x1c')]=qs[_0x1245('0x1c')](_0x104113[_0x1245('0x30')]['limit']);_0x501dc2[_0x1245('0x1b')]=qs[_0x1245('0x1b')](_0x104113[_0x1245('0x30')][_0x1245('0x1b')]);}return _0xcbf92a['getSounds'](_0x501dc2);}})[_0x1245('0x23')](function(_0x3392fd){if(_0x3392fd){return _0x3392fd?{'count':_0x4ee97e,'rows':_0x3392fd}:null;}})['then'](respondWithResult(_0x180475,null))[_0x1245('0x44')](handleError(_0x180475,null));};