Built motion from commit da617fac.|2.6.6
[motion2.git] / server / api / sound / sound.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 _0x3303=['wav','info','Sound\x20upload\x20filepath:\x20%s','Sound\x20upload\x20destination:\x20%s','chmodSync','0777','transcode','error','unlinkSync','src','duration','sampleCount','original_channelCount','original_bitRate','bitRate','original_sampleRate','sampleRate','dest','converted_duration','converted_channelCount','channelCount','converted_sampleRate','create','body','role','userProfileId','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','UserProfileSection','start','pick','delete','server/files/sounds/original','save_name','original_format','eml-format','zip-dir','request-promise','bluebird','mustache','util','path','sox','ejs','lodash','crypto','jsforce','desk.js','to-csv','querystring','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/environment','../../config/license/util','../../mysqldb','end','status','json','offset','undefined','limit','count','set','Content-Range','reject','save','update','then','destroy','get','Sounds','UserProfileResource','sendStatus','stack','name','send','index','map','Sound','rawAttributes','type','key','query','keys','filters','intersection','attributes','fields','model','nolimit','order','sort','where','filter','VIRTUAL','merge','includeAll','include','findAll','catch','show','params','length','options','find','download','converted_format','join','root','server/files/sounds/converted','Sequelize','Sound\x20not\x20found','format','%s.%s','file','extname','originalname','basename','filename','substring'];(function(_0x15f869,_0x2e1e44){var _0x28d62d=function(_0x45b5c9){while(--_0x45b5c9){_0x15f869['push'](_0x15f869['shift']());}};_0x28d62d(++_0x2e1e44);}(_0x3303,0x119));var _0x3330=function(_0x359c8a,_0x44c349){_0x359c8a=_0x359c8a-0x0;var _0x291a2c=_0x3303[_0x359c8a];return _0x291a2c;};'use strict';var emlformat=require(_0x3330('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x3330('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x3330('0x2'));var moment=require('moment');var BPromise=require(_0x3330('0x3'));var Mustache=require(_0x3330('0x4'));var util=require(_0x3330('0x5'));var path=require(_0x3330('0x6'));var sox=require(_0x3330('0x7'));var csv=require('to-csv');var ejs=require(_0x3330('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x3330('0x9'));var squel=require('squel');var crypto=require(_0x3330('0xa'));var jsforce=require(_0x3330('0xb'));var deskjs=require(_0x3330('0xc'));var toCsv=require(_0x3330('0xd'));var querystring=require(_0x3330('0xe'));var Papa=require('papaparse');var Redis=require(_0x3330('0xf'));var authService=require(_0x3330('0x10'));var qs=require('../../components/parsers/qs');var as=require(_0x3330('0x11'));var hardwareService=require(_0x3330('0x12'));var logger=require(_0x3330('0x13'))('api');var utils=require('../../config/utils');var config=require(_0x3330('0x14'));var licenseUtil=require(_0x3330('0x15'));var db=require(_0x3330('0x16'))['db'];function respondWithStatusCode(_0x3fc794,_0x291ad9){_0x291ad9=_0x291ad9||0xcc;return function(_0x16441c){if(_0x16441c){return _0x3fc794['sendStatus'](_0x291ad9);}return _0x3fc794['status'](_0x291ad9)[_0x3330('0x17')]();};}function respondWithResult(_0x6631a6,_0x43e146){_0x43e146=_0x43e146||0xc8;return function(_0x5aa2f0){if(_0x5aa2f0){return _0x6631a6[_0x3330('0x18')](_0x43e146)[_0x3330('0x19')](_0x5aa2f0);}};}function respondWithFilteredResult(_0x2e398e,_0x14424d){return function(_0x10316a){if(_0x10316a){var _0x43ef2d=typeof _0x14424d[_0x3330('0x1a')]===_0x3330('0x1b')&&typeof _0x14424d[_0x3330('0x1c')]===_0x3330('0x1b');var _0x2019fc=_0x10316a[_0x3330('0x1d')];var _0x5db72b=_0x43ef2d?0x0:_0x14424d['offset'];var _0x3ec668=_0x43ef2d?_0x10316a['count']:_0x14424d[_0x3330('0x1a')]+_0x14424d[_0x3330('0x1c')];var _0xf00f19;if(_0x3ec668>=_0x2019fc){_0x3ec668=_0x2019fc;_0xf00f19=0xc8;}else{_0xf00f19=0xce;}_0x2e398e['status'](_0xf00f19);return _0x2e398e[_0x3330('0x1e')](_0x3330('0x1f'),_0x5db72b+'-'+_0x3ec668+'/'+_0x2019fc)[_0x3330('0x19')](_0x10316a);}return null;};}function patchUpdates(_0x42d15c){return function(_0x3524eb){try{jsonpatch['apply'](_0x3524eb,_0x42d15c,!![]);}catch(_0x256245){return BPromise[_0x3330('0x20')](_0x256245);}return _0x3524eb[_0x3330('0x21')]();};}function saveUpdates(_0x3ea564,_0x3043f2){return function(_0x1cd133){if(_0x1cd133){return _0x1cd133[_0x3330('0x22')](_0x3ea564)[_0x3330('0x23')](function(_0x5b4c84){return _0x5b4c84;});}return null;};}function removeEntity(_0x1c7c98,_0x306ae4){return function(_0xf06904){if(_0xf06904){return _0xf06904[_0x3330('0x24')]()[_0x3330('0x23')](function(){var _0x1e5346=_0xf06904[_0x3330('0x25')]({'plain':!![]});var _0x30c31f=_0x3330('0x26');return db[_0x3330('0x27')]['destroy']({'where':{'type':_0x30c31f,'resourceId':_0x1e5346['id']}})[_0x3330('0x23')](function(){return _0xf06904;});})['then'](function(){_0x1c7c98['status'](0xcc)[_0x3330('0x17')]();});}};}function handleEntityNotFound(_0x2a27d3,_0x3c0fdb){return function(_0x2ae1ab){if(!_0x2ae1ab){_0x2a27d3[_0x3330('0x28')](0x194);}return _0x2ae1ab;};}function handleError(_0x338dfd,_0xc5393a){_0xc5393a=_0xc5393a||0x1f4;return function(_0x23c278){logger['error'](_0x23c278[_0x3330('0x29')]);if(_0x23c278[_0x3330('0x2a')]){delete _0x23c278[_0x3330('0x2a')];}_0x338dfd['status'](_0xc5393a)[_0x3330('0x2b')](_0x23c278);};}exports[_0x3330('0x2c')]=function(_0x77aaa5,_0x243a07){var _0x2ce845={},_0x58e07a={},_0x3ee1ec={'count':0x0,'rows':[]};var _0x4b2e82=_[_0x3330('0x2d')](db[_0x3330('0x2e')][_0x3330('0x2f')],function(_0x59e49e){return{'name':_0x59e49e['fieldName'],'type':_0x59e49e[_0x3330('0x30')][_0x3330('0x31')]};});_0x58e07a['model']=_['map'](_0x4b2e82,_0x3330('0x2a'));_0x58e07a[_0x3330('0x32')]=_[_0x3330('0x33')](_0x77aaa5[_0x3330('0x32')]);_0x58e07a[_0x3330('0x34')]=_[_0x3330('0x35')](_0x58e07a['model'],_0x58e07a['query']);_0x2ce845[_0x3330('0x36')]=_[_0x3330('0x35')](_0x58e07a['model'],qs[_0x3330('0x37')](_0x77aaa5[_0x3330('0x32')][_0x3330('0x37')]));_0x2ce845['attributes']=_0x2ce845['attributes']['length']?_0x2ce845['attributes']:_0x58e07a[_0x3330('0x38')];if(!_0x77aaa5[_0x3330('0x32')]['hasOwnProperty'](_0x3330('0x39'))){_0x2ce845[_0x3330('0x1c')]=qs[_0x3330('0x1c')](_0x77aaa5[_0x3330('0x32')][_0x3330('0x1c')]);_0x2ce845['offset']=qs[_0x3330('0x1a')](_0x77aaa5[_0x3330('0x32')][_0x3330('0x1a')]);}_0x2ce845[_0x3330('0x3a')]=qs['sort'](_0x77aaa5[_0x3330('0x32')][_0x3330('0x3b')]);_0x2ce845[_0x3330('0x3c')]=qs[_0x3330('0x34')](_['pick'](_0x77aaa5['query'],_0x58e07a[_0x3330('0x34')]),_0x4b2e82);if(_0x77aaa5[_0x3330('0x32')][_0x3330('0x3d')]){_0x2ce845[_0x3330('0x3c')]=_['merge'](_0x2ce845[_0x3330('0x3c')],{'$or':_[_0x3330('0x2d')](_0x4b2e82,function(_0x3c4e5e){if(_0x3c4e5e['type']!==_0x3330('0x3e')){var _0x19cf08={};_0x19cf08[_0x3c4e5e['name']]={'$like':'%'+_0x77aaa5['query'][_0x3330('0x3d')]+'%'};return _0x19cf08;}})});}_0x2ce845=_[_0x3330('0x3f')]({},_0x2ce845,_0x77aaa5['options']);var _0x4a6f6a={'where':_0x2ce845[_0x3330('0x3c')]};return db['Sound'][_0x3330('0x1d')](_0x4a6f6a)['then'](function(_0x71fb5f){_0x3ee1ec[_0x3330('0x1d')]=_0x71fb5f;if(_0x77aaa5[_0x3330('0x32')][_0x3330('0x40')]){_0x2ce845[_0x3330('0x41')]=[{'all':!![]}];}return db[_0x3330('0x2e')][_0x3330('0x42')](_0x2ce845);})[_0x3330('0x23')](function(_0x248b5c){_0x3ee1ec['rows']=_0x248b5c;return _0x3ee1ec;})['then'](respondWithFilteredResult(_0x243a07,_0x2ce845))[_0x3330('0x43')](handleError(_0x243a07,null));};exports[_0x3330('0x44')]=function(_0x3f4457,_0xf80df4){var _0x3e1ce3={'raw':!![],'where':{'id':_0x3f4457[_0x3330('0x45')]['id']}},_0x184105={};_0x184105[_0x3330('0x38')]=_[_0x3330('0x33')](db[_0x3330('0x2e')]['rawAttributes']);_0x184105[_0x3330('0x32')]=_[_0x3330('0x33')](_0x3f4457[_0x3330('0x32')]);_0x184105[_0x3330('0x34')]=_['intersection'](_0x184105[_0x3330('0x38')],_0x184105[_0x3330('0x32')]);_0x3e1ce3[_0x3330('0x36')]=_[_0x3330('0x35')](_0x184105[_0x3330('0x38')],qs[_0x3330('0x37')](_0x3f4457[_0x3330('0x32')][_0x3330('0x37')]));_0x3e1ce3[_0x3330('0x36')]=_0x3e1ce3['attributes'][_0x3330('0x46')]?_0x3e1ce3[_0x3330('0x36')]:_0x184105[_0x3330('0x38')];if(_0x3f4457[_0x3330('0x32')][_0x3330('0x40')]){_0x3e1ce3[_0x3330('0x41')]=[{'all':!![]}];}_0x3e1ce3=_[_0x3330('0x3f')]({},_0x3e1ce3,_0x3f4457[_0x3330('0x47')]);return db[_0x3330('0x2e')][_0x3330('0x48')](_0x3e1ce3)[_0x3330('0x23')](handleEntityNotFound(_0xf80df4,null))['then'](respondWithResult(_0xf80df4,null))[_0x3330('0x43')](handleError(_0xf80df4,null));};exports[_0x3330('0x49')]=function(_0x1f4f29,_0x1b7ff3,_0x73f62e){return db[_0x3330('0x2e')][_0x3330('0x48')]({'where':{'id':_0x1f4f29[_0x3330('0x45')]['id']},'attributes':[_0x3330('0x2a'),'save_name',_0x3330('0x4a')],'raw':!![]})['then'](handleEntityNotFound(_0x1b7ff3,null))['then'](function(_0x5e9be2){if(_0x5e9be2){if(!fs['existsSync'](path[_0x3330('0x4b')](config[_0x3330('0x4c')],_0x3330('0x4d'),_0x5e9be2['save_name']+'.'+_0x5e9be2[_0x3330('0x4a')]))){throw new db[(_0x3330('0x4e'))]['ValidationError'](_0x3330('0x4f'));}return _0x1b7ff3[_0x3330('0x49')](path['join'](config[_0x3330('0x4c')],_0x3330('0x4d'),util[_0x3330('0x50')](_0x3330('0x51'),_0x5e9be2['save_name'],_0x5e9be2[_0x3330('0x4a')])),util[_0x3330('0x50')]('%s.%s',_0x5e9be2[_0x3330('0x2a')],_0x5e9be2[_0x3330('0x4a')]));}return null;})[_0x3330('0x43')](handleError(_0x1b7ff3,null));};exports['create']=function(_0x2beb24,_0x39665a,_0x1f15bc){var _0x438792={'name':path['basename'](_0x2beb24[_0x3330('0x52')]['originalname'],path[_0x3330('0x53')](_0x2beb24[_0x3330('0x52')][_0x3330('0x54')])),'save_name':path[_0x3330('0x55')](_0x2beb24[_0x3330('0x52')][_0x3330('0x56')],path[_0x3330('0x53')](_0x2beb24[_0x3330('0x52')][_0x3330('0x56')])),'original_format':path[_0x3330('0x53')](_0x2beb24[_0x3330('0x52')]['originalname'])[_0x3330('0x57')](0x1),'converted_format':_0x3330('0x58')};var _0x15831c=path[_0x3330('0x4b')](config[_0x3330('0x4c')],'server/files/sounds/original',_0x2beb24[_0x3330('0x52')][_0x3330('0x56')]);var _0x40220=path[_0x3330('0x4b')](config[_0x3330('0x4c')],_0x3330('0x4d'),util[_0x3330('0x50')](_0x3330('0x51'),path[_0x3330('0x55')](_0x2beb24['file'][_0x3330('0x56')],path[_0x3330('0x53')](_0x2beb24['file'][_0x3330('0x56')])),_0x438792[_0x3330('0x4a')]));logger[_0x3330('0x59')](_0x3330('0x5a'),_0x15831c);logger[_0x3330('0x59')](_0x3330('0x5b'),_0x40220);try{fs[_0x3330('0x5c')](_0x15831c,parseInt(_0x3330('0x5d'),0x8));var _0x3b845a=sox[_0x3330('0x5e')](_0x15831c,_0x40220,{'sampleRate':0x1f40,'format':_0x3330('0x58'),'channelCount':0x1,'bitRate':0xc0*0x400,'compressionQuality':0x5});_0x3b845a['on'](_0x3330('0x5f'),function(_0x388585){fs[_0x3330('0x60')](_0x15831c);_0x39665a['status'](0x1f4)[_0x3330('0x2b')](_0x388585);});_0x3b845a['on'](_0x3330('0x61'),function(_0x1e9f17){_0x438792['original_duration']=isNaN(_0x1e9f17[_0x3330('0x62')])?null:_0x1e9f17[_0x3330('0x62')]*0x3e8;_0x438792['original_sampleCount']=isNaN(_0x1e9f17[_0x3330('0x63')])?null:_0x1e9f17['sampleCount'];_0x438792[_0x3330('0x64')]=isNaN(_0x1e9f17['channelCount'])?null:_0x1e9f17['channelCount'];_0x438792[_0x3330('0x65')]=isNaN(_0x1e9f17[_0x3330('0x66')])?null:_0x1e9f17[_0x3330('0x66')];_0x438792[_0x3330('0x67')]=isNaN(_0x1e9f17[_0x3330('0x68')])?null:_0x1e9f17['sampleRate'];});_0x3b845a['on'](_0x3330('0x69'),function(_0x393ece){_0x438792[_0x3330('0x6a')]=isNaN(_0x393ece['duration'])?null:_0x393ece[_0x3330('0x62')]*0x3e8;_0x438792['converted_sampleCount']=isNaN(_0x393ece['sampleCount'])?null:_0x393ece['sampleCount'];_0x438792[_0x3330('0x6b')]=isNaN(_0x393ece[_0x3330('0x6c')])?null:_0x393ece[_0x3330('0x6c')];_0x438792['converted_bitRate']=isNaN(_0x393ece[_0x3330('0x66')])?null:_0x393ece[_0x3330('0x66')];_0x438792[_0x3330('0x6d')]=isNaN(_0x393ece['sampleRate'])?null:_0x393ece[_0x3330('0x68')];});_0x3b845a['on'](_0x3330('0x17'),function(){fs['chmodSync'](_0x40220,parseInt(_0x3330('0x5d'),0x8));return db[_0x3330('0x2e')][_0x3330('0x6e')](_0x438792)['then'](function(_0x146a73){var _0x4028a5={'role':_0x2beb24[_0x3330('0x6f')][_0x3330('0x70')],'userProfileId':_0x2beb24[_0x3330('0x6f')][_0x3330('0x71')]};if(!_0x4028a5)throw new Error(_0x3330('0x72'));if(_0x4028a5[_0x3330('0x70')]===_0x3330('0x73')){var _0x2da4f0=_0x146a73[_0x3330('0x25')]({'plain':!![]});return db[_0x3330('0x74')][_0x3330('0x48')]({'where':{'name':_0x3330('0x26'),'userProfileId':_0x4028a5['userProfileId']},'raw':!![]})['then'](function(_0x23d359){if(_0x23d359&&_0x23d359['autoAssociation']===0x0){return db[_0x3330('0x27')][_0x3330('0x6e')]({'name':_0x2da4f0[_0x3330('0x2a')],'resourceId':_0x2da4f0['id'],'type':_0x23d359[_0x3330('0x2a')],'sectionId':_0x23d359['id']},{})[_0x3330('0x23')](function(){return _0x146a73;});}else{return _0x146a73;}})[_0x3330('0x43')](function(_0x55889b){logger[_0x3330('0x5f')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x55889b);throw _0x55889b;});}return _0x146a73;})[_0x3330('0x23')](respondWithResult(_0x39665a,null))[_0x3330('0x43')](handleError(_0x39665a,null));});_0x3b845a[_0x3330('0x75')]();}catch(_0x5498a6){_0x39665a[_0x3330('0x18')](0x1f4)[_0x3330('0x2b')](_0x5498a6);}};exports[_0x3330('0x22')]=function(_0x39a47c,_0x4d7f9f,_0xc8ea62){return db[_0x3330('0x2e')][_0x3330('0x48')]({'where':{'id':_0x39a47c[_0x3330('0x45')]['id']}})[_0x3330('0x23')](handleEntityNotFound(_0x4d7f9f,null))[_0x3330('0x23')](saveUpdates(_[_0x3330('0x76')](_0x39a47c['body'],[_0x3330('0x2a'),'description']),null))[_0x3330('0x23')](respondWithResult(_0x4d7f9f,null))['catch'](handleError(_0x4d7f9f,null));};exports[_0x3330('0x77')]=function(_0x4310f6,_0x405d61,_0x5ebf9b){return db[_0x3330('0x2e')]['find']({'where':{'id':_0x4310f6[_0x3330('0x45')]['id']}})[_0x3330('0x23')](function(_0x4fd233){if(_0x4fd233){return _0x4fd233['destroy']();}})[_0x3330('0x23')](function(_0x1e8fe2){var _0x36d2f9=path[_0x3330('0x4b')](config['root'],_0x3330('0x78'),util[_0x3330('0x50')](_0x3330('0x51'),_0x1e8fe2[_0x3330('0x79')],_0x1e8fe2[_0x3330('0x7a')]));var _0x36f6e0=path[_0x3330('0x4b')](config[_0x3330('0x4c')],_0x3330('0x4d'),util[_0x3330('0x50')](_0x3330('0x51'),_0x1e8fe2[_0x3330('0x79')],_0x1e8fe2['converted_format']));fs[_0x3330('0x60')](_0x36d2f9);fs[_0x3330('0x60')](_0x36f6e0);return _0x1e8fe2;})['then'](function(_0x39237b){if(_0x39237b){return _0x405d61[_0x3330('0x18')](0xcc)['end']();}})[_0x3330('0x23')](handleEntityNotFound(_0x405d61,null))[_0x3330('0x43')](handleError(_0x405d61,null));};