9b0d4e0b21508817ac46fcdc7587dad1ae2b0748
[motion2.git] / server / api / voiceRecording / voiceRecording.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 _0x08b8=['count','limit','reject','save','update','then','destroy','error','stack','name','send','index','map','VoiceRecording','rawAttributes','fieldName','model','format','query','keys','filters','attributes','fields','nolimit','sort','where','pick','filter','merge','type','VIRTUAL','includeAll','findAll','rows','params','intersection','length','include','options','find','catch','create','body','describe','download','../../components/encryptor','uniqueid','value','%s.cypher','decryptFile','recording','existsSync','Sequelize','filename','extname','unlink','message','VoiceRecording\x20not\x20found','Not\x20found','downloads','sequelize','MD5','token','$and','secrets','ValidationError','isNil','Entity\x20not\x20found','info','File:\x20\x22','unlinkSync','listBuckets','createBucket','TranscribeService','startTranscriptionJob','[RUNTRANSCRIPT][%d]\x20Starting\x20voice\x20recording\x20upload\x20in\x20bucket\x20%s','basename','readFileSync','[RUNTRANSCRIPT][%d]\x20Voice\x20recording\x20uploaded\x20in\x20bucket\x20%s\x20(%s)','Location','bucket','[RUNTRANSCRIPT][%d]\x20Sending\x20transcribe\x20request','[RUNTRANSCRIPT][%d]\x20Transcription\x20job\x20%s\x20created','TranscriptionJob','TranscriptionJobName','transcribeName','transcribeStatus','TranscriptionJobStatus','findOne','Voice\x20Recording\x20not\x20found','transcribeAccountId','transcribeRegion','language','runSentiment','sentiment','sentimentAccountId','sentimentRegion','Sentiment\x20Analysis\x20not\x20configured','CloudProvider','data1','data2','Cloud\x20Provider\x20not\x20configured','Buckets','Name','[RUNTRANSCRIPT][%d]\x20Bucket\x20%s\x20not\x20available','[RUNTRANSCRIPT][%d]\x20Bucket\x20%s\x20available','NEW','[RUNTRANSCRIPT][%d]\x20Transcript\x20action\x20already\x20requested','IN_PROGRESS','tempSentiment','updateAttributes','writeFile','fileText','root','/server/files/transcribes/transcribe_','.txt','Transcript\x20not\x20available','eml-format','rimraf','zip-dir','request-promise','moment','mustache','path','sox','to-csv','fs-extra','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','end','offset','undefined'];(function(_0xccc860,_0x32f954){var _0x54f922=function(_0x1de4d6){while(--_0x1de4d6){_0xccc860['push'](_0xccc860['shift']());}};_0x54f922(++_0x32f954);}(_0x08b8,0x19b));var _0x808b=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0x08b8[_0x321bb2];return _0x9c12ed;};'use strict';var emlformat=require(_0x808b('0x0'));var rimraf=require(_0x808b('0x1'));var zipdir=require(_0x808b('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x808b('0x3'));var moment=require(_0x808b('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x808b('0x5'));var util=require('util');var path=require(_0x808b('0x6'));var sox=require(_0x808b('0x7'));var csv=require(_0x808b('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x808b('0x9'));var _=require(_0x808b('0xa'));var squel=require(_0x808b('0xb'));var crypto=require('crypto');var jsforce=require(_0x808b('0xc'));var deskjs=require(_0x808b('0xd'));var toCsv=require(_0x808b('0x8'));var querystring=require(_0x808b('0xe'));var Papa=require(_0x808b('0xf'));var AWS=require('aws-sdk');var uuidv4=require('uuid/v4');var Redis=require(_0x808b('0x10'));var authService=require(_0x808b('0x11'));var qs=require(_0x808b('0x12'));var as=require(_0x808b('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x808b('0x14'))(_0x808b('0x15'));var utils=require(_0x808b('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0x808b('0x17'));var db=require(_0x808b('0x18'))['db'];function respondWithStatusCode(_0x1a5b57,_0x1ff1f6){_0x1ff1f6=_0x1ff1f6||0xcc;return function(_0xdf0d0c){if(_0xdf0d0c){return _0x1a5b57[_0x808b('0x19')](_0x1ff1f6);}return _0x1a5b57[_0x808b('0x1a')](_0x1ff1f6)[_0x808b('0x1b')]();};}function respondWithResult(_0x322ee5,_0x243033){_0x243033=_0x243033||0xc8;return function(_0x1280a8){if(_0x1280a8){return _0x322ee5['status'](_0x243033)['json'](_0x1280a8);}};}function respondWithFilteredResult(_0x201c99,_0x2b4b43){return function(_0x1cb0ff){if(_0x1cb0ff){var _0x5eab9c=typeof _0x2b4b43[_0x808b('0x1c')]===_0x808b('0x1d')&&typeof _0x2b4b43['limit']===_0x808b('0x1d');var _0x22bf76=_0x1cb0ff['count'];var _0x42d82b=_0x5eab9c?0x0:_0x2b4b43[_0x808b('0x1c')];var _0x1967e4=_0x5eab9c?_0x1cb0ff[_0x808b('0x1e')]:_0x2b4b43[_0x808b('0x1c')]+_0x2b4b43[_0x808b('0x1f')];var _0x4e0490;if(_0x1967e4>=_0x22bf76){_0x1967e4=_0x22bf76;_0x4e0490=0xc8;}else{_0x4e0490=0xce;}_0x201c99[_0x808b('0x1a')](_0x4e0490);return _0x201c99['set']('Content-Range',_0x42d82b+'-'+_0x1967e4+'/'+_0x22bf76)['json'](_0x1cb0ff);}return null;};}function patchUpdates(_0x514bbc){return function(_0x90db7a){try{jsonpatch['apply'](_0x90db7a,_0x514bbc,!![]);}catch(_0x15c215){return BPromise[_0x808b('0x20')](_0x15c215);}return _0x90db7a[_0x808b('0x21')]();};}function saveUpdates(_0x51a1e7,_0x16940d){return function(_0x16b860){if(_0x16b860){return _0x16b860[_0x808b('0x22')](_0x51a1e7)[_0x808b('0x23')](function(_0x5ba385){return _0x5ba385;});}return null;};}function removeEntity(_0x3e972b,_0x4db5be){return function(_0x59a0dd){if(_0x59a0dd){return _0x59a0dd[_0x808b('0x24')]()['then'](function(){_0x3e972b[_0x808b('0x1a')](0xcc)[_0x808b('0x1b')]();});}};}function handleEntityNotFound(_0x19d70b,_0x3ddddf){return function(_0x513988){if(!_0x513988){_0x19d70b[_0x808b('0x19')](0x194);}return _0x513988;};}function handleError(_0x263706,_0x102fb9){_0x102fb9=_0x102fb9||0x1f4;return function(_0xe6ae84){logger[_0x808b('0x25')](_0xe6ae84[_0x808b('0x26')]);if(_0xe6ae84[_0x808b('0x27')]){delete _0xe6ae84[_0x808b('0x27')];}_0x263706[_0x808b('0x1a')](_0x102fb9)[_0x808b('0x28')](_0xe6ae84);};}exports[_0x808b('0x29')]=function(_0x4d587b,_0x4f2a85){var _0x34cb17={},_0x183f03={},_0x34a2da={'count':0x0,'rows':[]};var _0x3ce5b6=_[_0x808b('0x2a')](db[_0x808b('0x2b')][_0x808b('0x2c')],function(_0x14c6a7){return{'name':_0x14c6a7[_0x808b('0x2d')],'type':_0x14c6a7['type']['key']};});_0x183f03[_0x808b('0x2e')]=_['differenceBy'](_[_0x808b('0x2a')](_0x3ce5b6,_0x808b('0x27')),[_0x808b('0x2f')]);_0x183f03[_0x808b('0x30')]=_[_0x808b('0x31')](_0x4d587b[_0x808b('0x30')]);_0x183f03[_0x808b('0x32')]=_['intersection'](_0x183f03[_0x808b('0x2e')],_0x183f03[_0x808b('0x30')]);_0x34cb17[_0x808b('0x33')]=_['intersection'](_0x183f03[_0x808b('0x2e')],qs[_0x808b('0x34')](_0x4d587b[_0x808b('0x30')][_0x808b('0x34')]));_0x34cb17['attributes']=_0x34cb17[_0x808b('0x33')]['length']?_0x34cb17[_0x808b('0x33')]:_0x183f03[_0x808b('0x2e')];if(!_0x4d587b['query']['hasOwnProperty'](_0x808b('0x35'))){_0x34cb17[_0x808b('0x1f')]=qs['limit'](_0x4d587b[_0x808b('0x30')][_0x808b('0x1f')]);_0x34cb17[_0x808b('0x1c')]=qs[_0x808b('0x1c')](_0x4d587b[_0x808b('0x30')][_0x808b('0x1c')]);}_0x34cb17['order']=qs[_0x808b('0x36')](_0x4d587b['query'][_0x808b('0x36')]);_0x34cb17[_0x808b('0x37')]=qs[_0x808b('0x32')](_[_0x808b('0x38')](_0x4d587b[_0x808b('0x30')],_0x183f03[_0x808b('0x32')]),_0x3ce5b6);if(_0x4d587b[_0x808b('0x30')][_0x808b('0x39')]){_0x34cb17[_0x808b('0x37')]=_[_0x808b('0x3a')](_0x34cb17['where'],{'$or':_[_0x808b('0x2a')](_0x3ce5b6,function(_0x41474a){if(_0x41474a[_0x808b('0x3b')]!==_0x808b('0x3c')){var _0x2eeb4e={};_0x2eeb4e[_0x41474a[_0x808b('0x27')]]={'$like':'%'+_0x4d587b[_0x808b('0x30')]['filter']+'%'};return _0x2eeb4e;}})});}_0x34cb17=_[_0x808b('0x3a')]({},_0x34cb17,_0x4d587b['options']);var _0x288ba4={'where':_0x34cb17[_0x808b('0x37')]};return db[_0x808b('0x2b')][_0x808b('0x1e')](_0x288ba4)[_0x808b('0x23')](function(_0x41e161){_0x34a2da[_0x808b('0x1e')]=_0x41e161;if(_0x4d587b['query'][_0x808b('0x3d')]){_0x34cb17['include']=[{'all':!![]}];}return db[_0x808b('0x2b')][_0x808b('0x3e')](_0x34cb17);})[_0x808b('0x23')](function(_0x2a5e5d){_0x34a2da[_0x808b('0x3f')]=_0x2a5e5d;return _0x34a2da;})['then'](respondWithFilteredResult(_0x4f2a85,_0x34cb17))['catch'](handleError(_0x4f2a85,null));};exports['show']=function(_0x44c568,_0x136f9b){var _0x308c4b={'raw':![],'where':{'id':_0x44c568[_0x808b('0x40')]['id']}},_0x4e0bc6={};_0x4e0bc6[_0x808b('0x2e')]=_[_0x808b('0x31')](db['VoiceRecording'][_0x808b('0x2c')]);_0x4e0bc6[_0x808b('0x30')]=_['keys'](_0x44c568['query']);_0x4e0bc6[_0x808b('0x32')]=_[_0x808b('0x41')](_0x4e0bc6[_0x808b('0x2e')],_0x4e0bc6[_0x808b('0x30')]);_0x308c4b[_0x808b('0x33')]=_['intersection'](_0x4e0bc6[_0x808b('0x2e')],qs[_0x808b('0x34')](_0x44c568[_0x808b('0x30')][_0x808b('0x34')]));_0x308c4b[_0x808b('0x33')]=_0x308c4b['attributes'][_0x808b('0x42')]?_0x308c4b['attributes']:_0x4e0bc6['model'];if(_0x44c568['query']['includeAll']){_0x308c4b[_0x808b('0x43')]=[{'all':!![]}];}_0x308c4b=_[_0x808b('0x3a')]({},_0x308c4b,_0x44c568[_0x808b('0x44')]);return db[_0x808b('0x2b')][_0x808b('0x45')](_0x308c4b)['then'](handleEntityNotFound(_0x136f9b,null))[_0x808b('0x23')](respondWithResult(_0x136f9b,null))[_0x808b('0x46')](handleError(_0x136f9b,null));};exports['create']=function(_0x1b1318,_0xd82de5){return db['VoiceRecording'][_0x808b('0x47')](_0x1b1318[_0x808b('0x48')],{})['then'](respondWithResult(_0xd82de5,0xc9))[_0x808b('0x46')](handleError(_0xd82de5,null));};exports[_0x808b('0x22')]=function(_0x43fad6,_0x2ea489){if(_0x43fad6['body']['id']){delete _0x43fad6[_0x808b('0x48')]['id'];}return db[_0x808b('0x2b')][_0x808b('0x45')]({'where':{'id':_0x43fad6[_0x808b('0x40')]['id']}})['then'](handleEntityNotFound(_0x2ea489,null))[_0x808b('0x23')](saveUpdates(_0x43fad6[_0x808b('0x48')],null))['then'](respondWithResult(_0x2ea489,null))['catch'](handleError(_0x2ea489,null));};exports[_0x808b('0x49')]=function(_0x205eb6,_0x3a6694){return db[_0x808b('0x2b')][_0x808b('0x49')]()['then'](respondWithResult(_0x3a6694,null))['catch'](handleError(_0x3a6694,null));};exports[_0x808b('0x4a')]=function(_0x928da9,_0x259177,_0x407878){var _0x391b69=require(_0x808b('0x4b'));var _0x5e7fc8=![];var _0x41a1e0={};if(_0x928da9[_0x808b('0x30')][_0x808b('0x3b')]&&_0x928da9[_0x808b('0x30')][_0x808b('0x3b')]===_0x808b('0x4c')){_0x41a1e0['uniqueid']=_0x928da9[_0x808b('0x40')]['id'];}else{_0x41a1e0['id']=_0x928da9[_0x808b('0x40')]['id'];}return db[_0x808b('0x2b')]['find']({'where':_0x41a1e0,'attributes':['id',_0x808b('0x4d')],'raw':!![]})[_0x808b('0x23')](handleEntityNotFound(_0x259177,null))[_0x808b('0x23')](function(_0x4fb1f9){if(_0x4fb1f9){var _0x15df1c=_0x4fb1f9[_0x808b('0x4d')];var _0x130274=util[_0x808b('0x2f')](_0x808b('0x4e'),_0x15df1c);if(fs['existsSync'](_0x130274)){_0x5e7fc8=!![];return _0x391b69[_0x808b('0x4f')](_0x130274,_0x15df1c,config['secrets'][_0x808b('0x50')])[_0x808b('0x23')](function(){return _0x4fb1f9;});}return _0x4fb1f9;}})[_0x808b('0x23')](function(_0x169ce6){if(_0x169ce6){var _0x1f5197=_0x169ce6[_0x808b('0x4d')];if(!fs[_0x808b('0x51')](_0x1f5197)){throw new db[(_0x808b('0x52'))]['ValidationError']('VoiceRecording\x20not\x20found');}if(_0x169ce6[_0x808b('0x53')]){return _0x259177[_0x808b('0x4a')](_0x1f5197,_0x169ce6[_0x808b('0x53')]+path[_0x808b('0x54')](_0x1f5197),function(){if(_0x5e7fc8){fs[_0x808b('0x55')](_0x1f5197);}});}else{return _0x259177[_0x808b('0x4a')](_0x1f5197,function(_0x3803f3){if(_0x5e7fc8){fs['unlink'](_0x1f5197);}});}}})[_0x808b('0x46')](function(_0x525531){if(_0x525531[_0x808b('0x56')]===_0x808b('0x57')){_0x259177['status'](0x194)[_0x808b('0x28')](_0x808b('0x58'));}else{return handleError(_0x259177,null);}});};exports[_0x808b('0x59')]=function(_0x447001,_0x32d4ef,_0x3a0c69){var _0x1e2b49=require(_0x808b('0x4b'));var _0xf94eb6=![];var _0x4aae5f={'$and':[db['sequelize'][_0x808b('0x37')](db[_0x808b('0x5a')]['fn'](_0x808b('0x5b'),db[_0x808b('0x5a')]['col']('uniqueid')),_0x447001['query'][_0x808b('0x5c')])]};if(_0x447001[_0x808b('0x30')][_0x808b('0x3b')]&&_0x447001['query'][_0x808b('0x3b')]===_0x808b('0x4c')){_0x4aae5f['$and']['push']({'uniqueid':_0x447001[_0x808b('0x40')]['id']});}else{_0x4aae5f[_0x808b('0x5d')]['push']({'id':_0x447001['params']['id']});}return db['VoiceRecording']['find']({'where':_0x4aae5f,'attributes':['id',_0x808b('0x4d')],'raw':!![]})[_0x808b('0x23')](handleEntityNotFound(_0x32d4ef,null))[_0x808b('0x23')](function(_0x248137){if(_0x248137){var _0x4cf2d8=util[_0x808b('0x2f')]('%s.cypher',_0x248137['value']);if(fs[_0x808b('0x51')](_0x4cf2d8)){_0xf94eb6=!![];return _0x1e2b49['decryptFile'](_0x4cf2d8,_0x248137[_0x808b('0x4d')],config[_0x808b('0x5e')]['recording'])['then'](function(){return _0x248137;});}return _0x248137;}})[_0x808b('0x23')](function(_0x2b97d3){if(_0x2b97d3){if(!fs[_0x808b('0x51')](_0x2b97d3[_0x808b('0x4d')])){throw new db[(_0x808b('0x52'))][(_0x808b('0x5f'))](_0x808b('0x57'));}if(_0x2b97d3[_0x808b('0x53')]){return _0x32d4ef[_0x808b('0x4a')](_0x2b97d3[_0x808b('0x4d')],_0x2b97d3[_0x808b('0x53')]+path[_0x808b('0x54')](_0x2b97d3[_0x808b('0x4d')]),function(){if(_0xf94eb6){fs[_0x808b('0x55')](_0x2b97d3[_0x808b('0x4d')]);}});}else{return _0x32d4ef[_0x808b('0x4a')](_0x2b97d3[_0x808b('0x4d')],function(_0x2a8e1c){if(_0xf94eb6){fs['unlink'](_0x2b97d3[_0x808b('0x4d')]);}});}}})['catch'](handleError(_0x32d4ef,null));};exports['destroy']=function(_0x5dd67e,_0x1a272e){return db['VoiceRecording'][_0x808b('0x45')]({'where':{'id':_0x5dd67e[_0x808b('0x40')]['id']}})[_0x808b('0x23')](function(_0x13ed66){if(_[_0x808b('0x60')](_0x13ed66)){throw new ReferenceError(_0x808b('0x61'));}return _0x13ed66;})[_0x808b('0x23')](function(_0x57e326){var _0x5ee268=_0x57e326[_0x808b('0x4d')];logger[_0x808b('0x62')]('cancellazione\x20fisica\x20documento\x20%s',_0x5ee268);if(!_[_0x808b('0x60')](_0x57e326[_0x808b('0x4d')])&&fs[_0x808b('0x51')](_0x5ee268)){logger[_0x808b('0x62')](_0x808b('0x63')+_0x5ee268+'\x22\x20trovato\x20eseguo\x20la\x20cancellazione');fs[_0x808b('0x64')](_0x5ee268);}_0x5ee268=_0x5ee268+'.cypher';if(!_['isNil'](_0x57e326[_0x808b('0x4d')])&&fs[_0x808b('0x51')](_0x5ee268)){logger['info'](_0x808b('0x63')+_0x5ee268+'\x22\x20trovato\x20eseguo\x20la\x20cancellazione');fs[_0x808b('0x64')](_0x5ee268);}return _0x57e326;})['then'](function(_0x3a4f3b){if(!_0x3a4f3b)throw new InternalError();return _0x3a4f3b['destroy']();})[_0x808b('0x23')](function(){_0x1a272e[_0x808b('0x1a')](0xcc)['end']();})[_0x808b('0x46')](handleError(_0x1a272e,null));};function getBucketslist(_0x253299,_0x38fe14,_0x4b74f0){return new Promise(function(_0x426596,_0x174de2){var _0x4bdc37=new AWS['S3']({'accessKeyId':_0x38fe14,'secretAccessKey':_0x253299,'region':_0x4b74f0});_0x4bdc37[_0x808b('0x65')]({},function(_0x4a0ddc,_0x18bd44){if(_0x4a0ddc){return _0x174de2(_0x4a0ddc);}else{return _0x426596(_0x18bd44);}});});}function createBucket(_0x5d2a59,_0x1b0cdf,_0x3a60d9,_0x316cb8){return new Promise(function(_0x28df6b,_0x177d35){var _0x2e7a27=new AWS['S3']({'accessKeyId':_0x1b0cdf,'secretAccessKey':_0x5d2a59,'region':_0x3a60d9});_0x2e7a27[_0x808b('0x66')]({'Bucket':_0x316cb8},function(_0x5f534c,_0x31dbff){if(_0x5f534c){return _0x177d35(_0x5f534c);}else{return _0x28df6b(_0x31dbff);}});});}function uploadFile(_0x19bf8c,_0x34939c,_0x45ade8,_0x3af450,_0x2018d2,_0x5ea448){return new Promise(function(_0xd5246e,_0x5d496e){var _0x2b7d85=new AWS['S3']({'accessKeyId':_0x34939c,'secretAccessKey':_0x19bf8c,'region':_0x45ade8});_0x2b7d85['upload']({'Bucket':_0x3af450,'Key':_0x2018d2,'Body':_0x5ea448},function(_0x21c8a6,_0x761d10){if(_0x21c8a6){return _0x5d496e(_0x21c8a6);}else{return _0xd5246e(_0x761d10);}});});}function startTranscribe(_0x2c883b,_0x19cd13,_0x426c87,_0x30b141,_0x48021f,_0x1da399){return new Promise(function(_0x3164bd,_0x44f47c){var _0x5c8420=new AWS[(_0x808b('0x67'))]({'accessKeyId':_0x19cd13,'secretAccessKey':_0x2c883b,'region':_0x426c87});_0x5c8420[_0x808b('0x68')]({'TranscriptionJobName':_0x30b141,'LanguageCode':_0x48021f,'Media':{'MediaFileUri':_0x1da399}},function(_0x29d870,_0x22cc8f){if(_0x29d870){return _0x44f47c(_0x29d870);}else{return _0x3164bd(_0x22cc8f);}});});}function transcribe(_0x1bdfbf,_0x364cb4,_0x1b78e2,_0x4ec8f0,_0x28533c,_0x1d540c,_0x5a024d){return new Promise(function(_0x16d236,_0x3d3361){var _0x409883={};logger[_0x808b('0x62')](util[_0x808b('0x2f')](_0x808b('0x69'),_0x1bdfbf,_0x28533c));return uploadFile(_0x364cb4,_0x1b78e2,_0x4ec8f0,_0x28533c,path[_0x808b('0x6a')](_0x1d540c),fs[_0x808b('0x6b')](_0x1d540c))[_0x808b('0x23')](function(_0x506326){logger[_0x808b('0x62')](util[_0x808b('0x2f')](_0x808b('0x6c'),_0x1bdfbf,_0x28533c,_0x506326[_0x808b('0x6d')]));_0x409883[_0x808b('0x6e')]=_0x506326['Bucket'];_0x409883['location']=_0x506326[_0x808b('0x6d')];logger[_0x808b('0x62')](util[_0x808b('0x2f')](_0x808b('0x6f'),_0x1bdfbf));return startTranscribe(_0x364cb4,_0x1b78e2,_0x4ec8f0,uuidv4(),_0x5a024d,_0x506326['Location']);})[_0x808b('0x23')](function(_0x38cee4){logger[_0x808b('0x62')](util['format'](_0x808b('0x70'),_0x1bdfbf,_0x38cee4[_0x808b('0x71')][_0x808b('0x72')]));_0x409883[_0x808b('0x73')]=_0x38cee4['TranscriptionJob'][_0x808b('0x72')];_0x409883[_0x808b('0x74')]=_0x38cee4[_0x808b('0x71')][_0x808b('0x75')];return _0x16d236(_0x409883);})[_0x808b('0x46')](function(_0x1466c0){return _0x3d3361(_0x1466c0);});});}exports['runTranscribe']=function(_0x497dd1,_0x114430,_0x152ee8){var _0x33d449;var _0x43ff0e;var _0x43aea7;var _0x58b93d=require(_0x808b('0x4b'));return db['VoiceRecording'][_0x808b('0x76')]({'where':{'id':_0x497dd1[_0x808b('0x40')]['id']}})['then'](function(_0x16d22a){if(_0x16d22a){var _0x2e8b56=util['format']('%s.cypher',_0x16d22a[_0x808b('0x4d')]);if(fs['existsSync'](_0x2e8b56)){cypher=!![];return _0x58b93d[_0x808b('0x4f')](_0x2e8b56,_0x16d22a['value'],config[_0x808b('0x5e')][_0x808b('0x50')])[_0x808b('0x23')](function(){return _0x16d22a;});}return _0x16d22a;}})[_0x808b('0x23')](function(_0x38ef9a){if(!_0x38ef9a){throw new db['Sequelize']['ValidationError'](_0x808b('0x77'));}_0x43ff0e=_0x38ef9a;return db['Setting'][_0x808b('0x76')]({'where':{'id':0x1}});})[_0x808b('0x23')](handleEntityNotFound(_0x114430,null))[_0x808b('0x23')](function(_0x62c6c8){if(_0x62c6c8){_0x33d449=_0x62c6c8;if(!_0x33d449['transcribe']||!_0x33d449[_0x808b('0x78')]||!_0x33d449[_0x808b('0x79')]||!_0x33d449[_0x808b('0x7a')]||!_0x33d449['bucket']){throw new db['Sequelize']['ValidationError']('Transcribe\x20not\x20configured');}if(_0x497dd1['body'][_0x808b('0x7b')]&&(!_0x33d449[_0x808b('0x7c')]||!_0x33d449[_0x808b('0x7d')]||!_0x33d449[_0x808b('0x7e')]||!_0x33d449['language']||!_0x33d449[_0x808b('0x6e')])){throw new db[(_0x808b('0x52'))][(_0x808b('0x5f'))](_0x808b('0x7f'));}return db[_0x808b('0x80')][_0x808b('0x76')]({'where':{'id':_0x33d449[_0x808b('0x78')]}});}})[_0x808b('0x23')](function(_0x5e0fa6){if(!_0x5e0fa6){throw new db['Sequelize']['ValidationError']('Cloud\x20Provider\x20not\x20available');}if(!_0x5e0fa6[_0x808b('0x81')]||!_0x5e0fa6[_0x808b('0x82')]){throw new db[(_0x808b('0x52'))][(_0x808b('0x5f'))](_0x808b('0x83'));}_0x43aea7=_0x5e0fa6;return getBucketslist(_0x43aea7[_0x808b('0x81')],_0x43aea7[_0x808b('0x82')],_0x33d449['transcribeRegion']);})[_0x808b('0x23')](function(_0x5e4d6b){if(_0x5e4d6b&&_0x5e4d6b['Buckets']){var _0x14da90=_[_0x808b('0x45')](_0x5e4d6b[_0x808b('0x84')],function(_0x3bb464){return _0x3bb464[_0x808b('0x85')]===_0x33d449['bucket'];});if(!_0x14da90){logger['info'](util[_0x808b('0x2f')](_0x808b('0x86'),_0x497dd1[_0x808b('0x40')]['id'],_0x33d449[_0x808b('0x6e')]));return createBucket(_0x43aea7[_0x808b('0x81')],_0x43aea7[_0x808b('0x82')],_0x33d449[_0x808b('0x79')],_0x33d449[_0x808b('0x6e')]);}logger[_0x808b('0x62')](util[_0x808b('0x2f')](_0x808b('0x87'),_0x497dd1[_0x808b('0x40')]['id'],_0x33d449[_0x808b('0x6e')]));return;}})[_0x808b('0x23')](function(_0x2c4396){if(_0x43ff0e[_0x808b('0x74')]===_0x808b('0x88')){return transcribe(_0x497dd1[_0x808b('0x40')]['id'],_0x43aea7[_0x808b('0x81')],_0x43aea7[_0x808b('0x82')],_0x33d449['transcribeRegion'],_0x33d449[_0x808b('0x6e')],_0x43ff0e['value'],_0x33d449[_0x808b('0x7a')]);}else{logger['info'](util['format'](_0x808b('0x89'),_0x497dd1['params']['id']));return{'transcribeStatus':_0x808b('0x8a')};}})[_0x808b('0x23')](function(_0x4ed0ef){if(_0x4ed0ef){_0x4ed0ef[_0x808b('0x8b')]=_0x497dd1[_0x808b('0x48')][_0x808b('0x7b')];return _0x43ff0e[_0x808b('0x8c')](_0x4ed0ef);}})['then'](respondWithResult(_0x114430,null))[_0x808b('0x46')](handleError(_0x114430,null));};function writeFile(_0x5d2a64,_0x3c5958){return new Promise(function(_0x5a4df6,_0x40a14e){fs[_0x808b('0x8d')](_0x3c5958,_0x5d2a64,function(_0x3d88f5,_0x489044){if(_0x3d88f5){return _0x40a14e(_0x3d88f5);}else{return _0x5a4df6(_0x489044);}});});}exports['downloadTranscribe']=function(_0x51efd8,_0x51cf8e,_0x3ebbd2){return db[_0x808b('0x2b')]['findOne']({'where':{'id':_0x51efd8[_0x808b('0x40')]['id']}})[_0x808b('0x23')](handleEntityNotFound(_0x51cf8e))[_0x808b('0x23')](function(_0x4d5880){if(_0x4d5880&&_0x4d5880['fileText']){var _0x4f021e=_0x4d5880[_0x808b('0x8e')];var _0x47c7a6=config[_0x808b('0x8f')]+_0x808b('0x90')+_0x4d5880['id']+_0x808b('0x91');if(fs[_0x808b('0x51')](_0x47c7a6)){return _0x47c7a6;}return writeFile(_0x4f021e,_0x47c7a6)[_0x808b('0x23')](function(){return _0x47c7a6;});}else{throw new db[(_0x808b('0x52'))]['ValidationError'](_0x808b('0x92'));}})['then'](function(_0x3b9871){return _0x51cf8e[_0x808b('0x4a')](_0x3b9871);})[_0x808b('0x46')](handleError(_0x51cf8e));};