Built motion from commit (unavailable).|2.3.1
[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 _0x6343=['channelCount','bitRate','original_sampleRate','sampleRate','dest','converted_duration','converted_sampleCount','converted_bitRate','converted_sampleRate','body','role','userProfileId','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','get','Sounds','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','start','delete','unlinkSync','rimraf','zip-dir','mustache','util','sox','to-csv','lodash','squel','desk.js','querystring','papaparse','../../components/auth/service','../../config/license/hardware','../../config/logger','api','../../config/environment','../../mysqldb','sendStatus','status','end','json','count','offset','limit','Content-Range','apply','reject','save','update','then','destroy','stack','send','Sound','model','keys','query','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','map','type','key','VIRTUAL','merge','options','includeAll','include','findAll','params','rawAttributes','find','catch','download','name','save_name','converted_format','existsSync','root','server/files/sounds/converted','Sequelize','ValidationError','join','format','create','basename','file','originalname','extname','filename','substring','wav','server/files/sounds/original','%s.%s','info','Sound\x20upload\x20filepath:\x20%s','chmodSync','0777','transcode','error','duration','original_sampleCount','sampleCount'];(function(_0x1a8552,_0x156992){var _0x122b78=function(_0x26a8aa){while(--_0x26a8aa){_0x1a8552['push'](_0x1a8552['shift']());}};_0x122b78(++_0x156992);}(_0x6343,0x168));var _0x3634=function(_0x4985a3,_0x59a9ac){_0x4985a3=_0x4985a3-0x0;var _0x26c857=_0x6343[_0x4985a3];return _0x26c857;};'use strict';var pdf=require('html-pdf');var emlformat=require('eml-format');var rimraf=require(_0x3634('0x0'));var zipdir=require(_0x3634('0x1'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x3634('0x2'));var util=require(_0x3634('0x3'));var path=require('path');var sox=require(_0x3634('0x4'));var csv=require(_0x3634('0x5'));var ejs=require('ejs');var fs=require('fs');var _=require(_0x3634('0x6'));var squel=require(_0x3634('0x7'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x3634('0x8'));var toCsv=require(_0x3634('0x5'));var querystring=require(_0x3634('0x9'));var Papa=require(_0x3634('0xa'));var authService=require(_0x3634('0xb'));var hardwareService=require(_0x3634('0xc'));var Redis=require('ioredis');var qs=require('../../components/parsers/qs');var logger=require(_0x3634('0xd'))(_0x3634('0xe'));var utils=require('../../config/utils');var config=require(_0x3634('0xf'));var db=require(_0x3634('0x10'))['db'];function respondWithStatusCode(_0x242c24,_0x1d180f){_0x1d180f=_0x1d180f||0xcc;return function(_0x1e6a04){if(_0x1e6a04){return _0x242c24[_0x3634('0x11')](_0x1d180f);}return _0x242c24[_0x3634('0x12')](_0x1d180f)[_0x3634('0x13')]();};}function respondWithResult(_0x7f5aca,_0x36f54b){_0x36f54b=_0x36f54b||0xc8;return function(_0x299e53){if(_0x299e53){return _0x7f5aca[_0x3634('0x12')](_0x36f54b)[_0x3634('0x14')](_0x299e53);}};}function respondWithFilteredResult(_0x2ad793,_0x5a5063){return function(_0x167247){if(_0x167247){var _0x48787f=_0x167247[_0x3634('0x15')],_0x69609d=_0x5a5063[_0x3634('0x16')],_0x18285c=_0x5a5063['offset']+_0x5a5063[_0x3634('0x17')],_0x2fc628;if(_0x18285c>=_0x48787f){_0x18285c=_0x48787f;_0x2fc628=0xc8;}else{_0x2fc628=0xce;}_0x2ad793['status'](_0x2fc628);return _0x2ad793['set'](_0x3634('0x18'),_0x69609d+'-'+_0x18285c+'/'+_0x48787f)['json'](_0x167247);}return null;};}function patchUpdates(_0x2fac8b){return function(_0x32e3c6){try{jsonpatch[_0x3634('0x19')](_0x32e3c6,_0x2fac8b,!![]);}catch(_0x5603d2){return BPromise[_0x3634('0x1a')](_0x5603d2);}return _0x32e3c6[_0x3634('0x1b')]();};}function saveUpdates(_0x577a6c,_0xeb9231){return function(_0x506281){if(_0x506281){return _0x506281[_0x3634('0x1c')](_0x577a6c)[_0x3634('0x1d')](function(_0x5b77a7){return _0x5b77a7;});}return null;};}function removeEntity(_0x29a343,_0x3df472){return function(_0x206c8e){if(_0x206c8e){return _0x206c8e['destroy']()[_0x3634('0x1d')](function(){var _0x2c8874=_0x206c8e['get']({'plain':!![]});var _0x3936ee='Sounds';return db['UserProfileResource'][_0x3634('0x1e')]({'where':{'type':_0x3936ee,'resourceId':_0x2c8874['id']}})[_0x3634('0x1d')](function(){return _0x206c8e;});})['then'](function(){_0x29a343[_0x3634('0x12')](0xcc)[_0x3634('0x13')]();});}};}function handleEntityNotFound(_0x17db44,_0x225ddc){return function(_0x363ca2){if(!_0x363ca2){_0x17db44[_0x3634('0x11')](0x194);}return _0x363ca2;};}function handleError(_0x38e863,_0x4762b1){_0x4762b1=_0x4762b1||0x1f4;return function(_0x22f1f1){logger['error'](_0x22f1f1[_0x3634('0x1f')]);if(_0x22f1f1['name']){delete _0x22f1f1['name'];}_0x38e863['status'](_0x4762b1)[_0x3634('0x20')](_0x22f1f1);};}exports['index']=function(_0x3bf28b,_0x12b80e){var _0x49804f={},_0x55a77f={},_0x282f73={'count':0x0,'rows':[]};var _0x5bd4e0=db[_0x3634('0x21')]['rawAttributes'];_0x55a77f[_0x3634('0x22')]=_[_0x3634('0x23')](_0x5bd4e0);_0x55a77f[_0x3634('0x24')]=_[_0x3634('0x23')](_0x3bf28b[_0x3634('0x24')]);_0x55a77f[_0x3634('0x25')]=_[_0x3634('0x26')](_0x55a77f[_0x3634('0x22')],_0x55a77f['query']);_0x49804f['attributes']=_['intersection'](_0x55a77f[_0x3634('0x22')],qs['fields'](_0x3bf28b[_0x3634('0x24')][_0x3634('0x27')]));_0x49804f[_0x3634('0x28')]=_0x49804f[_0x3634('0x28')][_0x3634('0x29')]?_0x49804f[_0x3634('0x28')]:_0x55a77f['model'];if(!_0x3bf28b[_0x3634('0x24')][_0x3634('0x2a')](_0x3634('0x2b'))){_0x49804f[_0x3634('0x17')]=qs[_0x3634('0x17')](_0x3bf28b[_0x3634('0x24')][_0x3634('0x17')]);_0x49804f[_0x3634('0x16')]=qs[_0x3634('0x16')](_0x3bf28b['query'][_0x3634('0x16')]);}_0x49804f[_0x3634('0x2c')]=qs[_0x3634('0x2d')](_0x3bf28b[_0x3634('0x24')]['sort']);_0x49804f[_0x3634('0x2e')]=qs[_0x3634('0x25')](_[_0x3634('0x2f')](_0x3bf28b['query'],_0x55a77f['filters']));if(_0x3bf28b['query'][_0x3634('0x30')]){_0x49804f[_0x3634('0x2e')]=_['merge'](_0x49804f[_0x3634('0x2e')],{'$or':_[_0x3634('0x31')](_0x5bd4e0,function(_0x105507){if(_0x105507[_0x3634('0x32')][_0x3634('0x33')]!==_0x3634('0x34')){var _0x431619={};_0x431619[_0x105507['field']]={'$like':'%'+_0x3bf28b[_0x3634('0x24')]['filter']+'%'};return _0x431619;}})});}_0x49804f=_[_0x3634('0x35')]({},_0x49804f,_0x3bf28b[_0x3634('0x36')]);var _0x2f1744={'where':_0x49804f[_0x3634('0x2e')]};return db[_0x3634('0x21')]['count'](_0x2f1744)[_0x3634('0x1d')](function(_0x33af29){_0x282f73[_0x3634('0x15')]=_0x33af29;if(_0x3bf28b[_0x3634('0x24')][_0x3634('0x37')]){_0x49804f[_0x3634('0x38')]=[{'all':!![]}];}return db[_0x3634('0x21')][_0x3634('0x39')](_0x49804f);})[_0x3634('0x1d')](function(_0x523555){_0x282f73['rows']=_0x523555;return _0x282f73;})[_0x3634('0x1d')](respondWithFilteredResult(_0x12b80e,_0x49804f))['catch'](handleError(_0x12b80e,null));};exports['show']=function(_0x5948db,_0x80f1a2){var _0x4d06f9={'raw':!![],'where':{'id':_0x5948db[_0x3634('0x3a')]['id']}},_0x197d65={};_0x197d65['model']=_['keys'](db['Sound'][_0x3634('0x3b')]);_0x197d65[_0x3634('0x24')]=_['keys'](_0x5948db[_0x3634('0x24')]);_0x197d65[_0x3634('0x25')]=_[_0x3634('0x26')](_0x197d65[_0x3634('0x22')],_0x197d65[_0x3634('0x24')]);_0x4d06f9['attributes']=_['intersection'](_0x197d65[_0x3634('0x22')],qs[_0x3634('0x27')](_0x5948db[_0x3634('0x24')][_0x3634('0x27')]));_0x4d06f9[_0x3634('0x28')]=_0x4d06f9[_0x3634('0x28')]['length']?_0x4d06f9[_0x3634('0x28')]:_0x197d65[_0x3634('0x22')];if(_0x5948db[_0x3634('0x24')]['includeAll']){_0x4d06f9['include']=[{'all':!![]}];}_0x4d06f9=_[_0x3634('0x35')]({},_0x4d06f9,_0x5948db[_0x3634('0x36')]);return db[_0x3634('0x21')][_0x3634('0x3c')](_0x4d06f9)[_0x3634('0x1d')](handleEntityNotFound(_0x80f1a2,null))[_0x3634('0x1d')](respondWithResult(_0x80f1a2,null))[_0x3634('0x3d')](handleError(_0x80f1a2,null));};exports[_0x3634('0x3e')]=function(_0x52de40,_0xfb94f0,_0x3401b8){return db[_0x3634('0x21')][_0x3634('0x3c')]({'where':{'id':_0x52de40[_0x3634('0x3a')]['id']},'attributes':[_0x3634('0x3f'),_0x3634('0x40'),_0x3634('0x41')],'raw':!![]})[_0x3634('0x1d')](handleEntityNotFound(_0xfb94f0,null))['then'](function(_0x279d34){if(_0x279d34){if(!fs[_0x3634('0x42')](path['join'](config[_0x3634('0x43')],_0x3634('0x44'),_0x279d34[_0x3634('0x40')]+'.'+_0x279d34[_0x3634('0x41')]))){throw new db[(_0x3634('0x45'))][(_0x3634('0x46'))]('Sound\x20not\x20found');}return _0xfb94f0[_0x3634('0x3e')](path[_0x3634('0x47')](config[_0x3634('0x43')],_0x3634('0x44'),util[_0x3634('0x48')]('%s.%s',_0x279d34[_0x3634('0x40')],_0x279d34[_0x3634('0x41')])),util['format']('%s.%s',_0x279d34[_0x3634('0x3f')],_0x279d34['converted_format']));}return null;})[_0x3634('0x3d')](handleError(_0xfb94f0,null));};exports[_0x3634('0x49')]=function(_0x1943a5,_0x1834a3,_0x5a024e){var _0x274494={'name':path[_0x3634('0x4a')](_0x1943a5[_0x3634('0x4b')][_0x3634('0x4c')],path[_0x3634('0x4d')](_0x1943a5[_0x3634('0x4b')][_0x3634('0x4c')])),'save_name':path[_0x3634('0x4a')](_0x1943a5[_0x3634('0x4b')][_0x3634('0x4e')],path[_0x3634('0x4d')](_0x1943a5[_0x3634('0x4b')]['filename'])),'original_format':path[_0x3634('0x4d')](_0x1943a5[_0x3634('0x4b')][_0x3634('0x4c')])[_0x3634('0x4f')](0x1),'converted_format':_0x3634('0x50')};var _0x15f414=path[_0x3634('0x47')](config[_0x3634('0x43')],_0x3634('0x51'),_0x1943a5['file'][_0x3634('0x4e')]);var _0x2ea4b0=path['join'](config[_0x3634('0x43')],_0x3634('0x44'),util['format'](_0x3634('0x52'),path[_0x3634('0x4a')](_0x1943a5[_0x3634('0x4b')]['filename'],path[_0x3634('0x4d')](_0x1943a5['file'][_0x3634('0x4e')])),_0x274494['converted_format']));logger[_0x3634('0x53')](_0x3634('0x54'),_0x15f414);logger[_0x3634('0x53')]('Sound\x20upload\x20destination:\x20%s',_0x2ea4b0);try{fs[_0x3634('0x55')](_0x15f414,parseInt(_0x3634('0x56'),0x8));var _0x5df700=sox[_0x3634('0x57')](_0x15f414,_0x2ea4b0,{'sampleRate':0x1f40,'format':_0x3634('0x50'),'channelCount':0x1,'bitRate':0xc0*0x400,'compressionQuality':0x5});_0x5df700['on'](_0x3634('0x58'),function(_0x6781cb){fs['unlinkSync'](_0x15f414);_0x1834a3[_0x3634('0x12')](0x1f4)[_0x3634('0x20')](_0x6781cb);});_0x5df700['on']('src',function(_0x5b8db4){_0x274494['original_duration']=isNaN(_0x5b8db4[_0x3634('0x59')])?null:_0x5b8db4['duration']*0x3e8;_0x274494[_0x3634('0x5a')]=isNaN(_0x5b8db4[_0x3634('0x5b')])?null:_0x5b8db4[_0x3634('0x5b')];_0x274494['original_channelCount']=isNaN(_0x5b8db4[_0x3634('0x5c')])?null:_0x5b8db4[_0x3634('0x5c')];_0x274494['original_bitRate']=isNaN(_0x5b8db4[_0x3634('0x5d')])?null:_0x5b8db4[_0x3634('0x5d')];_0x274494[_0x3634('0x5e')]=isNaN(_0x5b8db4['sampleRate'])?null:_0x5b8db4[_0x3634('0x5f')];});_0x5df700['on'](_0x3634('0x60'),function(_0x897c0e){_0x274494[_0x3634('0x61')]=isNaN(_0x897c0e[_0x3634('0x59')])?null:_0x897c0e['duration']*0x3e8;_0x274494[_0x3634('0x62')]=isNaN(_0x897c0e[_0x3634('0x5b')])?null:_0x897c0e[_0x3634('0x5b')];_0x274494['converted_channelCount']=isNaN(_0x897c0e[_0x3634('0x5c')])?null:_0x897c0e['channelCount'];_0x274494[_0x3634('0x63')]=isNaN(_0x897c0e[_0x3634('0x5d')])?null:_0x897c0e['bitRate'];_0x274494[_0x3634('0x64')]=isNaN(_0x897c0e[_0x3634('0x5f')])?null:_0x897c0e[_0x3634('0x5f')];});_0x5df700['on']('end',function(){fs[_0x3634('0x55')](_0x2ea4b0,parseInt('0777',0x8));return db['Sound'][_0x3634('0x49')](_0x274494)['then'](function(_0x30fd12){var _0x70898e={'role':_0x1943a5[_0x3634('0x65')][_0x3634('0x66')],'userProfileId':_0x1943a5['body'][_0x3634('0x67')]};if(!_0x70898e)throw new Error(_0x3634('0x68'));if(_0x70898e['role']===_0x3634('0x69')){var _0x5328b3=_0x30fd12[_0x3634('0x6a')]({'plain':!![]});return db['UserProfileSection']['find']({'where':{'name':_0x3634('0x6b'),'userProfileId':_0x70898e[_0x3634('0x67')]},'raw':!![]})[_0x3634('0x1d')](function(_0x55f9dc){if(_0x55f9dc&&_0x55f9dc[_0x3634('0x6c')]===0x0){return db['UserProfileResource'][_0x3634('0x49')]({'name':_0x5328b3[_0x3634('0x3f')],'resourceId':_0x5328b3['id'],'type':_0x55f9dc[_0x3634('0x3f')],'sectionId':_0x55f9dc['id']},{})[_0x3634('0x1d')](function(){return _0x30fd12;});}else{return _0x30fd12;}})[_0x3634('0x3d')](function(_0x11ecfb){logger[_0x3634('0x58')](_0x3634('0x6d'),_0x11ecfb);throw _0x11ecfb;});}return _0x30fd12;})[_0x3634('0x1d')](respondWithResult(_0x1834a3,null))[_0x3634('0x3d')](handleError(_0x1834a3,null));});_0x5df700[_0x3634('0x6e')]();}catch(_0x4bbfed){_0x1834a3['status'](0x1f4)[_0x3634('0x20')](_0x4bbfed);}};exports['update']=function(_0x465712,_0x352d98,_0x3376ef){return db[_0x3634('0x21')][_0x3634('0x3c')]({'where':{'id':_0x465712['params']['id']}})[_0x3634('0x1d')](handleEntityNotFound(_0x352d98,null))[_0x3634('0x1d')](saveUpdates(_[_0x3634('0x2f')](_0x465712[_0x3634('0x65')],[_0x3634('0x3f'),'description']),null))[_0x3634('0x1d')](respondWithResult(_0x352d98,null))[_0x3634('0x3d')](handleError(_0x352d98,null));};exports[_0x3634('0x6f')]=function(_0x363d8b,_0x505424,_0x5c0a54){return db[_0x3634('0x21')][_0x3634('0x3c')]({'where':{'id':_0x363d8b[_0x3634('0x3a')]['id']}})[_0x3634('0x1d')](function(_0x4a5dc1){if(_0x4a5dc1){return _0x4a5dc1[_0x3634('0x1e')]();}})['then'](function(_0x459f53){var _0x543328=path[_0x3634('0x47')](config[_0x3634('0x43')],_0x3634('0x51'),util[_0x3634('0x48')](_0x3634('0x52'),_0x459f53[_0x3634('0x40')],_0x459f53['original_format']));var _0x3007d1=path['join'](config[_0x3634('0x43')],_0x3634('0x44'),util[_0x3634('0x48')](_0x3634('0x52'),_0x459f53[_0x3634('0x40')],_0x459f53[_0x3634('0x41')]));fs[_0x3634('0x70')](_0x543328);fs[_0x3634('0x70')](_0x3007d1);return _0x459f53;})[_0x3634('0x1d')](function(_0x588133){if(_0x588133){return _0x505424[_0x3634('0x12')](0xcc)[_0x3634('0x13')]();}})[_0x3634('0x1d')](handleEntityNotFound(_0x505424,null))[_0x3634('0x3d')](handleError(_0x505424,null));};