Built motion from commit 85328c08.|2.5.50
[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 _0xf41c=['Sound','pick','eml-format','zip-dir','fast-json-patch','request-promise','moment','mustache','util','sox','lodash','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/parsers/advancedSearch','../../config/logger','../../config/environment','../../config/license/util','../../mysqldb','status','end','json','offset','undefined','count','limit','set','Content-Range','update','then','get','MusicOnHolds','UserProfileResource','destroy','name','index','map','VoiceMusicOnHold','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','order','sort','filter','where','options','include','findAll','rows','catch','show','params','includeAll','merge','find','body','sequelize','files','directory','join','root','server/files/moh','create','mkdirSync','0777','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','transaction','readdirSync','unlinkSync','rmdirSync','Sequelize','ValidationError','message','addSound','findOne','save_name','converted_format','server/files/sounds/converted','format','%s.%s','basename','extname','symlinkSync','removeSound','id2','createdAt','getSounds'];(function(_0x194494,_0x57c76e){var _0x45acaf=function(_0x37e62f){while(--_0x37e62f){_0x194494['push'](_0x194494['shift']());}};_0x45acaf(++_0x57c76e);}(_0xf41c,0xd2));var _0xcf41=function(_0x1e4c88,_0xd20f47){_0x1e4c88=_0x1e4c88-0x0;var _0x1fe6a6=_0xf41c[_0x1e4c88];return _0x1fe6a6;};'use strict';var emlformat=require(_0xcf41('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xcf41('0x1'));var jsonpatch=require(_0xcf41('0x2'));var rp=require(_0xcf41('0x3'));var moment=require(_0xcf41('0x4'));var BPromise=require('bluebird');var Mustache=require(_0xcf41('0x5'));var util=require(_0xcf41('0x6'));var path=require('path');var sox=require(_0xcf41('0x7'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xcf41('0x8'));var squel=require(_0xcf41('0x9'));var crypto=require(_0xcf41('0xa'));var jsforce=require(_0xcf41('0xb'));var deskjs=require(_0xcf41('0xc'));var toCsv=require('to-csv');var querystring=require(_0xcf41('0xd'));var Papa=require('papaparse');var Redis=require(_0xcf41('0xe'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0xcf41('0xf'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xcf41('0x10'))('api');var utils=require('../../config/utils');var config=require(_0xcf41('0x11'));var licenseUtil=require(_0xcf41('0x12'));var db=require(_0xcf41('0x13'))['db'];function respondWithStatusCode(_0x2bb86f,_0x3e745b){_0x3e745b=_0x3e745b||0xcc;return function(_0x12b118){if(_0x12b118){return _0x2bb86f['sendStatus'](_0x3e745b);}return _0x2bb86f[_0xcf41('0x14')](_0x3e745b)[_0xcf41('0x15')]();};}function respondWithResult(_0x45b8b7,_0x22ad10){_0x22ad10=_0x22ad10||0xc8;return function(_0x6fb5c5){if(_0x6fb5c5){return _0x45b8b7[_0xcf41('0x14')](_0x22ad10)[_0xcf41('0x16')](_0x6fb5c5);}};}function respondWithFilteredResult(_0x14074d,_0x1376b4){return function(_0x202ac0){if(_0x202ac0){var _0x544883=typeof _0x1376b4[_0xcf41('0x17')]===_0xcf41('0x18')&&typeof _0x1376b4['limit']==='undefined';var _0x2dc230=_0x202ac0['count'];var _0x455a32=_0x544883?0x0:_0x1376b4['offset'];var _0x2a72ca=_0x544883?_0x202ac0[_0xcf41('0x19')]:_0x1376b4[_0xcf41('0x17')]+_0x1376b4[_0xcf41('0x1a')];var _0x36b428;if(_0x2a72ca>=_0x2dc230){_0x2a72ca=_0x2dc230;_0x36b428=0xc8;}else{_0x36b428=0xce;}_0x14074d[_0xcf41('0x14')](_0x36b428);return _0x14074d[_0xcf41('0x1b')](_0xcf41('0x1c'),_0x455a32+'-'+_0x2a72ca+'/'+_0x2dc230)[_0xcf41('0x16')](_0x202ac0);}return null;};}function patchUpdates(_0x4ff1f3){return function(_0x1d6cc0){try{jsonpatch['apply'](_0x1d6cc0,_0x4ff1f3,!![]);}catch(_0x18ec90){return BPromise['reject'](_0x18ec90);}return _0x1d6cc0['save']();};}function saveUpdates(_0x3bbd76,_0x2b48e1){return function(_0x47a50b){if(_0x47a50b){return _0x47a50b[_0xcf41('0x1d')](_0x3bbd76)[_0xcf41('0x1e')](function(_0x4393a1){return _0x4393a1;});}return null;};}function removeEntity(_0x40ed14,_0xd37f4b){return function(_0xad62ce){if(_0xad62ce){return _0xad62ce['destroy']()[_0xcf41('0x1e')](function(){var _0x549183=_0xad62ce[_0xcf41('0x1f')]({'plain':!![]});var _0x470b01=_0xcf41('0x20');return db[_0xcf41('0x21')][_0xcf41('0x22')]({'where':{'type':_0x470b01,'resourceId':_0x549183['id']}})[_0xcf41('0x1e')](function(){return _0xad62ce;});})[_0xcf41('0x1e')](function(){_0x40ed14['status'](0xcc)[_0xcf41('0x15')]();});}};}function handleEntityNotFound(_0xdc107,_0x3be8f1){return function(_0x46990e){if(!_0x46990e){_0xdc107['sendStatus'](0x194);}return _0x46990e;};}function handleError(_0xd7a9e,_0xaad5a3){_0xaad5a3=_0xaad5a3||0x1f4;return function(_0xd0d6a3){logger['error'](_0xd0d6a3['stack']);if(_0xd0d6a3['name']){delete _0xd0d6a3[_0xcf41('0x23')];}_0xd7a9e[_0xcf41('0x14')](_0xaad5a3)['send'](_0xd0d6a3);};}exports[_0xcf41('0x24')]=function(_0xcbba8d,_0x21c416){var _0x1b9c3d={},_0x41d402={},_0x9830f7={'count':0x0,'rows':[]};var _0x2b8186=_[_0xcf41('0x25')](db[_0xcf41('0x26')][_0xcf41('0x27')],function(_0x33b797){return{'name':_0x33b797[_0xcf41('0x28')],'type':_0x33b797[_0xcf41('0x29')][_0xcf41('0x2a')]};});_0x41d402[_0xcf41('0x2b')]=_['map'](_0x2b8186,'name');_0x41d402[_0xcf41('0x2c')]=_[_0xcf41('0x2d')](_0xcbba8d[_0xcf41('0x2c')]);_0x41d402[_0xcf41('0x2e')]=_[_0xcf41('0x2f')](_0x41d402[_0xcf41('0x2b')],_0x41d402[_0xcf41('0x2c')]);_0x1b9c3d[_0xcf41('0x30')]=_['intersection'](_0x41d402['model'],qs[_0xcf41('0x31')](_0xcbba8d[_0xcf41('0x2c')][_0xcf41('0x31')]));_0x1b9c3d[_0xcf41('0x30')]=_0x1b9c3d[_0xcf41('0x30')][_0xcf41('0x32')]?_0x1b9c3d[_0xcf41('0x30')]:_0x41d402['model'];if(!_0xcbba8d[_0xcf41('0x2c')][_0xcf41('0x33')]('nolimit')){_0x1b9c3d[_0xcf41('0x1a')]=qs[_0xcf41('0x1a')](_0xcbba8d[_0xcf41('0x2c')][_0xcf41('0x1a')]);_0x1b9c3d['offset']=qs['offset'](_0xcbba8d['query'][_0xcf41('0x17')]);}_0x1b9c3d[_0xcf41('0x34')]=qs['sort'](_0xcbba8d[_0xcf41('0x2c')][_0xcf41('0x35')]);delete _0xcbba8d[_0xcf41('0x2c')][_0xcf41('0x35')];_0x1b9c3d['where']=qs[_0xcf41('0x2e')](_['pick'](_0xcbba8d[_0xcf41('0x2c')],_0x41d402[_0xcf41('0x2e')]),_0x2b8186);if(_0xcbba8d[_0xcf41('0x2c')][_0xcf41('0x36')]){_0x1b9c3d[_0xcf41('0x37')]=_['merge'](_0x1b9c3d[_0xcf41('0x37')],{'$or':_['map'](_0x2b8186,function(_0x452200){if(_0x452200['type']!=='VIRTUAL'){var _0x186763={};_0x186763[_0x452200[_0xcf41('0x23')]]={'$like':'%'+_0xcbba8d[_0xcf41('0x2c')][_0xcf41('0x36')]+'%'};return _0x186763;}})});}_0x1b9c3d=_['merge']({},_0x1b9c3d,_0xcbba8d[_0xcf41('0x38')]);var _0x3dcf2e={'where':_0x1b9c3d[_0xcf41('0x37')]};return db[_0xcf41('0x26')][_0xcf41('0x19')](_0x3dcf2e)['then'](function(_0x2f28af){_0x9830f7[_0xcf41('0x19')]=_0x2f28af;if(_0xcbba8d[_0xcf41('0x2c')]['includeAll']){_0x1b9c3d[_0xcf41('0x39')]=[{'all':!![]}];}return db[_0xcf41('0x26')][_0xcf41('0x3a')](_0x1b9c3d);})[_0xcf41('0x1e')](function(_0x5ea3b9){_0x9830f7[_0xcf41('0x3b')]=_0x5ea3b9;return _0x9830f7;})[_0xcf41('0x1e')](respondWithFilteredResult(_0x21c416,_0x1b9c3d))[_0xcf41('0x3c')](handleError(_0x21c416,null));};exports[_0xcf41('0x3d')]=function(_0x121dab,_0x50b6ba){var _0x332ca8={'raw':![],'where':{'id':_0x121dab[_0xcf41('0x3e')]['id']}},_0x1d2d8b={};_0x1d2d8b[_0xcf41('0x2b')]=_['keys'](db[_0xcf41('0x26')][_0xcf41('0x27')]);_0x1d2d8b['query']=_[_0xcf41('0x2d')](_0x121dab['query']);_0x1d2d8b[_0xcf41('0x2e')]=_[_0xcf41('0x2f')](_0x1d2d8b[_0xcf41('0x2b')],_0x1d2d8b[_0xcf41('0x2c')]);_0x332ca8[_0xcf41('0x30')]=_[_0xcf41('0x2f')](_0x1d2d8b[_0xcf41('0x2b')],qs[_0xcf41('0x31')](_0x121dab[_0xcf41('0x2c')]['fields']));_0x332ca8[_0xcf41('0x30')]=_0x332ca8[_0xcf41('0x30')][_0xcf41('0x32')]?_0x332ca8[_0xcf41('0x30')]:_0x1d2d8b[_0xcf41('0x2b')];if(_0x121dab[_0xcf41('0x2c')][_0xcf41('0x3f')]){_0x332ca8[_0xcf41('0x39')]=[{'all':!![]}];}_0x332ca8=_[_0xcf41('0x40')]({},_0x332ca8,_0x121dab[_0xcf41('0x38')]);return db['VoiceMusicOnHold'][_0xcf41('0x41')](_0x332ca8)[_0xcf41('0x1e')](handleEntityNotFound(_0x50b6ba,null))[_0xcf41('0x1e')](respondWithResult(_0x50b6ba,null))[_0xcf41('0x3c')](handleError(_0x50b6ba,null));};exports[_0xcf41('0x1d')]=function(_0x8a491,_0x5a9852){if(_0x8a491[_0xcf41('0x42')]['id']){delete _0x8a491[_0xcf41('0x42')]['id'];}return db[_0xcf41('0x26')][_0xcf41('0x41')]({'where':{'id':_0x8a491[_0xcf41('0x3e')]['id']}})['then'](handleEntityNotFound(_0x5a9852,null))[_0xcf41('0x1e')](saveUpdates(_0x8a491['body'],null))['then'](respondWithResult(_0x5a9852,null))[_0xcf41('0x3c')](handleError(_0x5a9852,null));};exports['create']=function(_0x2f9bd6,_0x6e0c23,_0x294d35){return db[_0xcf41('0x43')]['transaction'](function(_0x261437){if(_0x2f9bd6['body']['mode']===_0xcf41('0x44')){_0x2f9bd6[_0xcf41('0x42')][_0xcf41('0x45')]=path[_0xcf41('0x46')](config[_0xcf41('0x47')],_0xcf41('0x48'),_0x2f9bd6[_0xcf41('0x42')][_0xcf41('0x23')]);}return db['VoiceMusicOnHold'][_0xcf41('0x49')](_0x2f9bd6['body'],{'transaction':_0x261437})[_0xcf41('0x1e')](function(_0x110f9a){if(_0x2f9bd6[_0xcf41('0x42')]['mode']==='files'){fs[_0xcf41('0x4a')](_0x110f9a[_0xcf41('0x45')],parseInt(_0xcf41('0x4b'),0x8));}var _0x1b8c0c=_0x2f9bd6['user']['get']({'plain':!![]});if(!_0x1b8c0c)throw new Error(_0xcf41('0x4c'));if(_0x1b8c0c['role']===_0xcf41('0x4d')){var _0x414283=_0x110f9a['get']({'plain':!![]});return db['UserProfileSection'][_0xcf41('0x41')]({'where':{'name':_0xcf41('0x20'),'userProfileId':_0x1b8c0c[_0xcf41('0x4e')]},'raw':!![]})['then'](function(_0x15c0c5){if(_0x15c0c5&&_0x15c0c5[_0xcf41('0x4f')]===0x0){return db['UserProfileResource']['create']({'name':_0x414283[_0xcf41('0x23')],'resourceId':_0x414283['id'],'type':_0x15c0c5['name'],'sectionId':_0x15c0c5['id']},{})[_0xcf41('0x1e')](function(){return _0x110f9a;});}else{return _0x110f9a;}})[_0xcf41('0x3c')](function(_0x396aee){logger['error'](_0xcf41('0x50'),_0x396aee);});}return _0x110f9a;});})[_0xcf41('0x1e')](respondWithResult(_0x6e0c23,0xc9))['catch'](handleError(_0x6e0c23,null));};exports[_0xcf41('0x22')]=function(_0x579acf,_0x1ad0e6,_0x40eeae){var _0x5e4714;return db[_0xcf41('0x26')][_0xcf41('0x41')]({'where':{'id':_0x579acf[_0xcf41('0x3e')]['id']}})[_0xcf41('0x1e')](function(_0x71277f){if(_0x71277f){return db[_0xcf41('0x43')][_0xcf41('0x51')](function(_0x3da3e0){return _0x71277f[_0xcf41('0x22')]({'transaction':_0x3da3e0,'raw':!![]})[_0xcf41('0x1e')](function(_0x1a9434){if(_0x1a9434[_0xcf41('0x45')]){fs[_0xcf41('0x52')](_0x1a9434[_0xcf41('0x45')])['forEach'](function(_0x24d920){fs[_0xcf41('0x53')](path['join'](_0x1a9434[_0xcf41('0x45')],_0x24d920));});fs[_0xcf41('0x54')](_0x1a9434[_0xcf41('0x45')]);}return _0x1a9434;});})['catch'](function(_0x251644){throw new db[(_0xcf41('0x55'))][(_0xcf41('0x56'))](_0x251644[_0xcf41('0x57')]);});}})[_0xcf41('0x1e')](handleEntityNotFound(_0x1ad0e6,null))['then'](removeEntity(_0x1ad0e6,null))[_0xcf41('0x3c')](handleError(_0x1ad0e6,null));};exports[_0xcf41('0x58')]=function(_0x5d0ca0,_0x246c08,_0x345b5b){return db[_0xcf41('0x43')]['transaction'](function(_0x1e50d7){var _0x2d63d2;return db[_0xcf41('0x26')]['find']({'where':{'id':_0x5d0ca0[_0xcf41('0x3e')]['id']}})[_0xcf41('0x1e')](function(_0xc8a1db){if(_0xc8a1db){_0x2d63d2=_0xc8a1db;return _0xc8a1db[_0xcf41('0x58')](_0x5d0ca0['body']['id'],{'transaction':_0x1e50d7});}})[_0xcf41('0x1e')](function(_0x46c2a7){if(_0x46c2a7){return db['Sound'][_0xcf41('0x59')]({'where':{'id':_0x5d0ca0[_0xcf41('0x42')]['id']},'attributes':['id','name',_0xcf41('0x5a'),_0xcf41('0x5b'),'createdAt'],'raw':!![]});}})[_0xcf41('0x1e')](function(_0x12df6a){if(_0x12df6a){var _0x33c665=path[_0xcf41('0x46')](config[_0xcf41('0x47')],_0xcf41('0x5c'),util[_0xcf41('0x5d')](_0xcf41('0x5e'),path[_0xcf41('0x5f')](_0x12df6a[_0xcf41('0x5a')],path[_0xcf41('0x60')](_0x12df6a[_0xcf41('0x5a')])),_0x12df6a[_0xcf41('0x5b')]));var _0x1305ac=path[_0xcf41('0x46')](config[_0xcf41('0x47')],'server/files/moh',_0x2d63d2[_0xcf41('0x23')],util[_0xcf41('0x5d')](_0xcf41('0x5e'),_0x12df6a['name'],_0x12df6a[_0xcf41('0x5b')]));fs[_0xcf41('0x61')](_0x33c665,_0x1305ac);return _0x12df6a;}})['catch'](function(_0x6b86f4){throw new db[(_0xcf41('0x55'))][(_0xcf41('0x56'))](_0x6b86f4[_0xcf41('0x57')]);});})[_0xcf41('0x1e')](handleEntityNotFound(_0x246c08,null))[_0xcf41('0x1e')](respondWithResult(_0x246c08,0xc9))[_0xcf41('0x3c')](handleError(_0x246c08,null));};exports[_0xcf41('0x62')]=function(_0x4c5ed2,_0x2c82f3,_0x5def86){return db[_0xcf41('0x43')][_0xcf41('0x51')](function(_0x5a3bf3){var _0x5ad12d;return db[_0xcf41('0x26')]['findOne']({'where':{'id':_0x4c5ed2[_0xcf41('0x3e')]['id']}})[_0xcf41('0x1e')](handleEntityNotFound(_0x2c82f3,null))[_0xcf41('0x1e')](function(_0x455633){if(_0x455633){_0x5ad12d=_0x455633;return _0x455633[_0xcf41('0x62')](_0x4c5ed2[_0xcf41('0x3e')][_0xcf41('0x63')]);}})[_0xcf41('0x1e')](function(_0x2a4637){if(_0x2a4637){return db['Sound'][_0xcf41('0x59')]({'where':{'id':_0x4c5ed2[_0xcf41('0x3e')][_0xcf41('0x63')]},'attributes':['id',_0xcf41('0x23'),_0xcf41('0x5a'),'converted_format',_0xcf41('0x64')],'raw':!![]});}})[_0xcf41('0x1e')](function(_0x10a615){if(_0x10a615){fs[_0xcf41('0x53')](path[_0xcf41('0x46')](_0x5ad12d['directory'],util[_0xcf41('0x5d')](_0xcf41('0x5e'),_0x10a615[_0xcf41('0x23')],_0x10a615[_0xcf41('0x5b')])));return _0x10a615;}})[_0xcf41('0x3c')](function(_0x4a83ff){throw new db[(_0xcf41('0x55'))][(_0xcf41('0x56'))](_0x4a83ff[_0xcf41('0x57')]);});})[_0xcf41('0x1e')](handleEntityNotFound(_0x2c82f3,null))[_0xcf41('0x1e')](respondWithStatusCode(_0x2c82f3,0xcc))[_0xcf41('0x3c')](handleError(_0x2c82f3,null));};exports[_0xcf41('0x65')]=function(_0xa30550,_0x2bd4d2,_0x586eb3){var _0x8b8ec6={};var _0x5bf090={};var _0x198683;var _0x186440;return db[_0xcf41('0x26')][_0xcf41('0x59')]({'where':{'id':_0xa30550[_0xcf41('0x3e')]['id']}})['then'](handleEntityNotFound(_0x2bd4d2,null))[_0xcf41('0x1e')](function(_0x2f2bc0){if(_0x2f2bc0){_0x198683=_0x2f2bc0;_0x5bf090[_0xcf41('0x2b')]=_['keys'](db[_0xcf41('0x66')][_0xcf41('0x27')]);_0x5bf090[_0xcf41('0x2c')]=_[_0xcf41('0x2d')](_0xa30550['query']);_0x5bf090[_0xcf41('0x2e')]=_[_0xcf41('0x2f')](_0x5bf090[_0xcf41('0x2b')],_0x5bf090[_0xcf41('0x2c')]);_0x8b8ec6[_0xcf41('0x30')]=_[_0xcf41('0x2f')](_0x5bf090[_0xcf41('0x2b')],qs[_0xcf41('0x31')](_0xa30550[_0xcf41('0x2c')][_0xcf41('0x31')]));_0x8b8ec6['attributes']=_0x8b8ec6[_0xcf41('0x30')][_0xcf41('0x32')]?_0x8b8ec6['attributes']:_0x5bf090[_0xcf41('0x2b')];_0x8b8ec6[_0xcf41('0x34')]=qs[_0xcf41('0x35')](_0xa30550['query'][_0xcf41('0x35')]);_0x8b8ec6[_0xcf41('0x37')]=qs['filters'](_[_0xcf41('0x67')](_0xa30550[_0xcf41('0x2c')],_0x5bf090[_0xcf41('0x2e')]));if(_0xa30550[_0xcf41('0x2c')][_0xcf41('0x36')]){_0x8b8ec6[_0xcf41('0x37')]=_[_0xcf41('0x40')](_0x8b8ec6[_0xcf41('0x37')],{'$or':_['map'](_0x8b8ec6['attributes'],function(_0x9d254c){var _0x258467={};_0x258467[_0x9d254c]={'$like':'%'+_0xa30550['query'][_0xcf41('0x36')]+'%'};return _0x258467;})});}_0x8b8ec6=_[_0xcf41('0x40')]({},_0x8b8ec6,_0xa30550[_0xcf41('0x38')]);return _0x198683[_0xcf41('0x65')](_0x8b8ec6);}})['then'](function(_0x5b6cc0){if(_0x5b6cc0){_0x186440=_0x5b6cc0[_0xcf41('0x32')];if(!_0xa30550[_0xcf41('0x2c')]['hasOwnProperty']('nolimit')){_0x8b8ec6[_0xcf41('0x1a')]=qs[_0xcf41('0x1a')](_0xa30550[_0xcf41('0x2c')][_0xcf41('0x1a')]);_0x8b8ec6[_0xcf41('0x17')]=qs[_0xcf41('0x17')](_0xa30550[_0xcf41('0x2c')][_0xcf41('0x17')]);}return _0x198683['getSounds'](_0x8b8ec6);}})[_0xcf41('0x1e')](function(_0x4dec3c){if(_0x4dec3c){return _0x4dec3c?{'count':_0x186440,'rows':_0x4dec3c}:null;}})['then'](respondWithResult(_0x2bd4d2,null))[_0xcf41('0x3c')](handleError(_0x2bd4d2,null));};