Built motion from commit (unavailable).|2.5.2
[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 _0x2019=['save_name','%s.%s','basename','file','originalname','extname','filename','substring','server/files/sounds/converted','info','Sound\x20upload\x20filepath:\x20%s','Sound\x20upload\x20destination:\x20%s','chmodSync','0777','transcode','wav','unlinkSync','src','duration','original_sampleCount','original_channelCount','channelCount','bitRate','sampleRate','sampleCount','converted_channelCount','converted_bitRate','converted_sampleRate','body','role','userProfileId','Unable\x20to\x20retrieve\x20the\x20current\x20user','get','UserProfileSection','autoAssociation','create','delete','server/files/sounds/original','original_format','html-pdf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','to-csv','ejs','lodash','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','json','count','limit','set','Content-Range','apply','reject','update','then','destroy','Sounds','UserProfileResource','error','stack','name','send','map','Sound','fieldName','type','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','offset','order','sort','pick','where','merge','VIRTUAL','filter','includeAll','include','findAll','rows','catch','params','rawAttributes','options','find','download','converted_format','existsSync','join','root','Sequelize','ValidationError','format'];(function(_0x42703d,_0x4916ce){var _0x24e08d=function(_0xcc04cb){while(--_0xcc04cb){_0x42703d['push'](_0x42703d['shift']());}};_0x24e08d(++_0x4916ce);}(_0x2019,0x119));var _0x9201=function(_0x8a969d,_0x339d9f){_0x8a969d=_0x8a969d-0x0;var _0x1d8dc7=_0x2019[_0x8a969d];return _0x1d8dc7;};'use strict';var pdf=require(_0x9201('0x0'));var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x9201('0x1'));var jsonpatch=require(_0x9201('0x2'));var rp=require(_0x9201('0x3'));var moment=require(_0x9201('0x4'));var BPromise=require(_0x9201('0x5'));var Mustache=require(_0x9201('0x6'));var util=require(_0x9201('0x7'));var path=require(_0x9201('0x8'));var sox=require('sox');var csv=require(_0x9201('0x9'));var ejs=require(_0x9201('0xa'));var fs=require('fs');var _=require(_0x9201('0xb'));var squel=require('squel');var crypto=require(_0x9201('0xc'));var jsforce=require(_0x9201('0xd'));var deskjs=require(_0x9201('0xe'));var toCsv=require('to-csv');var querystring=require(_0x9201('0xf'));var Papa=require(_0x9201('0x10'));var Redis=require('ioredis');var authService=require(_0x9201('0x11'));var qs=require('../../components/parsers/qs');var as=require(_0x9201('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x9201('0x13'))(_0x9201('0x14'));var utils=require(_0x9201('0x15'));var config=require(_0x9201('0x16'));var db=require(_0x9201('0x17'))['db'];function respondWithStatusCode(_0x217984,_0xcf923b){_0xcf923b=_0xcf923b||0xcc;return function(_0x46d92a){if(_0x46d92a){return _0x217984[_0x9201('0x18')](_0xcf923b);}return _0x217984[_0x9201('0x19')](_0xcf923b)[_0x9201('0x1a')]();};}function respondWithResult(_0x4e74e1,_0xbf3a5e){_0xbf3a5e=_0xbf3a5e||0xc8;return function(_0x2a12ca){if(_0x2a12ca){return _0x4e74e1[_0x9201('0x19')](_0xbf3a5e)[_0x9201('0x1b')](_0x2a12ca);}};}function respondWithFilteredResult(_0x290d56,_0x508b3d){return function(_0x5c6c6d){if(_0x5c6c6d){var _0x66c17f=_0x5c6c6d[_0x9201('0x1c')],_0x24c219=_0x508b3d['offset'],_0x4549da=_0x508b3d['offset']+_0x508b3d[_0x9201('0x1d')],_0x4cb1d9;if(_0x4549da>=_0x66c17f){_0x4549da=_0x66c17f;_0x4cb1d9=0xc8;}else{_0x4cb1d9=0xce;}_0x290d56[_0x9201('0x19')](_0x4cb1d9);return _0x290d56[_0x9201('0x1e')](_0x9201('0x1f'),_0x24c219+'-'+_0x4549da+'/'+_0x66c17f)['json'](_0x5c6c6d);}return null;};}function patchUpdates(_0x3281f1){return function(_0x1a9d80){try{jsonpatch[_0x9201('0x20')](_0x1a9d80,_0x3281f1,!![]);}catch(_0x2c978d){return BPromise[_0x9201('0x21')](_0x2c978d);}return _0x1a9d80['save']();};}function saveUpdates(_0x2133e3,_0x2a27c8){return function(_0xc1b8ee){if(_0xc1b8ee){return _0xc1b8ee[_0x9201('0x22')](_0x2133e3)[_0x9201('0x23')](function(_0xec7dc7){return _0xec7dc7;});}return null;};}function removeEntity(_0x2a3b12,_0x3ba45c){return function(_0x27fccc){if(_0x27fccc){return _0x27fccc[_0x9201('0x24')]()[_0x9201('0x23')](function(){var _0x3c25c3=_0x27fccc['get']({'plain':!![]});var _0x136b61=_0x9201('0x25');return db[_0x9201('0x26')][_0x9201('0x24')]({'where':{'type':_0x136b61,'resourceId':_0x3c25c3['id']}})[_0x9201('0x23')](function(){return _0x27fccc;});})[_0x9201('0x23')](function(){_0x2a3b12[_0x9201('0x19')](0xcc)['end']();});}};}function handleEntityNotFound(_0x397252,_0x46189b){return function(_0x427f97){if(!_0x427f97){_0x397252[_0x9201('0x18')](0x194);}return _0x427f97;};}function handleError(_0x1d0cce,_0x36dcb1){_0x36dcb1=_0x36dcb1||0x1f4;return function(_0x37bf1e){logger[_0x9201('0x27')](_0x37bf1e[_0x9201('0x28')]);if(_0x37bf1e[_0x9201('0x29')]){delete _0x37bf1e[_0x9201('0x29')];}_0x1d0cce[_0x9201('0x19')](_0x36dcb1)[_0x9201('0x2a')](_0x37bf1e);};}exports['index']=function(_0x2a8d75,_0x353b37){var _0x8ae2a5={},_0x54d014={},_0x53e02c={'count':0x0,'rows':[]};var _0x123fc8=_[_0x9201('0x2b')](db[_0x9201('0x2c')]['rawAttributes'],function(_0x35b0a0){return{'name':_0x35b0a0[_0x9201('0x2d')],'type':_0x35b0a0[_0x9201('0x2e')]['key']};});_0x54d014[_0x9201('0x2f')]=_[_0x9201('0x2b')](_0x123fc8,_0x9201('0x29'));_0x54d014[_0x9201('0x30')]=_[_0x9201('0x31')](_0x2a8d75[_0x9201('0x30')]);_0x54d014[_0x9201('0x32')]=_[_0x9201('0x33')](_0x54d014[_0x9201('0x2f')],_0x54d014['query']);_0x8ae2a5[_0x9201('0x34')]=_[_0x9201('0x33')](_0x54d014[_0x9201('0x2f')],qs['fields'](_0x2a8d75[_0x9201('0x30')][_0x9201('0x35')]));_0x8ae2a5['attributes']=_0x8ae2a5[_0x9201('0x34')][_0x9201('0x36')]?_0x8ae2a5[_0x9201('0x34')]:_0x54d014[_0x9201('0x2f')];if(!_0x2a8d75['query'][_0x9201('0x37')](_0x9201('0x38'))){_0x8ae2a5[_0x9201('0x1d')]=qs[_0x9201('0x1d')](_0x2a8d75[_0x9201('0x30')][_0x9201('0x1d')]);_0x8ae2a5['offset']=qs[_0x9201('0x39')](_0x2a8d75[_0x9201('0x30')][_0x9201('0x39')]);}_0x8ae2a5[_0x9201('0x3a')]=qs[_0x9201('0x3b')](_0x2a8d75[_0x9201('0x30')]['sort']);_0x8ae2a5['where']=qs[_0x9201('0x32')](_[_0x9201('0x3c')](_0x2a8d75[_0x9201('0x30')],_0x54d014[_0x9201('0x32')]),_0x123fc8);if(_0x2a8d75[_0x9201('0x30')]['filter']){_0x8ae2a5[_0x9201('0x3d')]=_[_0x9201('0x3e')](_0x8ae2a5[_0x9201('0x3d')],{'$or':_[_0x9201('0x2b')](_0x123fc8,function(_0x4e13af){if(_0x4e13af[_0x9201('0x2e')]!==_0x9201('0x3f')){var _0x2f3906={};_0x2f3906[_0x4e13af[_0x9201('0x29')]]={'$like':'%'+_0x2a8d75[_0x9201('0x30')][_0x9201('0x40')]+'%'};return _0x2f3906;}})});}_0x8ae2a5=_['merge']({},_0x8ae2a5,_0x2a8d75['options']);var _0xec251={'where':_0x8ae2a5[_0x9201('0x3d')]};return db[_0x9201('0x2c')][_0x9201('0x1c')](_0xec251)[_0x9201('0x23')](function(_0x33774c){_0x53e02c['count']=_0x33774c;if(_0x2a8d75[_0x9201('0x30')][_0x9201('0x41')]){_0x8ae2a5[_0x9201('0x42')]=[{'all':!![]}];}return db[_0x9201('0x2c')][_0x9201('0x43')](_0x8ae2a5);})[_0x9201('0x23')](function(_0x33133e){_0x53e02c[_0x9201('0x44')]=_0x33133e;return _0x53e02c;})[_0x9201('0x23')](respondWithFilteredResult(_0x353b37,_0x8ae2a5))[_0x9201('0x45')](handleError(_0x353b37,null));};exports['show']=function(_0xe7e537,_0x5d44c2){var _0xf3c36d={'raw':!![],'where':{'id':_0xe7e537[_0x9201('0x46')]['id']}},_0x3a1723={};_0x3a1723[_0x9201('0x2f')]=_[_0x9201('0x31')](db[_0x9201('0x2c')][_0x9201('0x47')]);_0x3a1723[_0x9201('0x30')]=_[_0x9201('0x31')](_0xe7e537[_0x9201('0x30')]);_0x3a1723['filters']=_['intersection'](_0x3a1723[_0x9201('0x2f')],_0x3a1723[_0x9201('0x30')]);_0xf3c36d[_0x9201('0x34')]=_[_0x9201('0x33')](_0x3a1723[_0x9201('0x2f')],qs[_0x9201('0x35')](_0xe7e537['query'][_0x9201('0x35')]));_0xf3c36d['attributes']=_0xf3c36d[_0x9201('0x34')][_0x9201('0x36')]?_0xf3c36d[_0x9201('0x34')]:_0x3a1723[_0x9201('0x2f')];if(_0xe7e537['query'][_0x9201('0x41')]){_0xf3c36d[_0x9201('0x42')]=[{'all':!![]}];}_0xf3c36d=_['merge']({},_0xf3c36d,_0xe7e537[_0x9201('0x48')]);return db[_0x9201('0x2c')][_0x9201('0x49')](_0xf3c36d)['then'](handleEntityNotFound(_0x5d44c2,null))['then'](respondWithResult(_0x5d44c2,null))[_0x9201('0x45')](handleError(_0x5d44c2,null));};exports[_0x9201('0x4a')]=function(_0x29973d,_0x4dc244,_0x22c88f){return db[_0x9201('0x2c')][_0x9201('0x49')]({'where':{'id':_0x29973d[_0x9201('0x46')]['id']},'attributes':[_0x9201('0x29'),'save_name',_0x9201('0x4b')],'raw':!![]})[_0x9201('0x23')](handleEntityNotFound(_0x4dc244,null))[_0x9201('0x23')](function(_0xdfda8){if(_0xdfda8){if(!fs[_0x9201('0x4c')](path[_0x9201('0x4d')](config[_0x9201('0x4e')],'server/files/sounds/converted',_0xdfda8['save_name']+'.'+_0xdfda8[_0x9201('0x4b')]))){throw new db[(_0x9201('0x4f'))][(_0x9201('0x50'))]('Sound\x20not\x20found');}return _0x4dc244[_0x9201('0x4a')](path[_0x9201('0x4d')](config[_0x9201('0x4e')],'server/files/sounds/converted',util[_0x9201('0x51')]('%s.%s',_0xdfda8[_0x9201('0x52')],_0xdfda8[_0x9201('0x4b')])),util[_0x9201('0x51')](_0x9201('0x53'),_0xdfda8[_0x9201('0x29')],_0xdfda8[_0x9201('0x4b')]));}return null;})['catch'](handleError(_0x4dc244,null));};exports['create']=function(_0x59f054,_0x1fde8c,_0x582639){var _0x5ac100={'name':path[_0x9201('0x54')](_0x59f054[_0x9201('0x55')][_0x9201('0x56')],path[_0x9201('0x57')](_0x59f054[_0x9201('0x55')][_0x9201('0x56')])),'save_name':path[_0x9201('0x54')](_0x59f054[_0x9201('0x55')]['filename'],path[_0x9201('0x57')](_0x59f054[_0x9201('0x55')][_0x9201('0x58')])),'original_format':path[_0x9201('0x57')](_0x59f054['file'][_0x9201('0x56')])[_0x9201('0x59')](0x1),'converted_format':'wav'};var _0x47931b=path[_0x9201('0x4d')](config[_0x9201('0x4e')],'server/files/sounds/original',_0x59f054['file']['filename']);var _0x2e26d6=path[_0x9201('0x4d')](config[_0x9201('0x4e')],_0x9201('0x5a'),util[_0x9201('0x51')](_0x9201('0x53'),path[_0x9201('0x54')](_0x59f054[_0x9201('0x55')]['filename'],path[_0x9201('0x57')](_0x59f054[_0x9201('0x55')][_0x9201('0x58')])),_0x5ac100[_0x9201('0x4b')]));logger[_0x9201('0x5b')](_0x9201('0x5c'),_0x47931b);logger[_0x9201('0x5b')](_0x9201('0x5d'),_0x2e26d6);try{fs[_0x9201('0x5e')](_0x47931b,parseInt(_0x9201('0x5f'),0x8));var _0x5ad34c=sox[_0x9201('0x60')](_0x47931b,_0x2e26d6,{'sampleRate':0x1f40,'format':_0x9201('0x61'),'channelCount':0x1,'bitRate':0xc0*0x400,'compressionQuality':0x5});_0x5ad34c['on']('error',function(_0xe3ba1b){fs[_0x9201('0x62')](_0x47931b);_0x1fde8c[_0x9201('0x19')](0x1f4)[_0x9201('0x2a')](_0xe3ba1b);});_0x5ad34c['on'](_0x9201('0x63'),function(_0x5094f3){_0x5ac100['original_duration']=isNaN(_0x5094f3[_0x9201('0x64')])?null:_0x5094f3[_0x9201('0x64')]*0x3e8;_0x5ac100[_0x9201('0x65')]=isNaN(_0x5094f3['sampleCount'])?null:_0x5094f3['sampleCount'];_0x5ac100[_0x9201('0x66')]=isNaN(_0x5094f3[_0x9201('0x67')])?null:_0x5094f3[_0x9201('0x67')];_0x5ac100['original_bitRate']=isNaN(_0x5094f3['bitRate'])?null:_0x5094f3[_0x9201('0x68')];_0x5ac100['original_sampleRate']=isNaN(_0x5094f3[_0x9201('0x69')])?null:_0x5094f3[_0x9201('0x69')];});_0x5ad34c['on']('dest',function(_0x19e5f3){_0x5ac100['converted_duration']=isNaN(_0x19e5f3[_0x9201('0x64')])?null:_0x19e5f3[_0x9201('0x64')]*0x3e8;_0x5ac100['converted_sampleCount']=isNaN(_0x19e5f3[_0x9201('0x6a')])?null:_0x19e5f3[_0x9201('0x6a')];_0x5ac100[_0x9201('0x6b')]=isNaN(_0x19e5f3[_0x9201('0x67')])?null:_0x19e5f3[_0x9201('0x67')];_0x5ac100[_0x9201('0x6c')]=isNaN(_0x19e5f3[_0x9201('0x68')])?null:_0x19e5f3[_0x9201('0x68')];_0x5ac100[_0x9201('0x6d')]=isNaN(_0x19e5f3[_0x9201('0x69')])?null:_0x19e5f3[_0x9201('0x69')];});_0x5ad34c['on'](_0x9201('0x1a'),function(){fs[_0x9201('0x5e')](_0x2e26d6,parseInt('0777',0x8));return db['Sound']['create'](_0x5ac100)[_0x9201('0x23')](function(_0x24891b){var _0x5f23b3={'role':_0x59f054[_0x9201('0x6e')][_0x9201('0x6f')],'userProfileId':_0x59f054['body'][_0x9201('0x70')]};if(!_0x5f23b3)throw new Error(_0x9201('0x71'));if(_0x5f23b3[_0x9201('0x6f')]==='user'){var _0x59b77a=_0x24891b[_0x9201('0x72')]({'plain':!![]});return db[_0x9201('0x73')][_0x9201('0x49')]({'where':{'name':'Sounds','userProfileId':_0x5f23b3[_0x9201('0x70')]},'raw':!![]})[_0x9201('0x23')](function(_0x2131b1){if(_0x2131b1&&_0x2131b1[_0x9201('0x74')]===0x0){return db[_0x9201('0x26')][_0x9201('0x75')]({'name':_0x59b77a[_0x9201('0x29')],'resourceId':_0x59b77a['id'],'type':_0x2131b1[_0x9201('0x29')],'sectionId':_0x2131b1['id']},{})[_0x9201('0x23')](function(){return _0x24891b;});}else{return _0x24891b;}})[_0x9201('0x45')](function(_0x1fb8e1){logger[_0x9201('0x27')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x1fb8e1);throw _0x1fb8e1;});}return _0x24891b;})[_0x9201('0x23')](respondWithResult(_0x1fde8c,null))[_0x9201('0x45')](handleError(_0x1fde8c,null));});_0x5ad34c['start']();}catch(_0x33ef68){_0x1fde8c['status'](0x1f4)['send'](_0x33ef68);}};exports[_0x9201('0x22')]=function(_0x4724ca,_0x24af6e,_0x57da74){return db[_0x9201('0x2c')][_0x9201('0x49')]({'where':{'id':_0x4724ca['params']['id']}})[_0x9201('0x23')](handleEntityNotFound(_0x24af6e,null))[_0x9201('0x23')](saveUpdates(_[_0x9201('0x3c')](_0x4724ca[_0x9201('0x6e')],[_0x9201('0x29'),'description']),null))[_0x9201('0x23')](respondWithResult(_0x24af6e,null))[_0x9201('0x45')](handleError(_0x24af6e,null));};exports[_0x9201('0x76')]=function(_0x4d6389,_0x2cf4e4,_0x27aa52){return db[_0x9201('0x2c')][_0x9201('0x49')]({'where':{'id':_0x4d6389['params']['id']}})[_0x9201('0x23')](function(_0x2a55af){if(_0x2a55af){return _0x2a55af[_0x9201('0x24')]();}})['then'](function(_0x2e50d8){var _0x1ef80d=path[_0x9201('0x4d')](config[_0x9201('0x4e')],_0x9201('0x77'),util[_0x9201('0x51')]('%s.%s',_0x2e50d8[_0x9201('0x52')],_0x2e50d8[_0x9201('0x78')]));var _0x15d6aa=path['join'](config[_0x9201('0x4e')],_0x9201('0x5a'),util[_0x9201('0x51')](_0x9201('0x53'),_0x2e50d8[_0x9201('0x52')],_0x2e50d8[_0x9201('0x4b')]));fs[_0x9201('0x62')](_0x1ef80d);fs[_0x9201('0x62')](_0x15d6aa);return _0x2e50d8;})[_0x9201('0x23')](function(_0x25ad71){if(_0x25ad71){return _0x2cf4e4['status'](0xcc)[_0x9201('0x1a')]();}})[_0x9201('0x23')](handleEntityNotFound(_0x2cf4e4,null))[_0x9201('0x45')](handleError(_0x2cf4e4,null));};