Built motion from commit (unavailable).|2.5.23
[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 _0xc2c9=['tempSentiment','writeFile','downloadTranscribe','fileText','root','html-pdf','eml-format','rimraf','zip-dir','moment','util','sox','to-csv','ejs','squel','jsforce','desk.js','querystring','papaparse','uuid/v4','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/utils','../../config/environment','../../config/license/util','sendStatus','end','status','offset','limit','set','Content-Range','json','update','then','destroy','error','stack','name','send','map','VoiceRecording','rawAttributes','fieldName','type','key','model','differenceBy','query','keys','filters','intersection','attributes','fields','length','nolimit','order','sort','where','pick','filter','merge','count','includeAll','include','findAll','rows','show','params','options','find','catch','create','body','describe','download','uniqueid','value','format','existsSync','secrets','Sequelize','VoiceRecording\x20not\x20found','filename','extname','unlink','message','Not\x20found','../../components/encryptor','sequelize','MD5','col','token','$and','push','%s.cypher','decryptFile','recording','ValidationError','Entity\x20not\x20found','info','cancellazione\x20fisica\x20documento\x20%s','File:\x20\x22','\x22\x20trovato\x20eseguo\x20la\x20cancellazione','unlinkSync','.cypher','isNil','upload','TranscribeService','startTranscriptionJob','[RUNTRANSCRIPT][%d]\x20Starting\x20voice\x20recording\x20upload\x20in\x20bucket\x20%s','readFileSync','[RUNTRANSCRIPT][%d]\x20Voice\x20recording\x20uploaded\x20in\x20bucket\x20%s\x20(%s)','Location','Bucket','TranscriptionJob','TranscriptionJobName','transcribeName','transcribeStatus','runTranscribe','findOne','Voice\x20Recording\x20not\x20found','Setting','transcribe','transcribeAccountId','transcribeRegion','Transcribe\x20not\x20configured','runSentiment','sentiment','sentimentAccountId','sentimentRegion','language','bucket','Sentiment\x20Analysis\x20not\x20configured','CloudProvider','Cloud\x20Provider\x20not\x20available','data1','Cloud\x20Provider\x20not\x20configured','data2','Buckets','Name','[RUNTRANSCRIPT][%d]\x20Bucket\x20%s\x20not\x20available','[RUNTRANSCRIPT][%d]\x20Bucket\x20%s\x20available','NEW','IN_PROGRESS'];(function(_0x25feab,_0x30eeb2){var _0x8403fa=function(_0x47a948){while(--_0x47a948){_0x25feab['push'](_0x25feab['shift']());}};_0x8403fa(++_0x30eeb2);}(_0xc2c9,0x1c1));var _0x9c2c=function(_0x30a57e,_0x132a5d){_0x30a57e=_0x30a57e-0x0;var _0x180e83=_0xc2c9[_0x30a57e];return _0x180e83;};'use strict';var pdf=require(_0x9c2c('0x0'));var emlformat=require(_0x9c2c('0x1'));var rimraf=require(_0x9c2c('0x2'));var zipdir=require(_0x9c2c('0x3'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x9c2c('0x4'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x9c2c('0x5'));var path=require('path');var sox=require(_0x9c2c('0x6'));var csv=require(_0x9c2c('0x7'));var ejs=require(_0x9c2c('0x8'));var fs=require('fs');var _=require('lodash');var squel=require(_0x9c2c('0x9'));var crypto=require('crypto');var jsforce=require(_0x9c2c('0xa'));var deskjs=require(_0x9c2c('0xb'));var toCsv=require(_0x9c2c('0x7'));var querystring=require(_0x9c2c('0xc'));var Papa=require(_0x9c2c('0xd'));var AWS=require('aws-sdk');var uuidv4=require(_0x9c2c('0xe'));var Redis=require(_0x9c2c('0xf'));var authService=require(_0x9c2c('0x10'));var qs=require(_0x9c2c('0x11'));var as=require(_0x9c2c('0x12'));var hardwareService=require(_0x9c2c('0x13'));var logger=require('../../config/logger')('api');var utils=require(_0x9c2c('0x14'));var config=require(_0x9c2c('0x15'));var licenseUtil=require(_0x9c2c('0x16'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x482eed,_0x47d8b2){_0x47d8b2=_0x47d8b2||0xcc;return function(_0x4ac336){if(_0x4ac336){return _0x482eed[_0x9c2c('0x17')](_0x47d8b2);}return _0x482eed['status'](_0x47d8b2)[_0x9c2c('0x18')]();};}function respondWithResult(_0x1c2e43,_0x28b625){_0x28b625=_0x28b625||0xc8;return function(_0x41bb94){if(_0x41bb94){return _0x1c2e43[_0x9c2c('0x19')](_0x28b625)['json'](_0x41bb94);}};}function respondWithFilteredResult(_0x7b5b94,_0x2c4017){return function(_0x445c59){if(_0x445c59){var _0x4fae70=_0x445c59['count'],_0x530acd=_0x2c4017[_0x9c2c('0x1a')],_0x3319be=_0x2c4017[_0x9c2c('0x1a')]+_0x2c4017[_0x9c2c('0x1b')],_0x3dd0ea;if(_0x3319be>=_0x4fae70){_0x3319be=_0x4fae70;_0x3dd0ea=0xc8;}else{_0x3dd0ea=0xce;}_0x7b5b94[_0x9c2c('0x19')](_0x3dd0ea);return _0x7b5b94[_0x9c2c('0x1c')](_0x9c2c('0x1d'),_0x530acd+'-'+_0x3319be+'/'+_0x4fae70)[_0x9c2c('0x1e')](_0x445c59);}return null;};}function patchUpdates(_0x2264a0){return function(_0xf28049){try{jsonpatch['apply'](_0xf28049,_0x2264a0,!![]);}catch(_0x57d7aa){return BPromise['reject'](_0x57d7aa);}return _0xf28049['save']();};}function saveUpdates(_0x553d03,_0x33d21a){return function(_0x533809){if(_0x533809){return _0x533809[_0x9c2c('0x1f')](_0x553d03)[_0x9c2c('0x20')](function(_0x25a646){return _0x25a646;});}return null;};}function removeEntity(_0x58b8f4,_0x4f5a39){return function(_0x2a8cb9){if(_0x2a8cb9){return _0x2a8cb9[_0x9c2c('0x21')]()['then'](function(){_0x58b8f4[_0x9c2c('0x19')](0xcc)[_0x9c2c('0x18')]();});}};}function handleEntityNotFound(_0xb3a6b7,_0x31beb6){return function(_0x577032){if(!_0x577032){_0xb3a6b7['sendStatus'](0x194);}return _0x577032;};}function handleError(_0x4fcad7,_0x1e229c){_0x1e229c=_0x1e229c||0x1f4;return function(_0x2590d5){logger[_0x9c2c('0x22')](_0x2590d5[_0x9c2c('0x23')]);if(_0x2590d5[_0x9c2c('0x24')]){delete _0x2590d5[_0x9c2c('0x24')];}_0x4fcad7['status'](_0x1e229c)[_0x9c2c('0x25')](_0x2590d5);};}exports['index']=function(_0x43f17b,_0x59eb54){var _0x2da639={},_0x1ef2ed={},_0x2f4952={'count':0x0,'rows':[]};var _0x1e6d06=_[_0x9c2c('0x26')](db[_0x9c2c('0x27')][_0x9c2c('0x28')],function(_0x5a408a){return{'name':_0x5a408a[_0x9c2c('0x29')],'type':_0x5a408a[_0x9c2c('0x2a')][_0x9c2c('0x2b')]};});_0x1ef2ed[_0x9c2c('0x2c')]=_[_0x9c2c('0x2d')](_[_0x9c2c('0x26')](_0x1e6d06,_0x9c2c('0x24')),['format']);_0x1ef2ed[_0x9c2c('0x2e')]=_[_0x9c2c('0x2f')](_0x43f17b['query']);_0x1ef2ed[_0x9c2c('0x30')]=_[_0x9c2c('0x31')](_0x1ef2ed[_0x9c2c('0x2c')],_0x1ef2ed[_0x9c2c('0x2e')]);_0x2da639[_0x9c2c('0x32')]=_[_0x9c2c('0x31')](_0x1ef2ed[_0x9c2c('0x2c')],qs[_0x9c2c('0x33')](_0x43f17b[_0x9c2c('0x2e')][_0x9c2c('0x33')]));_0x2da639[_0x9c2c('0x32')]=_0x2da639[_0x9c2c('0x32')][_0x9c2c('0x34')]?_0x2da639['attributes']:_0x1ef2ed[_0x9c2c('0x2c')];if(!_0x43f17b[_0x9c2c('0x2e')]['hasOwnProperty'](_0x9c2c('0x35'))){_0x2da639[_0x9c2c('0x1b')]=qs[_0x9c2c('0x1b')](_0x43f17b[_0x9c2c('0x2e')]['limit']);_0x2da639['offset']=qs['offset'](_0x43f17b['query'][_0x9c2c('0x1a')]);}_0x2da639[_0x9c2c('0x36')]=qs[_0x9c2c('0x37')](_0x43f17b[_0x9c2c('0x2e')][_0x9c2c('0x37')]);_0x2da639[_0x9c2c('0x38')]=qs[_0x9c2c('0x30')](_[_0x9c2c('0x39')](_0x43f17b[_0x9c2c('0x2e')],_0x1ef2ed[_0x9c2c('0x30')]),_0x1e6d06);if(_0x43f17b['query'][_0x9c2c('0x3a')]){_0x2da639[_0x9c2c('0x38')]=_[_0x9c2c('0x3b')](_0x2da639['where'],{'$or':_[_0x9c2c('0x26')](_0x1e6d06,function(_0x202092){if(_0x202092[_0x9c2c('0x2a')]!=='VIRTUAL'){var _0x10a736={};_0x10a736[_0x202092[_0x9c2c('0x24')]]={'$like':'%'+_0x43f17b[_0x9c2c('0x2e')][_0x9c2c('0x3a')]+'%'};return _0x10a736;}})});}_0x2da639=_[_0x9c2c('0x3b')]({},_0x2da639,_0x43f17b['options']);var _0x473d1c={'where':_0x2da639[_0x9c2c('0x38')]};return db[_0x9c2c('0x27')][_0x9c2c('0x3c')](_0x473d1c)['then'](function(_0xfa4f2f){_0x2f4952[_0x9c2c('0x3c')]=_0xfa4f2f;if(_0x43f17b[_0x9c2c('0x2e')][_0x9c2c('0x3d')]){_0x2da639[_0x9c2c('0x3e')]=[{'all':!![]}];}return db[_0x9c2c('0x27')][_0x9c2c('0x3f')](_0x2da639);})[_0x9c2c('0x20')](function(_0x210ac0){_0x2f4952[_0x9c2c('0x40')]=_0x210ac0;return _0x2f4952;})[_0x9c2c('0x20')](respondWithFilteredResult(_0x59eb54,_0x2da639))['catch'](handleError(_0x59eb54,null));};exports[_0x9c2c('0x41')]=function(_0x47b9dc,_0x23ee06){var _0x365663={'raw':![],'where':{'id':_0x47b9dc[_0x9c2c('0x42')]['id']}},_0x2ee7d6={};_0x2ee7d6[_0x9c2c('0x2c')]=_[_0x9c2c('0x2f')](db[_0x9c2c('0x27')][_0x9c2c('0x28')]);_0x2ee7d6[_0x9c2c('0x2e')]=_[_0x9c2c('0x2f')](_0x47b9dc[_0x9c2c('0x2e')]);_0x2ee7d6[_0x9c2c('0x30')]=_[_0x9c2c('0x31')](_0x2ee7d6[_0x9c2c('0x2c')],_0x2ee7d6[_0x9c2c('0x2e')]);_0x365663['attributes']=_['intersection'](_0x2ee7d6['model'],qs[_0x9c2c('0x33')](_0x47b9dc[_0x9c2c('0x2e')][_0x9c2c('0x33')]));_0x365663[_0x9c2c('0x32')]=_0x365663[_0x9c2c('0x32')][_0x9c2c('0x34')]?_0x365663['attributes']:_0x2ee7d6['model'];if(_0x47b9dc[_0x9c2c('0x2e')][_0x9c2c('0x3d')]){_0x365663[_0x9c2c('0x3e')]=[{'all':!![]}];}_0x365663=_[_0x9c2c('0x3b')]({},_0x365663,_0x47b9dc[_0x9c2c('0x43')]);return db[_0x9c2c('0x27')][_0x9c2c('0x44')](_0x365663)[_0x9c2c('0x20')](handleEntityNotFound(_0x23ee06,null))[_0x9c2c('0x20')](respondWithResult(_0x23ee06,null))[_0x9c2c('0x45')](handleError(_0x23ee06,null));};exports[_0x9c2c('0x46')]=function(_0x2f429a,_0x57a562){return db[_0x9c2c('0x27')][_0x9c2c('0x46')](_0x2f429a['body'],{})[_0x9c2c('0x20')](respondWithResult(_0x57a562,0xc9))[_0x9c2c('0x45')](handleError(_0x57a562,null));};exports[_0x9c2c('0x1f')]=function(_0x1f3a7f,_0x332bde){if(_0x1f3a7f[_0x9c2c('0x47')]['id']){delete _0x1f3a7f['body']['id'];}return db[_0x9c2c('0x27')][_0x9c2c('0x44')]({'where':{'id':_0x1f3a7f[_0x9c2c('0x42')]['id']}})['then'](handleEntityNotFound(_0x332bde,null))[_0x9c2c('0x20')](saveUpdates(_0x1f3a7f['body'],null))[_0x9c2c('0x20')](respondWithResult(_0x332bde,null))['catch'](handleError(_0x332bde,null));};exports[_0x9c2c('0x48')]=function(_0x310756,_0x1b58d9){return db['VoiceRecording'][_0x9c2c('0x48')]()[_0x9c2c('0x20')](respondWithResult(_0x1b58d9,null))[_0x9c2c('0x45')](handleError(_0x1b58d9,null));};exports[_0x9c2c('0x49')]=function(_0x48db68,_0x5db01e,_0x7a2f48){var _0xe753d4=require('../../components/encryptor');var _0x5890c6=![];var _0x58b3eb={};if(_0x48db68[_0x9c2c('0x2e')][_0x9c2c('0x2a')]&&_0x48db68[_0x9c2c('0x2e')]['type']===_0x9c2c('0x4a')){_0x58b3eb[_0x9c2c('0x4a')]=_0x48db68[_0x9c2c('0x42')]['id'];}else{_0x58b3eb['id']=_0x48db68[_0x9c2c('0x42')]['id'];}return db[_0x9c2c('0x27')][_0x9c2c('0x44')]({'where':_0x58b3eb,'attributes':['id',_0x9c2c('0x4b')],'raw':!![]})[_0x9c2c('0x20')](handleEntityNotFound(_0x5db01e,null))[_0x9c2c('0x20')](function(_0xf76976){if(_0xf76976){var _0x11ebaa=_0xf76976[_0x9c2c('0x4b')];var _0x34e248=util[_0x9c2c('0x4c')]('%s.cypher',_0x11ebaa);if(fs[_0x9c2c('0x4d')](_0x34e248)){_0x5890c6=!![];return _0xe753d4['decryptFile'](_0x34e248,_0x11ebaa,config[_0x9c2c('0x4e')]['recording'])[_0x9c2c('0x20')](function(){return _0xf76976;});}return _0xf76976;}})[_0x9c2c('0x20')](function(_0x7dd5ad){if(_0x7dd5ad){var _0x363768=_0x7dd5ad[_0x9c2c('0x4b')];if(!fs[_0x9c2c('0x4d')](_0x363768)){throw new db[(_0x9c2c('0x4f'))]['ValidationError'](_0x9c2c('0x50'));}if(_0x7dd5ad[_0x9c2c('0x51')]){return _0x5db01e[_0x9c2c('0x49')](_0x363768,_0x7dd5ad[_0x9c2c('0x51')]+path[_0x9c2c('0x52')](_0x363768),function(){if(_0x5890c6){fs[_0x9c2c('0x53')](_0x363768);}});}else{return _0x5db01e[_0x9c2c('0x49')](_0x363768,function(_0x29e3aa){if(_0x5890c6){fs[_0x9c2c('0x53')](_0x363768);}});}}})[_0x9c2c('0x45')](function(_0x5a0001){if(_0x5a0001[_0x9c2c('0x54')]==='VoiceRecording\x20not\x20found'){_0x5db01e[_0x9c2c('0x19')](0x194)[_0x9c2c('0x25')](_0x9c2c('0x55'));}else{return handleError(_0x5db01e,null);}});};exports['downloads']=function(_0x39e0ce,_0x59ec29,_0x28e45e){var _0x3666b3=require(_0x9c2c('0x56'));var _0x5d4464=![];var _0x40a054={'$and':[db[_0x9c2c('0x57')][_0x9c2c('0x38')](db[_0x9c2c('0x57')]['fn'](_0x9c2c('0x58'),db['sequelize'][_0x9c2c('0x59')]('uniqueid')),_0x39e0ce['query'][_0x9c2c('0x5a')])]};if(_0x39e0ce[_0x9c2c('0x2e')]['type']&&_0x39e0ce[_0x9c2c('0x2e')][_0x9c2c('0x2a')]===_0x9c2c('0x4a')){_0x40a054[_0x9c2c('0x5b')][_0x9c2c('0x5c')]({'uniqueid':_0x39e0ce[_0x9c2c('0x42')]['id']});}else{_0x40a054[_0x9c2c('0x5b')]['push']({'id':_0x39e0ce['params']['id']});}return db[_0x9c2c('0x27')]['find']({'where':_0x40a054,'attributes':['id',_0x9c2c('0x4b')],'raw':!![]})[_0x9c2c('0x20')](handleEntityNotFound(_0x59ec29,null))[_0x9c2c('0x20')](function(_0x3e5909){if(_0x3e5909){var _0x84aa9d=util[_0x9c2c('0x4c')](_0x9c2c('0x5d'),_0x3e5909[_0x9c2c('0x4b')]);if(fs[_0x9c2c('0x4d')](_0x84aa9d)){_0x5d4464=!![];return _0x3666b3[_0x9c2c('0x5e')](_0x84aa9d,_0x3e5909[_0x9c2c('0x4b')],config[_0x9c2c('0x4e')][_0x9c2c('0x5f')])[_0x9c2c('0x20')](function(){return _0x3e5909;});}return _0x3e5909;}})[_0x9c2c('0x20')](function(_0x358856){if(_0x358856){if(!fs[_0x9c2c('0x4d')](_0x358856[_0x9c2c('0x4b')])){throw new db[(_0x9c2c('0x4f'))][(_0x9c2c('0x60'))](_0x9c2c('0x50'));}if(_0x358856[_0x9c2c('0x51')]){return _0x59ec29[_0x9c2c('0x49')](_0x358856[_0x9c2c('0x4b')],_0x358856[_0x9c2c('0x51')]+path['extname'](_0x358856[_0x9c2c('0x4b')]),function(){if(_0x5d4464){fs[_0x9c2c('0x53')](_0x358856[_0x9c2c('0x4b')]);}});}else{return _0x59ec29[_0x9c2c('0x49')](_0x358856[_0x9c2c('0x4b')],function(_0x19a5ff){if(_0x5d4464){fs[_0x9c2c('0x53')](_0x358856[_0x9c2c('0x4b')]);}});}}})[_0x9c2c('0x45')](handleError(_0x59ec29,null));};exports[_0x9c2c('0x21')]=function(_0x1049fc,_0x4f7d9d){return db[_0x9c2c('0x27')]['find']({'where':{'id':_0x1049fc['params']['id']}})[_0x9c2c('0x20')](function(_0x4b7b85){if(!_0x4b7b85)throw new ReferenceError(_0x9c2c('0x61'));return _0x4b7b85;})[_0x9c2c('0x20')](function(_0x2a0590){var _0x580452=_0x2a0590[_0x9c2c('0x4b')];logger[_0x9c2c('0x62')](_0x9c2c('0x63'),_0x580452);if(!_['isNil'](_0x2a0590[_0x9c2c('0x4b')])&&fs[_0x9c2c('0x4d')](_0x580452)){logger['info'](_0x9c2c('0x64')+_0x580452+_0x9c2c('0x65'));fs[_0x9c2c('0x66')](_0x580452);}_0x580452=_0x580452+_0x9c2c('0x67');if(!_[_0x9c2c('0x68')](_0x2a0590[_0x9c2c('0x4b')])&&fs[_0x9c2c('0x4d')](_0x580452)){logger[_0x9c2c('0x62')](_0x9c2c('0x64')+_0x580452+_0x9c2c('0x65'));fs[_0x9c2c('0x66')](_0x580452);}return _0x2a0590;})[_0x9c2c('0x20')](function(_0x327dfc){if(!_0x327dfc)throw new InternalError();return _0x327dfc[_0x9c2c('0x21')]();})[_0x9c2c('0x20')](function(){_0x4f7d9d[_0x9c2c('0x19')](0xcc)[_0x9c2c('0x18')]();})['catch'](handleError(_0x4f7d9d,null));};function getBucketslist(_0x31fa72,_0x4c389a,_0x2ea085){return new Promise(function(_0x546ac6,_0xbf2339){var _0x48fec4=new AWS['S3']({'accessKeyId':_0x4c389a,'secretAccessKey':_0x31fa72,'region':_0x2ea085});_0x48fec4['listBuckets']({},function(_0x1220a6,_0x2b3ab4){if(_0x1220a6){return _0xbf2339(_0x1220a6);}else{return _0x546ac6(_0x2b3ab4);}});});}function createBucket(_0x3bb771,_0x1a4b72,_0x20fe93,_0x2e3863){return new Promise(function(_0x36a697,_0x539f90){var _0x59dca7=new AWS['S3']({'accessKeyId':_0x1a4b72,'secretAccessKey':_0x3bb771,'region':_0x20fe93});_0x59dca7['createBucket']({'Bucket':_0x2e3863},function(_0x322bce,_0x20a855){if(_0x322bce){return _0x539f90(_0x322bce);}else{return _0x36a697(_0x20a855);}});});}function uploadFile(_0x61ec96,_0x3309bd,_0x595a15,_0x429932,_0x32fa39,_0x24a2f9){return new Promise(function(_0x1f7eba,_0x4e12fa){var _0x508144=new AWS['S3']({'accessKeyId':_0x3309bd,'secretAccessKey':_0x61ec96,'region':_0x595a15});_0x508144[_0x9c2c('0x69')]({'Bucket':_0x429932,'Key':_0x32fa39,'Body':_0x24a2f9},function(_0x2d91c8,_0x5a46e9){if(_0x2d91c8){return _0x4e12fa(_0x2d91c8);}else{return _0x1f7eba(_0x5a46e9);}});});}function startTranscribe(_0x489ba3,_0x5c8195,_0x53b5a1,_0x327e15,_0x24e9f1,_0x46e76e){return new Promise(function(_0x41b221,_0x627f7c){var _0x174914=new AWS[(_0x9c2c('0x6a'))]({'accessKeyId':_0x5c8195,'secretAccessKey':_0x489ba3,'region':_0x53b5a1});_0x174914[_0x9c2c('0x6b')]({'TranscriptionJobName':_0x327e15,'LanguageCode':_0x24e9f1,'Media':{'MediaFileUri':_0x46e76e}},function(_0x50a25c,_0xd21eb1){if(_0x50a25c){return _0x627f7c(_0x50a25c);}else{return _0x41b221(_0xd21eb1);}});});}function transcribe(_0x1c8f1e,_0x59a615,_0x2e7e3c,_0x368880,_0x52c069,_0x3f9397,_0x4be519){return new Promise(function(_0x364504,_0x1553c7){var _0x38620e={};logger[_0x9c2c('0x62')](util[_0x9c2c('0x4c')](_0x9c2c('0x6c'),_0x1c8f1e,_0x52c069));return uploadFile(_0x59a615,_0x2e7e3c,_0x368880,_0x52c069,path['basename'](_0x3f9397),fs[_0x9c2c('0x6d')](_0x3f9397))['then'](function(_0x3f582d){logger[_0x9c2c('0x62')](util[_0x9c2c('0x4c')](_0x9c2c('0x6e'),_0x1c8f1e,_0x52c069,_0x3f582d[_0x9c2c('0x6f')]));_0x38620e['bucket']=_0x3f582d[_0x9c2c('0x70')];_0x38620e['location']=_0x3f582d['Location'];logger[_0x9c2c('0x62')](util[_0x9c2c('0x4c')]('[RUNTRANSCRIPT][%d]\x20Sending\x20transcribe\x20request',_0x1c8f1e));return startTranscribe(_0x59a615,_0x2e7e3c,_0x368880,uuidv4(),_0x4be519,_0x3f582d[_0x9c2c('0x6f')]);})[_0x9c2c('0x20')](function(_0x1f3f54){logger[_0x9c2c('0x62')](util['format']('[RUNTRANSCRIPT][%d]\x20Transcription\x20job\x20%s\x20created',_0x1c8f1e,_0x1f3f54[_0x9c2c('0x71')][_0x9c2c('0x72')]));_0x38620e[_0x9c2c('0x73')]=_0x1f3f54['TranscriptionJob'][_0x9c2c('0x72')];_0x38620e[_0x9c2c('0x74')]=_0x1f3f54[_0x9c2c('0x71')]['TranscriptionJobStatus'];return _0x364504(_0x38620e);})['catch'](function(_0x5bf5e4){return _0x1553c7(_0x5bf5e4);});});}exports[_0x9c2c('0x75')]=function(_0x2df230,_0x39877e,_0x3ddf69){var _0x3ecb18;var _0xcd81e2;var _0x4668fd;var _0x1e931a=require(_0x9c2c('0x56'));return db[_0x9c2c('0x27')][_0x9c2c('0x76')]({'where':{'id':_0x2df230[_0x9c2c('0x42')]['id']}})[_0x9c2c('0x20')](function(_0x380da4){if(_0x380da4){var _0x56c130=util[_0x9c2c('0x4c')](_0x9c2c('0x5d'),_0x380da4[_0x9c2c('0x4b')]);if(fs[_0x9c2c('0x4d')](_0x56c130)){cypher=!![];return _0x1e931a[_0x9c2c('0x5e')](_0x56c130,_0x380da4[_0x9c2c('0x4b')],config[_0x9c2c('0x4e')][_0x9c2c('0x5f')])['then'](function(){return _0x380da4;});}return _0x380da4;}})['then'](function(_0x4d973c){if(!_0x4d973c){throw new db[(_0x9c2c('0x4f'))][(_0x9c2c('0x60'))](_0x9c2c('0x77'));}_0xcd81e2=_0x4d973c;return db[_0x9c2c('0x78')][_0x9c2c('0x76')]({'where':{'id':0x1}});})[_0x9c2c('0x20')](handleEntityNotFound(_0x39877e,null))[_0x9c2c('0x20')](function(_0x4dc45a){if(_0x4dc45a){_0x3ecb18=_0x4dc45a;if(!_0x3ecb18[_0x9c2c('0x79')]||!_0x3ecb18[_0x9c2c('0x7a')]||!_0x3ecb18[_0x9c2c('0x7b')]||!_0x3ecb18['language']||!_0x3ecb18['bucket']){throw new db['Sequelize'][(_0x9c2c('0x60'))](_0x9c2c('0x7c'));}if(_0x2df230[_0x9c2c('0x47')][_0x9c2c('0x7d')]&&(!_0x3ecb18[_0x9c2c('0x7e')]||!_0x3ecb18[_0x9c2c('0x7f')]||!_0x3ecb18[_0x9c2c('0x80')]||!_0x3ecb18[_0x9c2c('0x81')]||!_0x3ecb18[_0x9c2c('0x82')])){throw new db[(_0x9c2c('0x4f'))][(_0x9c2c('0x60'))](_0x9c2c('0x83'));}return db[_0x9c2c('0x84')]['findOne']({'where':{'id':_0x3ecb18[_0x9c2c('0x7a')]}});}})[_0x9c2c('0x20')](function(_0x1f42a6){if(!_0x1f42a6){throw new db[(_0x9c2c('0x4f'))]['ValidationError'](_0x9c2c('0x85'));}if(!_0x1f42a6[_0x9c2c('0x86')]||!_0x1f42a6['data2']){throw new db['Sequelize'][(_0x9c2c('0x60'))](_0x9c2c('0x87'));}_0x4668fd=_0x1f42a6;return getBucketslist(_0x4668fd['data1'],_0x4668fd[_0x9c2c('0x88')],_0x3ecb18[_0x9c2c('0x7b')]);})[_0x9c2c('0x20')](function(_0x2b88d6){if(_0x2b88d6&&_0x2b88d6[_0x9c2c('0x89')]){var _0x56dc43=_[_0x9c2c('0x44')](_0x2b88d6[_0x9c2c('0x89')],function(_0x1ffde4){return _0x1ffde4[_0x9c2c('0x8a')]===_0x3ecb18[_0x9c2c('0x82')];});if(!_0x56dc43){logger[_0x9c2c('0x62')](util[_0x9c2c('0x4c')](_0x9c2c('0x8b'),_0x2df230['params']['id'],_0x3ecb18[_0x9c2c('0x82')]));return createBucket(_0x4668fd[_0x9c2c('0x86')],_0x4668fd[_0x9c2c('0x88')],_0x3ecb18['transcribeRegion'],_0x3ecb18[_0x9c2c('0x82')]);}logger[_0x9c2c('0x62')](util[_0x9c2c('0x4c')](_0x9c2c('0x8c'),_0x2df230[_0x9c2c('0x42')]['id'],_0x3ecb18[_0x9c2c('0x82')]));return;}})[_0x9c2c('0x20')](function(_0x138850){if(_0xcd81e2[_0x9c2c('0x74')]===_0x9c2c('0x8d')){return transcribe(_0x2df230[_0x9c2c('0x42')]['id'],_0x4668fd['data1'],_0x4668fd[_0x9c2c('0x88')],_0x3ecb18[_0x9c2c('0x7b')],_0x3ecb18[_0x9c2c('0x82')],_0xcd81e2[_0x9c2c('0x4b')],_0x3ecb18[_0x9c2c('0x81')]);}else{logger['info'](util[_0x9c2c('0x4c')]('[RUNTRANSCRIPT][%d]\x20Transcript\x20action\x20already\x20requested',_0x2df230[_0x9c2c('0x42')]['id']));return{'transcribeStatus':_0x9c2c('0x8e')};}})['then'](function(_0x23f531){if(_0x23f531){_0x23f531[_0x9c2c('0x8f')]=_0x2df230[_0x9c2c('0x47')]['runSentiment'];return _0xcd81e2['updateAttributes'](_0x23f531);}})['then'](respondWithResult(_0x39877e,null))[_0x9c2c('0x45')](handleError(_0x39877e,null));};function writeFile(_0x159875,_0x5d39a3){return new Promise(function(_0x2b9017,_0x1e3f68){fs[_0x9c2c('0x90')](_0x5d39a3,_0x159875,function(_0x5884d2,_0x3a612c){if(_0x5884d2){return _0x1e3f68(_0x5884d2);}else{return _0x2b9017(_0x3a612c);}});});}exports[_0x9c2c('0x91')]=function(_0x3acc62,_0x32b887,_0x4aea55){return db['VoiceRecording'][_0x9c2c('0x76')]({'where':{'id':_0x3acc62[_0x9c2c('0x42')]['id']}})[_0x9c2c('0x20')](handleEntityNotFound(_0x32b887))[_0x9c2c('0x20')](function(_0x4dd672){if(_0x4dd672&&_0x4dd672['fileText']){var _0x4e9b36=_0x4dd672[_0x9c2c('0x92')];var _0x40dc5a=config[_0x9c2c('0x93')]+'/server/files/transcribes/transcribe_'+_0x4dd672['id']+'.txt';if(fs[_0x9c2c('0x4d')](_0x40dc5a)){return _0x40dc5a;}return writeFile(_0x4e9b36,_0x40dc5a)['then'](function(){return _0x40dc5a;});}else{throw new db[(_0x9c2c('0x4f'))]['ValidationError']('Transcript\x20not\x20available');}})[_0x9c2c('0x20')](function(_0x13c4e4){return _0x32b887[_0x9c2c('0x49')](_0x13c4e4);})[_0x9c2c('0x45')](handleError(_0x32b887));};