diff --git a/common b/common index e4d6ff6..71b58d5 160000 --- a/common +++ b/common @@ -1 +1 @@ -Subproject commit e4d6ff6ad1f8da44902719bb22aac3a7021b4df4 +Subproject commit 71b58d50999bd05a958b85aa95a2fb6dcb5a5f98 diff --git a/src/actors.js b/src/actors.js index 623eda3..bf760cc 100644 --- a/src/actors.js +++ b/src/actors.js @@ -585,29 +585,33 @@ export async function mergeActors(targetActorId, sourceActorId, reqUser) { const trx = await knex.transaction(); - await trx('actors') - .update('alias_for', targetActorId) - .where('id', sourceActorId); - - const mergedProfiles = await trx('actors_profiles') - .update('actor_id', targetActorId) - .where('actor_id', sourceActorId) - .returning('id'); - - const mergedScenes = await trx('releases_actors') - .update({ - actor_id: targetActorId, - alias_id: sourceActorId, - }) - .where('actor_id', sourceActorId) - .returning('release_id'); - - await trx('stashes_actors') - .update('actor_id', targetActorId) - .where('actor_id', sourceActorId) - .returning('id'); + let mergedProfiles; + let mergedScenes; try { + await trx('actors') + .update('alias_for', targetActorId) + .where('id', sourceActorId) + .returning(['id', 'alias_for']); + + mergedProfiles = await trx('actors_profiles') + .update('actor_id', targetActorId) + .where('actor_id', sourceActorId) + .returning('id'); + + mergedScenes = await trx('releases_actors') + .update({ + actor_id: targetActorId, + alias_id: sourceActorId, + }) + .where('actor_id', sourceActorId) + .returning('release_id'); + + await trx('stashes_actors') + .update('actor_id', targetActorId) + .where('actor_id', sourceActorId) + .returning('id'); + await trx.commit(); } catch (error) { await trx.rollback();