Add metadata field for thread messages
parent
f9671c385d
commit
5de750bc3e
|
@ -37,6 +37,12 @@ class ThreadMessage {
|
|||
} else {
|
||||
this.small_attachments = [];
|
||||
}
|
||||
|
||||
if (props.metadata) {
|
||||
if (typeof props.metadata === "string") {
|
||||
this.metadata = JSON.parse(props.metadata);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
getSQLProps() {
|
||||
|
@ -50,6 +56,32 @@ class ThreadMessage {
|
|||
return obj;
|
||||
}, {});
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {string} key
|
||||
* @param {*} value
|
||||
* @return {Promise<void>}
|
||||
*/
|
||||
async setMetadataValue(key, value) {
|
||||
this.metadata = this.metadata || {};
|
||||
this.metadata[key] = value;
|
||||
|
||||
if (this.id) {
|
||||
await knex("thread_messages")
|
||||
.where("id", this.id)
|
||||
.update({
|
||||
metadata: this.getSQLProps().metadata,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {string} key
|
||||
* @returns {*}
|
||||
*/
|
||||
getMetadataValue(key) {
|
||||
return this.metadata ? this.metadata[key] : null;
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = ThreadMessage;
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
exports.up = async function(knex) {
|
||||
await knex.schema.table("thread_messages", table => {
|
||||
table.text("metadata").nullable().defaultTo(null);
|
||||
});
|
||||
};
|
||||
|
||||
exports.down = async function(knex) {
|
||||
await knex.schema.table("thread_messages", table => {
|
||||
table.dropColumn("metadata");
|
||||
});
|
||||
};
|
Loading…
Reference in New Issue