154d719a4c5c62f0ea5bca1e81a53266e4235aff
[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 _0x5e1e=['error','stack','name','send','map','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','fields','length','attributes','hasOwnProperty','where','pick','filter','merge','VIRTUAL','options','Sound','count','includeAll','include','findAll','rows','catch','show','params','find','download','save_name','converted_format','existsSync','root','server/files/sounds/converted','Sound\x20not\x20found','join','format','%s.%s','create','basename','file','extname','originalname','filename','substring','wav','server/files/sounds/original','info','Sound\x20upload\x20destination:\x20%s','chmodSync','0777','transcode','unlinkSync','src','original_duration','duration','sampleCount','original_channelCount','channelCount','bitRate','original_sampleRate','sampleRate','dest','converted_duration','converted_sampleCount','converted_sampleRate','body','role','userProfileId','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','UserProfileSection','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','start','description','delete','rimraf','fast-json-patch','request-promise','moment','mustache','util','sox','ejs','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','end','json','offset','limit','set','apply','reject','save','update','then','destroy','get','Sounds','UserProfileResource'];(function(_0x79cd47,_0x16102d){var _0x3b9484=function(_0x23db95){while(--_0x23db95){_0x79cd47['push'](_0x79cd47['shift']());}};_0x3b9484(++_0x16102d);}(_0x5e1e,0x144));var _0xe5e1=function(_0x4154a6,_0x2c0b8e){_0x4154a6=_0x4154a6-0x0;var _0x3b2786=_0x5e1e[_0x4154a6];return _0x3b2786;};'use strict';var pdf=require('html-pdf');var emlformat=require('eml-format');var rimraf=require(_0xe5e1('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0xe5e1('0x1'));var rp=require(_0xe5e1('0x2'));var moment=require(_0xe5e1('0x3'));var BPromise=require('bluebird');var Mustache=require(_0xe5e1('0x4'));var util=require(_0xe5e1('0x5'));var path=require('path');var sox=require(_0xe5e1('0x6'));var csv=require('to-csv');var ejs=require(_0xe5e1('0x7'));var fs=require('fs');var _=require('lodash');var squel=require(_0xe5e1('0x8'));var crypto=require(_0xe5e1('0x9'));var jsforce=require(_0xe5e1('0xa'));var deskjs=require(_0xe5e1('0xb'));var toCsv=require(_0xe5e1('0xc'));var querystring=require(_0xe5e1('0xd'));var Papa=require(_0xe5e1('0xe'));var Redis=require(_0xe5e1('0xf'));var authService=require(_0xe5e1('0x10'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xe5e1('0x11'));var logger=require(_0xe5e1('0x12'))(_0xe5e1('0x13'));var utils=require(_0xe5e1('0x14'));var config=require(_0xe5e1('0x15'));var licenseUtil=require(_0xe5e1('0x16'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x511b1c,_0x458396){_0x458396=_0x458396||0xcc;return function(_0x5bf0ff){if(_0x5bf0ff){return _0x511b1c[_0xe5e1('0x17')](_0x458396);}return _0x511b1c[_0xe5e1('0x18')](_0x458396)[_0xe5e1('0x19')]();};}function respondWithResult(_0x3c9e4d,_0x165a1d){_0x165a1d=_0x165a1d||0xc8;return function(_0x4b2490){if(_0x4b2490){return _0x3c9e4d['status'](_0x165a1d)[_0xe5e1('0x1a')](_0x4b2490);}};}function respondWithFilteredResult(_0x3b5503,_0x354881){return function(_0x16d699){if(_0x16d699){var _0x1561df=_0x16d699['count'],_0x3cb190=_0x354881[_0xe5e1('0x1b')],_0x16c5ee=_0x354881[_0xe5e1('0x1b')]+_0x354881[_0xe5e1('0x1c')],_0x4fbf2a;if(_0x16c5ee>=_0x1561df){_0x16c5ee=_0x1561df;_0x4fbf2a=0xc8;}else{_0x4fbf2a=0xce;}_0x3b5503[_0xe5e1('0x18')](_0x4fbf2a);return _0x3b5503[_0xe5e1('0x1d')]('Content-Range',_0x3cb190+'-'+_0x16c5ee+'/'+_0x1561df)[_0xe5e1('0x1a')](_0x16d699);}return null;};}function patchUpdates(_0x1f5ddf){return function(_0x3f0e5e){try{jsonpatch[_0xe5e1('0x1e')](_0x3f0e5e,_0x1f5ddf,!![]);}catch(_0x40fe22){return BPromise[_0xe5e1('0x1f')](_0x40fe22);}return _0x3f0e5e[_0xe5e1('0x20')]();};}function saveUpdates(_0x4f2fa2,_0x392420){return function(_0x17ebdb){if(_0x17ebdb){return _0x17ebdb[_0xe5e1('0x21')](_0x4f2fa2)[_0xe5e1('0x22')](function(_0x2dbda2){return _0x2dbda2;});}return null;};}function removeEntity(_0x3ae197,_0x5e5fe9){return function(_0x543f76){if(_0x543f76){return _0x543f76[_0xe5e1('0x23')]()[_0xe5e1('0x22')](function(){var _0x529be9=_0x543f76[_0xe5e1('0x24')]({'plain':!![]});var _0x39b1f6=_0xe5e1('0x25');return db[_0xe5e1('0x26')][_0xe5e1('0x23')]({'where':{'type':_0x39b1f6,'resourceId':_0x529be9['id']}})[_0xe5e1('0x22')](function(){return _0x543f76;});})[_0xe5e1('0x22')](function(){_0x3ae197['status'](0xcc)[_0xe5e1('0x19')]();});}};}function handleEntityNotFound(_0x4436c4,_0x34a33c){return function(_0x141b3d){if(!_0x141b3d){_0x4436c4['sendStatus'](0x194);}return _0x141b3d;};}function handleError(_0x1e428a,_0x23fe69){_0x23fe69=_0x23fe69||0x1f4;return function(_0x28847c){logger[_0xe5e1('0x27')](_0x28847c[_0xe5e1('0x28')]);if(_0x28847c[_0xe5e1('0x29')]){delete _0x28847c[_0xe5e1('0x29')];}_0x1e428a[_0xe5e1('0x18')](_0x23fe69)[_0xe5e1('0x2a')](_0x28847c);};}exports['index']=function(_0x3596f5,_0x275e1a){var _0x1a32f0={},_0x15964a={},_0x4502ce={'count':0x0,'rows':[]};var _0x587523=_[_0xe5e1('0x2b')](db['Sound'][_0xe5e1('0x2c')],function(_0xf56bbf){return{'name':_0xf56bbf[_0xe5e1('0x2d')],'type':_0xf56bbf[_0xe5e1('0x2e')][_0xe5e1('0x2f')]};});_0x15964a[_0xe5e1('0x30')]=_[_0xe5e1('0x2b')](_0x587523,_0xe5e1('0x29'));_0x15964a[_0xe5e1('0x31')]=_[_0xe5e1('0x32')](_0x3596f5[_0xe5e1('0x31')]);_0x15964a[_0xe5e1('0x33')]=_['intersection'](_0x15964a[_0xe5e1('0x30')],_0x15964a[_0xe5e1('0x31')]);_0x1a32f0['attributes']=_[_0xe5e1('0x34')](_0x15964a['model'],qs[_0xe5e1('0x35')](_0x3596f5[_0xe5e1('0x31')][_0xe5e1('0x35')]));_0x1a32f0['attributes']=_0x1a32f0['attributes'][_0xe5e1('0x36')]?_0x1a32f0[_0xe5e1('0x37')]:_0x15964a[_0xe5e1('0x30')];if(!_0x3596f5[_0xe5e1('0x31')][_0xe5e1('0x38')]('nolimit')){_0x1a32f0[_0xe5e1('0x1c')]=qs[_0xe5e1('0x1c')](_0x3596f5['query']['limit']);_0x1a32f0['offset']=qs[_0xe5e1('0x1b')](_0x3596f5[_0xe5e1('0x31')][_0xe5e1('0x1b')]);}_0x1a32f0['order']=qs['sort'](_0x3596f5[_0xe5e1('0x31')]['sort']);_0x1a32f0[_0xe5e1('0x39')]=qs['filters'](_[_0xe5e1('0x3a')](_0x3596f5[_0xe5e1('0x31')],_0x15964a['filters']),_0x587523);if(_0x3596f5[_0xe5e1('0x31')][_0xe5e1('0x3b')]){_0x1a32f0['where']=_[_0xe5e1('0x3c')](_0x1a32f0[_0xe5e1('0x39')],{'$or':_[_0xe5e1('0x2b')](_0x587523,function(_0x143bce){if(_0x143bce[_0xe5e1('0x2e')]!==_0xe5e1('0x3d')){var _0x26ef54={};_0x26ef54[_0x143bce[_0xe5e1('0x29')]]={'$like':'%'+_0x3596f5[_0xe5e1('0x31')]['filter']+'%'};return _0x26ef54;}})});}_0x1a32f0=_[_0xe5e1('0x3c')]({},_0x1a32f0,_0x3596f5[_0xe5e1('0x3e')]);var _0x2c5d33={'where':_0x1a32f0[_0xe5e1('0x39')]};return db[_0xe5e1('0x3f')][_0xe5e1('0x40')](_0x2c5d33)[_0xe5e1('0x22')](function(_0x310ac4){_0x4502ce['count']=_0x310ac4;if(_0x3596f5[_0xe5e1('0x31')][_0xe5e1('0x41')]){_0x1a32f0[_0xe5e1('0x42')]=[{'all':!![]}];}return db['Sound'][_0xe5e1('0x43')](_0x1a32f0);})['then'](function(_0x37fa29){_0x4502ce[_0xe5e1('0x44')]=_0x37fa29;return _0x4502ce;})[_0xe5e1('0x22')](respondWithFilteredResult(_0x275e1a,_0x1a32f0))[_0xe5e1('0x45')](handleError(_0x275e1a,null));};exports[_0xe5e1('0x46')]=function(_0x206f0e,_0x28c643){var _0x12090d={'raw':!![],'where':{'id':_0x206f0e[_0xe5e1('0x47')]['id']}},_0x900b2={};_0x900b2[_0xe5e1('0x30')]=_[_0xe5e1('0x32')](db[_0xe5e1('0x3f')][_0xe5e1('0x2c')]);_0x900b2[_0xe5e1('0x31')]=_[_0xe5e1('0x32')](_0x206f0e[_0xe5e1('0x31')]);_0x900b2['filters']=_[_0xe5e1('0x34')](_0x900b2[_0xe5e1('0x30')],_0x900b2[_0xe5e1('0x31')]);_0x12090d[_0xe5e1('0x37')]=_[_0xe5e1('0x34')](_0x900b2[_0xe5e1('0x30')],qs[_0xe5e1('0x35')](_0x206f0e['query'][_0xe5e1('0x35')]));_0x12090d[_0xe5e1('0x37')]=_0x12090d['attributes']['length']?_0x12090d[_0xe5e1('0x37')]:_0x900b2[_0xe5e1('0x30')];if(_0x206f0e[_0xe5e1('0x31')][_0xe5e1('0x41')]){_0x12090d[_0xe5e1('0x42')]=[{'all':!![]}];}_0x12090d=_[_0xe5e1('0x3c')]({},_0x12090d,_0x206f0e['options']);return db[_0xe5e1('0x3f')][_0xe5e1('0x48')](_0x12090d)[_0xe5e1('0x22')](handleEntityNotFound(_0x28c643,null))[_0xe5e1('0x22')](respondWithResult(_0x28c643,null))['catch'](handleError(_0x28c643,null));};exports[_0xe5e1('0x49')]=function(_0x473e62,_0x2b71c0,_0x102c5f){return db[_0xe5e1('0x3f')][_0xe5e1('0x48')]({'where':{'id':_0x473e62[_0xe5e1('0x47')]['id']},'attributes':[_0xe5e1('0x29'),_0xe5e1('0x4a'),_0xe5e1('0x4b')],'raw':!![]})['then'](handleEntityNotFound(_0x2b71c0,null))[_0xe5e1('0x22')](function(_0x4effca){if(_0x4effca){if(!fs[_0xe5e1('0x4c')](path['join'](config[_0xe5e1('0x4d')],_0xe5e1('0x4e'),_0x4effca['save_name']+'.'+_0x4effca[_0xe5e1('0x4b')]))){throw new db['Sequelize']['ValidationError'](_0xe5e1('0x4f'));}return _0x2b71c0['download'](path[_0xe5e1('0x50')](config[_0xe5e1('0x4d')],_0xe5e1('0x4e'),util[_0xe5e1('0x51')](_0xe5e1('0x52'),_0x4effca['save_name'],_0x4effca['converted_format'])),util[_0xe5e1('0x51')](_0xe5e1('0x52'),_0x4effca[_0xe5e1('0x29')],_0x4effca[_0xe5e1('0x4b')]));}return null;})[_0xe5e1('0x45')](handleError(_0x2b71c0,null));};exports[_0xe5e1('0x53')]=function(_0x456e9b,_0x3dc4fb,_0x30a8c3){var _0x54cb4e={'name':path[_0xe5e1('0x54')](_0x456e9b[_0xe5e1('0x55')]['originalname'],path[_0xe5e1('0x56')](_0x456e9b[_0xe5e1('0x55')][_0xe5e1('0x57')])),'save_name':path['basename'](_0x456e9b[_0xe5e1('0x55')]['filename'],path[_0xe5e1('0x56')](_0x456e9b['file'][_0xe5e1('0x58')])),'original_format':path[_0xe5e1('0x56')](_0x456e9b[_0xe5e1('0x55')]['originalname'])[_0xe5e1('0x59')](0x1),'converted_format':_0xe5e1('0x5a')};var _0x1181fb=path[_0xe5e1('0x50')](config[_0xe5e1('0x4d')],_0xe5e1('0x5b'),_0x456e9b[_0xe5e1('0x55')][_0xe5e1('0x58')]);var _0x3bfafa=path[_0xe5e1('0x50')](config['root'],_0xe5e1('0x4e'),util[_0xe5e1('0x51')](_0xe5e1('0x52'),path[_0xe5e1('0x54')](_0x456e9b[_0xe5e1('0x55')][_0xe5e1('0x58')],path['extname'](_0x456e9b[_0xe5e1('0x55')]['filename'])),_0x54cb4e['converted_format']));logger[_0xe5e1('0x5c')]('Sound\x20upload\x20filepath:\x20%s',_0x1181fb);logger['info'](_0xe5e1('0x5d'),_0x3bfafa);try{fs[_0xe5e1('0x5e')](_0x1181fb,parseInt(_0xe5e1('0x5f'),0x8));var _0x53f333=sox[_0xe5e1('0x60')](_0x1181fb,_0x3bfafa,{'sampleRate':0x1f40,'format':_0xe5e1('0x5a'),'channelCount':0x1,'bitRate':0xc0*0x400,'compressionQuality':0x5});_0x53f333['on'](_0xe5e1('0x27'),function(_0x648110){fs[_0xe5e1('0x61')](_0x1181fb);_0x3dc4fb[_0xe5e1('0x18')](0x1f4)[_0xe5e1('0x2a')](_0x648110);});_0x53f333['on'](_0xe5e1('0x62'),function(_0x3f7e82){_0x54cb4e[_0xe5e1('0x63')]=isNaN(_0x3f7e82['duration'])?null:_0x3f7e82[_0xe5e1('0x64')]*0x3e8;_0x54cb4e['original_sampleCount']=isNaN(_0x3f7e82[_0xe5e1('0x65')])?null:_0x3f7e82[_0xe5e1('0x65')];_0x54cb4e[_0xe5e1('0x66')]=isNaN(_0x3f7e82[_0xe5e1('0x67')])?null:_0x3f7e82[_0xe5e1('0x67')];_0x54cb4e['original_bitRate']=isNaN(_0x3f7e82['bitRate'])?null:_0x3f7e82[_0xe5e1('0x68')];_0x54cb4e[_0xe5e1('0x69')]=isNaN(_0x3f7e82[_0xe5e1('0x6a')])?null:_0x3f7e82[_0xe5e1('0x6a')];});_0x53f333['on'](_0xe5e1('0x6b'),function(_0x266465){_0x54cb4e[_0xe5e1('0x6c')]=isNaN(_0x266465[_0xe5e1('0x64')])?null:_0x266465[_0xe5e1('0x64')]*0x3e8;_0x54cb4e[_0xe5e1('0x6d')]=isNaN(_0x266465[_0xe5e1('0x65')])?null:_0x266465[_0xe5e1('0x65')];_0x54cb4e['converted_channelCount']=isNaN(_0x266465[_0xe5e1('0x67')])?null:_0x266465[_0xe5e1('0x67')];_0x54cb4e['converted_bitRate']=isNaN(_0x266465[_0xe5e1('0x68')])?null:_0x266465[_0xe5e1('0x68')];_0x54cb4e[_0xe5e1('0x6e')]=isNaN(_0x266465['sampleRate'])?null:_0x266465[_0xe5e1('0x6a')];});_0x53f333['on'](_0xe5e1('0x19'),function(){fs['chmodSync'](_0x3bfafa,parseInt(_0xe5e1('0x5f'),0x8));return db['Sound'][_0xe5e1('0x53')](_0x54cb4e)[_0xe5e1('0x22')](function(_0x21f47f){var _0x1e27fd={'role':_0x456e9b[_0xe5e1('0x6f')][_0xe5e1('0x70')],'userProfileId':_0x456e9b[_0xe5e1('0x6f')][_0xe5e1('0x71')]};if(!_0x1e27fd)throw new Error(_0xe5e1('0x72'));if(_0x1e27fd['role']===_0xe5e1('0x73')){var _0x1a1506=_0x21f47f[_0xe5e1('0x24')]({'plain':!![]});return db[_0xe5e1('0x74')][_0xe5e1('0x48')]({'where':{'name':_0xe5e1('0x25'),'userProfileId':_0x1e27fd[_0xe5e1('0x71')]},'raw':!![]})[_0xe5e1('0x22')](function(_0x13b2a0){if(_0x13b2a0&&_0x13b2a0['autoAssociation']===0x0){return db[_0xe5e1('0x26')]['create']({'name':_0x1a1506['name'],'resourceId':_0x1a1506['id'],'type':_0x13b2a0['name'],'sectionId':_0x13b2a0['id']},{})['then'](function(){return _0x21f47f;});}else{return _0x21f47f;}})[_0xe5e1('0x45')](function(_0x1265fb){logger[_0xe5e1('0x27')](_0xe5e1('0x75'),_0x1265fb);throw _0x1265fb;});}return _0x21f47f;})[_0xe5e1('0x22')](respondWithResult(_0x3dc4fb,null))[_0xe5e1('0x45')](handleError(_0x3dc4fb,null));});_0x53f333[_0xe5e1('0x76')]();}catch(_0x126b4f){_0x3dc4fb[_0xe5e1('0x18')](0x1f4)[_0xe5e1('0x2a')](_0x126b4f);}};exports['update']=function(_0x27cf4a,_0x7cda48,_0x404cf0){return db['Sound'][_0xe5e1('0x48')]({'where':{'id':_0x27cf4a['params']['id']}})[_0xe5e1('0x22')](handleEntityNotFound(_0x7cda48,null))['then'](saveUpdates(_[_0xe5e1('0x3a')](_0x27cf4a[_0xe5e1('0x6f')],[_0xe5e1('0x29'),_0xe5e1('0x77')]),null))[_0xe5e1('0x22')](respondWithResult(_0x7cda48,null))['catch'](handleError(_0x7cda48,null));};exports[_0xe5e1('0x78')]=function(_0x54ad14,_0x13592d,_0x32e72d){return db[_0xe5e1('0x3f')]['find']({'where':{'id':_0x54ad14[_0xe5e1('0x47')]['id']}})['then'](function(_0x5a7e26){if(_0x5a7e26){return _0x5a7e26[_0xe5e1('0x23')]();}})[_0xe5e1('0x22')](function(_0x590830){var _0x4565be=path['join'](config[_0xe5e1('0x4d')],_0xe5e1('0x5b'),util[_0xe5e1('0x51')](_0xe5e1('0x52'),_0x590830[_0xe5e1('0x4a')],_0x590830['original_format']));var _0x14d5cd=path[_0xe5e1('0x50')](config[_0xe5e1('0x4d')],_0xe5e1('0x4e'),util[_0xe5e1('0x51')](_0xe5e1('0x52'),_0x590830[_0xe5e1('0x4a')],_0x590830['converted_format']));fs['unlinkSync'](_0x4565be);fs[_0xe5e1('0x61')](_0x14d5cd);return _0x590830;})['then'](function(_0x4ccbf2){if(_0x4ccbf2){return _0x13592d[_0xe5e1('0x18')](0xcc)[_0xe5e1('0x19')]();}})[_0xe5e1('0x22')](handleEntityNotFound(_0x13592d,null))['catch'](handleError(_0x13592d,null));};