Built motion from commit 10af8726.|2.6.34
[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 _0xb631=['basename','save_name','Sequelize','removeSound','findOne','id2','Sound','getSounds','hasOwnProperty','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','ejs','fs-extra','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','end','offset','undefined','limit','count','Content-Range','json','apply','reject','save','update','then','destroy','get','MusicOnHolds','UserProfileResource','error','stack','name','send','map','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','fields','attributes','nolimit','order','sort','where','pick','filter','VIRTUAL','merge','options','VoiceMusicOnHold','includeAll','include','findAll','show','length','find','catch','body','params','sequelize','join','root','server/files/moh','create','mode','mkdirSync','directory','0777','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','userProfileId','autoAssociation','readdirSync','forEach','unlinkSync','rmdirSync','ValidationError','message','addSound','transaction','converted_format','createdAt','server/files/sounds/converted','format','%s.%s'];(function(_0x7d7c85,_0x4fda4f){var _0x5a255c=function(_0x33519b){while(--_0x33519b){_0x7d7c85['push'](_0x7d7c85['shift']());}};_0x5a255c(++_0x4fda4f);}(_0xb631,0x7a));var _0x1b63=function(_0x5959e1,_0x17bb1a){_0x5959e1=_0x5959e1-0x0;var _0x54f6cc=_0xb631[_0x5959e1];return _0x54f6cc;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x1b63('0x0'));var zipdir=require(_0x1b63('0x1'));var jsonpatch=require(_0x1b63('0x2'));var rp=require('request-promise');var moment=require(_0x1b63('0x3'));var BPromise=require(_0x1b63('0x4'));var Mustache=require(_0x1b63('0x5'));var util=require(_0x1b63('0x6'));var path=require('path');var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x1b63('0x7'));var fs=require('fs');var fs_extra=require(_0x1b63('0x8'));var _=require('lodash');var squel=require(_0x1b63('0x9'));var crypto=require(_0x1b63('0xa'));var jsforce=require(_0x1b63('0xb'));var deskjs=require(_0x1b63('0xc'));var toCsv=require(_0x1b63('0xd'));var querystring=require(_0x1b63('0xe'));var Papa=require(_0x1b63('0xf'));var Redis=require(_0x1b63('0x10'));var authService=require('../../components/auth/service');var qs=require(_0x1b63('0x11'));var as=require(_0x1b63('0x12'));var hardwareService=require(_0x1b63('0x13'));var logger=require(_0x1b63('0x14'))('api');var utils=require(_0x1b63('0x15'));var config=require('../../config/environment');var licenseUtil=require(_0x1b63('0x16'));var db=require(_0x1b63('0x17'))['db'];function respondWithStatusCode(_0x2ab929,_0x2f3a4f){_0x2f3a4f=_0x2f3a4f||0xcc;return function(_0x50f591){if(_0x50f591){return _0x2ab929[_0x1b63('0x18')](_0x2f3a4f);}return _0x2ab929[_0x1b63('0x19')](_0x2f3a4f)[_0x1b63('0x1a')]();};}function respondWithResult(_0x105c6c,_0x562376){_0x562376=_0x562376||0xc8;return function(_0x1a97cc){if(_0x1a97cc){return _0x105c6c['status'](_0x562376)['json'](_0x1a97cc);}};}function respondWithFilteredResult(_0x4eb08f,_0x209bf4){return function(_0x2d795d){if(_0x2d795d){var _0x1c31e8=typeof _0x209bf4[_0x1b63('0x1b')]===_0x1b63('0x1c')&&typeof _0x209bf4[_0x1b63('0x1d')]===_0x1b63('0x1c');var _0x1e2c52=_0x2d795d[_0x1b63('0x1e')];var _0x259e23=_0x1c31e8?0x0:_0x209bf4[_0x1b63('0x1b')];var _0x171cc4=_0x1c31e8?_0x2d795d[_0x1b63('0x1e')]:_0x209bf4[_0x1b63('0x1b')]+_0x209bf4[_0x1b63('0x1d')];var _0x2acf84;if(_0x171cc4>=_0x1e2c52){_0x171cc4=_0x1e2c52;_0x2acf84=0xc8;}else{_0x2acf84=0xce;}_0x4eb08f[_0x1b63('0x19')](_0x2acf84);return _0x4eb08f['set'](_0x1b63('0x1f'),_0x259e23+'-'+_0x171cc4+'/'+_0x1e2c52)[_0x1b63('0x20')](_0x2d795d);}return null;};}function patchUpdates(_0x35e40e){return function(_0x50fe9e){try{jsonpatch[_0x1b63('0x21')](_0x50fe9e,_0x35e40e,!![]);}catch(_0x1971ee){return BPromise[_0x1b63('0x22')](_0x1971ee);}return _0x50fe9e[_0x1b63('0x23')]();};}function saveUpdates(_0x39caa0,_0x5107b4){return function(_0x51f98c){if(_0x51f98c){return _0x51f98c[_0x1b63('0x24')](_0x39caa0)[_0x1b63('0x25')](function(_0x1dc8af){return _0x1dc8af;});}return null;};}function removeEntity(_0x49098f,_0x7df4cf){return function(_0x5bee31){if(_0x5bee31){return _0x5bee31[_0x1b63('0x26')]()[_0x1b63('0x25')](function(){var _0x4606de=_0x5bee31[_0x1b63('0x27')]({'plain':!![]});var _0x11acfe=_0x1b63('0x28');return db[_0x1b63('0x29')]['destroy']({'where':{'type':_0x11acfe,'resourceId':_0x4606de['id']}})[_0x1b63('0x25')](function(){return _0x5bee31;});})[_0x1b63('0x25')](function(){_0x49098f['status'](0xcc)[_0x1b63('0x1a')]();});}};}function handleEntityNotFound(_0x53acc6,_0x9ababe){return function(_0x971a0c){if(!_0x971a0c){_0x53acc6['sendStatus'](0x194);}return _0x971a0c;};}function handleError(_0x2af398,_0x2ddf4c){_0x2ddf4c=_0x2ddf4c||0x1f4;return function(_0x544000){logger[_0x1b63('0x2a')](_0x544000[_0x1b63('0x2b')]);if(_0x544000['name']){delete _0x544000[_0x1b63('0x2c')];}_0x2af398[_0x1b63('0x19')](_0x2ddf4c)[_0x1b63('0x2d')](_0x544000);};}exports['index']=function(_0x18ee6c,_0x1c021b){var _0x782c2a={},_0x5a2ad8={},_0x3a5ebf={'count':0x0,'rows':[]};var _0x2a686f=_[_0x1b63('0x2e')](db['VoiceMusicOnHold'][_0x1b63('0x2f')],function(_0xbabe45){return{'name':_0xbabe45[_0x1b63('0x30')],'type':_0xbabe45[_0x1b63('0x31')][_0x1b63('0x32')]};});_0x5a2ad8[_0x1b63('0x33')]=_[_0x1b63('0x2e')](_0x2a686f,_0x1b63('0x2c'));_0x5a2ad8[_0x1b63('0x34')]=_[_0x1b63('0x35')](_0x18ee6c['query']);_0x5a2ad8[_0x1b63('0x36')]=_[_0x1b63('0x37')](_0x5a2ad8['model'],_0x5a2ad8['query']);_0x782c2a['attributes']=_[_0x1b63('0x37')](_0x5a2ad8[_0x1b63('0x33')],qs[_0x1b63('0x38')](_0x18ee6c['query'][_0x1b63('0x38')]));_0x782c2a[_0x1b63('0x39')]=_0x782c2a['attributes']['length']?_0x782c2a['attributes']:_0x5a2ad8[_0x1b63('0x33')];if(!_0x18ee6c[_0x1b63('0x34')]['hasOwnProperty'](_0x1b63('0x3a'))){_0x782c2a[_0x1b63('0x1d')]=qs['limit'](_0x18ee6c['query'][_0x1b63('0x1d')]);_0x782c2a[_0x1b63('0x1b')]=qs[_0x1b63('0x1b')](_0x18ee6c[_0x1b63('0x34')][_0x1b63('0x1b')]);}_0x782c2a[_0x1b63('0x3b')]=qs['sort'](_0x18ee6c['query']['sort']);delete _0x18ee6c[_0x1b63('0x34')][_0x1b63('0x3c')];_0x782c2a[_0x1b63('0x3d')]=qs['filters'](_[_0x1b63('0x3e')](_0x18ee6c[_0x1b63('0x34')],_0x5a2ad8[_0x1b63('0x36')]),_0x2a686f);if(_0x18ee6c['query'][_0x1b63('0x3f')]){_0x782c2a[_0x1b63('0x3d')]=_['merge'](_0x782c2a['where'],{'$or':_[_0x1b63('0x2e')](_0x2a686f,function(_0x48b7d9){if(_0x48b7d9[_0x1b63('0x31')]!==_0x1b63('0x40')){var _0x489043={};_0x489043[_0x48b7d9[_0x1b63('0x2c')]]={'$like':'%'+_0x18ee6c['query']['filter']+'%'};return _0x489043;}})});}_0x782c2a=_[_0x1b63('0x41')]({},_0x782c2a,_0x18ee6c[_0x1b63('0x42')]);var _0x27a885={'where':_0x782c2a['where']};return db[_0x1b63('0x43')][_0x1b63('0x1e')](_0x27a885)[_0x1b63('0x25')](function(_0x1ce9b2){_0x3a5ebf[_0x1b63('0x1e')]=_0x1ce9b2;if(_0x18ee6c['query'][_0x1b63('0x44')]){_0x782c2a[_0x1b63('0x45')]=[{'all':!![]}];}return db['VoiceMusicOnHold'][_0x1b63('0x46')](_0x782c2a);})[_0x1b63('0x25')](function(_0x14e2f2){_0x3a5ebf['rows']=_0x14e2f2;return _0x3a5ebf;})[_0x1b63('0x25')](respondWithFilteredResult(_0x1c021b,_0x782c2a))['catch'](handleError(_0x1c021b,null));};exports[_0x1b63('0x47')]=function(_0x16b4b2,_0x34f86d){var _0x5120f4={'raw':![],'where':{'id':_0x16b4b2['params']['id']}},_0x3413a7={};_0x3413a7[_0x1b63('0x33')]=_[_0x1b63('0x35')](db[_0x1b63('0x43')][_0x1b63('0x2f')]);_0x3413a7[_0x1b63('0x34')]=_[_0x1b63('0x35')](_0x16b4b2['query']);_0x3413a7[_0x1b63('0x36')]=_[_0x1b63('0x37')](_0x3413a7[_0x1b63('0x33')],_0x3413a7[_0x1b63('0x34')]);_0x5120f4[_0x1b63('0x39')]=_[_0x1b63('0x37')](_0x3413a7[_0x1b63('0x33')],qs[_0x1b63('0x38')](_0x16b4b2[_0x1b63('0x34')][_0x1b63('0x38')]));_0x5120f4[_0x1b63('0x39')]=_0x5120f4[_0x1b63('0x39')][_0x1b63('0x48')]?_0x5120f4[_0x1b63('0x39')]:_0x3413a7[_0x1b63('0x33')];if(_0x16b4b2[_0x1b63('0x34')][_0x1b63('0x44')]){_0x5120f4['include']=[{'all':!![]}];}_0x5120f4=_[_0x1b63('0x41')]({},_0x5120f4,_0x16b4b2[_0x1b63('0x42')]);return db[_0x1b63('0x43')][_0x1b63('0x49')](_0x5120f4)['then'](handleEntityNotFound(_0x34f86d,null))[_0x1b63('0x25')](respondWithResult(_0x34f86d,null))[_0x1b63('0x4a')](handleError(_0x34f86d,null));};exports[_0x1b63('0x24')]=function(_0x295075,_0x3221f0){if(_0x295075['body']['id']){delete _0x295075[_0x1b63('0x4b')]['id'];}return db[_0x1b63('0x43')][_0x1b63('0x49')]({'where':{'id':_0x295075[_0x1b63('0x4c')]['id']}})[_0x1b63('0x25')](handleEntityNotFound(_0x3221f0,null))[_0x1b63('0x25')](saveUpdates(_0x295075[_0x1b63('0x4b')],null))[_0x1b63('0x25')](respondWithResult(_0x3221f0,null))[_0x1b63('0x4a')](handleError(_0x3221f0,null));};exports['create']=function(_0x5ddabb,_0x49c55f,_0x265c93){return db[_0x1b63('0x4d')]['transaction'](function(_0x4f5181){if(_0x5ddabb['body']['mode']==='files'){_0x5ddabb[_0x1b63('0x4b')]['directory']=path[_0x1b63('0x4e')](config[_0x1b63('0x4f')],_0x1b63('0x50'),_0x5ddabb[_0x1b63('0x4b')][_0x1b63('0x2c')]);}return db[_0x1b63('0x43')][_0x1b63('0x51')](_0x5ddabb[_0x1b63('0x4b')],{'transaction':_0x4f5181})[_0x1b63('0x25')](function(_0x3e7176){if(_0x5ddabb['body'][_0x1b63('0x52')]==='files'){fs[_0x1b63('0x53')](_0x3e7176[_0x1b63('0x54')],parseInt(_0x1b63('0x55'),0x8));}var _0x4bd4ff=_0x5ddabb['user'][_0x1b63('0x27')]({'plain':!![]});if(!_0x4bd4ff)throw new Error(_0x1b63('0x56'));if(_0x4bd4ff[_0x1b63('0x57')]===_0x1b63('0x58')){var _0x3abef2=_0x3e7176[_0x1b63('0x27')]({'plain':!![]});return db['UserProfileSection']['find']({'where':{'name':'MusicOnHolds','userProfileId':_0x4bd4ff[_0x1b63('0x59')]},'raw':!![]})[_0x1b63('0x25')](function(_0x2f518e){if(_0x2f518e&&_0x2f518e[_0x1b63('0x5a')]===0x0){return db['UserProfileResource'][_0x1b63('0x51')]({'name':_0x3abef2[_0x1b63('0x2c')],'resourceId':_0x3abef2['id'],'type':_0x2f518e['name'],'sectionId':_0x2f518e['id']},{})['then'](function(){return _0x3e7176;});}else{return _0x3e7176;}})[_0x1b63('0x4a')](function(_0x13bdcb){logger[_0x1b63('0x2a')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x13bdcb);});}return _0x3e7176;});})[_0x1b63('0x25')](respondWithResult(_0x49c55f,0xc9))[_0x1b63('0x4a')](handleError(_0x49c55f,null));};exports['destroy']=function(_0x4a3285,_0x1e8c4f,_0x4b04b6){var _0x7f1f6e;return db[_0x1b63('0x43')][_0x1b63('0x49')]({'where':{'id':_0x4a3285['params']['id']}})[_0x1b63('0x25')](function(_0x300d0e){if(_0x300d0e){return db['sequelize']['transaction'](function(_0x120e50){return _0x300d0e[_0x1b63('0x26')]({'transaction':_0x120e50,'raw':!![]})[_0x1b63('0x25')](function(_0x1f439e){if(_0x1f439e[_0x1b63('0x54')]){fs[_0x1b63('0x5b')](_0x1f439e[_0x1b63('0x54')])[_0x1b63('0x5c')](function(_0xaeca74){fs[_0x1b63('0x5d')](path[_0x1b63('0x4e')](_0x1f439e[_0x1b63('0x54')],_0xaeca74));});fs[_0x1b63('0x5e')](_0x1f439e[_0x1b63('0x54')]);}return _0x1f439e;});})[_0x1b63('0x4a')](function(_0xcdcca5){throw new db['Sequelize'][(_0x1b63('0x5f'))](_0xcdcca5[_0x1b63('0x60')]);});}})[_0x1b63('0x25')](handleEntityNotFound(_0x1e8c4f,null))[_0x1b63('0x25')](removeEntity(_0x1e8c4f,null))[_0x1b63('0x4a')](handleError(_0x1e8c4f,null));};exports[_0x1b63('0x61')]=function(_0x25a97c,_0x26e0cb,_0x6ae504){return db[_0x1b63('0x4d')][_0x1b63('0x62')](function(_0x2a7d37){var _0x2b1557;return db['VoiceMusicOnHold'][_0x1b63('0x49')]({'where':{'id':_0x25a97c['params']['id']}})[_0x1b63('0x25')](function(_0x23fc80){if(_0x23fc80){_0x2b1557=_0x23fc80;return _0x23fc80[_0x1b63('0x61')](_0x25a97c[_0x1b63('0x4b')]['id'],{'transaction':_0x2a7d37});}})[_0x1b63('0x25')](function(_0xedb07e){if(_0xedb07e){return db['Sound']['findOne']({'where':{'id':_0x25a97c[_0x1b63('0x4b')]['id']},'attributes':['id',_0x1b63('0x2c'),'save_name',_0x1b63('0x63'),_0x1b63('0x64')],'raw':!![]});}})[_0x1b63('0x25')](function(_0x55cafb){if(_0x55cafb){var _0x3a8054=path['join'](config[_0x1b63('0x4f')],_0x1b63('0x65'),util[_0x1b63('0x66')](_0x1b63('0x67'),path[_0x1b63('0x68')](_0x55cafb[_0x1b63('0x69')],path['extname'](_0x55cafb[_0x1b63('0x69')])),_0x55cafb[_0x1b63('0x63')]));var _0x448a6d=path[_0x1b63('0x4e')](config['root'],_0x1b63('0x50'),_0x2b1557[_0x1b63('0x2c')],util['format']('%s.%s',_0x55cafb[_0x1b63('0x2c')],_0x55cafb[_0x1b63('0x63')]));fs['symlinkSync'](_0x3a8054,_0x448a6d);return _0x55cafb;}})['catch'](function(_0xdc37d1){throw new db[(_0x1b63('0x6a'))][(_0x1b63('0x5f'))](_0xdc37d1[_0x1b63('0x60')]);});})[_0x1b63('0x25')](handleEntityNotFound(_0x26e0cb,null))['then'](respondWithResult(_0x26e0cb,0xc9))[_0x1b63('0x4a')](handleError(_0x26e0cb,null));};exports[_0x1b63('0x6b')]=function(_0x4af27f,_0x256c8f,_0x4f391a){return db[_0x1b63('0x4d')][_0x1b63('0x62')](function(_0x3cd7e4){var _0x223d6c;return db['VoiceMusicOnHold'][_0x1b63('0x6c')]({'where':{'id':_0x4af27f[_0x1b63('0x4c')]['id']}})[_0x1b63('0x25')](handleEntityNotFound(_0x256c8f,null))['then'](function(_0x611d1a){if(_0x611d1a){_0x223d6c=_0x611d1a;return _0x611d1a[_0x1b63('0x6b')](_0x4af27f['params'][_0x1b63('0x6d')]);}})[_0x1b63('0x25')](function(_0xa1ec39){if(_0xa1ec39){return db[_0x1b63('0x6e')][_0x1b63('0x6c')]({'where':{'id':_0x4af27f['params'][_0x1b63('0x6d')]},'attributes':['id','name',_0x1b63('0x69'),_0x1b63('0x63'),_0x1b63('0x64')],'raw':!![]});}})[_0x1b63('0x25')](function(_0x4c4370){if(_0x4c4370){fs[_0x1b63('0x5d')](path[_0x1b63('0x4e')](_0x223d6c[_0x1b63('0x54')],util[_0x1b63('0x66')](_0x1b63('0x67'),_0x4c4370[_0x1b63('0x2c')],_0x4c4370[_0x1b63('0x63')])));return _0x4c4370;}})['catch'](function(_0x1cb102){throw new db[(_0x1b63('0x6a'))][(_0x1b63('0x5f'))](_0x1cb102['message']);});})[_0x1b63('0x25')](handleEntityNotFound(_0x256c8f,null))[_0x1b63('0x25')](respondWithStatusCode(_0x256c8f,0xcc))['catch'](handleError(_0x256c8f,null));};exports[_0x1b63('0x6f')]=function(_0x463072,_0x4469b6,_0x29965c){var _0x3d86d2={};var _0x2d542d={};var _0x110b7f;var _0x3dc2ae;return db['VoiceMusicOnHold']['findOne']({'where':{'id':_0x463072[_0x1b63('0x4c')]['id']}})[_0x1b63('0x25')](handleEntityNotFound(_0x4469b6,null))[_0x1b63('0x25')](function(_0x4baede){if(_0x4baede){_0x110b7f=_0x4baede;_0x2d542d[_0x1b63('0x33')]=_[_0x1b63('0x35')](db[_0x1b63('0x6e')][_0x1b63('0x2f')]);_0x2d542d[_0x1b63('0x34')]=_[_0x1b63('0x35')](_0x463072['query']);_0x2d542d[_0x1b63('0x36')]=_[_0x1b63('0x37')](_0x2d542d[_0x1b63('0x33')],_0x2d542d[_0x1b63('0x34')]);_0x3d86d2[_0x1b63('0x39')]=_['intersection'](_0x2d542d['model'],qs[_0x1b63('0x38')](_0x463072[_0x1b63('0x34')][_0x1b63('0x38')]));_0x3d86d2[_0x1b63('0x39')]=_0x3d86d2[_0x1b63('0x39')]['length']?_0x3d86d2[_0x1b63('0x39')]:_0x2d542d[_0x1b63('0x33')];_0x3d86d2['order']=qs[_0x1b63('0x3c')](_0x463072['query']['sort']);_0x3d86d2[_0x1b63('0x3d')]=qs[_0x1b63('0x36')](_[_0x1b63('0x3e')](_0x463072['query'],_0x2d542d[_0x1b63('0x36')]));if(_0x463072['query'][_0x1b63('0x3f')]){_0x3d86d2[_0x1b63('0x3d')]=_[_0x1b63('0x41')](_0x3d86d2['where'],{'$or':_[_0x1b63('0x2e')](_0x3d86d2[_0x1b63('0x39')],function(_0x50a4e2){var _0x266327={};_0x266327[_0x50a4e2]={'$like':'%'+_0x463072[_0x1b63('0x34')][_0x1b63('0x3f')]+'%'};return _0x266327;})});}_0x3d86d2=_[_0x1b63('0x41')]({},_0x3d86d2,_0x463072['options']);return _0x110b7f['getSounds'](_0x3d86d2);}})[_0x1b63('0x25')](function(_0x32f06d){if(_0x32f06d){_0x3dc2ae=_0x32f06d[_0x1b63('0x48')];if(!_0x463072['query'][_0x1b63('0x70')](_0x1b63('0x3a'))){_0x3d86d2[_0x1b63('0x1d')]=qs[_0x1b63('0x1d')](_0x463072[_0x1b63('0x34')][_0x1b63('0x1d')]);_0x3d86d2[_0x1b63('0x1b')]=qs['offset'](_0x463072[_0x1b63('0x34')]['offset']);}return _0x110b7f[_0x1b63('0x6f')](_0x3d86d2);}})[_0x1b63('0x25')](function(_0x33649c){if(_0x33649c){return _0x33649c?{'count':_0x3dc2ae,'rows':_0x33649c}:null;}})[_0x1b63('0x25')](respondWithResult(_0x4469b6,null))['catch'](handleError(_0x4469b6,null));};