Built motion from commit (unavailable).|2.4.18
[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 _0x4916=['converted_format','createdAt','server/files/sounds/converted','format','%s.%s','basename','extname','save_name','symlinkSync','message','removeSound','id2','getSounds','html-pdf','rimraf','zip-dir','fast-json-patch','moment','mustache','util','sox','to-csv','ejs','crypto','jsforce','desk.js','papaparse','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','sendStatus','status','end','json','count','offset','Content-Range','apply','save','update','then','destroy','get','UserProfileResource','error','name','send','map','VoiceMusicOnHold','rawAttributes','type','key','query','keys','filters','intersection','attributes','length','model','hasOwnProperty','nolimit','limit','order','sort','where','pick','VIRTUAL','filter','options','include','findAll','rows','catch','show','fields','includeAll','merge','find','body','params','create','sequelize','transaction','mode','root','server/files/moh','files','mkdirSync','directory','0777','user','UserProfileSection','MusicOnHolds','userProfileId','autoAssociation','forEach','unlinkSync','join','rmdirSync','ValidationError','addSound','Sound','findOne'];(function(_0x46c5ec,_0x18ebba){var _0x483737=function(_0x259b3e){while(--_0x259b3e){_0x46c5ec['push'](_0x46c5ec['shift']());}};_0x483737(++_0x18ebba);}(_0x4916,0xe1));var _0x6491=function(_0x323e01,_0x28decb){_0x323e01=_0x323e01-0x0;var _0x3372bd=_0x4916[_0x323e01];return _0x3372bd;};'use strict';var pdf=require(_0x6491('0x0'));var emlformat=require('eml-format');var rimraf=require(_0x6491('0x1'));var zipdir=require(_0x6491('0x2'));var jsonpatch=require(_0x6491('0x3'));var rp=require('request-promise');var moment=require(_0x6491('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x6491('0x5'));var util=require(_0x6491('0x6'));var path=require('path');var sox=require(_0x6491('0x7'));var csv=require(_0x6491('0x8'));var ejs=require(_0x6491('0x9'));var fs=require('fs');var _=require('lodash');var squel=require('squel');var crypto=require(_0x6491('0xa'));var jsforce=require(_0x6491('0xb'));var deskjs=require(_0x6491('0xc'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x6491('0xd'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x6491('0xe'));var hardwareService=require(_0x6491('0xf'));var logger=require(_0x6491('0x10'))(_0x6491('0x11'));var utils=require(_0x6491('0x12'));var config=require(_0x6491('0x13'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0xf5f7a5,_0x4cc478){_0x4cc478=_0x4cc478||0xcc;return function(_0x3fd84a){if(_0x3fd84a){return _0xf5f7a5[_0x6491('0x14')](_0x4cc478);}return _0xf5f7a5[_0x6491('0x15')](_0x4cc478)[_0x6491('0x16')]();};}function respondWithResult(_0x52b6ca,_0x4d8587){_0x4d8587=_0x4d8587||0xc8;return function(_0x31e2d6){if(_0x31e2d6){return _0x52b6ca[_0x6491('0x15')](_0x4d8587)[_0x6491('0x17')](_0x31e2d6);}};}function respondWithFilteredResult(_0x425dbd,_0x39618e){return function(_0x43456b){if(_0x43456b){var _0x264834=_0x43456b[_0x6491('0x18')],_0x1c4516=_0x39618e[_0x6491('0x19')],_0x175c9d=_0x39618e['offset']+_0x39618e['limit'],_0x1f4a03;if(_0x175c9d>=_0x264834){_0x175c9d=_0x264834;_0x1f4a03=0xc8;}else{_0x1f4a03=0xce;}_0x425dbd[_0x6491('0x15')](_0x1f4a03);return _0x425dbd['set'](_0x6491('0x1a'),_0x1c4516+'-'+_0x175c9d+'/'+_0x264834)[_0x6491('0x17')](_0x43456b);}return null;};}function patchUpdates(_0x371a11){return function(_0x376d90){try{jsonpatch[_0x6491('0x1b')](_0x376d90,_0x371a11,!![]);}catch(_0x192169){return BPromise['reject'](_0x192169);}return _0x376d90[_0x6491('0x1c')]();};}function saveUpdates(_0x21fea7,_0x433807){return function(_0x29450a){if(_0x29450a){return _0x29450a[_0x6491('0x1d')](_0x21fea7)[_0x6491('0x1e')](function(_0x26ee4a){return _0x26ee4a;});}return null;};}function removeEntity(_0x598a3a,_0x62216c){return function(_0x512ba5){if(_0x512ba5){return _0x512ba5[_0x6491('0x1f')]()[_0x6491('0x1e')](function(){var _0x24d8d6=_0x512ba5[_0x6491('0x20')]({'plain':!![]});var _0x58e275='MusicOnHolds';return db[_0x6491('0x21')][_0x6491('0x1f')]({'where':{'type':_0x58e275,'resourceId':_0x24d8d6['id']}})['then'](function(){return _0x512ba5;});})['then'](function(){_0x598a3a[_0x6491('0x15')](0xcc)[_0x6491('0x16')]();});}};}function handleEntityNotFound(_0x2a6001,_0xc06090){return function(_0x479837){if(!_0x479837){_0x2a6001[_0x6491('0x14')](0x194);}return _0x479837;};}function handleError(_0x50f4d8,_0x2f77be){_0x2f77be=_0x2f77be||0x1f4;return function(_0x26caae){logger[_0x6491('0x22')](_0x26caae['stack']);if(_0x26caae[_0x6491('0x23')]){delete _0x26caae[_0x6491('0x23')];}_0x50f4d8[_0x6491('0x15')](_0x2f77be)[_0x6491('0x24')](_0x26caae);};}exports['index']=function(_0x417251,_0xf1aa3e){var _0x2c7cbf={},_0x533c03={},_0x461da8={'count':0x0,'rows':[]};var _0x22750e=_[_0x6491('0x25')](db[_0x6491('0x26')][_0x6491('0x27')],function(_0x26af50){return{'name':_0x26af50['fieldName'],'type':_0x26af50[_0x6491('0x28')][_0x6491('0x29')]};});_0x533c03['model']=_[_0x6491('0x25')](_0x22750e,_0x6491('0x23'));_0x533c03[_0x6491('0x2a')]=_[_0x6491('0x2b')](_0x417251[_0x6491('0x2a')]);_0x533c03[_0x6491('0x2c')]=_[_0x6491('0x2d')](_0x533c03['model'],_0x533c03['query']);_0x2c7cbf[_0x6491('0x2e')]=_[_0x6491('0x2d')](_0x533c03['model'],qs['fields'](_0x417251[_0x6491('0x2a')]['fields']));_0x2c7cbf['attributes']=_0x2c7cbf['attributes'][_0x6491('0x2f')]?_0x2c7cbf['attributes']:_0x533c03[_0x6491('0x30')];if(!_0x417251[_0x6491('0x2a')][_0x6491('0x31')](_0x6491('0x32'))){_0x2c7cbf[_0x6491('0x33')]=qs[_0x6491('0x33')](_0x417251[_0x6491('0x2a')]['limit']);_0x2c7cbf[_0x6491('0x19')]=qs['offset'](_0x417251[_0x6491('0x2a')]['offset']);}_0x2c7cbf[_0x6491('0x34')]=qs[_0x6491('0x35')](_0x417251[_0x6491('0x2a')][_0x6491('0x35')]);_0x2c7cbf[_0x6491('0x36')]=qs[_0x6491('0x2c')](_[_0x6491('0x37')](_0x417251['query'],_0x533c03['filters']));if(_0x417251['query']['filter']){_0x2c7cbf[_0x6491('0x36')]=_['merge'](_0x2c7cbf['where'],{'$or':_[_0x6491('0x25')](_0x22750e,function(_0x5aee77){if(_0x5aee77['type']!==_0x6491('0x38')){var _0x3e0d6d={};_0x3e0d6d[_0x5aee77['name']]={'$like':'%'+_0x417251[_0x6491('0x2a')][_0x6491('0x39')]+'%'};return _0x3e0d6d;}})});}_0x2c7cbf=_['merge']({},_0x2c7cbf,_0x417251[_0x6491('0x3a')]);var _0x3b7e9a={'where':_0x2c7cbf[_0x6491('0x36')]};return db[_0x6491('0x26')]['count'](_0x3b7e9a)['then'](function(_0x1f15bb){_0x461da8[_0x6491('0x18')]=_0x1f15bb;if(_0x417251[_0x6491('0x2a')]['includeAll']){_0x2c7cbf[_0x6491('0x3b')]=[{'all':!![]}];}return db['VoiceMusicOnHold'][_0x6491('0x3c')](_0x2c7cbf);})[_0x6491('0x1e')](function(_0x31d13f){_0x461da8[_0x6491('0x3d')]=_0x31d13f;return _0x461da8;})[_0x6491('0x1e')](respondWithFilteredResult(_0xf1aa3e,_0x2c7cbf))[_0x6491('0x3e')](handleError(_0xf1aa3e,null));};exports[_0x6491('0x3f')]=function(_0x16c817,_0x2adaa0){var _0x24352a={'raw':![],'where':{'id':_0x16c817['params']['id']}},_0x2ec553={};_0x2ec553['model']=_[_0x6491('0x2b')](db['VoiceMusicOnHold'][_0x6491('0x27')]);_0x2ec553[_0x6491('0x2a')]=_[_0x6491('0x2b')](_0x16c817['query']);_0x2ec553[_0x6491('0x2c')]=_[_0x6491('0x2d')](_0x2ec553[_0x6491('0x30')],_0x2ec553[_0x6491('0x2a')]);_0x24352a[_0x6491('0x2e')]=_['intersection'](_0x2ec553['model'],qs[_0x6491('0x40')](_0x16c817[_0x6491('0x2a')][_0x6491('0x40')]));_0x24352a[_0x6491('0x2e')]=_0x24352a['attributes'][_0x6491('0x2f')]?_0x24352a[_0x6491('0x2e')]:_0x2ec553[_0x6491('0x30')];if(_0x16c817[_0x6491('0x2a')][_0x6491('0x41')]){_0x24352a[_0x6491('0x3b')]=[{'all':!![]}];}_0x24352a=_[_0x6491('0x42')]({},_0x24352a,_0x16c817[_0x6491('0x3a')]);return db[_0x6491('0x26')][_0x6491('0x43')](_0x24352a)['then'](handleEntityNotFound(_0x2adaa0,null))[_0x6491('0x1e')](respondWithResult(_0x2adaa0,null))['catch'](handleError(_0x2adaa0,null));};exports['update']=function(_0x38c081,_0x576f16){if(_0x38c081[_0x6491('0x44')]['id']){delete _0x38c081[_0x6491('0x44')]['id'];}return db[_0x6491('0x26')][_0x6491('0x43')]({'where':{'id':_0x38c081[_0x6491('0x45')]['id']}})[_0x6491('0x1e')](handleEntityNotFound(_0x576f16,null))['then'](saveUpdates(_0x38c081['body'],null))[_0x6491('0x1e')](respondWithResult(_0x576f16,null))['catch'](handleError(_0x576f16,null));};exports[_0x6491('0x46')]=function(_0x441ada,_0x3ccd14,_0x487636){return db[_0x6491('0x47')][_0x6491('0x48')](function(_0x49f49c){if(_0x441ada[_0x6491('0x44')][_0x6491('0x49')]==='files'){_0x441ada[_0x6491('0x44')]['directory']=path['join'](config[_0x6491('0x4a')],_0x6491('0x4b'),_0x441ada[_0x6491('0x44')][_0x6491('0x23')]);}return db[_0x6491('0x26')]['create'](_0x441ada['body'],{'transaction':_0x49f49c})[_0x6491('0x1e')](function(_0x108cf5){if(_0x441ada[_0x6491('0x44')]['mode']===_0x6491('0x4c')){fs[_0x6491('0x4d')](_0x108cf5[_0x6491('0x4e')],parseInt(_0x6491('0x4f'),0x8));}var _0x60a413=_0x441ada[_0x6491('0x50')][_0x6491('0x20')]({'plain':!![]});if(!_0x60a413)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x60a413['role']===_0x6491('0x50')){var _0x198c0d=_0x108cf5['get']({'plain':!![]});return db[_0x6491('0x51')][_0x6491('0x43')]({'where':{'name':_0x6491('0x52'),'userProfileId':_0x60a413[_0x6491('0x53')]},'raw':!![]})[_0x6491('0x1e')](function(_0x495c9a){if(_0x495c9a&&_0x495c9a[_0x6491('0x54')]===0x0){return db[_0x6491('0x21')][_0x6491('0x46')]({'name':_0x198c0d['name'],'resourceId':_0x198c0d['id'],'type':_0x495c9a[_0x6491('0x23')],'sectionId':_0x495c9a['id']},{})[_0x6491('0x1e')](function(){return _0x108cf5;});}else{return _0x108cf5;}})[_0x6491('0x3e')](function(_0xb90ba4){logger[_0x6491('0x22')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0xb90ba4);});}return _0x108cf5;});})[_0x6491('0x1e')](respondWithResult(_0x3ccd14,0xc9))[_0x6491('0x3e')](handleError(_0x3ccd14,null));};exports[_0x6491('0x1f')]=function(_0x2e1c4c,_0x589eef,_0xf85c3f){var _0x2b5cb1;return db[_0x6491('0x26')][_0x6491('0x43')]({'where':{'id':_0x2e1c4c[_0x6491('0x45')]['id']}})[_0x6491('0x1e')](function(_0xf9cf7b){if(_0xf9cf7b){return db['sequelize'][_0x6491('0x48')](function(_0x2effe1){return _0xf9cf7b[_0x6491('0x1f')]({'transaction':_0x2effe1,'raw':!![]})['then'](function(_0x32bb69){if(_0x32bb69[_0x6491('0x4e')]){fs['readdirSync'](_0x32bb69[_0x6491('0x4e')])[_0x6491('0x55')](function(_0x21c33b){fs[_0x6491('0x56')](path[_0x6491('0x57')](_0x32bb69[_0x6491('0x4e')],_0x21c33b));});fs[_0x6491('0x58')](_0x32bb69[_0x6491('0x4e')]);}return _0x32bb69;});})[_0x6491('0x3e')](function(_0x42cad9){throw new db['Sequelize'][(_0x6491('0x59'))](_0x42cad9['message']);});}})[_0x6491('0x1e')](handleEntityNotFound(_0x589eef,null))[_0x6491('0x1e')](removeEntity(_0x589eef,null))[_0x6491('0x3e')](handleError(_0x589eef,null));};exports[_0x6491('0x5a')]=function(_0x4264cc,_0x5a5b45,_0x4583eb){return db[_0x6491('0x47')]['transaction'](function(_0x3a92d3){var _0x25274b;return db['VoiceMusicOnHold'][_0x6491('0x43')]({'where':{'id':_0x4264cc[_0x6491('0x45')]['id']}})[_0x6491('0x1e')](function(_0x1a4323){if(_0x1a4323){_0x25274b=_0x1a4323;return _0x1a4323[_0x6491('0x5a')](_0x4264cc['body']['id'],{'transaction':_0x3a92d3});}})[_0x6491('0x1e')](function(_0x51978a){if(_0x51978a){return db[_0x6491('0x5b')][_0x6491('0x5c')]({'where':{'id':_0x4264cc[_0x6491('0x44')]['id']},'attributes':['id',_0x6491('0x23'),'save_name',_0x6491('0x5d'),_0x6491('0x5e')],'raw':!![]});}})[_0x6491('0x1e')](function(_0x59aee4){if(_0x59aee4){var _0x548310=path[_0x6491('0x57')](config[_0x6491('0x4a')],_0x6491('0x5f'),util[_0x6491('0x60')](_0x6491('0x61'),path[_0x6491('0x62')](_0x59aee4['save_name'],path[_0x6491('0x63')](_0x59aee4[_0x6491('0x64')])),_0x59aee4['converted_format']));var _0x1f620e=path[_0x6491('0x57')](config['root'],_0x6491('0x4b'),_0x25274b[_0x6491('0x23')],util[_0x6491('0x60')]('%s.%s',_0x59aee4['name'],_0x59aee4[_0x6491('0x5d')]));fs[_0x6491('0x65')](_0x548310,_0x1f620e);return _0x59aee4;}})['catch'](function(_0x285891){throw new db['Sequelize'][(_0x6491('0x59'))](_0x285891[_0x6491('0x66')]);});})[_0x6491('0x1e')](handleEntityNotFound(_0x5a5b45,null))[_0x6491('0x1e')](respondWithResult(_0x5a5b45,0xc9))[_0x6491('0x3e')](handleError(_0x5a5b45,null));};exports[_0x6491('0x67')]=function(_0x1e42ff,_0x3a75ef,_0x440c1e){return db[_0x6491('0x47')]['transaction'](function(_0xd04c0){var _0x82c4c1;return db[_0x6491('0x26')][_0x6491('0x5c')]({'where':{'id':_0x1e42ff[_0x6491('0x45')]['id']}})['then'](handleEntityNotFound(_0x3a75ef,null))[_0x6491('0x1e')](function(_0x32d84b){if(_0x32d84b){_0x82c4c1=_0x32d84b;return _0x32d84b[_0x6491('0x67')](_0x1e42ff['params'][_0x6491('0x68')]);}})['then'](function(_0x1d12fc){if(_0x1d12fc){return db['Sound'][_0x6491('0x5c')]({'where':{'id':_0x1e42ff['params']['id2']},'attributes':['id',_0x6491('0x23'),_0x6491('0x64'),_0x6491('0x5d'),_0x6491('0x5e')],'raw':!![]});}})[_0x6491('0x1e')](function(_0x3097b3){if(_0x3097b3){fs[_0x6491('0x56')](path[_0x6491('0x57')](_0x82c4c1[_0x6491('0x4e')],util[_0x6491('0x60')](_0x6491('0x61'),_0x3097b3[_0x6491('0x23')],_0x3097b3['converted_format'])));return _0x3097b3;}})[_0x6491('0x3e')](function(_0x4a8208){throw new db['Sequelize']['ValidationError'](_0x4a8208[_0x6491('0x66')]);});})[_0x6491('0x1e')](handleEntityNotFound(_0x3a75ef,null))['then'](respondWithStatusCode(_0x3a75ef,0xcc))['catch'](handleError(_0x3a75ef,null));};exports[_0x6491('0x69')]=function(_0x323867,_0x15cef6,_0x3a01a7){var _0x332168={};var _0x3a6abb={};var _0x4b89ce;var _0x3f49b0;return db['VoiceMusicOnHold'][_0x6491('0x5c')]({'where':{'id':_0x323867[_0x6491('0x45')]['id']}})[_0x6491('0x1e')](handleEntityNotFound(_0x15cef6,null))[_0x6491('0x1e')](function(_0x1c41d0){if(_0x1c41d0){_0x4b89ce=_0x1c41d0;_0x3a6abb[_0x6491('0x30')]=_['keys'](db[_0x6491('0x5b')][_0x6491('0x27')]);_0x3a6abb['query']=_['keys'](_0x323867[_0x6491('0x2a')]);_0x3a6abb[_0x6491('0x2c')]=_[_0x6491('0x2d')](_0x3a6abb['model'],_0x3a6abb['query']);_0x332168['attributes']=_[_0x6491('0x2d')](_0x3a6abb[_0x6491('0x30')],qs[_0x6491('0x40')](_0x323867[_0x6491('0x2a')][_0x6491('0x40')]));_0x332168[_0x6491('0x2e')]=_0x332168[_0x6491('0x2e')][_0x6491('0x2f')]?_0x332168[_0x6491('0x2e')]:_0x3a6abb[_0x6491('0x30')];_0x332168[_0x6491('0x34')]=qs['sort'](_0x323867[_0x6491('0x2a')]['sort']);_0x332168[_0x6491('0x36')]=qs[_0x6491('0x2c')](_[_0x6491('0x37')](_0x323867['query'],_0x3a6abb[_0x6491('0x2c')]));if(_0x323867[_0x6491('0x2a')][_0x6491('0x39')]){_0x332168['where']=_[_0x6491('0x42')](_0x332168[_0x6491('0x36')],{'$or':_['map'](_0x332168[_0x6491('0x2e')],function(_0x14558d){var _0x47642b={};_0x47642b[_0x14558d]={'$like':'%'+_0x323867['query']['filter']+'%'};return _0x47642b;})});}_0x332168=_[_0x6491('0x42')]({},_0x332168,_0x323867[_0x6491('0x3a')]);return _0x4b89ce['getSounds'](_0x332168);}})[_0x6491('0x1e')](function(_0x1f96ac){if(_0x1f96ac){_0x3f49b0=_0x1f96ac['length'];if(!_0x323867[_0x6491('0x2a')][_0x6491('0x31')](_0x6491('0x32'))){_0x332168[_0x6491('0x33')]=qs[_0x6491('0x33')](_0x323867[_0x6491('0x2a')]['limit']);_0x332168['offset']=qs[_0x6491('0x19')](_0x323867[_0x6491('0x2a')][_0x6491('0x19')]);}return _0x4b89ce[_0x6491('0x69')](_0x332168);}})[_0x6491('0x1e')](function(_0x1e9409){if(_0x1e9409){return _0x1e9409?{'count':_0x3f49b0,'rows':_0x1e9409}:null;}})['then'](respondWithResult(_0x15cef6,null))['catch'](handleError(_0x15cef6,null));};