diff --git a/app/controllers/api/v1/FormDatabase.controller.js b/app/controllers/api/v1/FormDatabase.controller.js index 5b079ba..4eb1e6f 100644 --- a/app/controllers/api/v1/FormDatabase.controller.js +++ b/app/controllers/api/v1/FormDatabase.controller.js @@ -163,7 +163,7 @@ class FormDatabase extends Controller { assoc_columns[col.UUID].DatabaseId = db.UUID assoc_columns[col.UUID].Type = col.Type assoc_columns[col.UUID].additionalData = JSON.stringify(col.additionalData) - await assoc_columns[col.UUID].save() + await assoc_columns[col.UUID].version_save(`Updated in page "${page.Name}"`, req.user.id) update_columns.push(assoc_columns[col.UUID]) } else { const new_col = new ColumnDef({ @@ -181,7 +181,7 @@ class FormDatabase extends Controller { } } - await new_col.save() + await new_col.version_save(`Added to database`, req.user.id) update_columns.push(new_col) } } diff --git a/app/models/api/db/ColumnDef.model.js b/app/models/api/db/ColumnDef.model.js index 57cbc79..d008390 100644 --- a/app/models/api/db/ColumnDef.model.js +++ b/app/models/api/db/ColumnDef.model.js @@ -1,4 +1,4 @@ -const Model = require('flitter-orm/src/model/Model') +const VersionedModel = require('../../VersionedModel') const uuid = require('uuid/v4') /* @@ -6,10 +6,11 @@ const uuid = require('uuid/v4') * ------------------------------------------------------------- * Put some description here! */ -class ColumnDef extends Model { +class ColumnDef extends VersionedModel { static get schema() { // Return a flitter-orm schema here. return { + ...super.schema, headerName: String, field: String, DatabaseId: String, @@ -18,7 +19,7 @@ class ColumnDef extends Model { additionalData: { type: String, default: '{}' } } } - + // Static and instance methods can go here data_get(key) { return JSON.parse(this.additionalData ? this.additionalData : '{}')[key] @@ -40,7 +41,9 @@ class ColumnDef extends Model { uuid: this.UUID, database_id: this.DatabaseId, type: this.Type, - metadata: this.data() + metadata: this.data(), + version_num: this.version_num, + version_message: this.version_message, } } } diff --git a/app/models/api/db/Database.model.js b/app/models/api/db/Database.model.js index 3251510..40853d7 100644 --- a/app/models/api/db/Database.model.js +++ b/app/models/api/db/Database.model.js @@ -66,6 +66,20 @@ class Database extends VersionedModel { version_message: this.version_message, } } + + async cast_to_version_data() { + const data = await super.cast_to_version_data() + const cols = await this.get_columns() + + data.column_version_nums = cols.map(x => { + return { + ColumnId: x.UUID, + version_num: x.version_num, + } + }) + + return data + } } module.exports = exports = Database