Built motion from commit (unavailable).|2.5.4
[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 _0x94fa=['apply','reject','save','update','destroy','then','get','UserProfileResource','end','error','stack','name','send','map','Sound','rawAttributes','fieldName','type','key','model','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filter','merge','VIRTUAL','includeAll','findAll','catch','params','find','download','save_name','converted_format','existsSync','join','root','server/files/sounds/converted','ValidationError','Sound\x20not\x20found','format','%s.%s','basename','file','originalname','filename','extname','substring','wav','server/files/sounds/original','info','Sound\x20upload\x20filepath:\x20%s','0777','transcode','unlinkSync','src','original_duration','duration','original_sampleCount','sampleCount','original_channelCount','channelCount','bitRate','original_sampleRate','sampleRate','converted_duration','converted_sampleCount','converted_channelCount','converted_bitRate','converted_sampleRate','create','body','role','userProfileId','user','UserProfileSection','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','start','pick','delete','original_format','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','count','offset','limit','status','Content-Range'];(function(_0x26d958,_0x250f7e){var _0x1940ae=function(_0x46c06d){while(--_0x46c06d){_0x26d958['push'](_0x26d958['shift']());}};_0x1940ae(++_0x250f7e);}(_0x94fa,0x1cf));var _0xa94f=function(_0x5b78e8,_0x55096b){_0x5b78e8=_0x5b78e8-0x0;var _0xf2c321=_0x94fa[_0x5b78e8];return _0xf2c321;};'use strict';var pdf=require(_0xa94f('0x0'));var emlformat=require(_0xa94f('0x1'));var rimraf=require(_0xa94f('0x2'));var zipdir=require(_0xa94f('0x3'));var jsonpatch=require(_0xa94f('0x4'));var rp=require(_0xa94f('0x5'));var moment=require(_0xa94f('0x6'));var BPromise=require(_0xa94f('0x7'));var Mustache=require(_0xa94f('0x8'));var util=require(_0xa94f('0x9'));var path=require(_0xa94f('0xa'));var sox=require(_0xa94f('0xb'));var csv=require(_0xa94f('0xc'));var ejs=require('ejs');var fs=require('fs');var _=require(_0xa94f('0xd'));var squel=require(_0xa94f('0xe'));var crypto=require(_0xa94f('0xf'));var jsforce=require(_0xa94f('0x10'));var deskjs=require(_0xa94f('0x11'));var toCsv=require(_0xa94f('0xc'));var querystring=require(_0xa94f('0x12'));var Papa=require(_0xa94f('0x13'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0xa94f('0x14'));var as=require(_0xa94f('0x15'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xa94f('0x16'))(_0xa94f('0x17'));var utils=require(_0xa94f('0x18'));var config=require(_0xa94f('0x19'));var db=require(_0xa94f('0x1a'))['db'];function respondWithStatusCode(_0x20911b,_0x5ab1bf){_0x5ab1bf=_0x5ab1bf||0xcc;return function(_0x1913e6){if(_0x1913e6){return _0x20911b[_0xa94f('0x1b')](_0x5ab1bf);}return _0x20911b['status'](_0x5ab1bf)['end']();};}function respondWithResult(_0xd481b,_0x40a920){_0x40a920=_0x40a920||0xc8;return function(_0x31a478){if(_0x31a478){return _0xd481b['status'](_0x40a920)['json'](_0x31a478);}};}function respondWithFilteredResult(_0x3354d7,_0x1b1310){return function(_0x40f7e2){if(_0x40f7e2){var _0x20bb94=_0x40f7e2[_0xa94f('0x1c')],_0x4128a4=_0x1b1310[_0xa94f('0x1d')],_0x1a39d1=_0x1b1310[_0xa94f('0x1d')]+_0x1b1310[_0xa94f('0x1e')],_0x3d9355;if(_0x1a39d1>=_0x20bb94){_0x1a39d1=_0x20bb94;_0x3d9355=0xc8;}else{_0x3d9355=0xce;}_0x3354d7[_0xa94f('0x1f')](_0x3d9355);return _0x3354d7['set'](_0xa94f('0x20'),_0x4128a4+'-'+_0x1a39d1+'/'+_0x20bb94)['json'](_0x40f7e2);}return null;};}function patchUpdates(_0x167e10){return function(_0x4153a9){try{jsonpatch[_0xa94f('0x21')](_0x4153a9,_0x167e10,!![]);}catch(_0x3054c8){return BPromise[_0xa94f('0x22')](_0x3054c8);}return _0x4153a9[_0xa94f('0x23')]();};}function saveUpdates(_0x5f2172,_0x35cff3){return function(_0x42a9eb){if(_0x42a9eb){return _0x42a9eb[_0xa94f('0x24')](_0x5f2172)['then'](function(_0x5609c6){return _0x5609c6;});}return null;};}function removeEntity(_0x23ec8f,_0x2c807b){return function(_0x1ba2c8){if(_0x1ba2c8){return _0x1ba2c8[_0xa94f('0x25')]()[_0xa94f('0x26')](function(){var _0x208d0e=_0x1ba2c8[_0xa94f('0x27')]({'plain':!![]});var _0x5de0f8='Sounds';return db[_0xa94f('0x28')][_0xa94f('0x25')]({'where':{'type':_0x5de0f8,'resourceId':_0x208d0e['id']}})[_0xa94f('0x26')](function(){return _0x1ba2c8;});})[_0xa94f('0x26')](function(){_0x23ec8f[_0xa94f('0x1f')](0xcc)[_0xa94f('0x29')]();});}};}function handleEntityNotFound(_0x554a5f,_0x258362){return function(_0x2d99e6){if(!_0x2d99e6){_0x554a5f['sendStatus'](0x194);}return _0x2d99e6;};}function handleError(_0x42dfde,_0x46631b){_0x46631b=_0x46631b||0x1f4;return function(_0x68b10b){logger[_0xa94f('0x2a')](_0x68b10b[_0xa94f('0x2b')]);if(_0x68b10b[_0xa94f('0x2c')]){delete _0x68b10b[_0xa94f('0x2c')];}_0x42dfde[_0xa94f('0x1f')](_0x46631b)[_0xa94f('0x2d')](_0x68b10b);};}exports['index']=function(_0x1af26c,_0xd36181){var _0x332859={},_0x186af1={},_0x3251e6={'count':0x0,'rows':[]};var _0x289102=_[_0xa94f('0x2e')](db[_0xa94f('0x2f')][_0xa94f('0x30')],function(_0x24c0be){return{'name':_0x24c0be[_0xa94f('0x31')],'type':_0x24c0be[_0xa94f('0x32')][_0xa94f('0x33')]};});_0x186af1[_0xa94f('0x34')]=_[_0xa94f('0x2e')](_0x289102,_0xa94f('0x2c'));_0x186af1['query']=_[_0xa94f('0x35')](_0x1af26c[_0xa94f('0x36')]);_0x186af1[_0xa94f('0x37')]=_[_0xa94f('0x38')](_0x186af1[_0xa94f('0x34')],_0x186af1['query']);_0x332859[_0xa94f('0x39')]=_[_0xa94f('0x38')](_0x186af1[_0xa94f('0x34')],qs['fields'](_0x1af26c['query'][_0xa94f('0x3a')]));_0x332859[_0xa94f('0x39')]=_0x332859[_0xa94f('0x39')][_0xa94f('0x3b')]?_0x332859[_0xa94f('0x39')]:_0x186af1[_0xa94f('0x34')];if(!_0x1af26c[_0xa94f('0x36')][_0xa94f('0x3c')](_0xa94f('0x3d'))){_0x332859[_0xa94f('0x1e')]=qs[_0xa94f('0x1e')](_0x1af26c[_0xa94f('0x36')][_0xa94f('0x1e')]);_0x332859[_0xa94f('0x1d')]=qs[_0xa94f('0x1d')](_0x1af26c[_0xa94f('0x36')][_0xa94f('0x1d')]);}_0x332859[_0xa94f('0x3e')]=qs[_0xa94f('0x3f')](_0x1af26c['query'][_0xa94f('0x3f')]);_0x332859[_0xa94f('0x40')]=qs[_0xa94f('0x37')](_['pick'](_0x1af26c[_0xa94f('0x36')],_0x186af1[_0xa94f('0x37')]),_0x289102);if(_0x1af26c[_0xa94f('0x36')][_0xa94f('0x41')]){_0x332859[_0xa94f('0x40')]=_[_0xa94f('0x42')](_0x332859[_0xa94f('0x40')],{'$or':_[_0xa94f('0x2e')](_0x289102,function(_0x119ea3){if(_0x119ea3[_0xa94f('0x32')]!==_0xa94f('0x43')){var _0x4fa115={};_0x4fa115[_0x119ea3[_0xa94f('0x2c')]]={'$like':'%'+_0x1af26c[_0xa94f('0x36')]['filter']+'%'};return _0x4fa115;}})});}_0x332859=_[_0xa94f('0x42')]({},_0x332859,_0x1af26c['options']);var _0x3b719f={'where':_0x332859['where']};return db[_0xa94f('0x2f')][_0xa94f('0x1c')](_0x3b719f)[_0xa94f('0x26')](function(_0x4fa507){_0x3251e6[_0xa94f('0x1c')]=_0x4fa507;if(_0x1af26c['query'][_0xa94f('0x44')]){_0x332859['include']=[{'all':!![]}];}return db[_0xa94f('0x2f')][_0xa94f('0x45')](_0x332859);})[_0xa94f('0x26')](function(_0x1a029d){_0x3251e6['rows']=_0x1a029d;return _0x3251e6;})[_0xa94f('0x26')](respondWithFilteredResult(_0xd36181,_0x332859))[_0xa94f('0x46')](handleError(_0xd36181,null));};exports['show']=function(_0x2c3aaf,_0x20602c){var _0x51e13c={'raw':!![],'where':{'id':_0x2c3aaf[_0xa94f('0x47')]['id']}},_0x52b296={};_0x52b296[_0xa94f('0x34')]=_[_0xa94f('0x35')](db[_0xa94f('0x2f')][_0xa94f('0x30')]);_0x52b296[_0xa94f('0x36')]=_[_0xa94f('0x35')](_0x2c3aaf['query']);_0x52b296['filters']=_[_0xa94f('0x38')](_0x52b296[_0xa94f('0x34')],_0x52b296[_0xa94f('0x36')]);_0x51e13c[_0xa94f('0x39')]=_[_0xa94f('0x38')](_0x52b296[_0xa94f('0x34')],qs[_0xa94f('0x3a')](_0x2c3aaf[_0xa94f('0x36')]['fields']));_0x51e13c[_0xa94f('0x39')]=_0x51e13c[_0xa94f('0x39')][_0xa94f('0x3b')]?_0x51e13c['attributes']:_0x52b296[_0xa94f('0x34')];if(_0x2c3aaf[_0xa94f('0x36')]['includeAll']){_0x51e13c['include']=[{'all':!![]}];}_0x51e13c=_[_0xa94f('0x42')]({},_0x51e13c,_0x2c3aaf['options']);return db[_0xa94f('0x2f')][_0xa94f('0x48')](_0x51e13c)[_0xa94f('0x26')](handleEntityNotFound(_0x20602c,null))[_0xa94f('0x26')](respondWithResult(_0x20602c,null))['catch'](handleError(_0x20602c,null));};exports[_0xa94f('0x49')]=function(_0x4cb523,_0x39674d,_0xd63aa8){return db['Sound']['find']({'where':{'id':_0x4cb523[_0xa94f('0x47')]['id']},'attributes':[_0xa94f('0x2c'),_0xa94f('0x4a'),_0xa94f('0x4b')],'raw':!![]})[_0xa94f('0x26')](handleEntityNotFound(_0x39674d,null))[_0xa94f('0x26')](function(_0x566e79){if(_0x566e79){if(!fs[_0xa94f('0x4c')](path[_0xa94f('0x4d')](config[_0xa94f('0x4e')],_0xa94f('0x4f'),_0x566e79[_0xa94f('0x4a')]+'.'+_0x566e79[_0xa94f('0x4b')]))){throw new db['Sequelize'][(_0xa94f('0x50'))](_0xa94f('0x51'));}return _0x39674d[_0xa94f('0x49')](path['join'](config['root'],_0xa94f('0x4f'),util[_0xa94f('0x52')]('%s.%s',_0x566e79['save_name'],_0x566e79[_0xa94f('0x4b')])),util[_0xa94f('0x52')](_0xa94f('0x53'),_0x566e79[_0xa94f('0x2c')],_0x566e79[_0xa94f('0x4b')]));}return null;})[_0xa94f('0x46')](handleError(_0x39674d,null));};exports['create']=function(_0x3faef8,_0x3d1e03,_0x5496f0){var _0x3f8936={'name':path[_0xa94f('0x54')](_0x3faef8[_0xa94f('0x55')]['originalname'],path['extname'](_0x3faef8[_0xa94f('0x55')][_0xa94f('0x56')])),'save_name':path[_0xa94f('0x54')](_0x3faef8[_0xa94f('0x55')][_0xa94f('0x57')],path[_0xa94f('0x58')](_0x3faef8['file'][_0xa94f('0x57')])),'original_format':path['extname'](_0x3faef8[_0xa94f('0x55')][_0xa94f('0x56')])[_0xa94f('0x59')](0x1),'converted_format':_0xa94f('0x5a')};var _0x1de148=path[_0xa94f('0x4d')](config['root'],_0xa94f('0x5b'),_0x3faef8[_0xa94f('0x55')][_0xa94f('0x57')]);var _0x194aa0=path['join'](config[_0xa94f('0x4e')],_0xa94f('0x4f'),util[_0xa94f('0x52')](_0xa94f('0x53'),path['basename'](_0x3faef8[_0xa94f('0x55')][_0xa94f('0x57')],path[_0xa94f('0x58')](_0x3faef8[_0xa94f('0x55')]['filename'])),_0x3f8936[_0xa94f('0x4b')]));logger[_0xa94f('0x5c')](_0xa94f('0x5d'),_0x1de148);logger[_0xa94f('0x5c')]('Sound\x20upload\x20destination:\x20%s',_0x194aa0);try{fs['chmodSync'](_0x1de148,parseInt(_0xa94f('0x5e'),0x8));var _0x363404=sox[_0xa94f('0x5f')](_0x1de148,_0x194aa0,{'sampleRate':0x1f40,'format':'wav','channelCount':0x1,'bitRate':0xc0*0x400,'compressionQuality':0x5});_0x363404['on'](_0xa94f('0x2a'),function(_0x3d4162){fs[_0xa94f('0x60')](_0x1de148);_0x3d1e03['status'](0x1f4)[_0xa94f('0x2d')](_0x3d4162);});_0x363404['on'](_0xa94f('0x61'),function(_0x668066){_0x3f8936[_0xa94f('0x62')]=isNaN(_0x668066['duration'])?null:_0x668066[_0xa94f('0x63')]*0x3e8;_0x3f8936[_0xa94f('0x64')]=isNaN(_0x668066['sampleCount'])?null:_0x668066[_0xa94f('0x65')];_0x3f8936[_0xa94f('0x66')]=isNaN(_0x668066[_0xa94f('0x67')])?null:_0x668066[_0xa94f('0x67')];_0x3f8936['original_bitRate']=isNaN(_0x668066[_0xa94f('0x68')])?null:_0x668066['bitRate'];_0x3f8936[_0xa94f('0x69')]=isNaN(_0x668066[_0xa94f('0x6a')])?null:_0x668066[_0xa94f('0x6a')];});_0x363404['on']('dest',function(_0x2046e9){_0x3f8936[_0xa94f('0x6b')]=isNaN(_0x2046e9[_0xa94f('0x63')])?null:_0x2046e9[_0xa94f('0x63')]*0x3e8;_0x3f8936[_0xa94f('0x6c')]=isNaN(_0x2046e9[_0xa94f('0x65')])?null:_0x2046e9[_0xa94f('0x65')];_0x3f8936[_0xa94f('0x6d')]=isNaN(_0x2046e9[_0xa94f('0x67')])?null:_0x2046e9[_0xa94f('0x67')];_0x3f8936[_0xa94f('0x6e')]=isNaN(_0x2046e9['bitRate'])?null:_0x2046e9[_0xa94f('0x68')];_0x3f8936[_0xa94f('0x6f')]=isNaN(_0x2046e9[_0xa94f('0x6a')])?null:_0x2046e9['sampleRate'];});_0x363404['on'](_0xa94f('0x29'),function(){fs['chmodSync'](_0x194aa0,parseInt(_0xa94f('0x5e'),0x8));return db['Sound'][_0xa94f('0x70')](_0x3f8936)[_0xa94f('0x26')](function(_0x46591b){var _0x3d8826={'role':_0x3faef8[_0xa94f('0x71')][_0xa94f('0x72')],'userProfileId':_0x3faef8[_0xa94f('0x71')][_0xa94f('0x73')]};if(!_0x3d8826)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x3d8826[_0xa94f('0x72')]===_0xa94f('0x74')){var _0x4bb547=_0x46591b[_0xa94f('0x27')]({'plain':!![]});return db[_0xa94f('0x75')]['find']({'where':{'name':'Sounds','userProfileId':_0x3d8826[_0xa94f('0x73')]},'raw':!![]})['then'](function(_0x40a6a7){if(_0x40a6a7&&_0x40a6a7[_0xa94f('0x76')]===0x0){return db[_0xa94f('0x28')][_0xa94f('0x70')]({'name':_0x4bb547[_0xa94f('0x2c')],'resourceId':_0x4bb547['id'],'type':_0x40a6a7[_0xa94f('0x2c')],'sectionId':_0x40a6a7['id']},{})['then'](function(){return _0x46591b;});}else{return _0x46591b;}})[_0xa94f('0x46')](function(_0x43b435){logger[_0xa94f('0x2a')](_0xa94f('0x77'),_0x43b435);throw _0x43b435;});}return _0x46591b;})[_0xa94f('0x26')](respondWithResult(_0x3d1e03,null))['catch'](handleError(_0x3d1e03,null));});_0x363404[_0xa94f('0x78')]();}catch(_0x21a39b){_0x3d1e03[_0xa94f('0x1f')](0x1f4)[_0xa94f('0x2d')](_0x21a39b);}};exports[_0xa94f('0x24')]=function(_0x4fe3fe,_0x1d3cc6,_0x582d79){return db[_0xa94f('0x2f')][_0xa94f('0x48')]({'where':{'id':_0x4fe3fe['params']['id']}})[_0xa94f('0x26')](handleEntityNotFound(_0x1d3cc6,null))[_0xa94f('0x26')](saveUpdates(_[_0xa94f('0x79')](_0x4fe3fe[_0xa94f('0x71')],[_0xa94f('0x2c'),'description']),null))[_0xa94f('0x26')](respondWithResult(_0x1d3cc6,null))[_0xa94f('0x46')](handleError(_0x1d3cc6,null));};exports[_0xa94f('0x7a')]=function(_0xa8e59c,_0x400da7,_0x4e7e75){return db['Sound'][_0xa94f('0x48')]({'where':{'id':_0xa8e59c[_0xa94f('0x47')]['id']}})[_0xa94f('0x26')](function(_0x3c5f18){if(_0x3c5f18){return _0x3c5f18['destroy']();}})['then'](function(_0x49bd){var _0x4640d0=path[_0xa94f('0x4d')](config[_0xa94f('0x4e')],_0xa94f('0x5b'),util['format']('%s.%s',_0x49bd[_0xa94f('0x4a')],_0x49bd[_0xa94f('0x7b')]));var _0xef4cdf=path[_0xa94f('0x4d')](config['root'],'server/files/sounds/converted',util[_0xa94f('0x52')](_0xa94f('0x53'),_0x49bd[_0xa94f('0x4a')],_0x49bd[_0xa94f('0x4b')]));fs['unlinkSync'](_0x4640d0);fs[_0xa94f('0x60')](_0xef4cdf);return _0x49bd;})[_0xa94f('0x26')](function(_0x4879d7){if(_0x4879d7){return _0x400da7[_0xa94f('0x1f')](0xcc)[_0xa94f('0x29')]();}})[_0xa94f('0x26')](handleEntityNotFound(_0x400da7,null))[_0xa94f('0x46')](handleError(_0x400da7,null));};