33f55621c1b271259420cdc363f791106010f29c
[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 _0x572f=['length','includeAll','find','catch','update','body','create','sequelize','mode','root','server/files/moh','files','mkdirSync','directory','0777','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','get','UserProfileSection','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','transaction','readdirSync','forEach','unlinkSync','join','rmdirSync','Sequelize','addSound','Sound','findOne','save_name','converted_format','createdAt','server/files/sounds/converted','format','%s.%s','basename','extname','symlinkSync','ValidationError','message','removeSound','id2','getSounds','eml-format','zip-dir','fast-json-patch','request-promise','moment','util','path','to-csv','ejs','lodash','squel','jsforce','desk.js','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','end','status','offset','set','Content-Range','apply','reject','save','then','MusicOnHolds','UserProfileResource','destroy','stack','name','send','map','VoiceMusicOnHold','rawAttributes','fieldName','type','model','query','keys','filters','intersection','attributes','fields','hasOwnProperty','nolimit','limit','order','sort','where','pick','merge','VIRTUAL','filter','options','count','include','findAll','rows','show','params'];(function(_0x4eec9b,_0x4aea09){var _0x2e3849=function(_0x24c06d){while(--_0x24c06d){_0x4eec9b['push'](_0x4eec9b['shift']());}};_0x2e3849(++_0x4aea09);}(_0x572f,0x1ee));var _0xf572=function(_0x42cae2,_0x284ef8){_0x42cae2=_0x42cae2-0x0;var _0x5f256f=_0x572f[_0x42cae2];return _0x5f256f;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0xf572('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xf572('0x1'));var jsonpatch=require(_0xf572('0x2'));var rp=require(_0xf572('0x3'));var moment=require(_0xf572('0x4'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0xf572('0x5'));var path=require(_0xf572('0x6'));var sox=require('sox');var csv=require(_0xf572('0x7'));var ejs=require(_0xf572('0x8'));var fs=require('fs');var _=require(_0xf572('0x9'));var squel=require(_0xf572('0xa'));var crypto=require('crypto');var jsforce=require(_0xf572('0xb'));var deskjs=require(_0xf572('0xc'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0xf572('0xd'));var qs=require(_0xf572('0xe'));var as=require(_0xf572('0xf'));var hardwareService=require(_0xf572('0x10'));var logger=require('../../config/logger')(_0xf572('0x11'));var utils=require(_0xf572('0x12'));var config=require(_0xf572('0x13'));var licenseUtil=require(_0xf572('0x14'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x1883cc,_0x4fd72a){_0x4fd72a=_0x4fd72a||0xcc;return function(_0xec494c){if(_0xec494c){return _0x1883cc[_0xf572('0x15')](_0x4fd72a);}return _0x1883cc['status'](_0x4fd72a)[_0xf572('0x16')]();};}function respondWithResult(_0x844edf,_0x36b194){_0x36b194=_0x36b194||0xc8;return function(_0x3f53f1){if(_0x3f53f1){return _0x844edf[_0xf572('0x17')](_0x36b194)['json'](_0x3f53f1);}};}function respondWithFilteredResult(_0x395950,_0x4365e7){return function(_0x593da3){if(_0x593da3){var _0x4a9071=_0x593da3['count'],_0x45f68b=_0x4365e7[_0xf572('0x18')],_0x254507=_0x4365e7[_0xf572('0x18')]+_0x4365e7['limit'],_0x41f623;if(_0x254507>=_0x4a9071){_0x254507=_0x4a9071;_0x41f623=0xc8;}else{_0x41f623=0xce;}_0x395950[_0xf572('0x17')](_0x41f623);return _0x395950[_0xf572('0x19')](_0xf572('0x1a'),_0x45f68b+'-'+_0x254507+'/'+_0x4a9071)['json'](_0x593da3);}return null;};}function patchUpdates(_0x16929e){return function(_0x48c2b9){try{jsonpatch[_0xf572('0x1b')](_0x48c2b9,_0x16929e,!![]);}catch(_0x31be9b){return BPromise[_0xf572('0x1c')](_0x31be9b);}return _0x48c2b9[_0xf572('0x1d')]();};}function saveUpdates(_0xa4fb3c,_0x2ccd96){return function(_0x20e878){if(_0x20e878){return _0x20e878['update'](_0xa4fb3c)['then'](function(_0x3fad43){return _0x3fad43;});}return null;};}function removeEntity(_0x2838a7,_0x3c019d){return function(_0x5df8ec){if(_0x5df8ec){return _0x5df8ec['destroy']()[_0xf572('0x1e')](function(){var _0x46b3c2=_0x5df8ec['get']({'plain':!![]});var _0xf4d3d0=_0xf572('0x1f');return db[_0xf572('0x20')][_0xf572('0x21')]({'where':{'type':_0xf4d3d0,'resourceId':_0x46b3c2['id']}})['then'](function(){return _0x5df8ec;});})['then'](function(){_0x2838a7['status'](0xcc)[_0xf572('0x16')]();});}};}function handleEntityNotFound(_0x43600d,_0x199eb4){return function(_0x2fbb77){if(!_0x2fbb77){_0x43600d['sendStatus'](0x194);}return _0x2fbb77;};}function handleError(_0x288860,_0x5d8c01){_0x5d8c01=_0x5d8c01||0x1f4;return function(_0x242f06){logger['error'](_0x242f06[_0xf572('0x22')]);if(_0x242f06[_0xf572('0x23')]){delete _0x242f06['name'];}_0x288860['status'](_0x5d8c01)[_0xf572('0x24')](_0x242f06);};}exports['index']=function(_0x4d8ea3,_0x5aa5fe){var _0x4bfb4e={},_0x5b8aca={},_0x13ca88={'count':0x0,'rows':[]};var _0x1e007b=_[_0xf572('0x25')](db[_0xf572('0x26')][_0xf572('0x27')],function(_0x3337ea){return{'name':_0x3337ea[_0xf572('0x28')],'type':_0x3337ea[_0xf572('0x29')]['key']};});_0x5b8aca[_0xf572('0x2a')]=_[_0xf572('0x25')](_0x1e007b,_0xf572('0x23'));_0x5b8aca[_0xf572('0x2b')]=_[_0xf572('0x2c')](_0x4d8ea3['query']);_0x5b8aca[_0xf572('0x2d')]=_[_0xf572('0x2e')](_0x5b8aca[_0xf572('0x2a')],_0x5b8aca[_0xf572('0x2b')]);_0x4bfb4e[_0xf572('0x2f')]=_[_0xf572('0x2e')](_0x5b8aca[_0xf572('0x2a')],qs[_0xf572('0x30')](_0x4d8ea3['query'][_0xf572('0x30')]));_0x4bfb4e['attributes']=_0x4bfb4e[_0xf572('0x2f')]['length']?_0x4bfb4e[_0xf572('0x2f')]:_0x5b8aca['model'];if(!_0x4d8ea3['query'][_0xf572('0x31')](_0xf572('0x32'))){_0x4bfb4e[_0xf572('0x33')]=qs[_0xf572('0x33')](_0x4d8ea3[_0xf572('0x2b')][_0xf572('0x33')]);_0x4bfb4e[_0xf572('0x18')]=qs['offset'](_0x4d8ea3[_0xf572('0x2b')]['offset']);}_0x4bfb4e[_0xf572('0x34')]=qs[_0xf572('0x35')](_0x4d8ea3[_0xf572('0x2b')]['sort']);_0x4bfb4e[_0xf572('0x36')]=qs[_0xf572('0x2d')](_[_0xf572('0x37')](_0x4d8ea3[_0xf572('0x2b')],_0x5b8aca['filters']),_0x1e007b);if(_0x4d8ea3[_0xf572('0x2b')]['filter']){_0x4bfb4e[_0xf572('0x36')]=_[_0xf572('0x38')](_0x4bfb4e[_0xf572('0x36')],{'$or':_['map'](_0x1e007b,function(_0x4d8d13){if(_0x4d8d13[_0xf572('0x29')]!==_0xf572('0x39')){var _0x2e82c4={};_0x2e82c4[_0x4d8d13[_0xf572('0x23')]]={'$like':'%'+_0x4d8ea3[_0xf572('0x2b')][_0xf572('0x3a')]+'%'};return _0x2e82c4;}})});}_0x4bfb4e=_[_0xf572('0x38')]({},_0x4bfb4e,_0x4d8ea3[_0xf572('0x3b')]);var _0x1d3f63={'where':_0x4bfb4e[_0xf572('0x36')]};return db[_0xf572('0x26')]['count'](_0x1d3f63)[_0xf572('0x1e')](function(_0x3ec298){_0x13ca88[_0xf572('0x3c')]=_0x3ec298;if(_0x4d8ea3['query']['includeAll']){_0x4bfb4e[_0xf572('0x3d')]=[{'all':!![]}];}return db[_0xf572('0x26')][_0xf572('0x3e')](_0x4bfb4e);})[_0xf572('0x1e')](function(_0x441af3){_0x13ca88[_0xf572('0x3f')]=_0x441af3;return _0x13ca88;})[_0xf572('0x1e')](respondWithFilteredResult(_0x5aa5fe,_0x4bfb4e))['catch'](handleError(_0x5aa5fe,null));};exports[_0xf572('0x40')]=function(_0x3b9e9f,_0xa1850f){var _0x44b044={'raw':![],'where':{'id':_0x3b9e9f[_0xf572('0x41')]['id']}},_0x279641={};_0x279641['model']=_['keys'](db[_0xf572('0x26')][_0xf572('0x27')]);_0x279641['query']=_[_0xf572('0x2c')](_0x3b9e9f[_0xf572('0x2b')]);_0x279641[_0xf572('0x2d')]=_[_0xf572('0x2e')](_0x279641['model'],_0x279641[_0xf572('0x2b')]);_0x44b044[_0xf572('0x2f')]=_['intersection'](_0x279641[_0xf572('0x2a')],qs['fields'](_0x3b9e9f[_0xf572('0x2b')][_0xf572('0x30')]));_0x44b044['attributes']=_0x44b044['attributes'][_0xf572('0x42')]?_0x44b044[_0xf572('0x2f')]:_0x279641['model'];if(_0x3b9e9f[_0xf572('0x2b')][_0xf572('0x43')]){_0x44b044[_0xf572('0x3d')]=[{'all':!![]}];}_0x44b044=_['merge']({},_0x44b044,_0x3b9e9f['options']);return db[_0xf572('0x26')][_0xf572('0x44')](_0x44b044)[_0xf572('0x1e')](handleEntityNotFound(_0xa1850f,null))[_0xf572('0x1e')](respondWithResult(_0xa1850f,null))[_0xf572('0x45')](handleError(_0xa1850f,null));};exports[_0xf572('0x46')]=function(_0x23d9af,_0x546080){if(_0x23d9af[_0xf572('0x47')]['id']){delete _0x23d9af[_0xf572('0x47')]['id'];}return db['VoiceMusicOnHold']['find']({'where':{'id':_0x23d9af[_0xf572('0x41')]['id']}})[_0xf572('0x1e')](handleEntityNotFound(_0x546080,null))[_0xf572('0x1e')](saveUpdates(_0x23d9af[_0xf572('0x47')],null))[_0xf572('0x1e')](respondWithResult(_0x546080,null))[_0xf572('0x45')](handleError(_0x546080,null));};exports[_0xf572('0x48')]=function(_0x51a827,_0x20e8a3,_0x3a8cd2){return db[_0xf572('0x49')]['transaction'](function(_0x55e4f5){if(_0x51a827[_0xf572('0x47')][_0xf572('0x4a')]==='files'){_0x51a827[_0xf572('0x47')]['directory']=path['join'](config[_0xf572('0x4b')],_0xf572('0x4c'),_0x51a827[_0xf572('0x47')][_0xf572('0x23')]);}return db['VoiceMusicOnHold']['create'](_0x51a827[_0xf572('0x47')],{'transaction':_0x55e4f5})['then'](function(_0x2e9d3c){if(_0x51a827[_0xf572('0x47')][_0xf572('0x4a')]===_0xf572('0x4d')){fs[_0xf572('0x4e')](_0x2e9d3c[_0xf572('0x4f')],parseInt(_0xf572('0x50'),0x8));}var _0xabdf76=_0x51a827[_0xf572('0x51')]['get']({'plain':!![]});if(!_0xabdf76)throw new Error(_0xf572('0x52'));if(_0xabdf76[_0xf572('0x53')]==='user'){var _0x29e243=_0x2e9d3c[_0xf572('0x54')]({'plain':!![]});return db[_0xf572('0x55')][_0xf572('0x44')]({'where':{'name':_0xf572('0x1f'),'userProfileId':_0xabdf76[_0xf572('0x56')]},'raw':!![]})[_0xf572('0x1e')](function(_0x3ea21a){if(_0x3ea21a&&_0x3ea21a['autoAssociation']===0x0){return db['UserProfileResource'][_0xf572('0x48')]({'name':_0x29e243['name'],'resourceId':_0x29e243['id'],'type':_0x3ea21a['name'],'sectionId':_0x3ea21a['id']},{})[_0xf572('0x1e')](function(){return _0x2e9d3c;});}else{return _0x2e9d3c;}})[_0xf572('0x45')](function(_0x370dbd){logger['error'](_0xf572('0x57'),_0x370dbd);});}return _0x2e9d3c;});})['then'](respondWithResult(_0x20e8a3,0xc9))[_0xf572('0x45')](handleError(_0x20e8a3,null));};exports[_0xf572('0x21')]=function(_0x5c5a77,_0x22e43f,_0x1984b5){var _0xd30e3;return db[_0xf572('0x26')]['find']({'where':{'id':_0x5c5a77['params']['id']}})[_0xf572('0x1e')](function(_0x48da4f){if(_0x48da4f){return db[_0xf572('0x49')][_0xf572('0x58')](function(_0x4afc35){return _0x48da4f[_0xf572('0x21')]({'transaction':_0x4afc35,'raw':!![]})[_0xf572('0x1e')](function(_0x1c7bd0){if(_0x1c7bd0[_0xf572('0x4f')]){fs[_0xf572('0x59')](_0x1c7bd0[_0xf572('0x4f')])[_0xf572('0x5a')](function(_0xeee88d){fs[_0xf572('0x5b')](path[_0xf572('0x5c')](_0x1c7bd0['directory'],_0xeee88d));});fs[_0xf572('0x5d')](_0x1c7bd0[_0xf572('0x4f')]);}return _0x1c7bd0;});})[_0xf572('0x45')](function(_0x3b4c50){throw new db[(_0xf572('0x5e'))]['ValidationError'](_0x3b4c50['message']);});}})[_0xf572('0x1e')](handleEntityNotFound(_0x22e43f,null))[_0xf572('0x1e')](removeEntity(_0x22e43f,null))[_0xf572('0x45')](handleError(_0x22e43f,null));};exports[_0xf572('0x5f')]=function(_0x2ef460,_0x368f05,_0x447d39){return db[_0xf572('0x49')][_0xf572('0x58')](function(_0x1bf83a){var _0xcb0c60;return db[_0xf572('0x26')][_0xf572('0x44')]({'where':{'id':_0x2ef460[_0xf572('0x41')]['id']}})[_0xf572('0x1e')](function(_0x3e4694){if(_0x3e4694){_0xcb0c60=_0x3e4694;return _0x3e4694[_0xf572('0x5f')](_0x2ef460[_0xf572('0x47')]['id'],{'transaction':_0x1bf83a});}})[_0xf572('0x1e')](function(_0x1a2e70){if(_0x1a2e70){return db[_0xf572('0x60')][_0xf572('0x61')]({'where':{'id':_0x2ef460[_0xf572('0x47')]['id']},'attributes':['id',_0xf572('0x23'),_0xf572('0x62'),_0xf572('0x63'),_0xf572('0x64')],'raw':!![]});}})[_0xf572('0x1e')](function(_0x25215d){if(_0x25215d){var _0x2c122a=path[_0xf572('0x5c')](config[_0xf572('0x4b')],_0xf572('0x65'),util[_0xf572('0x66')](_0xf572('0x67'),path[_0xf572('0x68')](_0x25215d[_0xf572('0x62')],path[_0xf572('0x69')](_0x25215d['save_name'])),_0x25215d[_0xf572('0x63')]));var _0x87a87=path[_0xf572('0x5c')](config['root'],_0xf572('0x4c'),_0xcb0c60['name'],util['format'](_0xf572('0x67'),_0x25215d[_0xf572('0x23')],_0x25215d[_0xf572('0x63')]));fs[_0xf572('0x6a')](_0x2c122a,_0x87a87);return _0x25215d;}})[_0xf572('0x45')](function(_0xc5dfde){throw new db['Sequelize'][(_0xf572('0x6b'))](_0xc5dfde[_0xf572('0x6c')]);});})[_0xf572('0x1e')](handleEntityNotFound(_0x368f05,null))[_0xf572('0x1e')](respondWithResult(_0x368f05,0xc9))[_0xf572('0x45')](handleError(_0x368f05,null));};exports[_0xf572('0x6d')]=function(_0x561fbf,_0x23c49e,_0x40c611){return db[_0xf572('0x49')][_0xf572('0x58')](function(_0x540110){var _0xefdf17;return db[_0xf572('0x26')][_0xf572('0x61')]({'where':{'id':_0x561fbf[_0xf572('0x41')]['id']}})[_0xf572('0x1e')](handleEntityNotFound(_0x23c49e,null))[_0xf572('0x1e')](function(_0x372356){if(_0x372356){_0xefdf17=_0x372356;return _0x372356['removeSound'](_0x561fbf['params'][_0xf572('0x6e')]);}})['then'](function(_0x3febc3){if(_0x3febc3){return db[_0xf572('0x60')][_0xf572('0x61')]({'where':{'id':_0x561fbf[_0xf572('0x41')][_0xf572('0x6e')]},'attributes':['id',_0xf572('0x23'),_0xf572('0x62'),_0xf572('0x63'),_0xf572('0x64')],'raw':!![]});}})['then'](function(_0x27528a){if(_0x27528a){fs[_0xf572('0x5b')](path[_0xf572('0x5c')](_0xefdf17[_0xf572('0x4f')],util[_0xf572('0x66')](_0xf572('0x67'),_0x27528a[_0xf572('0x23')],_0x27528a[_0xf572('0x63')])));return _0x27528a;}})[_0xf572('0x45')](function(_0x4c9a4f){throw new db[(_0xf572('0x5e'))][(_0xf572('0x6b'))](_0x4c9a4f[_0xf572('0x6c')]);});})[_0xf572('0x1e')](handleEntityNotFound(_0x23c49e,null))['then'](respondWithStatusCode(_0x23c49e,0xcc))['catch'](handleError(_0x23c49e,null));};exports['getSounds']=function(_0x26cad8,_0x6a536e,_0x235628){var _0x673d78={};var _0x4846b7={};var _0x143315;var _0x1e6f55;return db[_0xf572('0x26')][_0xf572('0x61')]({'where':{'id':_0x26cad8['params']['id']}})[_0xf572('0x1e')](handleEntityNotFound(_0x6a536e,null))[_0xf572('0x1e')](function(_0x148cbe){if(_0x148cbe){_0x143315=_0x148cbe;_0x4846b7[_0xf572('0x2a')]=_[_0xf572('0x2c')](db[_0xf572('0x60')]['rawAttributes']);_0x4846b7[_0xf572('0x2b')]=_[_0xf572('0x2c')](_0x26cad8[_0xf572('0x2b')]);_0x4846b7[_0xf572('0x2d')]=_['intersection'](_0x4846b7[_0xf572('0x2a')],_0x4846b7[_0xf572('0x2b')]);_0x673d78[_0xf572('0x2f')]=_[_0xf572('0x2e')](_0x4846b7[_0xf572('0x2a')],qs[_0xf572('0x30')](_0x26cad8[_0xf572('0x2b')][_0xf572('0x30')]));_0x673d78[_0xf572('0x2f')]=_0x673d78[_0xf572('0x2f')][_0xf572('0x42')]?_0x673d78['attributes']:_0x4846b7[_0xf572('0x2a')];_0x673d78[_0xf572('0x34')]=qs[_0xf572('0x35')](_0x26cad8[_0xf572('0x2b')][_0xf572('0x35')]);_0x673d78[_0xf572('0x36')]=qs[_0xf572('0x2d')](_[_0xf572('0x37')](_0x26cad8[_0xf572('0x2b')],_0x4846b7[_0xf572('0x2d')]));if(_0x26cad8['query'][_0xf572('0x3a')]){_0x673d78[_0xf572('0x36')]=_[_0xf572('0x38')](_0x673d78[_0xf572('0x36')],{'$or':_[_0xf572('0x25')](_0x673d78[_0xf572('0x2f')],function(_0x38e261){var _0x1a93c3={};_0x1a93c3[_0x38e261]={'$like':'%'+_0x26cad8[_0xf572('0x2b')][_0xf572('0x3a')]+'%'};return _0x1a93c3;})});}_0x673d78=_[_0xf572('0x38')]({},_0x673d78,_0x26cad8['options']);return _0x143315[_0xf572('0x6f')](_0x673d78);}})[_0xf572('0x1e')](function(_0x2aa901){if(_0x2aa901){_0x1e6f55=_0x2aa901['length'];if(!_0x26cad8['query'][_0xf572('0x31')](_0xf572('0x32'))){_0x673d78['limit']=qs[_0xf572('0x33')](_0x26cad8[_0xf572('0x2b')][_0xf572('0x33')]);_0x673d78['offset']=qs[_0xf572('0x18')](_0x26cad8[_0xf572('0x2b')]['offset']);}return _0x143315[_0xf572('0x6f')](_0x673d78);}})[_0xf572('0x1e')](function(_0x4687b2){if(_0x4687b2){return _0x4687b2?{'count':_0x1e6f55,'rows':_0x4687b2}:null;}})[_0xf572('0x1e')](respondWithResult(_0x6a536e,null))[_0xf572('0x45')](handleError(_0x6a536e,null));};