Skip to content

Commit

Permalink
Fix version.update() for non-versioned objects
Browse files Browse the repository at this point in the history
  • Loading branch information
TimCsaky committed Sep 14, 2022
1 parent 1e5dae6 commit 7dc892f
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 8 deletions.
5 changes: 2 additions & 3 deletions app/src/services/metadata.js
Original file line number Diff line number Diff line change
Expand Up @@ -30,16 +30,15 @@ const service = {
// get DB records of all input metadata
const dbMetadata = await service.createMetadata(metadata, trx);

// already joined
// for non-versioned objects we are updating metadata joins for an existing version
const associatedMetadata = await VersionMetadata.query(trx)
.modify('filterVersionId', versionId);

// remove existing joins for metadata that is not in incomming set
if (associatedMetadata.length) {
const dissociateMetadata = associatedMetadata.filter(({ metadataId }) => !dbMetadata.some(({ id }) => id === metadataId));
if (dissociateMetadata.length) {
await VersionMetadata.query(trx)
.whereIn('id', dissociateMetadata.map(meta => meta.id))
.whereIn('metadataId', dissociateMetadata.map(vm => vm.metadataId))
.modify('filterVersionId', versionId)
.delete();

Expand Down
8 changes: 3 additions & 5 deletions app/src/services/version.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
const { v4: uuidv4, NIL: SYSTEM_USER } = require('uuid');
const metadataService = require('./metadata');
const { Version } = require('../db/models');

/**
Expand Down Expand Up @@ -189,7 +188,6 @@ const service = {
* Updates a version of an object.
* Typically happens when updating the 'null-version' created for an object
* on a non-versioned or version-suspnded bucket.
* Replaces metadata/tags that already exists on this version by default
* @param {object[]} data array of object attributes
* @param {string} userId uuid of the current user
* @param {object} [etrx=undefined] An optional Objection Transaction object
Expand All @@ -202,7 +200,7 @@ const service = {
trx = etrx ? etrx : await Version.startTransaction();
// update version record
const versionId = data.versionId ? data.versionId : null;
const response = await Version.query(trx)
const version = await Version.query(trx)
.where({ objectId: data.id, versionId: versionId })
.patch({
objectId: data.id,
Expand All @@ -212,10 +210,10 @@ const service = {
.first()
.returning('id');

if (data.metadata) await metadataService.updateMetadata(response.id, data.metadata, data.userId, trx);
// TODO: consider updating metadata here instead of the controller

if (!etrx) await trx.commit();
return Promise.resolve(response);
return Promise.resolve(version);
} catch (err) {
if (!etrx && trx) await trx.rollback();
throw err;
Expand Down

0 comments on commit 7dc892f

Please sign in to comment.