Built motion from commit b5413ace.|2.6.9
[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 _0x0713=['sort','where','merge','VIRTUAL','filter','options','include','rows','catch','show','params','keys','includeAll','body','find','create','mode','files','directory','join','root','server/files/moh','0777','role','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','sequelize','transaction','readdirSync','forEach','rmdirSync','ValidationError','message','addSound','Sound','findOne','save_name','converted_format','server/files/sounds/converted','format','%s.%s','symlinkSync','Sequelize','removeSound','id2','createdAt','unlinkSync','pick','getSounds','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','undefined','limit','offset','count','set','Content-Range','update','then','destroy','get','MusicOnHolds','UserProfileResource','error','name','send','index','VoiceMusicOnHold','rawAttributes','fieldName','type','key','model','map','filters','intersection','query','attributes','fields','length','hasOwnProperty','nolimit','order'];(function(_0x5cfb92,_0x5797e6){var _0x1cd7c2=function(_0x1bb452){while(--_0x1bb452){_0x5cfb92['push'](_0x5cfb92['shift']());}};_0x1cd7c2(++_0x5797e6);}(_0x0713,0x9e));var _0x3071=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x0713[_0x3dd15e];return _0x231fd0;};'use strict';var emlformat=require(_0x3071('0x0'));var rimraf=require(_0x3071('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x3071('0x2'));var rp=require(_0x3071('0x3'));var moment=require(_0x3071('0x4'));var BPromise=require(_0x3071('0x5'));var Mustache=require(_0x3071('0x6'));var util=require('util');var path=require(_0x3071('0x7'));var sox=require(_0x3071('0x8'));var csv=require(_0x3071('0x9'));var ejs=require(_0x3071('0xa'));var fs=require('fs');var fs_extra=require(_0x3071('0xb'));var _=require(_0x3071('0xc'));var squel=require(_0x3071('0xd'));var crypto=require('crypto');var jsforce=require(_0x3071('0xe'));var deskjs=require(_0x3071('0xf'));var toCsv=require(_0x3071('0x9'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x3071('0x10'));var authService=require(_0x3071('0x11'));var qs=require(_0x3071('0x12'));var as=require(_0x3071('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x3071('0x14'))(_0x3071('0x15'));var utils=require(_0x3071('0x16'));var config=require(_0x3071('0x17'));var licenseUtil=require(_0x3071('0x18'));var db=require(_0x3071('0x19'))['db'];function respondWithStatusCode(_0x596b9a,_0x1ec215){_0x1ec215=_0x1ec215||0xcc;return function(_0x4dabf6){if(_0x4dabf6){return _0x596b9a[_0x3071('0x1a')](_0x1ec215);}return _0x596b9a[_0x3071('0x1b')](_0x1ec215)[_0x3071('0x1c')]();};}function respondWithResult(_0xcf09a4,_0x1aaa35){_0x1aaa35=_0x1aaa35||0xc8;return function(_0x51d09e){if(_0x51d09e){return _0xcf09a4[_0x3071('0x1b')](_0x1aaa35)[_0x3071('0x1d')](_0x51d09e);}};}function respondWithFilteredResult(_0x208b13,_0x16c45a){return function(_0x180fee){if(_0x180fee){var _0x5e56cc=typeof _0x16c45a['offset']===_0x3071('0x1e')&&typeof _0x16c45a[_0x3071('0x1f')]===_0x3071('0x1e');var _0xf271b5=_0x180fee['count'];var _0x535782=_0x5e56cc?0x0:_0x16c45a[_0x3071('0x20')];var _0x43e31f=_0x5e56cc?_0x180fee[_0x3071('0x21')]:_0x16c45a[_0x3071('0x20')]+_0x16c45a[_0x3071('0x1f')];var _0x2aaf05;if(_0x43e31f>=_0xf271b5){_0x43e31f=_0xf271b5;_0x2aaf05=0xc8;}else{_0x2aaf05=0xce;}_0x208b13[_0x3071('0x1b')](_0x2aaf05);return _0x208b13[_0x3071('0x22')](_0x3071('0x23'),_0x535782+'-'+_0x43e31f+'/'+_0xf271b5)[_0x3071('0x1d')](_0x180fee);}return null;};}function patchUpdates(_0x43dd1c){return function(_0x2c78b5){try{jsonpatch['apply'](_0x2c78b5,_0x43dd1c,!![]);}catch(_0x21d9d9){return BPromise['reject'](_0x21d9d9);}return _0x2c78b5['save']();};}function saveUpdates(_0x10edbd,_0x1bf96b){return function(_0x3313e0){if(_0x3313e0){return _0x3313e0[_0x3071('0x24')](_0x10edbd)[_0x3071('0x25')](function(_0x3af85e){return _0x3af85e;});}return null;};}function removeEntity(_0x368fd4,_0x2e75e0){return function(_0x2b5d90){if(_0x2b5d90){return _0x2b5d90[_0x3071('0x26')]()[_0x3071('0x25')](function(){var _0xa1c82c=_0x2b5d90[_0x3071('0x27')]({'plain':!![]});var _0x42c386=_0x3071('0x28');return db[_0x3071('0x29')]['destroy']({'where':{'type':_0x42c386,'resourceId':_0xa1c82c['id']}})['then'](function(){return _0x2b5d90;});})[_0x3071('0x25')](function(){_0x368fd4[_0x3071('0x1b')](0xcc)[_0x3071('0x1c')]();});}};}function handleEntityNotFound(_0x2abe81,_0x22c61f){return function(_0x221958){if(!_0x221958){_0x2abe81[_0x3071('0x1a')](0x194);}return _0x221958;};}function handleError(_0xf50c38,_0x1ab7aa){_0x1ab7aa=_0x1ab7aa||0x1f4;return function(_0x58c303){logger[_0x3071('0x2a')](_0x58c303['stack']);if(_0x58c303[_0x3071('0x2b')]){delete _0x58c303[_0x3071('0x2b')];}_0xf50c38[_0x3071('0x1b')](_0x1ab7aa)[_0x3071('0x2c')](_0x58c303);};}exports[_0x3071('0x2d')]=function(_0x34338c,_0x5e8159){var _0x351b0e={},_0x51eefc={},_0x1de8ae={'count':0x0,'rows':[]};var _0x1d69cc=_['map'](db[_0x3071('0x2e')][_0x3071('0x2f')],function(_0x166539){return{'name':_0x166539[_0x3071('0x30')],'type':_0x166539[_0x3071('0x31')][_0x3071('0x32')]};});_0x51eefc[_0x3071('0x33')]=_[_0x3071('0x34')](_0x1d69cc,_0x3071('0x2b'));_0x51eefc['query']=_['keys'](_0x34338c['query']);_0x51eefc[_0x3071('0x35')]=_[_0x3071('0x36')](_0x51eefc['model'],_0x51eefc[_0x3071('0x37')]);_0x351b0e[_0x3071('0x38')]=_[_0x3071('0x36')](_0x51eefc['model'],qs['fields'](_0x34338c['query'][_0x3071('0x39')]));_0x351b0e[_0x3071('0x38')]=_0x351b0e[_0x3071('0x38')][_0x3071('0x3a')]?_0x351b0e[_0x3071('0x38')]:_0x51eefc['model'];if(!_0x34338c[_0x3071('0x37')][_0x3071('0x3b')](_0x3071('0x3c'))){_0x351b0e[_0x3071('0x1f')]=qs[_0x3071('0x1f')](_0x34338c[_0x3071('0x37')]['limit']);_0x351b0e[_0x3071('0x20')]=qs[_0x3071('0x20')](_0x34338c['query'][_0x3071('0x20')]);}_0x351b0e[_0x3071('0x3d')]=qs['sort'](_0x34338c[_0x3071('0x37')]['sort']);delete _0x34338c[_0x3071('0x37')][_0x3071('0x3e')];_0x351b0e[_0x3071('0x3f')]=qs['filters'](_['pick'](_0x34338c['query'],_0x51eefc['filters']),_0x1d69cc);if(_0x34338c[_0x3071('0x37')]['filter']){_0x351b0e[_0x3071('0x3f')]=_[_0x3071('0x40')](_0x351b0e[_0x3071('0x3f')],{'$or':_[_0x3071('0x34')](_0x1d69cc,function(_0x11d8f2){if(_0x11d8f2[_0x3071('0x31')]!==_0x3071('0x41')){var _0x3c1b5d={};_0x3c1b5d[_0x11d8f2[_0x3071('0x2b')]]={'$like':'%'+_0x34338c[_0x3071('0x37')][_0x3071('0x42')]+'%'};return _0x3c1b5d;}})});}_0x351b0e=_[_0x3071('0x40')]({},_0x351b0e,_0x34338c[_0x3071('0x43')]);var _0x6b38ba={'where':_0x351b0e['where']};return db['VoiceMusicOnHold'][_0x3071('0x21')](_0x6b38ba)[_0x3071('0x25')](function(_0x49d94e){_0x1de8ae[_0x3071('0x21')]=_0x49d94e;if(_0x34338c[_0x3071('0x37')]['includeAll']){_0x351b0e[_0x3071('0x44')]=[{'all':!![]}];}return db[_0x3071('0x2e')]['findAll'](_0x351b0e);})[_0x3071('0x25')](function(_0x2ca5c1){_0x1de8ae[_0x3071('0x45')]=_0x2ca5c1;return _0x1de8ae;})[_0x3071('0x25')](respondWithFilteredResult(_0x5e8159,_0x351b0e))[_0x3071('0x46')](handleError(_0x5e8159,null));};exports[_0x3071('0x47')]=function(_0x4b4fc7,_0x4f64dd){var _0x34a0e8={'raw':![],'where':{'id':_0x4b4fc7[_0x3071('0x48')]['id']}},_0x3aa1aa={};_0x3aa1aa[_0x3071('0x33')]=_[_0x3071('0x49')](db[_0x3071('0x2e')][_0x3071('0x2f')]);_0x3aa1aa[_0x3071('0x37')]=_[_0x3071('0x49')](_0x4b4fc7[_0x3071('0x37')]);_0x3aa1aa['filters']=_[_0x3071('0x36')](_0x3aa1aa[_0x3071('0x33')],_0x3aa1aa['query']);_0x34a0e8[_0x3071('0x38')]=_[_0x3071('0x36')](_0x3aa1aa[_0x3071('0x33')],qs[_0x3071('0x39')](_0x4b4fc7['query'][_0x3071('0x39')]));_0x34a0e8[_0x3071('0x38')]=_0x34a0e8[_0x3071('0x38')][_0x3071('0x3a')]?_0x34a0e8[_0x3071('0x38')]:_0x3aa1aa[_0x3071('0x33')];if(_0x4b4fc7[_0x3071('0x37')][_0x3071('0x4a')]){_0x34a0e8[_0x3071('0x44')]=[{'all':!![]}];}_0x34a0e8=_[_0x3071('0x40')]({},_0x34a0e8,_0x4b4fc7[_0x3071('0x43')]);return db[_0x3071('0x2e')]['find'](_0x34a0e8)[_0x3071('0x25')](handleEntityNotFound(_0x4f64dd,null))[_0x3071('0x25')](respondWithResult(_0x4f64dd,null))['catch'](handleError(_0x4f64dd,null));};exports['update']=function(_0x2bc27c,_0x84285a){if(_0x2bc27c['body']['id']){delete _0x2bc27c[_0x3071('0x4b')]['id'];}return db['VoiceMusicOnHold'][_0x3071('0x4c')]({'where':{'id':_0x2bc27c[_0x3071('0x48')]['id']}})['then'](handleEntityNotFound(_0x84285a,null))[_0x3071('0x25')](saveUpdates(_0x2bc27c[_0x3071('0x4b')],null))[_0x3071('0x25')](respondWithResult(_0x84285a,null))[_0x3071('0x46')](handleError(_0x84285a,null));};exports[_0x3071('0x4d')]=function(_0x41a9eb,_0x485fa8,_0x2587ee){return db['sequelize']['transaction'](function(_0x495bd3){if(_0x41a9eb[_0x3071('0x4b')][_0x3071('0x4e')]===_0x3071('0x4f')){_0x41a9eb[_0x3071('0x4b')][_0x3071('0x50')]=path[_0x3071('0x51')](config[_0x3071('0x52')],_0x3071('0x53'),_0x41a9eb[_0x3071('0x4b')][_0x3071('0x2b')]);}return db[_0x3071('0x2e')][_0x3071('0x4d')](_0x41a9eb[_0x3071('0x4b')],{'transaction':_0x495bd3})[_0x3071('0x25')](function(_0x1fc026){if(_0x41a9eb[_0x3071('0x4b')][_0x3071('0x4e')]===_0x3071('0x4f')){fs['mkdirSync'](_0x1fc026[_0x3071('0x50')],parseInt(_0x3071('0x54'),0x8));}var _0x364630=_0x41a9eb['user'][_0x3071('0x27')]({'plain':!![]});if(!_0x364630)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x364630[_0x3071('0x55')]==='user'){var _0x50970f=_0x1fc026['get']({'plain':!![]});return db['UserProfileSection']['find']({'where':{'name':_0x3071('0x28'),'userProfileId':_0x364630['userProfileId']},'raw':!![]})['then'](function(_0x5eb6b9){if(_0x5eb6b9&&_0x5eb6b9['autoAssociation']===0x0){return db[_0x3071('0x29')]['create']({'name':_0x50970f[_0x3071('0x2b')],'resourceId':_0x50970f['id'],'type':_0x5eb6b9[_0x3071('0x2b')],'sectionId':_0x5eb6b9['id']},{})['then'](function(){return _0x1fc026;});}else{return _0x1fc026;}})[_0x3071('0x46')](function(_0x412e49){logger['error'](_0x3071('0x56'),_0x412e49);});}return _0x1fc026;});})['then'](respondWithResult(_0x485fa8,0xc9))[_0x3071('0x46')](handleError(_0x485fa8,null));};exports[_0x3071('0x26')]=function(_0x3476a6,_0x345579,_0x1aba33){var _0x5a4ffb;return db[_0x3071('0x2e')][_0x3071('0x4c')]({'where':{'id':_0x3476a6[_0x3071('0x48')]['id']}})[_0x3071('0x25')](function(_0x44cb1b){if(_0x44cb1b){return db[_0x3071('0x57')][_0x3071('0x58')](function(_0x59910d){return _0x44cb1b[_0x3071('0x26')]({'transaction':_0x59910d,'raw':!![]})[_0x3071('0x25')](function(_0x572269){if(_0x572269[_0x3071('0x50')]){fs[_0x3071('0x59')](_0x572269[_0x3071('0x50')])[_0x3071('0x5a')](function(_0x41868c){fs['unlinkSync'](path[_0x3071('0x51')](_0x572269['directory'],_0x41868c));});fs[_0x3071('0x5b')](_0x572269[_0x3071('0x50')]);}return _0x572269;});})[_0x3071('0x46')](function(_0x2774a2){throw new db['Sequelize'][(_0x3071('0x5c'))](_0x2774a2[_0x3071('0x5d')]);});}})[_0x3071('0x25')](handleEntityNotFound(_0x345579,null))[_0x3071('0x25')](removeEntity(_0x345579,null))[_0x3071('0x46')](handleError(_0x345579,null));};exports[_0x3071('0x5e')]=function(_0x298c92,_0x22e2d0,_0x15b3e8){return db[_0x3071('0x57')]['transaction'](function(_0x20f581){var _0x1acd17;return db[_0x3071('0x2e')][_0x3071('0x4c')]({'where':{'id':_0x298c92[_0x3071('0x48')]['id']}})['then'](function(_0x1cbca2){if(_0x1cbca2){_0x1acd17=_0x1cbca2;return _0x1cbca2['addSound'](_0x298c92[_0x3071('0x4b')]['id'],{'transaction':_0x20f581});}})[_0x3071('0x25')](function(_0x980982){if(_0x980982){return db[_0x3071('0x5f')][_0x3071('0x60')]({'where':{'id':_0x298c92['body']['id']},'attributes':['id',_0x3071('0x2b'),_0x3071('0x61'),_0x3071('0x62'),'createdAt'],'raw':!![]});}})[_0x3071('0x25')](function(_0x2fd22d){if(_0x2fd22d){var _0x2761b3=path['join'](config['root'],_0x3071('0x63'),util[_0x3071('0x64')](_0x3071('0x65'),path['basename'](_0x2fd22d['save_name'],path['extname'](_0x2fd22d[_0x3071('0x61')])),_0x2fd22d[_0x3071('0x62')]));var _0x269b1d=path[_0x3071('0x51')](config[_0x3071('0x52')],_0x3071('0x53'),_0x1acd17[_0x3071('0x2b')],util['format']('%s.%s',_0x2fd22d[_0x3071('0x2b')],_0x2fd22d['converted_format']));fs[_0x3071('0x66')](_0x2761b3,_0x269b1d);return _0x2fd22d;}})[_0x3071('0x46')](function(_0x1e2002){throw new db[(_0x3071('0x67'))][(_0x3071('0x5c'))](_0x1e2002[_0x3071('0x5d')]);});})[_0x3071('0x25')](handleEntityNotFound(_0x22e2d0,null))[_0x3071('0x25')](respondWithResult(_0x22e2d0,0xc9))[_0x3071('0x46')](handleError(_0x22e2d0,null));};exports['removeSound']=function(_0x8b93e6,_0x69d965,_0x2f043d){return db['sequelize'][_0x3071('0x58')](function(_0x4e7fa8){var _0x59cbce;return db[_0x3071('0x2e')]['findOne']({'where':{'id':_0x8b93e6['params']['id']}})[_0x3071('0x25')](handleEntityNotFound(_0x69d965,null))[_0x3071('0x25')](function(_0xed0910){if(_0xed0910){_0x59cbce=_0xed0910;return _0xed0910[_0x3071('0x68')](_0x8b93e6[_0x3071('0x48')][_0x3071('0x69')]);}})['then'](function(_0x14c616){if(_0x14c616){return db[_0x3071('0x5f')][_0x3071('0x60')]({'where':{'id':_0x8b93e6[_0x3071('0x48')][_0x3071('0x69')]},'attributes':['id','name',_0x3071('0x61'),_0x3071('0x62'),_0x3071('0x6a')],'raw':!![]});}})[_0x3071('0x25')](function(_0x25ed1a){if(_0x25ed1a){fs[_0x3071('0x6b')](path[_0x3071('0x51')](_0x59cbce[_0x3071('0x50')],util[_0x3071('0x64')](_0x3071('0x65'),_0x25ed1a['name'],_0x25ed1a['converted_format'])));return _0x25ed1a;}})['catch'](function(_0xee7dc9){throw new db['Sequelize'][(_0x3071('0x5c'))](_0xee7dc9[_0x3071('0x5d')]);});})['then'](handleEntityNotFound(_0x69d965,null))[_0x3071('0x25')](respondWithStatusCode(_0x69d965,0xcc))[_0x3071('0x46')](handleError(_0x69d965,null));};exports['getSounds']=function(_0x3bfd35,_0x391817,_0x4f6908){var _0x316f95={};var _0x5a6e7b={};var _0x158b10;var _0x1e4f96;return db['VoiceMusicOnHold']['findOne']({'where':{'id':_0x3bfd35[_0x3071('0x48')]['id']}})[_0x3071('0x25')](handleEntityNotFound(_0x391817,null))[_0x3071('0x25')](function(_0x5ee188){if(_0x5ee188){_0x158b10=_0x5ee188;_0x5a6e7b[_0x3071('0x33')]=_[_0x3071('0x49')](db[_0x3071('0x5f')]['rawAttributes']);_0x5a6e7b[_0x3071('0x37')]=_[_0x3071('0x49')](_0x3bfd35[_0x3071('0x37')]);_0x5a6e7b['filters']=_[_0x3071('0x36')](_0x5a6e7b[_0x3071('0x33')],_0x5a6e7b[_0x3071('0x37')]);_0x316f95[_0x3071('0x38')]=_['intersection'](_0x5a6e7b[_0x3071('0x33')],qs[_0x3071('0x39')](_0x3bfd35[_0x3071('0x37')][_0x3071('0x39')]));_0x316f95[_0x3071('0x38')]=_0x316f95[_0x3071('0x38')][_0x3071('0x3a')]?_0x316f95[_0x3071('0x38')]:_0x5a6e7b[_0x3071('0x33')];_0x316f95[_0x3071('0x3d')]=qs[_0x3071('0x3e')](_0x3bfd35['query']['sort']);_0x316f95[_0x3071('0x3f')]=qs[_0x3071('0x35')](_[_0x3071('0x6c')](_0x3bfd35['query'],_0x5a6e7b[_0x3071('0x35')]));if(_0x3bfd35[_0x3071('0x37')][_0x3071('0x42')]){_0x316f95[_0x3071('0x3f')]=_['merge'](_0x316f95['where'],{'$or':_[_0x3071('0x34')](_0x316f95[_0x3071('0x38')],function(_0x3ec453){var _0x4249e2={};_0x4249e2[_0x3ec453]={'$like':'%'+_0x3bfd35['query'][_0x3071('0x42')]+'%'};return _0x4249e2;})});}_0x316f95=_[_0x3071('0x40')]({},_0x316f95,_0x3bfd35[_0x3071('0x43')]);return _0x158b10[_0x3071('0x6d')](_0x316f95);}})[_0x3071('0x25')](function(_0x18afea){if(_0x18afea){_0x1e4f96=_0x18afea['length'];if(!_0x3bfd35[_0x3071('0x37')]['hasOwnProperty'](_0x3071('0x3c'))){_0x316f95[_0x3071('0x1f')]=qs['limit'](_0x3bfd35[_0x3071('0x37')][_0x3071('0x1f')]);_0x316f95[_0x3071('0x20')]=qs['offset'](_0x3bfd35['query'][_0x3071('0x20')]);}return _0x158b10['getSounds'](_0x316f95);}})[_0x3071('0x25')](function(_0x480230){if(_0x480230){return _0x480230?{'count':_0x1e4f96,'rows':_0x480230}:null;}})['then'](respondWithResult(_0x391817,null))[_0x3071('0x46')](handleError(_0x391817,null));};