Built motion from commit 67e5df37.|2.0.66
[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 _0x2130=['description','delete','original_format','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','api','../../config/utils','../../mysqldb','status','end','count','offset','limit','set','json','apply','reject','save','update','then','destroy','sendStatus','error','stack','name','index','keys','Sound','rawAttributes','query','dateStart','dateEnd','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','where','pick','add','day','merge','filter','options','includeAll','findAll','rows','catch','show','params','include','find','download','save_name','converted_format','existsSync','join','root','server/files/sounds/converted','Sequelize','Sound\x20not\x20found','%s.%s','create','basename','originalname','extname','file','filename','substring','wav','server/files/sounds/original','format','Sound\x20upload\x20filepath:\x20%s','info','chmodSync','unlinkSync','send','src','original_duration','duration','original_sampleCount','sampleCount','original_channelCount','channelCount','original_bitRate','bitRate','sampleRate','dest','converted_sampleCount','converted_channelCount','converted_sampleRate','0777','start'];(function(_0x363e11,_0x4b5db8){var _0x2df088=function(_0xe38ceb){while(--_0xe38ceb){_0x363e11['push'](_0x363e11['shift']());}};_0x2df088(++_0x4b5db8);}(_0x2130,0x150));var _0x0213=function(_0x40bffc,_0x3a45d7){_0x40bffc=_0x40bffc-0x0;var _0x3007e9=_0x2130[_0x40bffc];return _0x3007e9;};'use strict';var jsonpatch=require('fast-json-patch');var rp=require(_0x0213('0x0'));var moment=require(_0x0213('0x1'));var BPromise=require(_0x0213('0x2'));var Mustache=require(_0x0213('0x3'));var util=require(_0x0213('0x4'));var path=require(_0x0213('0x5'));var sox=require(_0x0213('0x6'));var csv=require(_0x0213('0x7'));var ejs=require(_0x0213('0x8'));var fs=require('fs');var _=require(_0x0213('0x9'));var squel=require(_0x0213('0xa'));var crypto=require(_0x0213('0xb'));var jsforce=require(_0x0213('0xc'));var deskjs=require(_0x0213('0xd'));var toCsv=require(_0x0213('0x7'));var querystring=require(_0x0213('0xe'));var Papa=require(_0x0213('0xf'));var qs=require('../../components/parsers/qs');var logger=require('../../config/logger')(_0x0213('0x10'));var utils=require(_0x0213('0x11'));var config=require('../../config/environment');var db=require(_0x0213('0x12'))['db'];function respondWithStatusCode(_0x4a5d94,_0x5b8eb8){_0x5b8eb8=_0x5b8eb8||0xcc;return function(_0x1495f8){if(_0x1495f8){return _0x4a5d94['sendStatus'](_0x5b8eb8);}return _0x4a5d94[_0x0213('0x13')](_0x5b8eb8)[_0x0213('0x14')]();};}function respondWithResult(_0xd03371,_0x6b8d9b){_0x6b8d9b=_0x6b8d9b||0xc8;return function(_0xf0503d){if(_0xf0503d){return _0xd03371[_0x0213('0x13')](_0x6b8d9b)['json'](_0xf0503d);}};}function respondWithFilteredResult(_0x14b093,_0x2b3bf0){return function(_0xd535b6){if(_0xd535b6){var _0x1efd9e=_0xd535b6[_0x0213('0x15')],_0x1b2555=_0x2b3bf0[_0x0213('0x16')],_0x31c39c=_0x2b3bf0[_0x0213('0x16')]+_0x2b3bf0[_0x0213('0x17')],_0x51bfab;if(_0x31c39c>=_0x1efd9e){_0x31c39c=_0x1efd9e;_0x51bfab=0xc8;}else{_0x51bfab=0xce;}_0x14b093[_0x0213('0x13')](_0x51bfab);return _0x14b093[_0x0213('0x18')]('Content-Range',_0x1b2555+'-'+_0x31c39c+'/'+_0x1efd9e)[_0x0213('0x19')](_0xd535b6);}return null;};}function patchUpdates(_0xa21469){return function(_0x31b82f){try{jsonpatch[_0x0213('0x1a')](_0x31b82f,_0xa21469,!![]);}catch(_0x3dc4b8){return BPromise[_0x0213('0x1b')](_0x3dc4b8);}return _0x31b82f[_0x0213('0x1c')]();};}function saveUpdates(_0x487416,_0x54b0f2){return function(_0x40de60){if(_0x40de60){return _0x40de60[_0x0213('0x1d')](_0x487416)[_0x0213('0x1e')](function(_0xf6aa4d){return _0xf6aa4d;});}return null;};}function removeEntity(_0x432d48,_0x56d5ab){return function(_0x141640){if(_0x141640){return _0x141640[_0x0213('0x1f')]()[_0x0213('0x1e')](function(){_0x432d48[_0x0213('0x13')](0xcc)[_0x0213('0x14')]();});}};}function handleEntityNotFound(_0x4193b3,_0x12a01a){return function(_0x1acb5f){if(!_0x1acb5f){_0x4193b3[_0x0213('0x20')](0x194);}return _0x1acb5f;};}function handleError(_0x39649c,_0x520c5f){_0x520c5f=_0x520c5f||0x1f4;return function(_0x1dc792){logger[_0x0213('0x21')](_0x1dc792[_0x0213('0x22')]);if(_0x1dc792[_0x0213('0x23')]){delete _0x1dc792[_0x0213('0x23')];}_0x39649c[_0x0213('0x13')](_0x520c5f)['send'](_0x1dc792);};}exports[_0x0213('0x24')]=function(_0x7dc361,_0x5b0904){var _0x739152={},_0xafceb6={},_0x4d2296={'count':0x0,'rows':[]};_0xafceb6['model']=_[_0x0213('0x25')](db[_0x0213('0x26')][_0x0213('0x27')]);var _0x3ce4aa={'dateStart':_0x7dc361[_0x0213('0x28')][_0x0213('0x29')],'dateEnd':_0x7dc361[_0x0213('0x28')][_0x0213('0x2a')]};delete _0x7dc361[_0x0213('0x28')][_0x0213('0x29')];delete _0x7dc361['query'][_0x0213('0x2a')];_0xafceb6['query']=_[_0x0213('0x25')](_0x7dc361[_0x0213('0x28')]);_0xafceb6[_0x0213('0x2b')]=_[_0x0213('0x2c')](_0xafceb6[_0x0213('0x2d')],_0xafceb6[_0x0213('0x28')]);_0x739152[_0x0213('0x2e')]=_[_0x0213('0x2c')](_0xafceb6['model'],qs['fields'](_0x7dc361[_0x0213('0x28')][_0x0213('0x2f')]));_0x739152['attributes']=_0x739152[_0x0213('0x2e')][_0x0213('0x30')]?_0x739152[_0x0213('0x2e')]:_0xafceb6[_0x0213('0x2d')];if(!_0x7dc361[_0x0213('0x28')][_0x0213('0x31')](_0x0213('0x32'))){_0x739152['limit']=qs[_0x0213('0x17')](_0x7dc361['query']['limit']);_0x739152[_0x0213('0x16')]=qs['offset'](_0x7dc361[_0x0213('0x28')][_0x0213('0x16')]);}_0x739152[_0x0213('0x33')]=qs['sort'](_0x7dc361['query']['sort']);_0x739152[_0x0213('0x34')]=qs[_0x0213('0x2b')](_[_0x0213('0x35')](_0x7dc361['query'],_0xafceb6['filters']));if(_0x3ce4aa[_0x0213('0x29')]){if(_0x3ce4aa[_0x0213('0x2a')]){_0x3ce4aa[_0x0213('0x2a')]=moment(_0x3ce4aa[_0x0213('0x2a')])[_0x0213('0x36')](0x1,'day');}else{_0x3ce4aa[_0x0213('0x2a')]=moment(_0x3ce4aa[_0x0213('0x29')])[_0x0213('0x36')](0x1,_0x0213('0x37'));}_[_0x0213('0x38')](_0x739152[_0x0213('0x34')],{'createdAt':{'$gte':_0x3ce4aa[_0x0213('0x29')],'$lte':_0x3ce4aa[_0x0213('0x2a')]}});}if(_0x7dc361['query'][_0x0213('0x39')]){_0x739152['where']=_[_0x0213('0x38')](_0x739152['where'],{'$or':_['map'](_0x739152['attributes'],function(_0x22025e){var _0x7ebbf8={};_0x7ebbf8[_0x22025e]={'$like':'%'+_0x7dc361['query'][_0x0213('0x39')]+'%'};return _0x7ebbf8;})});}_0x739152=_[_0x0213('0x38')]({},_0x739152,_0x7dc361[_0x0213('0x3a')]);var _0x2062fe={'where':_0x739152[_0x0213('0x34')]};return db[_0x0213('0x26')]['count'](_0x2062fe)[_0x0213('0x1e')](function(_0x13edb5){_0x4d2296[_0x0213('0x15')]=_0x13edb5;if(_0x7dc361[_0x0213('0x28')][_0x0213('0x3b')]){_0x739152['include']=[{'all':!![]}];}return db[_0x0213('0x26')][_0x0213('0x3c')](_0x739152);})[_0x0213('0x1e')](function(_0x3e8b7c){_0x4d2296[_0x0213('0x3d')]=_0x3e8b7c;return _0x4d2296;})[_0x0213('0x1e')](respondWithFilteredResult(_0x5b0904,_0x739152))[_0x0213('0x3e')](handleError(_0x5b0904,null));};exports[_0x0213('0x3f')]=function(_0x55ca07,_0x34ca63){var _0x31731c={'raw':!![],'where':{'id':_0x55ca07[_0x0213('0x40')]['id']}},_0x5d970d={};_0x5d970d[_0x0213('0x2d')]=_[_0x0213('0x25')](db[_0x0213('0x26')][_0x0213('0x27')]);_0x5d970d[_0x0213('0x28')]=_[_0x0213('0x25')](_0x55ca07[_0x0213('0x28')]);_0x5d970d[_0x0213('0x2b')]=_[_0x0213('0x2c')](_0x5d970d[_0x0213('0x2d')],_0x5d970d[_0x0213('0x28')]);_0x31731c['attributes']=_[_0x0213('0x2c')](_0x5d970d[_0x0213('0x2d')],qs['fields'](_0x55ca07[_0x0213('0x28')][_0x0213('0x2f')]));_0x31731c[_0x0213('0x2e')]=_0x31731c['attributes']['length']?_0x31731c['attributes']:_0x5d970d['model'];if(_0x55ca07[_0x0213('0x28')][_0x0213('0x3b')]){_0x31731c[_0x0213('0x41')]=[{'all':!![]}];}_0x31731c=_['merge']({},_0x31731c,_0x55ca07[_0x0213('0x3a')]);return db['Sound'][_0x0213('0x42')](_0x31731c)[_0x0213('0x1e')](handleEntityNotFound(_0x34ca63,null))[_0x0213('0x1e')](respondWithResult(_0x34ca63,null))[_0x0213('0x3e')](handleError(_0x34ca63,null));};exports[_0x0213('0x43')]=function(_0x285ff8,_0x131f8d,_0x2c3fa1){return db[_0x0213('0x26')]['find']({'where':{'id':_0x285ff8[_0x0213('0x40')]['id']},'attributes':[_0x0213('0x23'),_0x0213('0x44'),_0x0213('0x45')],'raw':!![]})[_0x0213('0x1e')](handleEntityNotFound(_0x131f8d,null))[_0x0213('0x1e')](function(_0x6c2046){if(_0x6c2046){if(!fs[_0x0213('0x46')](path[_0x0213('0x47')](config[_0x0213('0x48')],_0x0213('0x49'),_0x6c2046[_0x0213('0x44')]+'.'+_0x6c2046['converted_format']))){throw new db[(_0x0213('0x4a'))]['ValidationError'](_0x0213('0x4b'));}return _0x131f8d[_0x0213('0x43')](path[_0x0213('0x47')](config[_0x0213('0x48')],_0x0213('0x49'),util['format'](_0x0213('0x4c'),_0x6c2046[_0x0213('0x44')],_0x6c2046[_0x0213('0x45')])),util['format'](_0x0213('0x4c'),_0x6c2046[_0x0213('0x23')],_0x6c2046[_0x0213('0x45')]));}return null;})[_0x0213('0x3e')](handleError(_0x131f8d,null));};exports[_0x0213('0x4d')]=function(_0x58aac4,_0xe00c64,_0x58df38){var _0x5eaa32={'name':path[_0x0213('0x4e')](_0x58aac4['file'][_0x0213('0x4f')],path[_0x0213('0x50')](_0x58aac4[_0x0213('0x51')][_0x0213('0x4f')])),'save_name':path[_0x0213('0x4e')](_0x58aac4[_0x0213('0x51')][_0x0213('0x52')],path['extname'](_0x58aac4[_0x0213('0x51')][_0x0213('0x52')])),'original_format':path['extname'](_0x58aac4[_0x0213('0x51')][_0x0213('0x4f')])[_0x0213('0x53')](0x1),'converted_format':_0x0213('0x54')};var _0x48b279=path[_0x0213('0x47')](config['root'],_0x0213('0x55'),_0x58aac4[_0x0213('0x51')][_0x0213('0x52')]);var _0xd5e865=path['join'](config['root'],'server/files/sounds/converted',util[_0x0213('0x56')]('%s.%s',path[_0x0213('0x4e')](_0x58aac4[_0x0213('0x51')][_0x0213('0x52')],path['extname'](_0x58aac4[_0x0213('0x51')][_0x0213('0x52')])),_0x5eaa32[_0x0213('0x45')]));logger['info'](_0x0213('0x57'),_0x48b279);logger[_0x0213('0x58')]('Sound\x20upload\x20destination:\x20%s',_0xd5e865);try{fs[_0x0213('0x59')](_0x48b279,parseInt('0777',0x8));var _0x207ada=sox['transcode'](_0x48b279,_0xd5e865,{'sampleRate':0x1f40,'format':'wav','channelCount':0x1,'bitRate':0xc0*0x400,'compressionQuality':0x5});_0x207ada['on'](_0x0213('0x21'),function(_0x57090d){fs[_0x0213('0x5a')](_0x48b279);_0xe00c64[_0x0213('0x13')](0x1f4)[_0x0213('0x5b')](_0x57090d);});_0x207ada['on'](_0x0213('0x5c'),function(_0x9e9bb4){_0x5eaa32[_0x0213('0x5d')]=isNaN(_0x9e9bb4[_0x0213('0x5e')])?null:_0x9e9bb4['duration']*0x3e8;_0x5eaa32[_0x0213('0x5f')]=isNaN(_0x9e9bb4[_0x0213('0x60')])?null:_0x9e9bb4['sampleCount'];_0x5eaa32[_0x0213('0x61')]=isNaN(_0x9e9bb4[_0x0213('0x62')])?null:_0x9e9bb4[_0x0213('0x62')];_0x5eaa32[_0x0213('0x63')]=isNaN(_0x9e9bb4[_0x0213('0x64')])?null:_0x9e9bb4[_0x0213('0x64')];_0x5eaa32['original_sampleRate']=isNaN(_0x9e9bb4[_0x0213('0x65')])?null:_0x9e9bb4['sampleRate'];});_0x207ada['on'](_0x0213('0x66'),function(_0x309e4d){_0x5eaa32['converted_duration']=isNaN(_0x309e4d['duration'])?null:_0x309e4d[_0x0213('0x5e')]*0x3e8;_0x5eaa32[_0x0213('0x67')]=isNaN(_0x309e4d[_0x0213('0x60')])?null:_0x309e4d[_0x0213('0x60')];_0x5eaa32[_0x0213('0x68')]=isNaN(_0x309e4d['channelCount'])?null:_0x309e4d[_0x0213('0x62')];_0x5eaa32['converted_bitRate']=isNaN(_0x309e4d[_0x0213('0x64')])?null:_0x309e4d['bitRate'];_0x5eaa32[_0x0213('0x69')]=isNaN(_0x309e4d['sampleRate'])?null:_0x309e4d[_0x0213('0x65')];});_0x207ada['on'](_0x0213('0x14'),function(){fs[_0x0213('0x59')](_0xd5e865,parseInt(_0x0213('0x6a'),0x8));return db[_0x0213('0x26')][_0x0213('0x4d')](_0x5eaa32)[_0x0213('0x1e')](respondWithResult(_0xe00c64,null))[_0x0213('0x3e')](handleError(_0xe00c64,null));});_0x207ada[_0x0213('0x6b')]();}catch(_0x1fb710){_0xe00c64[_0x0213('0x13')](0x1f4)[_0x0213('0x5b')](_0x1fb710);}};exports[_0x0213('0x1d')]=function(_0x2c2c89,_0x119e6d,_0x25b5b7){return db[_0x0213('0x26')]['find']({'where':{'id':_0x2c2c89[_0x0213('0x40')]['id']}})[_0x0213('0x1e')](handleEntityNotFound(_0x119e6d,null))[_0x0213('0x1e')](saveUpdates(_[_0x0213('0x35')](_0x2c2c89['body'],['name',_0x0213('0x6c')]),null))[_0x0213('0x1e')](respondWithResult(_0x119e6d,null))[_0x0213('0x3e')](handleError(_0x119e6d,null));};exports[_0x0213('0x6d')]=function(_0x1c2352,_0x5a6dc7,_0x5dcea9){return db[_0x0213('0x26')][_0x0213('0x42')]({'where':{'id':_0x1c2352[_0x0213('0x40')]['id']}})[_0x0213('0x1e')](function(_0x37dc47){if(_0x37dc47){return _0x37dc47[_0x0213('0x1f')]();}})[_0x0213('0x1e')](function(_0x117340){var _0x4e7bc3=path[_0x0213('0x47')](config[_0x0213('0x48')],_0x0213('0x55'),util['format'](_0x0213('0x4c'),_0x117340[_0x0213('0x44')],_0x117340[_0x0213('0x6e')]));var _0x446bfb=path['join'](config[_0x0213('0x48')],'server/files/sounds/converted',util[_0x0213('0x56')](_0x0213('0x4c'),_0x117340[_0x0213('0x44')],_0x117340['converted_format']));fs[_0x0213('0x5a')](_0x4e7bc3);fs[_0x0213('0x5a')](_0x446bfb);return _0x117340;})[_0x0213('0x1e')](function(_0x3907e4){if(_0x3907e4){return _0x5a6dc7[_0x0213('0x13')](0xcc)[_0x0213('0x14')]();}})[_0x0213('0x1e')](handleEntityNotFound(_0x5a6dc7,null))[_0x0213('0x3e')](handleError(_0x5a6dc7,null));};