changes to implement instructions
This commit is contained in:
@@ -10,6 +10,7 @@ const sqs = require('../app/services/sqs')
|
||||
const s3 = require('../app/services/s3')
|
||||
const voiceCloningService = require('./voice_cloning')
|
||||
const userAudioProfileService = require('./user_audio_profile')
|
||||
const { requireUserId, requireDocumentId } = require('../worker-tenant')
|
||||
|
||||
AWS.config.update({ region: 'us-west-2' })
|
||||
const sqsQueueUrl = process.env.SQS_URL
|
||||
@@ -101,14 +102,15 @@ const processQueue = () => {
|
||||
const receiptHandle = response.Messages[0].ReceiptHandle
|
||||
console.log('job===', job)
|
||||
|
||||
const { metadata, input, _id, userAudioProfileId } = job._doc
|
||||
const { _id, userAudioProfileId, userId } = job._doc
|
||||
requireUserId(userId)
|
||||
requireDocumentId(_id)
|
||||
requireDocumentId(userAudioProfileId)
|
||||
console.log('userAudioProfileId', userAudioProfileId)
|
||||
console.log('_id', _id)
|
||||
const { env } = job
|
||||
console.log('env', env)
|
||||
|
||||
console.log('metadata------', metadata)
|
||||
console.log('input', input)
|
||||
const DB_URI =
|
||||
env === 'production'
|
||||
? mongoUriProd
|
||||
@@ -126,9 +128,26 @@ const processQueue = () => {
|
||||
? cloudFrontUrlStaging
|
||||
: cloudFrontUrlDev
|
||||
|
||||
let authorized = false
|
||||
try {
|
||||
await sqs.deleteMessageFromSQS(sqsQueueUrl, receiptHandle)
|
||||
|
||||
const cloningJob = await voiceCloningService.read({
|
||||
_id,
|
||||
userId,
|
||||
userAudioProfileId,
|
||||
})
|
||||
const audioProfile = await userAudioProfileService.read({
|
||||
_id: userAudioProfileId,
|
||||
userId,
|
||||
})
|
||||
if (!cloningJob || !audioProfile) {
|
||||
throw new Error('Cloning job or audio profile does not belong to user')
|
||||
}
|
||||
authorized = true
|
||||
|
||||
const { metadata, input } = cloningJob
|
||||
|
||||
const { directoryName } = metadata
|
||||
console.log('directoryName', directoryName)
|
||||
const logPath = `/mnt/efs/potion-voice/${env}/${directoryName}`
|
||||
@@ -136,9 +155,10 @@ const processQueue = () => {
|
||||
fs.mkdirSync(logPath, { recursive: true })
|
||||
}
|
||||
// update the db model to processing
|
||||
await voiceCloningService.update({ _id, status: 'processing' })
|
||||
await voiceCloningService.update({ _id, userId, status: 'processing' })
|
||||
await userAudioProfileService.update({
|
||||
_id: userAudioProfileId,
|
||||
userId,
|
||||
status: 'processing',
|
||||
})
|
||||
|
||||
@@ -240,7 +260,7 @@ const processQueue = () => {
|
||||
console.timeEnd(VOICE_MINIMIZE_LABEL)
|
||||
|
||||
// Add the code to update location of generated model and status into DB
|
||||
await voiceCloningService.update({ _id, status: 'completed' })
|
||||
await voiceCloningService.update({ _id, userId, status: 'completed' })
|
||||
|
||||
const training_model_path = {
|
||||
voice_model_path: `${resultsPath}/${generatedDirectoryName}/checkpoint_365200.pth`,
|
||||
@@ -252,6 +272,7 @@ const processQueue = () => {
|
||||
|
||||
await userAudioProfileService.update({
|
||||
_id: userAudioProfileId,
|
||||
userId,
|
||||
status: 'completed',
|
||||
training_model_path,
|
||||
})
|
||||
@@ -273,6 +294,7 @@ const processQueue = () => {
|
||||
// add S3 path to user audio profile model
|
||||
await userAudioProfileService.update({
|
||||
_id: userAudioProfileId,
|
||||
userId,
|
||||
training_model_s3_path,
|
||||
})
|
||||
} catch (error) {
|
||||
@@ -285,11 +307,14 @@ const processQueue = () => {
|
||||
Bugsnag.notify(error)
|
||||
|
||||
// update the db to set status as error
|
||||
await voiceCloningService.update({ _id, status: 'error' })
|
||||
await userAudioProfileService.update({
|
||||
_id: userAudioProfileId,
|
||||
status: 'error',
|
||||
})
|
||||
if (authorized) {
|
||||
await voiceCloningService.update({ _id, userId, status: 'error' })
|
||||
await userAudioProfileService.update({
|
||||
_id: userAudioProfileId,
|
||||
userId,
|
||||
status: 'error',
|
||||
})
|
||||
}
|
||||
|
||||
resolve() // to continue working on new jobs
|
||||
}
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
const { requireUserId } = require('../../worker-tenant')
|
||||
const StringifyUtils = require('../../app/services/utils/logService')
|
||||
|
||||
const create = (UserAudioProfileModel) => async (data) => {
|
||||
try {
|
||||
const newModel = new UserAudioProfileModel({ ...data })
|
||||
const newModel = new UserAudioProfileModel({ ...data, userId: requireUserId(data.userId) })
|
||||
const savedModel = await newModel.save()
|
||||
return savedModel
|
||||
} catch (error) {
|
||||
@@ -17,7 +18,9 @@ const create = (UserAudioProfileModel) => async (data) => {
|
||||
|
||||
const insertMany = (UserAudioProfileModel) => async (data) => {
|
||||
try {
|
||||
const inserted = await UserAudioProfileModel.insertMany(data)
|
||||
const inserted = await UserAudioProfileModel.insertMany(
|
||||
data.map((item) => ({ ...item, userId: requireUserId(item.userId) }))
|
||||
)
|
||||
return inserted
|
||||
} catch (error) {
|
||||
const details = { data }
|
||||
@@ -33,6 +36,7 @@ const read = (UserAudioProfileModel) => async (filter) => {
|
||||
try {
|
||||
const foundModel = await UserAudioProfileModel.findOne({
|
||||
...filter,
|
||||
userId: requireUserId(filter.userId),
|
||||
deleted: false,
|
||||
})
|
||||
return foundModel
|
||||
@@ -50,6 +54,7 @@ const find = (UserAudioProfileModel) => async (filter) => {
|
||||
try {
|
||||
const foundModels = await UserAudioProfileModel.find({
|
||||
...filter,
|
||||
userId: requireUserId(filter.userId),
|
||||
deleted: false,
|
||||
})
|
||||
return foundModels
|
||||
@@ -65,12 +70,11 @@ const find = (UserAudioProfileModel) => async (filter) => {
|
||||
|
||||
const update = (UserAudioProfileModel) => async (data) => {
|
||||
try {
|
||||
const { _id, userId, ...changes } = data
|
||||
const updatedModel = await UserAudioProfileModel.findOneAndUpdate(
|
||||
{ _id: data._id },
|
||||
data,
|
||||
{
|
||||
new: true,
|
||||
}
|
||||
{ _id, userId: requireUserId(userId), deleted: false },
|
||||
{ $set: changes },
|
||||
{ new: true }
|
||||
)
|
||||
return updatedModel
|
||||
} catch (error) {
|
||||
@@ -86,7 +90,7 @@ const update = (UserAudioProfileModel) => async (data) => {
|
||||
const remove = (UserAudioProfileModel) => async (filter) => {
|
||||
try {
|
||||
const updatedModel = await UserAudioProfileModel.findOneAndUpdate(
|
||||
{ ...filter },
|
||||
{ ...filter, userId: requireUserId(filter.userId) },
|
||||
{
|
||||
$set: {
|
||||
deleted: true,
|
||||
@@ -108,7 +112,7 @@ const remove = (UserAudioProfileModel) => async (filter) => {
|
||||
const removeMany = (UserAudioProfileModel) => async (filter) => {
|
||||
try {
|
||||
const updatedModel = await UserAudioProfileModel.updateMany(
|
||||
{ ...filter },
|
||||
{ ...filter, userId: requireUserId(filter.userId) },
|
||||
{
|
||||
$set: {
|
||||
deleted: true,
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
const { requireUserId } = require('../../worker-tenant')
|
||||
const StringifyUtils = require('../../app/services/utils/logService')
|
||||
|
||||
const create = (VoiceCloningModel) => async (data) => {
|
||||
try {
|
||||
const newModel = new VoiceCloningModel({ ...data })
|
||||
const newModel = new VoiceCloningModel({ ...data, userId: requireUserId(data.userId) })
|
||||
const savedModel = await newModel.save()
|
||||
return savedModel
|
||||
} catch (error) {
|
||||
@@ -17,7 +18,9 @@ const create = (VoiceCloningModel) => async (data) => {
|
||||
|
||||
const insertMany = (VoiceCloningModel) => async (data) => {
|
||||
try {
|
||||
const inserted = await VoiceCloningModel.insertMany(data)
|
||||
const inserted = await VoiceCloningModel.insertMany(
|
||||
data.map((item) => ({ ...item, userId: requireUserId(item.userId) }))
|
||||
)
|
||||
return inserted
|
||||
} catch (error) {
|
||||
const details = { data }
|
||||
@@ -33,6 +36,7 @@ const read = (VoiceCloningModel) => async (filter) => {
|
||||
try {
|
||||
const foundModel = await VoiceCloningModel.findOne({
|
||||
...filter,
|
||||
userId: requireUserId(filter.userId),
|
||||
deleted: false,
|
||||
})
|
||||
return foundModel
|
||||
@@ -50,6 +54,7 @@ const find = (VoiceCloningModel) => async (filter) => {
|
||||
try {
|
||||
const foundModels = await VoiceCloningModel.find({
|
||||
...filter,
|
||||
userId: requireUserId(filter.userId),
|
||||
deleted: false,
|
||||
})
|
||||
return foundModels
|
||||
@@ -65,12 +70,11 @@ const find = (VoiceCloningModel) => async (filter) => {
|
||||
|
||||
const update = (VoiceCloningModel) => async (data) => {
|
||||
try {
|
||||
const { _id, userId, ...changes } = data
|
||||
const updatedModel = await VoiceCloningModel.findOneAndUpdate(
|
||||
{ _id: data._id },
|
||||
data,
|
||||
{
|
||||
new: true,
|
||||
}
|
||||
{ _id, userId: requireUserId(userId), deleted: false },
|
||||
{ $set: changes },
|
||||
{ new: true }
|
||||
)
|
||||
|
||||
return updatedModel
|
||||
@@ -87,7 +91,7 @@ const update = (VoiceCloningModel) => async (data) => {
|
||||
const remove = (VoiceCloningModel) => async (filter) => {
|
||||
try {
|
||||
const updatedModel = await VoiceCloningModel.findOneAndUpdate(
|
||||
{ ...filter },
|
||||
{ ...filter, userId: requireUserId(filter.userId) },
|
||||
{
|
||||
$set: {
|
||||
deleted: true,
|
||||
@@ -109,7 +113,7 @@ const remove = (VoiceCloningModel) => async (filter) => {
|
||||
const removeMany = (VoiceCloningModel) => async (filter) => {
|
||||
try {
|
||||
const updatedModel = await VoiceCloningModel.updateMany(
|
||||
{ ...filter },
|
||||
{ ...filter, userId: requireUserId(filter.userId) },
|
||||
{
|
||||
$set: {
|
||||
deleted: true,
|
||||
|
||||
Reference in New Issue
Block a user