489 lines
20 KiB
Plaintext
489 lines
20 KiB
Plaintext
diff --git a/worker-toolkit-potion-polyglot-v1.0.1/repos/potion-voice/voice-cloning-job-handler/index.js b/worker-toolkit-potion-polyglot-v1.0.1/repos/potion-voice/voice-cloning-job-handler/index.js
|
|
index 0995e23..84f050a 100644
|
|
--- a/worker-toolkit-potion-polyglot-v1.0.1/repos/potion-voice/voice-cloning-job-handler/index.js
|
|
+++ b/worker-toolkit-potion-polyglot-v1.0.1/repos/potion-voice/voice-cloning-job-handler/index.js
|
|
@@ -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 } = require('../worker_tenant')
|
|
|
|
AWS.config.update({ region: 'us-west-2' })
|
|
const sqsQueueUrl = process.env.SQS_URL
|
|
@@ -101,7 +102,7 @@ const processQueue = () => {
|
|
const receiptHandle = response.Messages[0].ReceiptHandle
|
|
console.log('job===', job)
|
|
|
|
- const { metadata, input, _id, userAudioProfileId } = job._doc
|
|
+ const { metadata, input, _id, userAudioProfileId, userId } = job._doc
|
|
console.log('userAudioProfileId', userAudioProfileId)
|
|
console.log('_id', _id)
|
|
const { env } = job
|
|
@@ -126,9 +127,25 @@ const processQueue = () => {
|
|
? cloudFrontUrlStaging
|
|
: cloudFrontUrlDev
|
|
|
|
+ let authorized = false
|
|
try {
|
|
await sqs.deleteMessageFromSQS(sqsQueueUrl, receiptHandle)
|
|
|
|
+ requireUserId(userId)
|
|
+ const cloningRecord = await voiceCloningService.read({
|
|
+ _id,
|
|
+ userId,
|
|
+ userAudioProfileId,
|
|
+ })
|
|
+ const audioProfile = await userAudioProfileService.read({
|
|
+ _id: userAudioProfileId,
|
|
+ userId,
|
|
+ })
|
|
+ if (!cloningRecord || !audioProfile) {
|
|
+ throw new Error('Voice cloning job records do not belong to the job user')
|
|
+ }
|
|
+ authorized = true
|
|
+
|
|
const { directoryName } = metadata
|
|
console.log('directoryName', directoryName)
|
|
const logPath = `/mnt/efs/potion-voice/${env}/${directoryName}`
|
|
@@ -136,11 +153,19 @@ const processQueue = () => {
|
|
fs.mkdirSync(logPath, { recursive: true })
|
|
}
|
|
// update the db model to processing
|
|
- await voiceCloningService.update({ _id, status: 'processing' })
|
|
- await userAudioProfileService.update({
|
|
+ const processingClone = await voiceCloningService.update({
|
|
+ _id,
|
|
+ userId,
|
|
+ status: 'processing',
|
|
+ })
|
|
+ const processingProfile = await userAudioProfileService.update({
|
|
_id: userAudioProfileId,
|
|
+ userId,
|
|
status: 'processing',
|
|
})
|
|
+ if (!processingClone || !processingProfile) {
|
|
+ throw new Error('Voice cloning job records are no longer available to the job user')
|
|
+ }
|
|
|
|
// create directory for userid-useraudioprofileid if not exist
|
|
const rootPath = `/tmp/${directoryName}`
|
|
@@ -240,7 +265,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 +277,7 @@ const processQueue = () => {
|
|
|
|
await userAudioProfileService.update({
|
|
_id: userAudioProfileId,
|
|
+ userId,
|
|
status: 'completed',
|
|
training_model_path,
|
|
})
|
|
@@ -273,6 +299,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 +312,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
|
|
}
|
|
diff --git a/worker-toolkit-potion-polyglot-v1.0.1/repos/potion-voice/voice-cloning-job-handler/user_audio_profile/user_audio_profile_service.js b/worker-toolkit-potion-polyglot-v1.0.1/repos/potion-voice/voice-cloning-job-handler/user_audio_profile/user_audio_profile_service.js
|
|
index e76643d..244a848 100644
|
|
--- a/worker-toolkit-potion-polyglot-v1.0.1/repos/potion-voice/voice-cloning-job-handler/user_audio_profile/user_audio_profile_service.js
|
|
+++ b/worker-toolkit-potion-polyglot-v1.0.1/repos/potion-voice/voice-cloning-job-handler/user_audio_profile/user_audio_profile_service.js
|
|
@@ -1,4 +1,5 @@
|
|
const StringifyUtils = require('../../app/services/utils/logService')
|
|
+const { tenantFilter } = require('../../worker_tenant')
|
|
|
|
const create = (UserAudioProfileModel) => async (data) => {
|
|
try {
|
|
@@ -32,7 +33,7 @@ const insertMany = (UserAudioProfileModel) => async (data) => {
|
|
const read = (UserAudioProfileModel) => async (filter) => {
|
|
try {
|
|
const foundModel = await UserAudioProfileModel.findOne({
|
|
- ...filter,
|
|
+ ...tenantFilter(filter),
|
|
deleted: false,
|
|
})
|
|
return foundModel
|
|
@@ -49,7 +50,7 @@ const read = (UserAudioProfileModel) => async (filter) => {
|
|
const find = (UserAudioProfileModel) => async (filter) => {
|
|
try {
|
|
const foundModels = await UserAudioProfileModel.find({
|
|
- ...filter,
|
|
+ ...tenantFilter(filter),
|
|
deleted: false,
|
|
})
|
|
return foundModels
|
|
@@ -65,9 +66,10 @@ 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,
|
|
+ { ...tenantFilter({ _id, userId }), deleted: false },
|
|
+ { $set: changes },
|
|
{
|
|
new: true,
|
|
}
|
|
@@ -86,7 +88,7 @@ const update = (UserAudioProfileModel) => async (data) => {
|
|
const remove = (UserAudioProfileModel) => async (filter) => {
|
|
try {
|
|
const updatedModel = await UserAudioProfileModel.findOneAndUpdate(
|
|
- { ...filter },
|
|
+ { ...tenantFilter(filter) },
|
|
{
|
|
$set: {
|
|
deleted: true,
|
|
@@ -108,7 +110,7 @@ const remove = (UserAudioProfileModel) => async (filter) => {
|
|
const removeMany = (UserAudioProfileModel) => async (filter) => {
|
|
try {
|
|
const updatedModel = await UserAudioProfileModel.updateMany(
|
|
- { ...filter },
|
|
+ { ...tenantFilter(filter) },
|
|
{
|
|
$set: {
|
|
deleted: true,
|
|
diff --git a/worker-toolkit-potion-polyglot-v1.0.1/repos/potion-voice/voice-cloning-job-handler/voice_cloning/voice_cloning_service.js b/worker-toolkit-potion-polyglot-v1.0.1/repos/potion-voice/voice-cloning-job-handler/voice_cloning/voice_cloning_service.js
|
|
index 329638e..8e7bd55 100644
|
|
--- a/worker-toolkit-potion-polyglot-v1.0.1/repos/potion-voice/voice-cloning-job-handler/voice_cloning/voice_cloning_service.js
|
|
+++ b/worker-toolkit-potion-polyglot-v1.0.1/repos/potion-voice/voice-cloning-job-handler/voice_cloning/voice_cloning_service.js
|
|
@@ -1,4 +1,5 @@
|
|
const StringifyUtils = require('../../app/services/utils/logService')
|
|
+const { tenantFilter } = require('../../worker_tenant')
|
|
|
|
const create = (VoiceCloningModel) => async (data) => {
|
|
try {
|
|
@@ -32,7 +33,7 @@ const insertMany = (VoiceCloningModel) => async (data) => {
|
|
const read = (VoiceCloningModel) => async (filter) => {
|
|
try {
|
|
const foundModel = await VoiceCloningModel.findOne({
|
|
- ...filter,
|
|
+ ...tenantFilter(filter),
|
|
deleted: false,
|
|
})
|
|
return foundModel
|
|
@@ -49,7 +50,7 @@ const read = (VoiceCloningModel) => async (filter) => {
|
|
const find = (VoiceCloningModel) => async (filter) => {
|
|
try {
|
|
const foundModels = await VoiceCloningModel.find({
|
|
- ...filter,
|
|
+ ...tenantFilter(filter),
|
|
deleted: false,
|
|
})
|
|
return foundModels
|
|
@@ -65,9 +66,10 @@ 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,
|
|
+ { ...tenantFilter({ _id, userId }), deleted: false },
|
|
+ { $set: changes },
|
|
{
|
|
new: true,
|
|
}
|
|
@@ -87,7 +89,7 @@ const update = (VoiceCloningModel) => async (data) => {
|
|
const remove = (VoiceCloningModel) => async (filter) => {
|
|
try {
|
|
const updatedModel = await VoiceCloningModel.findOneAndUpdate(
|
|
- { ...filter },
|
|
+ { ...tenantFilter(filter) },
|
|
{
|
|
$set: {
|
|
deleted: true,
|
|
@@ -109,7 +111,7 @@ const remove = (VoiceCloningModel) => async (filter) => {
|
|
const removeMany = (VoiceCloningModel) => async (filter) => {
|
|
try {
|
|
const updatedModel = await VoiceCloningModel.updateMany(
|
|
- { ...filter },
|
|
+ { ...tenantFilter(filter) },
|
|
{
|
|
$set: {
|
|
deleted: true,
|
|
diff --git a/worker-toolkit-potion-polyglot-v1.0.1/repos/potion-voice/voice-synthsizer-job-handler/index.js b/worker-toolkit-potion-polyglot-v1.0.1/repos/potion-voice/voice-synthsizer-job-handler/index.js
|
|
index 862300f..7cb19f0 100644
|
|
--- a/worker-toolkit-potion-polyglot-v1.0.1/repos/potion-voice/voice-synthsizer-job-handler/index.js
|
|
+++ b/worker-toolkit-potion-polyglot-v1.0.1/repos/potion-voice/voice-synthsizer-job-handler/index.js
|
|
@@ -11,6 +11,7 @@ const recordingModel = require('./recording')
|
|
const recordingSalutationModel = require('./recording_salutation')
|
|
const jobService = require('./job')
|
|
const salutationService = require('./salutation')
|
|
+const { requireUserId } = require('../worker_tenant')
|
|
let throttleMessageFetching = true
|
|
AWS.config.update({ region: 'us-west-2' })
|
|
const sqsQueueUrl = process.env.SQS_URL
|
|
@@ -72,6 +73,7 @@ const processQueue = () => {
|
|
await sqs.deleteMessageFromSQS(sqsQueueUrl, receiptHandle)
|
|
|
|
const {
|
|
+ userId,
|
|
userAudioProfileId,
|
|
text,
|
|
firstName,
|
|
@@ -91,14 +93,17 @@ const processQueue = () => {
|
|
console.log('DB_URI ', DB_URI)
|
|
await connectDB(DB_URI)
|
|
|
|
+ requireUserId(userId)
|
|
+
|
|
// read the path for the training model for the this users audio profile
|
|
|
|
- const userAudioProfile = await userAudioProfileService.find({
|
|
+ const userAudioProfile = await userAudioProfileService.read({
|
|
_id: userAudioProfileId,
|
|
+ userId,
|
|
status: 'completed',
|
|
})
|
|
if (userAudioProfile) {
|
|
- const { training_model_path, userId } = userAudioProfile[0]
|
|
+ const { training_model_path } = userAudioProfile
|
|
const {
|
|
voice_model_light_path,
|
|
voice_model_config_light_path,
|
|
@@ -151,11 +156,13 @@ const processQueue = () => {
|
|
// update the dynamic recordings for the current dynamic video with salutation url
|
|
const salutationToUpdate = await recordingSalutationModel.findOne({
|
|
_id: salutationId,
|
|
+ userId,
|
|
deleted: false,
|
|
})
|
|
|
|
const recordingToUpdate = await recordingModel.findOne({
|
|
_id: recordingId,
|
|
+ userId,
|
|
deleted: false,
|
|
})
|
|
|
|
@@ -169,6 +176,8 @@ const processQueue = () => {
|
|
await recordingSalutationModel.findOneAndUpdate(
|
|
{
|
|
_id: salutationId,
|
|
+ userId,
|
|
+ deleted: false,
|
|
},
|
|
{
|
|
$set: {
|
|
diff --git a/worker-toolkit-potion-polyglot-v1.0.1/repos/potion-voice/voice-synthsizer-job-handler/job/job_service.js b/worker-toolkit-potion-polyglot-v1.0.1/repos/potion-voice/voice-synthsizer-job-handler/job/job_service.js
|
|
index 44189af..ff53150 100644
|
|
--- a/worker-toolkit-potion-polyglot-v1.0.1/repos/potion-voice/voice-synthsizer-job-handler/job/job_service.js
|
|
+++ b/worker-toolkit-potion-polyglot-v1.0.1/repos/potion-voice/voice-synthsizer-job-handler/job/job_service.js
|
|
@@ -1,4 +1,5 @@
|
|
const StringifyUtils = require('../../app/services/utils/logService')
|
|
+const { tenantFilter } = require('../../worker_tenant')
|
|
|
|
const create = (Job) => async (jobData) => {
|
|
try {
|
|
@@ -32,7 +33,7 @@ const insertMany = (Job) => async (jobData) => {
|
|
const read = (Job) => async (filter) => {
|
|
try {
|
|
const foundJob = await Job.findOne({
|
|
- ...filter,
|
|
+ ...tenantFilter(filter),
|
|
deleted: false,
|
|
})
|
|
return foundJob
|
|
@@ -49,7 +50,7 @@ const read = (Job) => async (filter) => {
|
|
const find = (Job) => async (filter) => {
|
|
try {
|
|
const foundJobs = await Job.find({
|
|
- ...filter,
|
|
+ ...tenantFilter(filter),
|
|
deleted: false,
|
|
})
|
|
return foundJobs
|
|
@@ -65,9 +66,12 @@ const find = (Job) => async (filter) => {
|
|
|
|
const update = (Job) => async (job) => {
|
|
try {
|
|
- const updatedJob = await Job.findOneAndUpdate({ _id: job._id }, job, {
|
|
- new: true,
|
|
- })
|
|
+ const { _id, userId, ...changes } = job
|
|
+ const updatedJob = await Job.findOneAndUpdate(
|
|
+ { ...tenantFilter({ _id, userId }), deleted: false },
|
|
+ { $set: changes },
|
|
+ { new: true }
|
|
+ )
|
|
return updatedJob
|
|
} catch (error) {
|
|
const details = { job }
|
|
@@ -82,7 +86,7 @@ const update = (Job) => async (job) => {
|
|
const remove = (Job) => async (filter) => {
|
|
try {
|
|
const updatedJob = await Job.findOneAndUpdate(
|
|
- { ...filter },
|
|
+ { ...tenantFilter(filter) },
|
|
{
|
|
$set: {
|
|
deleted: true,
|
|
@@ -104,7 +108,7 @@ const remove = (Job) => async (filter) => {
|
|
const removeMany = (Job) => async (filter) => {
|
|
try {
|
|
const updatedJob = await Job.updateMany(
|
|
- { ...filter },
|
|
+ { ...tenantFilter(filter) },
|
|
{
|
|
$set: {
|
|
deleted: true,
|
|
diff --git a/worker-toolkit-potion-polyglot-v1.0.1/repos/potion-voice/voice-synthsizer-job-handler/salutation/salutation_service.js b/worker-toolkit-potion-polyglot-v1.0.1/repos/potion-voice/voice-synthsizer-job-handler/salutation/salutation_service.js
|
|
index 2d84f78..ad58f0d 100644
|
|
--- a/worker-toolkit-potion-polyglot-v1.0.1/repos/potion-voice/voice-synthsizer-job-handler/salutation/salutation_service.js
|
|
+++ b/worker-toolkit-potion-polyglot-v1.0.1/repos/potion-voice/voice-synthsizer-job-handler/salutation/salutation_service.js
|
|
@@ -1,4 +1,7 @@
|
|
+const { tenantFilter, requireUserId } = require('../../worker_tenant')
|
|
+
|
|
const create = (Salutation) => async (salutationData, userId) => {
|
|
+ requireUserId(userId)
|
|
const newSalutation = new Salutation({ ...salutationData, userId })
|
|
const savedSalutation = await newSalutation.save()
|
|
return savedSalutation
|
|
@@ -6,7 +9,7 @@ const create = (Salutation) => async (salutationData, userId) => {
|
|
|
|
const read = (Salutation) => async (filter) => {
|
|
const foundSalutation = await Salutation.findOne({
|
|
- ...filter,
|
|
+ ...tenantFilter(filter),
|
|
deleted: false,
|
|
})
|
|
return foundSalutation
|
|
@@ -14,29 +17,33 @@ const read = (Salutation) => async (filter) => {
|
|
|
|
const find = (Salutation) => async (filter) => {
|
|
const foundSalutations = await Salutation.find({
|
|
- ...filter,
|
|
+ ...tenantFilter(filter),
|
|
deleted: false,
|
|
})
|
|
return foundSalutations
|
|
}
|
|
|
|
const update = (Salutation) => async (salutation, userId) => {
|
|
+ const { _id, userId: ignoredUserId, ...changes } = salutation.toObject
|
|
+ ? salutation.toObject()
|
|
+ : salutation
|
|
const updatedSalutation = await Salutation.findOneAndUpdate(
|
|
- { _id: salutation._id, userId },
|
|
- salutation,
|
|
+ { ...tenantFilter({ _id, userId }), deleted: false },
|
|
+ { $set: changes },
|
|
{ new: true }
|
|
)
|
|
return updatedSalutation
|
|
}
|
|
|
|
-const modify = (Salutation) => async (salutation) => {
|
|
- const findQuery = salutation._id
|
|
- ? { _id: salutation._id }
|
|
+const modify = (Salutation) => async (salutation, userId) => {
|
|
+ const { _id, userId: ignoredUserId, ...changes } = salutation
|
|
+ const findQuery = _id
|
|
+ ? { _id }
|
|
: { transcriptId: salutation.transcriptId }
|
|
|
|
const updatedSalutation = await Salutation.findOneAndUpdate(
|
|
- findQuery,
|
|
- salutation,
|
|
+ { ...tenantFilter({ ...findQuery, userId }), deleted: false },
|
|
+ { $set: changes },
|
|
{ new: true }
|
|
)
|
|
return updatedSalutation
|
|
@@ -63,7 +70,7 @@ const updateOrCreate =
|
|
|
|
const remove = (Salutation) => async (filter, userId) => {
|
|
const updatedSalutation = await Salutation.findOneAndUpdate(
|
|
- { ...filter, userId },
|
|
+ { ...tenantFilter({ ...filter, userId }), deleted: false },
|
|
{
|
|
$set: {
|
|
deleted: true,
|
|
diff --git a/worker-toolkit-potion-polyglot-v1.0.1/repos/potion-voice/voice-synthsizer-job-handler/user_audio_profile/user_audio_profile_service.js b/worker-toolkit-potion-polyglot-v1.0.1/repos/potion-voice/voice-synthsizer-job-handler/user_audio_profile/user_audio_profile_service.js
|
|
index 18416d7..22acbf8 100644
|
|
--- a/worker-toolkit-potion-polyglot-v1.0.1/repos/potion-voice/voice-synthsizer-job-handler/user_audio_profile/user_audio_profile_service.js
|
|
+++ b/worker-toolkit-potion-polyglot-v1.0.1/repos/potion-voice/voice-synthsizer-job-handler/user_audio_profile/user_audio_profile_service.js
|
|
@@ -1,4 +1,5 @@
|
|
const StringifyUtils = require('../../app/services/utils/logService')
|
|
+const { tenantFilter } = require('../../worker_tenant')
|
|
|
|
const create = (UserAudioProfileModel) => async (data) => {
|
|
try {
|
|
@@ -32,7 +33,7 @@ const insertMany = (UserAudioProfileModel) => async (data) => {
|
|
const read = (UserAudioProfileModel) => async (filter) => {
|
|
try {
|
|
const foundModel = await UserAudioProfileModel.findOne({
|
|
- ...filter,
|
|
+ ...tenantFilter(filter),
|
|
deleted: false
|
|
})
|
|
return foundModel
|
|
@@ -49,7 +50,7 @@ const read = (UserAudioProfileModel) => async (filter) => {
|
|
const find = (UserAudioProfileModel) => async (filter) => {
|
|
try {
|
|
const foundModels = await UserAudioProfileModel.find({
|
|
- ...filter,
|
|
+ ...tenantFilter(filter),
|
|
deleted: false
|
|
})
|
|
return foundModels
|
|
@@ -66,9 +67,10 @@ const find = (UserAudioProfileModel) => async (filter) => {
|
|
const update = (UserAudioProfileModel) => async (data) => {
|
|
console.log('ua data', data)
|
|
try {
|
|
+ const { _id, userId, ...changes } = data
|
|
const updatedModel = await UserAudioProfileModel.findOneAndUpdate(
|
|
- { _id: data._id },
|
|
- data,
|
|
+ { ...tenantFilter({ _id, userId }), deleted: false },
|
|
+ { $set: changes },
|
|
{
|
|
new: true
|
|
}
|
|
@@ -88,7 +90,7 @@ const update = (UserAudioProfileModel) => async (data) => {
|
|
const remove = (UserAudioProfileModel) => async (filter) => {
|
|
try {
|
|
const updatedModel = await UserAudioProfileModel.findOneAndUpdate(
|
|
- { ...filter },
|
|
+ { ...tenantFilter(filter) },
|
|
{
|
|
$set: {
|
|
deleted: true
|
|
@@ -110,7 +112,7 @@ const remove = (UserAudioProfileModel) => async (filter) => {
|
|
const removeMany = (UserAudioProfileModel) => async (filter) => {
|
|
try {
|
|
const updatedModel = await UserAudioProfileModel.updateMany(
|
|
- { ...filter },
|
|
+ { ...tenantFilter(filter) },
|
|
{
|
|
$set: {
|
|
deleted: true
|