Built motion from commit (unavailable).|2.4.18
[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 _0x482e=['html-pdf','eml-format','rimraf','fast-json-patch','moment','mustache','util','path','sox','ejs','lodash','squel','crypto','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','json','offset','limit','set','Content-Range','save','update','destroy','then','get','Sounds','UserProfileResource','end','error','stack','name','index','map','Sound','rawAttributes','fieldName','type','model','query','keys','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','filters','pick','filter','merge','VIRTUAL','count','includeAll','findAll','rows','catch','params','include','options','find','download','save_name','converted_format','join','root','server/files/sounds/converted','ValidationError','Sound\x20not\x20found','format','%s.%s','basename','originalname','file','extname','filename','substring','wav','server/files/sounds/original','Sound\x20upload\x20filepath:\x20%s','Sound\x20upload\x20destination:\x20%s','chmodSync','0777','transcode','unlinkSync','send','src','duration','original_sampleCount','sampleCount','original_channelCount','channelCount','original_bitRate','bitRate','original_sampleRate','sampleRate','dest','converted_duration','converted_sampleCount','converted_bitRate','converted_sampleRate','role','body','userProfileId','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','UserProfileSection','autoAssociation','create','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','start','delete'];(function(_0x2479dd,_0x252c1b){var _0x367601=function(_0x1ad36c){while(--_0x1ad36c){_0x2479dd['push'](_0x2479dd['shift']());}};_0x367601(++_0x252c1b);}(_0x482e,0x1f4));var _0xe482=function(_0x2b9b7f,_0x4d47df){_0x2b9b7f=_0x2b9b7f-0x0;var _0x4ed19a=_0x482e[_0x2b9b7f];return _0x4ed19a;};'use strict';var pdf=require(_0xe482('0x0'));var emlformat=require(_0xe482('0x1'));var rimraf=require(_0xe482('0x2'));var zipdir=require('zip-dir');var jsonpatch=require(_0xe482('0x3'));var rp=require('request-promise');var moment=require(_0xe482('0x4'));var BPromise=require('bluebird');var Mustache=require(_0xe482('0x5'));var util=require(_0xe482('0x6'));var path=require(_0xe482('0x7'));var sox=require(_0xe482('0x8'));var csv=require('to-csv');var ejs=require(_0xe482('0x9'));var fs=require('fs');var _=require(_0xe482('0xa'));var squel=require(_0xe482('0xb'));var crypto=require(_0xe482('0xc'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0xe482('0xd'));var querystring=require(_0xe482('0xe'));var Papa=require(_0xe482('0xf'));var Redis=require(_0xe482('0x10'));var authService=require(_0xe482('0x11'));var qs=require(_0xe482('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xe482('0x13'));var logger=require(_0xe482('0x14'))(_0xe482('0x15'));var utils=require(_0xe482('0x16'));var config=require(_0xe482('0x17'));var db=require(_0xe482('0x18'))['db'];function respondWithStatusCode(_0x3c9fee,_0x33b18a){_0x33b18a=_0x33b18a||0xcc;return function(_0xd948c9){if(_0xd948c9){return _0x3c9fee[_0xe482('0x19')](_0x33b18a);}return _0x3c9fee[_0xe482('0x1a')](_0x33b18a)['end']();};}function respondWithResult(_0xf7856d,_0x61f5e3){_0x61f5e3=_0x61f5e3||0xc8;return function(_0x32f11a){if(_0x32f11a){return _0xf7856d[_0xe482('0x1a')](_0x61f5e3)[_0xe482('0x1b')](_0x32f11a);}};}function respondWithFilteredResult(_0x2487a7,_0xcc9bff){return function(_0x22d0f7){if(_0x22d0f7){var _0x13d705=_0x22d0f7['count'],_0x58d0c2=_0xcc9bff[_0xe482('0x1c')],_0x3f0a16=_0xcc9bff[_0xe482('0x1c')]+_0xcc9bff[_0xe482('0x1d')],_0x43e6be;if(_0x3f0a16>=_0x13d705){_0x3f0a16=_0x13d705;_0x43e6be=0xc8;}else{_0x43e6be=0xce;}_0x2487a7[_0xe482('0x1a')](_0x43e6be);return _0x2487a7[_0xe482('0x1e')](_0xe482('0x1f'),_0x58d0c2+'-'+_0x3f0a16+'/'+_0x13d705)['json'](_0x22d0f7);}return null;};}function patchUpdates(_0x3b76f0){return function(_0x10aa79){try{jsonpatch['apply'](_0x10aa79,_0x3b76f0,!![]);}catch(_0xed63e){return BPromise['reject'](_0xed63e);}return _0x10aa79[_0xe482('0x20')]();};}function saveUpdates(_0x41347d,_0x5f4629){return function(_0x57536a){if(_0x57536a){return _0x57536a[_0xe482('0x21')](_0x41347d)['then'](function(_0x1504d6){return _0x1504d6;});}return null;};}function removeEntity(_0x299f59,_0x4a7b03){return function(_0x4a4e36){if(_0x4a4e36){return _0x4a4e36[_0xe482('0x22')]()[_0xe482('0x23')](function(){var _0x4e74f0=_0x4a4e36[_0xe482('0x24')]({'plain':!![]});var _0x3b706b=_0xe482('0x25');return db[_0xe482('0x26')][_0xe482('0x22')]({'where':{'type':_0x3b706b,'resourceId':_0x4e74f0['id']}})[_0xe482('0x23')](function(){return _0x4a4e36;});})[_0xe482('0x23')](function(){_0x299f59[_0xe482('0x1a')](0xcc)[_0xe482('0x27')]();});}};}function handleEntityNotFound(_0x316763,_0x300508){return function(_0x5f4042){if(!_0x5f4042){_0x316763['sendStatus'](0x194);}return _0x5f4042;};}function handleError(_0x46bd7d,_0x50d296){_0x50d296=_0x50d296||0x1f4;return function(_0x36f37d){logger[_0xe482('0x28')](_0x36f37d[_0xe482('0x29')]);if(_0x36f37d['name']){delete _0x36f37d[_0xe482('0x2a')];}_0x46bd7d[_0xe482('0x1a')](_0x50d296)['send'](_0x36f37d);};}exports[_0xe482('0x2b')]=function(_0x11b0c6,_0x11e87c){var _0x542350={},_0x576cc6={},_0x3c2b83={'count':0x0,'rows':[]};var _0x1049dc=_[_0xe482('0x2c')](db[_0xe482('0x2d')][_0xe482('0x2e')],function(_0xf1889d){return{'name':_0xf1889d[_0xe482('0x2f')],'type':_0xf1889d[_0xe482('0x30')]['key']};});_0x576cc6[_0xe482('0x31')]=_[_0xe482('0x2c')](_0x1049dc,_0xe482('0x2a'));_0x576cc6[_0xe482('0x32')]=_[_0xe482('0x33')](_0x11b0c6[_0xe482('0x32')]);_0x576cc6['filters']=_[_0xe482('0x34')](_0x576cc6['model'],_0x576cc6['query']);_0x542350[_0xe482('0x35')]=_[_0xe482('0x34')](_0x576cc6[_0xe482('0x31')],qs[_0xe482('0x36')](_0x11b0c6[_0xe482('0x32')][_0xe482('0x36')]));_0x542350[_0xe482('0x35')]=_0x542350[_0xe482('0x35')][_0xe482('0x37')]?_0x542350[_0xe482('0x35')]:_0x576cc6[_0xe482('0x31')];if(!_0x11b0c6[_0xe482('0x32')][_0xe482('0x38')]('nolimit')){_0x542350[_0xe482('0x1d')]=qs[_0xe482('0x1d')](_0x11b0c6[_0xe482('0x32')][_0xe482('0x1d')]);_0x542350[_0xe482('0x1c')]=qs[_0xe482('0x1c')](_0x11b0c6[_0xe482('0x32')][_0xe482('0x1c')]);}_0x542350[_0xe482('0x39')]=qs[_0xe482('0x3a')](_0x11b0c6['query']['sort']);_0x542350[_0xe482('0x3b')]=qs[_0xe482('0x3c')](_[_0xe482('0x3d')](_0x11b0c6[_0xe482('0x32')],_0x576cc6[_0xe482('0x3c')]));if(_0x11b0c6[_0xe482('0x32')][_0xe482('0x3e')]){_0x542350[_0xe482('0x3b')]=_[_0xe482('0x3f')](_0x542350[_0xe482('0x3b')],{'$or':_['map'](_0x1049dc,function(_0x4f8a58){if(_0x4f8a58[_0xe482('0x30')]!==_0xe482('0x40')){var _0x9ad8c1={};_0x9ad8c1[_0x4f8a58['name']]={'$like':'%'+_0x11b0c6['query'][_0xe482('0x3e')]+'%'};return _0x9ad8c1;}})});}_0x542350=_[_0xe482('0x3f')]({},_0x542350,_0x11b0c6['options']);var _0x109aba={'where':_0x542350[_0xe482('0x3b')]};return db[_0xe482('0x2d')][_0xe482('0x41')](_0x109aba)[_0xe482('0x23')](function(_0x1cb6be){_0x3c2b83[_0xe482('0x41')]=_0x1cb6be;if(_0x11b0c6['query'][_0xe482('0x42')]){_0x542350['include']=[{'all':!![]}];}return db['Sound'][_0xe482('0x43')](_0x542350);})[_0xe482('0x23')](function(_0x4536ac){_0x3c2b83[_0xe482('0x44')]=_0x4536ac;return _0x3c2b83;})[_0xe482('0x23')](respondWithFilteredResult(_0x11e87c,_0x542350))[_0xe482('0x45')](handleError(_0x11e87c,null));};exports['show']=function(_0x20032c,_0x5b176b){var _0x1b5a50={'raw':!![],'where':{'id':_0x20032c[_0xe482('0x46')]['id']}},_0x4bb595={};_0x4bb595[_0xe482('0x31')]=_[_0xe482('0x33')](db[_0xe482('0x2d')][_0xe482('0x2e')]);_0x4bb595[_0xe482('0x32')]=_[_0xe482('0x33')](_0x20032c['query']);_0x4bb595['filters']=_[_0xe482('0x34')](_0x4bb595[_0xe482('0x31')],_0x4bb595[_0xe482('0x32')]);_0x1b5a50[_0xe482('0x35')]=_['intersection'](_0x4bb595[_0xe482('0x31')],qs[_0xe482('0x36')](_0x20032c[_0xe482('0x32')][_0xe482('0x36')]));_0x1b5a50[_0xe482('0x35')]=_0x1b5a50[_0xe482('0x35')][_0xe482('0x37')]?_0x1b5a50[_0xe482('0x35')]:_0x4bb595[_0xe482('0x31')];if(_0x20032c[_0xe482('0x32')]['includeAll']){_0x1b5a50[_0xe482('0x47')]=[{'all':!![]}];}_0x1b5a50=_[_0xe482('0x3f')]({},_0x1b5a50,_0x20032c[_0xe482('0x48')]);return db['Sound'][_0xe482('0x49')](_0x1b5a50)[_0xe482('0x23')](handleEntityNotFound(_0x5b176b,null))[_0xe482('0x23')](respondWithResult(_0x5b176b,null))[_0xe482('0x45')](handleError(_0x5b176b,null));};exports[_0xe482('0x4a')]=function(_0x511f5f,_0x4f5ee0,_0x22e751){return db[_0xe482('0x2d')][_0xe482('0x49')]({'where':{'id':_0x511f5f['params']['id']},'attributes':[_0xe482('0x2a'),_0xe482('0x4b'),_0xe482('0x4c')],'raw':!![]})['then'](handleEntityNotFound(_0x4f5ee0,null))[_0xe482('0x23')](function(_0x4319cf){if(_0x4319cf){if(!fs['existsSync'](path[_0xe482('0x4d')](config[_0xe482('0x4e')],_0xe482('0x4f'),_0x4319cf[_0xe482('0x4b')]+'.'+_0x4319cf[_0xe482('0x4c')]))){throw new db['Sequelize'][(_0xe482('0x50'))](_0xe482('0x51'));}return _0x4f5ee0[_0xe482('0x4a')](path[_0xe482('0x4d')](config[_0xe482('0x4e')],'server/files/sounds/converted',util[_0xe482('0x52')](_0xe482('0x53'),_0x4319cf[_0xe482('0x4b')],_0x4319cf[_0xe482('0x4c')])),util[_0xe482('0x52')](_0xe482('0x53'),_0x4319cf[_0xe482('0x2a')],_0x4319cf['converted_format']));}return null;})['catch'](handleError(_0x4f5ee0,null));};exports['create']=function(_0x57bc06,_0x2f903d,_0x2a64de){var _0x1a2de5={'name':path[_0xe482('0x54')](_0x57bc06['file'][_0xe482('0x55')],path['extname'](_0x57bc06['file'][_0xe482('0x55')])),'save_name':path[_0xe482('0x54')](_0x57bc06[_0xe482('0x56')]['filename'],path[_0xe482('0x57')](_0x57bc06[_0xe482('0x56')][_0xe482('0x58')])),'original_format':path[_0xe482('0x57')](_0x57bc06['file'][_0xe482('0x55')])[_0xe482('0x59')](0x1),'converted_format':_0xe482('0x5a')};var _0x38d1ee=path[_0xe482('0x4d')](config[_0xe482('0x4e')],_0xe482('0x5b'),_0x57bc06[_0xe482('0x56')][_0xe482('0x58')]);var _0xc02952=path[_0xe482('0x4d')](config['root'],'server/files/sounds/converted',util[_0xe482('0x52')](_0xe482('0x53'),path[_0xe482('0x54')](_0x57bc06[_0xe482('0x56')][_0xe482('0x58')],path['extname'](_0x57bc06[_0xe482('0x56')]['filename'])),_0x1a2de5[_0xe482('0x4c')]));logger['info'](_0xe482('0x5c'),_0x38d1ee);logger['info'](_0xe482('0x5d'),_0xc02952);try{fs[_0xe482('0x5e')](_0x38d1ee,parseInt(_0xe482('0x5f'),0x8));var _0x516a44=sox[_0xe482('0x60')](_0x38d1ee,_0xc02952,{'sampleRate':0x1f40,'format':_0xe482('0x5a'),'channelCount':0x1,'bitRate':0xc0*0x400,'compressionQuality':0x5});_0x516a44['on'](_0xe482('0x28'),function(_0x31abb0){fs[_0xe482('0x61')](_0x38d1ee);_0x2f903d[_0xe482('0x1a')](0x1f4)[_0xe482('0x62')](_0x31abb0);});_0x516a44['on'](_0xe482('0x63'),function(_0x32b9d4){_0x1a2de5['original_duration']=isNaN(_0x32b9d4[_0xe482('0x64')])?null:_0x32b9d4['duration']*0x3e8;_0x1a2de5[_0xe482('0x65')]=isNaN(_0x32b9d4[_0xe482('0x66')])?null:_0x32b9d4[_0xe482('0x66')];_0x1a2de5[_0xe482('0x67')]=isNaN(_0x32b9d4[_0xe482('0x68')])?null:_0x32b9d4['channelCount'];_0x1a2de5[_0xe482('0x69')]=isNaN(_0x32b9d4[_0xe482('0x6a')])?null:_0x32b9d4[_0xe482('0x6a')];_0x1a2de5[_0xe482('0x6b')]=isNaN(_0x32b9d4[_0xe482('0x6c')])?null:_0x32b9d4[_0xe482('0x6c')];});_0x516a44['on'](_0xe482('0x6d'),function(_0x13f585){_0x1a2de5[_0xe482('0x6e')]=isNaN(_0x13f585['duration'])?null:_0x13f585[_0xe482('0x64')]*0x3e8;_0x1a2de5[_0xe482('0x6f')]=isNaN(_0x13f585[_0xe482('0x66')])?null:_0x13f585[_0xe482('0x66')];_0x1a2de5['converted_channelCount']=isNaN(_0x13f585[_0xe482('0x68')])?null:_0x13f585[_0xe482('0x68')];_0x1a2de5[_0xe482('0x70')]=isNaN(_0x13f585[_0xe482('0x6a')])?null:_0x13f585['bitRate'];_0x1a2de5[_0xe482('0x71')]=isNaN(_0x13f585[_0xe482('0x6c')])?null:_0x13f585[_0xe482('0x6c')];});_0x516a44['on'](_0xe482('0x27'),function(){fs[_0xe482('0x5e')](_0xc02952,parseInt(_0xe482('0x5f'),0x8));return db['Sound']['create'](_0x1a2de5)['then'](function(_0xe08c36){var _0x413f21={'role':_0x57bc06['body'][_0xe482('0x72')],'userProfileId':_0x57bc06[_0xe482('0x73')][_0xe482('0x74')]};if(!_0x413f21)throw new Error(_0xe482('0x75'));if(_0x413f21[_0xe482('0x72')]===_0xe482('0x76')){var _0x558b9f=_0xe08c36[_0xe482('0x24')]({'plain':!![]});return db[_0xe482('0x77')]['find']({'where':{'name':_0xe482('0x25'),'userProfileId':_0x413f21['userProfileId']},'raw':!![]})[_0xe482('0x23')](function(_0xb7a572){if(_0xb7a572&&_0xb7a572[_0xe482('0x78')]===0x0){return db[_0xe482('0x26')][_0xe482('0x79')]({'name':_0x558b9f['name'],'resourceId':_0x558b9f['id'],'type':_0xb7a572['name'],'sectionId':_0xb7a572['id']},{})[_0xe482('0x23')](function(){return _0xe08c36;});}else{return _0xe08c36;}})[_0xe482('0x45')](function(_0x1e7104){logger['error'](_0xe482('0x7a'),_0x1e7104);throw _0x1e7104;});}return _0xe08c36;})[_0xe482('0x23')](respondWithResult(_0x2f903d,null))['catch'](handleError(_0x2f903d,null));});_0x516a44[_0xe482('0x7b')]();}catch(_0x135583){_0x2f903d[_0xe482('0x1a')](0x1f4)[_0xe482('0x62')](_0x135583);}};exports[_0xe482('0x21')]=function(_0x251d19,_0x304513,_0x2afc9d){return db[_0xe482('0x2d')][_0xe482('0x49')]({'where':{'id':_0x251d19[_0xe482('0x46')]['id']}})[_0xe482('0x23')](handleEntityNotFound(_0x304513,null))[_0xe482('0x23')](saveUpdates(_['pick'](_0x251d19[_0xe482('0x73')],[_0xe482('0x2a'),'description']),null))[_0xe482('0x23')](respondWithResult(_0x304513,null))[_0xe482('0x45')](handleError(_0x304513,null));};exports[_0xe482('0x7c')]=function(_0x2dc27c,_0x4f3e90,_0x4b4eb4){return db[_0xe482('0x2d')][_0xe482('0x49')]({'where':{'id':_0x2dc27c[_0xe482('0x46')]['id']}})[_0xe482('0x23')](function(_0x3e473a){if(_0x3e473a){return _0x3e473a[_0xe482('0x22')]();}})[_0xe482('0x23')](function(_0x17c009){var _0x1ee091=path[_0xe482('0x4d')](config['root'],'server/files/sounds/original',util[_0xe482('0x52')](_0xe482('0x53'),_0x17c009[_0xe482('0x4b')],_0x17c009['original_format']));var _0x4b4252=path['join'](config[_0xe482('0x4e')],'server/files/sounds/converted',util[_0xe482('0x52')](_0xe482('0x53'),_0x17c009[_0xe482('0x4b')],_0x17c009['converted_format']));fs[_0xe482('0x61')](_0x1ee091);fs[_0xe482('0x61')](_0x4b4252);return _0x17c009;})[_0xe482('0x23')](function(_0x2159c6){if(_0x2159c6){return _0x4f3e90['status'](0xcc)[_0xe482('0x27')]();}})[_0xe482('0x23')](handleEntityNotFound(_0x4f3e90,null))[_0xe482('0x45')](handleError(_0x4f3e90,null));};