akf-forum/classes/thread.js

53 lines
1.1 KiB
JavaScript
Raw Normal View History

2022-03-13 16:16:46 +03:00
const db = require("quick.db")
const User = require("./user")
module.exports = class Thread {
constructor(title, author = new User(), messages = [], time = new Date().getTime(),deleted = false) {
this.author = author;
this.title = title;
this.messages = messages;
this.time = time;
this.deleted = deleted;
}
getId(id = this.id) {
2022-03-13 17:12:09 +03:00
const thread = db.get("threads").find(t => t.id == id);
2022-03-13 16:16:46 +03:00
if (!thread) return null;
this.id = Number(id);
2022-03-13 16:16:46 +03:00
const { title, author, messages = [], time = new Date().getTime(), deleted = false } = thread;
this.title = title
this.author = author
this.messages = messages;
this.time = time;
this.deleted = deleted;
2022-03-13 17:12:09 +03:00
return this;
2022-03-13 16:16:46 +03:00
}
takeId(){
this.id = db.get("threads").length;
return this
}
push(message){
this.messages.push(message)
return this;
}
write(id = this.id) {
db.set("threads."+id, this)
return this;
}
getLink(id = this.id) {
return "/threads/" + id;
}
2022-02-26 21:26:27 +03:00
}