diff --git a/worker-toolkit-potion-polyglot/repos/potion-voice/test/worker-tenant.test.js b/worker-toolkit-potion-polyglot/repos/potion-voice/test/worker-tenant.test.js deleted file mode 100644 index 9f742ae..0000000 --- a/worker-toolkit-potion-polyglot/repos/potion-voice/test/worker-tenant.test.js +++ /dev/null @@ -1,132 +0,0 @@ -const assert = require('node:assert/strict') -const { test } = require('node:test') - -const userId = '507f1f77bcf86cd799439011' -const otherUserId = '507f191e810c19729de860ea' -const { requireDocumentId, requireUserId } = require('../worker-tenant') - -test('queue IDs reject missing values and MongoDB query operators', () => { - assert.equal(requireUserId(userId), userId) - assert.equal(requireDocumentId(otherUserId), otherUserId) - assert.throws(() => requireUserId({ $ne: otherUserId }), /userId/) - assert.throws(() => requireDocumentId(undefined), /document ID/) -}) - -const factories = [ - require('../voice-cloning-job-handler/voice_cloning/voice_cloning_service'), - require('../voice-cloning-job-handler/user_audio_profile/user_audio_profile_service'), - require('../voice-synthsizer-job-handler/user_audio_profile/user_audio_profile_service'), - require('../voice-synthsizer-job-handler/job/job_service'), -] - -for (const [index, factory] of factories.entries()) { - test(`worker service ${index} scopes reads and writes`, async () => { - const calls = [] - class Model { - static async findOne(filter) { calls.push(['findOne', filter]) } - static async find(filter) { calls.push(['find', filter]); return [] } - static async findOneAndUpdate(filter, update) { - calls.push(['findOneAndUpdate', filter, update]) - } - static async updateMany(filter, update) { - calls.push(['updateMany', filter, update]) - } - static async insertMany(data) { calls.push(['insertMany', data]) } - } - const service = factory(Model) - - await service.read({ _id: 'record', userId }) - await service.find({ userId }) - await service.update({ _id: 'record', userId, status: 'completed' }) - await service.remove({ _id: 'record', userId }) - await service.removeMany({ userId }) - await service.insertMany([{ userId, status: 'created' }]) - - for (const call of calls.slice(0, 5)) { - assert.equal(call[1].userId, userId) - } - assert.equal(calls[2][1].deleted, false) - assert.deepEqual(calls[2][2], { $set: { status: 'completed' } }) - assert.equal(calls[5][1][0].userId, userId) - - const originalLog = console.log - const before = calls.length - console.log = () => {} - try { - await assert.rejects(service.read({ _id: 'record' }), /userId/) - await assert.rejects( - service.update({ _id: 'record', userId: { $ne: otherUserId } }), - /userId/ - ) - await assert.rejects(service.remove({ _id: 'record' }), /userId/) - await assert.rejects( - service.insertMany([{ userId }, { status: 'created' }]), - /userId/ - ) - } finally { - console.log = originalLog - } - assert.equal(calls.length, before) - }) -} - -test('salutation upsert stays within the job tenant', async () => { - const calls = [] - class Model { - constructor(data) { calls.push(['create', data]) } - async save() { return this } - static async findOne(filter) { calls.push(['findOne', filter]); return null } - } - const service = require('../voice-synthsizer-job-handler/salutation/salutation_service')(Model) - await service.updateOrCreate({ - firstName: 'Ada', - salutationVideo: 'url', - userAudioProfileId: 'profile', - }, userId) - assert.equal(calls[0][1].userId, userId) - assert.equal(calls[0][1].deleted, false) - assert.equal(calls[1][1].userId, userId) -}) - -test('salutation upsert updates an existing record within the job tenant', async () => { - const calls = [] - class Model { - static async findOne(filter) { - calls.push(['findOne', filter]) - return { _id: 'salutation', userId } - } - static async findOneAndUpdate(filter, update) { - calls.push(['findOneAndUpdate', filter, update]) - } - } - const service = require('../voice-synthsizer-job-handler/salutation/salutation_service')(Model) - await service.updateOrCreate({ - firstName: 'Ada', - salutationVideo: 'url', - userAudioProfileId: 'profile', - }, userId) - assert.equal(calls[0][1].userId, userId) - assert.deepEqual(calls[1][1], { _id: 'salutation', userId, deleted: false }) - assert.deepEqual(calls[1][2], { $set: { salutationVideo: 'url' } }) -}) - -test('salutation updates cannot change ownership', async () => { - const calls = [] - class Model { - static async findOneAndUpdate(filter, update) { - calls.push([filter, update]) - } - } - const service = require('../voice-synthsizer-job-handler/salutation/salutation_service')(Model) - await service.update({ - _id: 'salutation', - userId: otherUserId, - salutationVideo: 'url', - }, userId) - assert.deepEqual(calls[0], [ - { _id: 'salutation', userId, deleted: false }, - { $set: { salutationVideo: 'url' } }, - ]) - await assert.rejects(service.modify({ _id: 'salutation' }), /userId/) - assert.equal(calls.length, 1) -}) diff --git a/worker-toolkit-potion-polyglot/repos/potion-voice/voice-cloning-job-handler/index.js b/worker-toolkit-potion-polyglot/repos/potion-voice/voice-cloning-job-handler/index.js index d3552ca..0995e23 100644 --- a/worker-toolkit-potion-polyglot/repos/potion-voice/voice-cloning-job-handler/index.js +++ b/worker-toolkit-potion-polyglot/repos/potion-voice/voice-cloning-job-handler/index.js @@ -10,7 +10,6 @@ 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 @@ -102,15 +101,14 @@ const processQueue = () => { const receiptHandle = response.Messages[0].ReceiptHandle console.log('job===', job) - const { _id, userAudioProfileId, userId } = job._doc - requireUserId(userId) - requireDocumentId(_id) - requireDocumentId(userAudioProfileId) + const { metadata, input, _id, userAudioProfileId } = job._doc 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 @@ -128,26 +126,9 @@ 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}` @@ -155,10 +136,9 @@ const processQueue = () => { fs.mkdirSync(logPath, { recursive: true }) } // update the db model to processing - await voiceCloningService.update({ _id, userId, status: 'processing' }) + await voiceCloningService.update({ _id, status: 'processing' }) await userAudioProfileService.update({ _id: userAudioProfileId, - userId, status: 'processing', }) @@ -260,7 +240,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, userId, status: 'completed' }) + await voiceCloningService.update({ _id, status: 'completed' }) const training_model_path = { voice_model_path: `${resultsPath}/${generatedDirectoryName}/checkpoint_365200.pth`, @@ -272,7 +252,6 @@ const processQueue = () => { await userAudioProfileService.update({ _id: userAudioProfileId, - userId, status: 'completed', training_model_path, }) @@ -294,7 +273,6 @@ const processQueue = () => { // add S3 path to user audio profile model await userAudioProfileService.update({ _id: userAudioProfileId, - userId, training_model_s3_path, }) } catch (error) { @@ -307,14 +285,11 @@ const processQueue = () => { Bugsnag.notify(error) // update the db to set status as error - if (authorized) { - await voiceCloningService.update({ _id, userId, status: 'error' }) - await userAudioProfileService.update({ - _id: userAudioProfileId, - userId, - status: 'error', - }) - } + await voiceCloningService.update({ _id, status: 'error' }) + await userAudioProfileService.update({ + _id: userAudioProfileId, + status: 'error', + }) resolve() // to continue working on new jobs } diff --git a/worker-toolkit-potion-polyglot/repos/potion-voice/voice-cloning-job-handler/user_audio_profile/user_audio_profile_service.js b/worker-toolkit-potion-polyglot/repos/potion-voice/voice-cloning-job-handler/user_audio_profile/user_audio_profile_service.js index f35ecd6..e76643d 100644 --- a/worker-toolkit-potion-polyglot/repos/potion-voice/voice-cloning-job-handler/user_audio_profile/user_audio_profile_service.js +++ b/worker-toolkit-potion-polyglot/repos/potion-voice/voice-cloning-job-handler/user_audio_profile/user_audio_profile_service.js @@ -1,9 +1,8 @@ -const { requireUserId } = require('../../worker-tenant') const StringifyUtils = require('../../app/services/utils/logService') const create = (UserAudioProfileModel) => async (data) => { try { - const newModel = new UserAudioProfileModel({ ...data, userId: requireUserId(data.userId) }) + const newModel = new UserAudioProfileModel({ ...data }) const savedModel = await newModel.save() return savedModel } catch (error) { @@ -18,9 +17,7 @@ const create = (UserAudioProfileModel) => async (data) => { const insertMany = (UserAudioProfileModel) => async (data) => { try { - const inserted = await UserAudioProfileModel.insertMany( - data.map((item) => ({ ...item, userId: requireUserId(item.userId) })) - ) + const inserted = await UserAudioProfileModel.insertMany(data) return inserted } catch (error) { const details = { data } @@ -36,7 +33,6 @@ const read = (UserAudioProfileModel) => async (filter) => { try { const foundModel = await UserAudioProfileModel.findOne({ ...filter, - userId: requireUserId(filter.userId), deleted: false, }) return foundModel @@ -54,7 +50,6 @@ const find = (UserAudioProfileModel) => async (filter) => { try { const foundModels = await UserAudioProfileModel.find({ ...filter, - userId: requireUserId(filter.userId), deleted: false, }) return foundModels @@ -70,11 +65,12 @@ const find = (UserAudioProfileModel) => async (filter) => { const update = (UserAudioProfileModel) => async (data) => { try { - const { _id, userId, ...changes } = data const updatedModel = await UserAudioProfileModel.findOneAndUpdate( - { _id, userId: requireUserId(userId), deleted: false }, - { $set: changes }, - { new: true } + { _id: data._id }, + data, + { + new: true, + } ) return updatedModel } catch (error) { @@ -90,7 +86,7 @@ const update = (UserAudioProfileModel) => async (data) => { const remove = (UserAudioProfileModel) => async (filter) => { try { const updatedModel = await UserAudioProfileModel.findOneAndUpdate( - { ...filter, userId: requireUserId(filter.userId) }, + { ...filter }, { $set: { deleted: true, @@ -112,7 +108,7 @@ const remove = (UserAudioProfileModel) => async (filter) => { const removeMany = (UserAudioProfileModel) => async (filter) => { try { const updatedModel = await UserAudioProfileModel.updateMany( - { ...filter, userId: requireUserId(filter.userId) }, + { ...filter }, { $set: { deleted: true, diff --git a/worker-toolkit-potion-polyglot/repos/potion-voice/voice-cloning-job-handler/voice_cloning/voice_cloning_service.js b/worker-toolkit-potion-polyglot/repos/potion-voice/voice-cloning-job-handler/voice_cloning/voice_cloning_service.js index cef601b..329638e 100644 --- a/worker-toolkit-potion-polyglot/repos/potion-voice/voice-cloning-job-handler/voice_cloning/voice_cloning_service.js +++ b/worker-toolkit-potion-polyglot/repos/potion-voice/voice-cloning-job-handler/voice_cloning/voice_cloning_service.js @@ -1,9 +1,8 @@ -const { requireUserId } = require('../../worker-tenant') const StringifyUtils = require('../../app/services/utils/logService') const create = (VoiceCloningModel) => async (data) => { try { - const newModel = new VoiceCloningModel({ ...data, userId: requireUserId(data.userId) }) + const newModel = new VoiceCloningModel({ ...data }) const savedModel = await newModel.save() return savedModel } catch (error) { @@ -18,9 +17,7 @@ const create = (VoiceCloningModel) => async (data) => { const insertMany = (VoiceCloningModel) => async (data) => { try { - const inserted = await VoiceCloningModel.insertMany( - data.map((item) => ({ ...item, userId: requireUserId(item.userId) })) - ) + const inserted = await VoiceCloningModel.insertMany(data) return inserted } catch (error) { const details = { data } @@ -36,7 +33,6 @@ const read = (VoiceCloningModel) => async (filter) => { try { const foundModel = await VoiceCloningModel.findOne({ ...filter, - userId: requireUserId(filter.userId), deleted: false, }) return foundModel @@ -54,7 +50,6 @@ const find = (VoiceCloningModel) => async (filter) => { try { const foundModels = await VoiceCloningModel.find({ ...filter, - userId: requireUserId(filter.userId), deleted: false, }) return foundModels @@ -70,11 +65,12 @@ const find = (VoiceCloningModel) => async (filter) => { const update = (VoiceCloningModel) => async (data) => { try { - const { _id, userId, ...changes } = data const updatedModel = await VoiceCloningModel.findOneAndUpdate( - { _id, userId: requireUserId(userId), deleted: false }, - { $set: changes }, - { new: true } + { _id: data._id }, + data, + { + new: true, + } ) return updatedModel @@ -91,7 +87,7 @@ const update = (VoiceCloningModel) => async (data) => { const remove = (VoiceCloningModel) => async (filter) => { try { const updatedModel = await VoiceCloningModel.findOneAndUpdate( - { ...filter, userId: requireUserId(filter.userId) }, + { ...filter }, { $set: { deleted: true, @@ -113,7 +109,7 @@ const remove = (VoiceCloningModel) => async (filter) => { const removeMany = (VoiceCloningModel) => async (filter) => { try { const updatedModel = await VoiceCloningModel.updateMany( - { ...filter, userId: requireUserId(filter.userId) }, + { ...filter }, { $set: { deleted: true, diff --git a/worker-toolkit-potion-polyglot/repos/potion-voice/voice-synthsizer-job-handler/index.js b/worker-toolkit-potion-polyglot/repos/potion-voice/voice-synthsizer-job-handler/index.js index 7269ea7..862300f 100644 --- a/worker-toolkit-potion-polyglot/repos/potion-voice/voice-synthsizer-job-handler/index.js +++ b/worker-toolkit-potion-polyglot/repos/potion-voice/voice-synthsizer-job-handler/index.js @@ -11,7 +11,6 @@ const recordingModel = require('./recording') const recordingSalutationModel = require('./recording_salutation') const jobService = require('./job') const salutationService = require('./salutation') -const { requireUserId, requireDocumentId } = require('../worker-tenant') let throttleMessageFetching = true AWS.config.update({ region: 'us-west-2' }) const sqsQueueUrl = process.env.SQS_URL @@ -80,14 +79,8 @@ const processQueue = () => { recordingId, baseUrlForPotionAi, env, - userId, } = job - requireUserId(userId) - requireDocumentId(userAudioProfileId) - requireDocumentId(salutationId) - requireDocumentId(recordingId) - const DB_URI = env === 'production' ? mongoUriProd @@ -102,24 +95,10 @@ const processQueue = () => { const userAudioProfile = await userAudioProfileService.find({ _id: userAudioProfileId, - userId, status: 'completed', }) - if (userAudioProfile.length) { - const { training_model_path } = userAudioProfile[0] - const salutationToUpdate = await recordingSalutationModel.findOne({ - _id: salutationId, - userId, - deleted: false, - }) - const recordingToUpdate = await recordingModel.findOne({ - _id: recordingId, - userId, - deleted: false, - }) - if (!salutationToUpdate || !recordingToUpdate) { - throw new Error('Job recording or salutation does not belong to user') - } + if (userAudioProfile) { + const { training_model_path, userId } = userAudioProfile[0] const { voice_model_light_path, voice_model_config_light_path, @@ -170,6 +149,16 @@ const processQueue = () => { userId ) // update the dynamic recordings for the current dynamic video with salutation url + const salutationToUpdate = await recordingSalutationModel.findOne({ + _id: salutationId, + deleted: false, + }) + + const recordingToUpdate = await recordingModel.findOne({ + _id: recordingId, + deleted: false, + }) + if ( salutationToUpdate && salutationToUpdate.deleted === false && @@ -180,8 +169,6 @@ const processQueue = () => { await recordingSalutationModel.findOneAndUpdate( { _id: salutationId, - userId, - deleted: false, }, { $set: { @@ -213,7 +200,7 @@ const processQueue = () => { jobsToInsert.push({ firstName, recordingId: recordingToUpdate._id, - userId, + userId: recordingToUpdate.userId, salutationId: salutationToUpdate._id, metadata: jobData, }) diff --git a/worker-toolkit-potion-polyglot/repos/potion-voice/voice-synthsizer-job-handler/job/job_service.js b/worker-toolkit-potion-polyglot/repos/potion-voice/voice-synthsizer-job-handler/job/job_service.js index 290b1c4..44189af 100644 --- a/worker-toolkit-potion-polyglot/repos/potion-voice/voice-synthsizer-job-handler/job/job_service.js +++ b/worker-toolkit-potion-polyglot/repos/potion-voice/voice-synthsizer-job-handler/job/job_service.js @@ -1,9 +1,8 @@ -const { requireUserId } = require('../../worker-tenant') const StringifyUtils = require('../../app/services/utils/logService') const create = (Job) => async (jobData) => { try { - const newJob = new Job({ ...jobData, userId: requireUserId(jobData.userId) }) + const newJob = new Job({ ...jobData }) const savedJob = await newJob.save() return savedJob } catch (error) { @@ -18,9 +17,7 @@ const create = (Job) => async (jobData) => { const insertMany = (Job) => async (jobData) => { try { - const inserted = await Job.insertMany( - jobData.map((item) => ({ ...item, userId: requireUserId(item.userId) })) - ) + const inserted = await Job.insertMany(jobData) return inserted } catch (error) { const details = { jobData } @@ -36,7 +33,6 @@ const read = (Job) => async (filter) => { try { const foundJob = await Job.findOne({ ...filter, - userId: requireUserId(filter.userId), deleted: false, }) return foundJob @@ -54,7 +50,6 @@ const find = (Job) => async (filter) => { try { const foundJobs = await Job.find({ ...filter, - userId: requireUserId(filter.userId), deleted: false, }) return foundJobs @@ -70,12 +65,9 @@ const find = (Job) => async (filter) => { const update = (Job) => async (job) => { try { - const { _id, userId, ...changes } = job - const updatedJob = await Job.findOneAndUpdate( - { _id, userId: requireUserId(userId), deleted: false }, - { $set: changes }, - { new: true } - ) + const updatedJob = await Job.findOneAndUpdate({ _id: job._id }, job, { + new: true, + }) return updatedJob } catch (error) { const details = { job } @@ -90,7 +82,7 @@ const update = (Job) => async (job) => { const remove = (Job) => async (filter) => { try { const updatedJob = await Job.findOneAndUpdate( - { ...filter, userId: requireUserId(filter.userId) }, + { ...filter }, { $set: { deleted: true, @@ -112,7 +104,7 @@ const remove = (Job) => async (filter) => { const removeMany = (Job) => async (filter) => { try { const updatedJob = await Job.updateMany( - { ...filter, userId: requireUserId(filter.userId) }, + { ...filter }, { $set: { deleted: true, diff --git a/worker-toolkit-potion-polyglot/repos/potion-voice/voice-synthsizer-job-handler/salutation/salutation_service.js b/worker-toolkit-potion-polyglot/repos/potion-voice/voice-synthsizer-job-handler/salutation/salutation_service.js index 29dfc65..2d84f78 100644 --- a/worker-toolkit-potion-polyglot/repos/potion-voice/voice-synthsizer-job-handler/salutation/salutation_service.js +++ b/worker-toolkit-potion-polyglot/repos/potion-voice/voice-synthsizer-job-handler/salutation/salutation_service.js @@ -1,7 +1,5 @@ -const { requireUserId } = require('../../worker-tenant') - const create = (Salutation) => async (salutationData, userId) => { - const newSalutation = new Salutation({ ...salutationData, userId: requireUserId(userId) }) + const newSalutation = new Salutation({ ...salutationData, userId }) const savedSalutation = await newSalutation.save() return savedSalutation } @@ -9,7 +7,6 @@ const create = (Salutation) => async (salutationData, userId) => { const read = (Salutation) => async (filter) => { const foundSalutation = await Salutation.findOne({ ...filter, - userId: requireUserId(filter.userId), deleted: false, }) return foundSalutation @@ -18,34 +15,28 @@ const read = (Salutation) => async (filter) => { const find = (Salutation) => async (filter) => { const foundSalutations = await Salutation.find({ ...filter, - userId: requireUserId(filter.userId), deleted: false, }) return foundSalutations } const update = (Salutation) => async (salutation, userId) => { - const { _id, ...changes } = salutation - delete changes.userId const updatedSalutation = await Salutation.findOneAndUpdate( - { _id, userId: requireUserId(userId), deleted: false }, - { $set: changes }, + { _id: salutation._id, userId }, + salutation, { new: true } ) return updatedSalutation } -const modify = (Salutation) => async (salutation, userId) => { +const modify = (Salutation) => async (salutation) => { const findQuery = salutation._id ? { _id: salutation._id } : { transcriptId: salutation.transcriptId } - const changes = { ...salutation } - delete changes._id - delete changes.userId const updatedSalutation = await Salutation.findOneAndUpdate( - { ...findQuery, userId: requireUserId(userId), deleted: false }, - { $set: changes }, + findQuery, + salutation, { new: true } ) return updatedSalutation @@ -60,10 +51,8 @@ const updateOrCreate = userId, }) if (salutation) { - return await update(Salutation)( - { _id: salutation._id, salutationVideo }, - userId - ) + salutation.salutationVideo = salutationVideo + return await update(Salutation)(salutation, userId) } else { return await create(Salutation)( { firstName, salutationVideo, userAudioProfileId }, @@ -74,7 +63,7 @@ const updateOrCreate = const remove = (Salutation) => async (filter, userId) => { const updatedSalutation = await Salutation.findOneAndUpdate( - { ...filter, userId: requireUserId(userId) }, + { ...filter, userId }, { $set: { deleted: true, diff --git a/worker-toolkit-potion-polyglot/repos/potion-voice/voice-synthsizer-job-handler/user_audio_profile/user_audio_profile_service.js b/worker-toolkit-potion-polyglot/repos/potion-voice/voice-synthsizer-job-handler/user_audio_profile/user_audio_profile_service.js index a432cfc..18416d7 100644 --- a/worker-toolkit-potion-polyglot/repos/potion-voice/voice-synthsizer-job-handler/user_audio_profile/user_audio_profile_service.js +++ b/worker-toolkit-potion-polyglot/repos/potion-voice/voice-synthsizer-job-handler/user_audio_profile/user_audio_profile_service.js @@ -1,9 +1,8 @@ -const { requireUserId } = require('../../worker-tenant') const StringifyUtils = require('../../app/services/utils/logService') const create = (UserAudioProfileModel) => async (data) => { try { - const newModel = new UserAudioProfileModel({ ...data, userId: requireUserId(data.userId) }) + const newModel = new UserAudioProfileModel({ ...data }) const savedModel = await newModel.save() return savedModel } catch (error) { @@ -18,9 +17,7 @@ const create = (UserAudioProfileModel) => async (data) => { const insertMany = (UserAudioProfileModel) => async (data) => { try { - const inserted = await UserAudioProfileModel.insertMany( - data.map((item) => ({ ...item, userId: requireUserId(item.userId) })) - ) + const inserted = await UserAudioProfileModel.insertMany(data) return inserted } catch (error) { const details = { data } @@ -36,7 +33,6 @@ const read = (UserAudioProfileModel) => async (filter) => { try { const foundModel = await UserAudioProfileModel.findOne({ ...filter, - userId: requireUserId(filter.userId), deleted: false }) return foundModel @@ -54,7 +50,6 @@ const find = (UserAudioProfileModel) => async (filter) => { try { const foundModels = await UserAudioProfileModel.find({ ...filter, - userId: requireUserId(filter.userId), deleted: false }) return foundModels @@ -71,11 +66,12 @@ 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, userId: requireUserId(userId), deleted: false }, - { $set: changes }, - { new: true } + { _id: data._id }, + data, + { + new: true + } ) console.log('ua updatedModel', updatedModel) return updatedModel @@ -92,7 +88,7 @@ const update = (UserAudioProfileModel) => async (data) => { const remove = (UserAudioProfileModel) => async (filter) => { try { const updatedModel = await UserAudioProfileModel.findOneAndUpdate( - { ...filter, userId: requireUserId(filter.userId) }, + { ...filter }, { $set: { deleted: true @@ -114,7 +110,7 @@ const remove = (UserAudioProfileModel) => async (filter) => { const removeMany = (UserAudioProfileModel) => async (filter) => { try { const updatedModel = await UserAudioProfileModel.updateMany( - { ...filter, userId: requireUserId(filter.userId) }, + { ...filter }, { $set: { deleted: true diff --git a/worker-toolkit-potion-polyglot/repos/potion-voice/worker-tenant.js b/worker-toolkit-potion-polyglot/repos/potion-voice/worker-tenant.js deleted file mode 100644 index 2b8c40a..0000000 --- a/worker-toolkit-potion-polyglot/repos/potion-voice/worker-tenant.js +++ /dev/null @@ -1,12 +0,0 @@ -// SQS payloads must never turn a tenant or document filter into a broad query. -const requireId = (id, name) => { - if (typeof id !== 'string' || !/^[0-9a-f]{24}$/i.test(id)) { - throw new Error(`A valid ${name} is required`) - } - return id -} - -const requireUserId = (userId) => requireId(userId, 'userId') -const requireDocumentId = (id) => requireId(id, 'document ID') - -module.exports = { requireUserId, requireDocumentId }