Built motion from commit 97153652.|2.6.26
[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 _0x3a84=['to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','offset','undefined','limit','count','set','Content-Range','json','apply','then','destroy','stack','name','send','map','Sound','rawAttributes','fieldName','key','model','query','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','filters','pick','filter','merge','type','VIRTUAL','options','includeAll','include','rows','show','params','keys','length','find','download','save_name','existsSync','join','server/files/sounds/converted','converted_format','ValidationError','Sound\x20not\x20found','format','%s.%s','create','basename','file','originalname','filename','extname','substring','wav','root','server/files/sounds/original','info','Sound\x20upload\x20destination:\x20%s','chmodSync','transcode','error','unlinkSync','src','original_duration','duration','original_sampleCount','sampleCount','original_channelCount','channelCount','original_bitRate','bitRate','original_sampleRate','sampleRate','dest','converted_duration','converted_sampleCount','converted_channelCount','converted_bitRate','converted_sampleRate','body','role','userProfileId','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','get','Sounds','autoAssociation','UserProfileResource','catch','start','update','delete','original_format','zip-dir','moment','mustache','sox'];(function(_0x470615,_0x1c7aaa){var _0x189c81=function(_0x398e12){while(--_0x398e12){_0x470615['push'](_0x470615['shift']());}};_0x189c81(++_0x1c7aaa);}(_0x3a84,0x1e4));var _0x43a8=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x3a84[_0x3dd15e];return _0x231fd0;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x43a8('0x0'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x43a8('0x1'));var BPromise=require('bluebird');var Mustache=require(_0x43a8('0x2'));var util=require('util');var path=require('path');var sox=require(_0x43a8('0x3'));var csv=require(_0x43a8('0x4'));var ejs=require(_0x43a8('0x5'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x43a8('0x6'));var squel=require(_0x43a8('0x7'));var crypto=require(_0x43a8('0x8'));var jsforce=require(_0x43a8('0x9'));var deskjs=require(_0x43a8('0xa'));var toCsv=require('to-csv');var querystring=require(_0x43a8('0xb'));var Papa=require(_0x43a8('0xc'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x43a8('0xd'));var as=require(_0x43a8('0xe'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x43a8('0xf'))('api');var utils=require('../../config/utils');var config=require(_0x43a8('0x10'));var licenseUtil=require(_0x43a8('0x11'));var db=require(_0x43a8('0x12'))['db'];function respondWithStatusCode(_0x468700,_0x398b89){_0x398b89=_0x398b89||0xcc;return function(_0xbcea24){if(_0xbcea24){return _0x468700[_0x43a8('0x13')](_0x398b89);}return _0x468700[_0x43a8('0x14')](_0x398b89)[_0x43a8('0x15')]();};}function respondWithResult(_0x30a9f9,_0x1decf7){_0x1decf7=_0x1decf7||0xc8;return function(_0x2bb828){if(_0x2bb828){return _0x30a9f9[_0x43a8('0x14')](_0x1decf7)['json'](_0x2bb828);}};}function respondWithFilteredResult(_0x635d6f,_0x12ff6c){return function(_0x22127b){if(_0x22127b){var _0x1db201=typeof _0x12ff6c[_0x43a8('0x16')]===_0x43a8('0x17')&&typeof _0x12ff6c[_0x43a8('0x18')]===_0x43a8('0x17');var _0x1eeffa=_0x22127b[_0x43a8('0x19')];var _0x1c192d=_0x1db201?0x0:_0x12ff6c[_0x43a8('0x16')];var _0x39a1f1=_0x1db201?_0x22127b['count']:_0x12ff6c[_0x43a8('0x16')]+_0x12ff6c[_0x43a8('0x18')];var _0x2407c2;if(_0x39a1f1>=_0x1eeffa){_0x39a1f1=_0x1eeffa;_0x2407c2=0xc8;}else{_0x2407c2=0xce;}_0x635d6f[_0x43a8('0x14')](_0x2407c2);return _0x635d6f[_0x43a8('0x1a')](_0x43a8('0x1b'),_0x1c192d+'-'+_0x39a1f1+'/'+_0x1eeffa)[_0x43a8('0x1c')](_0x22127b);}return null;};}function patchUpdates(_0x287491){return function(_0x192e35){try{jsonpatch[_0x43a8('0x1d')](_0x192e35,_0x287491,!![]);}catch(_0x2093f5){return BPromise['reject'](_0x2093f5);}return _0x192e35['save']();};}function saveUpdates(_0x2a53a5,_0x4cf2a7){return function(_0x359c66){if(_0x359c66){return _0x359c66['update'](_0x2a53a5)[_0x43a8('0x1e')](function(_0x3767b6){return _0x3767b6;});}return null;};}function removeEntity(_0x31168b,_0x2ed7a9){return function(_0x1f6895){if(_0x1f6895){return _0x1f6895['destroy']()[_0x43a8('0x1e')](function(){var _0x255b69=_0x1f6895['get']({'plain':!![]});var _0x2b9c66='Sounds';return db['UserProfileResource'][_0x43a8('0x1f')]({'where':{'type':_0x2b9c66,'resourceId':_0x255b69['id']}})['then'](function(){return _0x1f6895;});})[_0x43a8('0x1e')](function(){_0x31168b['status'](0xcc)[_0x43a8('0x15')]();});}};}function handleEntityNotFound(_0x736a1d,_0x524af8){return function(_0x4ff3aa){if(!_0x4ff3aa){_0x736a1d[_0x43a8('0x13')](0x194);}return _0x4ff3aa;};}function handleError(_0x21147a,_0x466724){_0x466724=_0x466724||0x1f4;return function(_0x157fd1){logger['error'](_0x157fd1[_0x43a8('0x20')]);if(_0x157fd1[_0x43a8('0x21')]){delete _0x157fd1[_0x43a8('0x21')];}_0x21147a[_0x43a8('0x14')](_0x466724)[_0x43a8('0x22')](_0x157fd1);};}exports['index']=function(_0x50dd80,_0x5c8d47){var _0x3f69ca={},_0x322c69={},_0xff58a3={'count':0x0,'rows':[]};var _0x128832=_[_0x43a8('0x23')](db[_0x43a8('0x24')][_0x43a8('0x25')],function(_0x4a3da2){return{'name':_0x4a3da2[_0x43a8('0x26')],'type':_0x4a3da2['type'][_0x43a8('0x27')]};});_0x322c69[_0x43a8('0x28')]=_[_0x43a8('0x23')](_0x128832,_0x43a8('0x21'));_0x322c69['query']=_['keys'](_0x50dd80[_0x43a8('0x29')]);_0x322c69['filters']=_[_0x43a8('0x2a')](_0x322c69['model'],_0x322c69[_0x43a8('0x29')]);_0x3f69ca[_0x43a8('0x2b')]=_['intersection'](_0x322c69[_0x43a8('0x28')],qs[_0x43a8('0x2c')](_0x50dd80[_0x43a8('0x29')]['fields']));_0x3f69ca[_0x43a8('0x2b')]=_0x3f69ca[_0x43a8('0x2b')]['length']?_0x3f69ca[_0x43a8('0x2b')]:_0x322c69[_0x43a8('0x28')];if(!_0x50dd80['query'][_0x43a8('0x2d')](_0x43a8('0x2e'))){_0x3f69ca[_0x43a8('0x18')]=qs[_0x43a8('0x18')](_0x50dd80[_0x43a8('0x29')][_0x43a8('0x18')]);_0x3f69ca[_0x43a8('0x16')]=qs[_0x43a8('0x16')](_0x50dd80[_0x43a8('0x29')]['offset']);}_0x3f69ca[_0x43a8('0x2f')]=qs[_0x43a8('0x30')](_0x50dd80[_0x43a8('0x29')][_0x43a8('0x30')]);_0x3f69ca[_0x43a8('0x31')]=qs[_0x43a8('0x32')](_[_0x43a8('0x33')](_0x50dd80[_0x43a8('0x29')],_0x322c69[_0x43a8('0x32')]),_0x128832);if(_0x50dd80['query'][_0x43a8('0x34')]){_0x3f69ca[_0x43a8('0x31')]=_[_0x43a8('0x35')](_0x3f69ca[_0x43a8('0x31')],{'$or':_['map'](_0x128832,function(_0x26cb13){if(_0x26cb13[_0x43a8('0x36')]!==_0x43a8('0x37')){var _0x39481e={};_0x39481e[_0x26cb13[_0x43a8('0x21')]]={'$like':'%'+_0x50dd80[_0x43a8('0x29')][_0x43a8('0x34')]+'%'};return _0x39481e;}})});}_0x3f69ca=_[_0x43a8('0x35')]({},_0x3f69ca,_0x50dd80[_0x43a8('0x38')]);var _0x1d0d17={'where':_0x3f69ca['where']};return db['Sound'][_0x43a8('0x19')](_0x1d0d17)[_0x43a8('0x1e')](function(_0x2fe8e4){_0xff58a3[_0x43a8('0x19')]=_0x2fe8e4;if(_0x50dd80[_0x43a8('0x29')][_0x43a8('0x39')]){_0x3f69ca[_0x43a8('0x3a')]=[{'all':!![]}];}return db[_0x43a8('0x24')]['findAll'](_0x3f69ca);})['then'](function(_0x4774a5){_0xff58a3[_0x43a8('0x3b')]=_0x4774a5;return _0xff58a3;})[_0x43a8('0x1e')](respondWithFilteredResult(_0x5c8d47,_0x3f69ca))['catch'](handleError(_0x5c8d47,null));};exports[_0x43a8('0x3c')]=function(_0x405ae1,_0x358533){var _0x3bbade={'raw':!![],'where':{'id':_0x405ae1[_0x43a8('0x3d')]['id']}},_0x2c7556={};_0x2c7556[_0x43a8('0x28')]=_[_0x43a8('0x3e')](db['Sound'][_0x43a8('0x25')]);_0x2c7556[_0x43a8('0x29')]=_[_0x43a8('0x3e')](_0x405ae1[_0x43a8('0x29')]);_0x2c7556[_0x43a8('0x32')]=_[_0x43a8('0x2a')](_0x2c7556[_0x43a8('0x28')],_0x2c7556['query']);_0x3bbade[_0x43a8('0x2b')]=_['intersection'](_0x2c7556['model'],qs[_0x43a8('0x2c')](_0x405ae1['query'][_0x43a8('0x2c')]));_0x3bbade[_0x43a8('0x2b')]=_0x3bbade['attributes'][_0x43a8('0x3f')]?_0x3bbade['attributes']:_0x2c7556[_0x43a8('0x28')];if(_0x405ae1[_0x43a8('0x29')][_0x43a8('0x39')]){_0x3bbade[_0x43a8('0x3a')]=[{'all':!![]}];}_0x3bbade=_[_0x43a8('0x35')]({},_0x3bbade,_0x405ae1[_0x43a8('0x38')]);return db[_0x43a8('0x24')][_0x43a8('0x40')](_0x3bbade)[_0x43a8('0x1e')](handleEntityNotFound(_0x358533,null))[_0x43a8('0x1e')](respondWithResult(_0x358533,null))['catch'](handleError(_0x358533,null));};exports[_0x43a8('0x41')]=function(_0x42fd5a,_0x46b598,_0x219c16){return db[_0x43a8('0x24')]['find']({'where':{'id':_0x42fd5a['params']['id']},'attributes':[_0x43a8('0x21'),_0x43a8('0x42'),'converted_format'],'raw':!![]})[_0x43a8('0x1e')](handleEntityNotFound(_0x46b598,null))[_0x43a8('0x1e')](function(_0x5786ab){if(_0x5786ab){if(!fs[_0x43a8('0x43')](path[_0x43a8('0x44')](config['root'],_0x43a8('0x45'),_0x5786ab['save_name']+'.'+_0x5786ab[_0x43a8('0x46')]))){throw new db['Sequelize'][(_0x43a8('0x47'))](_0x43a8('0x48'));}return _0x46b598[_0x43a8('0x41')](path[_0x43a8('0x44')](config['root'],_0x43a8('0x45'),util[_0x43a8('0x49')]('%s.%s',_0x5786ab[_0x43a8('0x42')],_0x5786ab[_0x43a8('0x46')])),util[_0x43a8('0x49')](_0x43a8('0x4a'),_0x5786ab[_0x43a8('0x21')],_0x5786ab[_0x43a8('0x46')]));}return null;})['catch'](handleError(_0x46b598,null));};exports[_0x43a8('0x4b')]=function(_0x2abec8,_0x1616e9,_0x1cbca0){var _0x38ae00={'name':path[_0x43a8('0x4c')](_0x2abec8[_0x43a8('0x4d')][_0x43a8('0x4e')],path['extname'](_0x2abec8[_0x43a8('0x4d')][_0x43a8('0x4e')])),'save_name':path['basename'](_0x2abec8['file'][_0x43a8('0x4f')],path['extname'](_0x2abec8[_0x43a8('0x4d')][_0x43a8('0x4f')])),'original_format':path[_0x43a8('0x50')](_0x2abec8[_0x43a8('0x4d')][_0x43a8('0x4e')])[_0x43a8('0x51')](0x1),'converted_format':_0x43a8('0x52')};var _0x25b89d=path['join'](config[_0x43a8('0x53')],_0x43a8('0x54'),_0x2abec8['file'][_0x43a8('0x4f')]);var _0x245b68=path[_0x43a8('0x44')](config[_0x43a8('0x53')],_0x43a8('0x45'),util[_0x43a8('0x49')](_0x43a8('0x4a'),path[_0x43a8('0x4c')](_0x2abec8[_0x43a8('0x4d')][_0x43a8('0x4f')],path[_0x43a8('0x50')](_0x2abec8[_0x43a8('0x4d')][_0x43a8('0x4f')])),_0x38ae00['converted_format']));logger[_0x43a8('0x55')]('Sound\x20upload\x20filepath:\x20%s',_0x25b89d);logger[_0x43a8('0x55')](_0x43a8('0x56'),_0x245b68);try{fs[_0x43a8('0x57')](_0x25b89d,parseInt('0777',0x8));var _0x4fd6be=sox[_0x43a8('0x58')](_0x25b89d,_0x245b68,{'sampleRate':0x1f40,'format':_0x43a8('0x52'),'channelCount':0x1,'bitRate':0xc0*0x400,'compressionQuality':0x5});_0x4fd6be['on'](_0x43a8('0x59'),function(_0xe0f8d7){fs[_0x43a8('0x5a')](_0x25b89d);_0x1616e9['status'](0x1f4)[_0x43a8('0x22')](_0xe0f8d7);});_0x4fd6be['on'](_0x43a8('0x5b'),function(_0x59dcaa){_0x38ae00[_0x43a8('0x5c')]=isNaN(_0x59dcaa['duration'])?null:_0x59dcaa[_0x43a8('0x5d')]*0x3e8;_0x38ae00[_0x43a8('0x5e')]=isNaN(_0x59dcaa[_0x43a8('0x5f')])?null:_0x59dcaa['sampleCount'];_0x38ae00[_0x43a8('0x60')]=isNaN(_0x59dcaa[_0x43a8('0x61')])?null:_0x59dcaa['channelCount'];_0x38ae00[_0x43a8('0x62')]=isNaN(_0x59dcaa[_0x43a8('0x63')])?null:_0x59dcaa['bitRate'];_0x38ae00[_0x43a8('0x64')]=isNaN(_0x59dcaa['sampleRate'])?null:_0x59dcaa[_0x43a8('0x65')];});_0x4fd6be['on'](_0x43a8('0x66'),function(_0x2c972f){_0x38ae00[_0x43a8('0x67')]=isNaN(_0x2c972f['duration'])?null:_0x2c972f[_0x43a8('0x5d')]*0x3e8;_0x38ae00[_0x43a8('0x68')]=isNaN(_0x2c972f['sampleCount'])?null:_0x2c972f[_0x43a8('0x5f')];_0x38ae00[_0x43a8('0x69')]=isNaN(_0x2c972f[_0x43a8('0x61')])?null:_0x2c972f[_0x43a8('0x61')];_0x38ae00[_0x43a8('0x6a')]=isNaN(_0x2c972f['bitRate'])?null:_0x2c972f[_0x43a8('0x63')];_0x38ae00[_0x43a8('0x6b')]=isNaN(_0x2c972f['sampleRate'])?null:_0x2c972f['sampleRate'];});_0x4fd6be['on'](_0x43a8('0x15'),function(){fs[_0x43a8('0x57')](_0x245b68,parseInt('0777',0x8));return db[_0x43a8('0x24')][_0x43a8('0x4b')](_0x38ae00)[_0x43a8('0x1e')](function(_0x500583){var _0x5e28cf={'role':_0x2abec8[_0x43a8('0x6c')][_0x43a8('0x6d')],'userProfileId':_0x2abec8[_0x43a8('0x6c')][_0x43a8('0x6e')]};if(!_0x5e28cf)throw new Error(_0x43a8('0x6f'));if(_0x5e28cf[_0x43a8('0x6d')]===_0x43a8('0x70')){var _0x1458b3=_0x500583[_0x43a8('0x71')]({'plain':!![]});return db['UserProfileSection'][_0x43a8('0x40')]({'where':{'name':_0x43a8('0x72'),'userProfileId':_0x5e28cf[_0x43a8('0x6e')]},'raw':!![]})['then'](function(_0x6d7363){if(_0x6d7363&&_0x6d7363[_0x43a8('0x73')]===0x0){return db[_0x43a8('0x74')][_0x43a8('0x4b')]({'name':_0x1458b3[_0x43a8('0x21')],'resourceId':_0x1458b3['id'],'type':_0x6d7363[_0x43a8('0x21')],'sectionId':_0x6d7363['id']},{})[_0x43a8('0x1e')](function(){return _0x500583;});}else{return _0x500583;}})[_0x43a8('0x75')](function(_0x2be708){logger[_0x43a8('0x59')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x2be708);throw _0x2be708;});}return _0x500583;})[_0x43a8('0x1e')](respondWithResult(_0x1616e9,null))[_0x43a8('0x75')](handleError(_0x1616e9,null));});_0x4fd6be[_0x43a8('0x76')]();}catch(_0x317a16){_0x1616e9[_0x43a8('0x14')](0x1f4)[_0x43a8('0x22')](_0x317a16);}};exports[_0x43a8('0x77')]=function(_0x59da1a,_0x172129,_0xd4eb65){return db[_0x43a8('0x24')]['find']({'where':{'id':_0x59da1a['params']['id']}})[_0x43a8('0x1e')](handleEntityNotFound(_0x172129,null))[_0x43a8('0x1e')](saveUpdates(_['pick'](_0x59da1a[_0x43a8('0x6c')],[_0x43a8('0x21'),'description']),null))[_0x43a8('0x1e')](respondWithResult(_0x172129,null))[_0x43a8('0x75')](handleError(_0x172129,null));};exports[_0x43a8('0x78')]=function(_0x951170,_0x53a732,_0xd63c59){return db[_0x43a8('0x24')][_0x43a8('0x40')]({'where':{'id':_0x951170[_0x43a8('0x3d')]['id']}})[_0x43a8('0x1e')](function(_0x53812e){if(_0x53812e){return _0x53812e[_0x43a8('0x1f')]();}})[_0x43a8('0x1e')](function(_0x440a63){var _0x95b978=path['join'](config[_0x43a8('0x53')],_0x43a8('0x54'),util[_0x43a8('0x49')](_0x43a8('0x4a'),_0x440a63[_0x43a8('0x42')],_0x440a63[_0x43a8('0x79')]));var _0x7c9ae=path['join'](config[_0x43a8('0x53')],'server/files/sounds/converted',util['format'](_0x43a8('0x4a'),_0x440a63['save_name'],_0x440a63[_0x43a8('0x46')]));fs[_0x43a8('0x5a')](_0x95b978);fs[_0x43a8('0x5a')](_0x7c9ae);return _0x440a63;})[_0x43a8('0x1e')](function(_0x3ba9c5){if(_0x3ba9c5){return _0x53a732[_0x43a8('0x14')](0xcc)[_0x43a8('0x15')]();}})['then'](handleEntityNotFound(_0x53a732,null))[_0x43a8('0x75')](handleError(_0x53a732,null));};