Add the priority to request param and use the correct queue accordingly

This commit is contained in:
Hongbo Wu 2022-08-29 11:49:10 +08:00
parent f903a92245
commit 4af340f30e

View file

@ -73,13 +73,18 @@ export function articleRouter() {
})
router.get(
'/:id/:outputFormat/:voice?',
'/:id/:outputFormat/:priority/:voice?',
cors<express.Request>(corsConfig),
async (req, res) => {
const articleId = req.params.id
const outputFormat = req.params.outputFormat
const voice = req.params.voice
if (!articleId || !['mp3', 'speech-marks'].includes(outputFormat)) {
const priority = req.params.priority
if (
!articleId ||
!['mp3', 'speech-marks'].includes(outputFormat) ||
!['low', 'high'].includes(priority)
) {
return res.status(400).send('Invalid data')
}
const token = req.cookies?.auth || req.headers?.authorization
@ -153,14 +158,13 @@ export function articleRouter() {
voice: voice || userPersonalization?.speechVoice || 'en-US-JennyNeural',
})
// enqueue a task to convert text to speech
const taskName = await enqueueTextToSpeech(
uid,
speech.id,
page.content,
'ssml',
speech.voice,
env.fileUpload.gcsUploadBucket
)
const taskName = await enqueueTextToSpeech({
userId: uid,
speechId: speech.id,
text: page.content,
voice: speech.voice,
priority: priority as 'low' | 'high',
})
logger.info('Start Text to speech task', { taskName })
res.status(202).send('Text to speech task started')
}