LouisLam
3 years ago
16 changed files with 288 additions and 127 deletions
@ -0,0 +1,30 @@ |
|||||
|
-- You should not modify if this have pushed to Github, unless it does serious wrong with the db. |
||||
|
BEGIN TRANSACTION; |
||||
|
|
||||
|
create table `group` |
||||
|
( |
||||
|
id INTEGER not null |
||||
|
constraint group_pk |
||||
|
primary key autoincrement, |
||||
|
name VARCHAR(255) not null, |
||||
|
created_date DATETIME default (DATETIME('now')) not null, |
||||
|
public BOOLEAN default 0 not null, |
||||
|
active BOOLEAN default 1 not null, |
||||
|
weight BOOLEAN NOT NULL DEFAULT 1000 |
||||
|
); |
||||
|
|
||||
|
CREATE TABLE [monitor_group] |
||||
|
( |
||||
|
[id] INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, |
||||
|
[monitor_id] INTEGER NOT NULL REFERENCES [group] ([id]) ON DELETE CASCADE ON UPDATE CASCADE REFERENCES [monitor] ([id]) ON DELETE CASCADE ON UPDATE CASCADE, |
||||
|
[group_id] INTEGER NOT NULL, |
||||
|
weight BOOLEAN NOT NULL DEFAULT 1000 |
||||
|
); |
||||
|
|
||||
|
CREATE INDEX [fk] |
||||
|
ON [monitor_group] ( |
||||
|
[monitor_id], |
||||
|
[group_id]); |
||||
|
|
||||
|
|
||||
|
COMMIT; |
@ -1,6 +0,0 @@ |
|||||
BEGIN TRANSACTION; |
|
||||
|
|
||||
alter table monitor |
|
||||
add public_weight BOOLEAN default 1000 not null; |
|
||||
|
|
||||
COMMIT; |
|
@ -1,6 +0,0 @@ |
|||||
BEGIN TRANSACTION; |
|
||||
|
|
||||
alter table monitor |
|
||||
add public BOOLEAN default 0 not null; |
|
||||
|
|
||||
COMMIT; |
|
@ -0,0 +1,33 @@ |
|||||
|
const { BeanModel } = require("redbean-node/dist/bean-model"); |
||||
|
const { R } = require("redbean-node"); |
||||
|
|
||||
|
class Group extends BeanModel { |
||||
|
|
||||
|
async toPublicJSON() { |
||||
|
|
||||
|
let monitorBeanList = R.convertToBeans("monitor", await R.getAll(` |
||||
|
SELECT * FROM monitor, monitor_group |
||||
|
WHERE monitor.id = monitor_group.monitor_id |
||||
|
AND group_id = ? |
||||
|
`, [
|
||||
|
this.id, |
||||
|
])); |
||||
|
|
||||
|
console.log(monitorBeanList); |
||||
|
|
||||
|
let monitorList = []; |
||||
|
|
||||
|
for (let bean of monitorBeanList) { |
||||
|
monitorList.push(await bean.toPublicJSON()); |
||||
|
} |
||||
|
|
||||
|
return { |
||||
|
id: this.id, |
||||
|
name: this.name, |
||||
|
weight: this.weight, |
||||
|
monitorList, |
||||
|
}; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
module.exports = Group; |
Loading…
Reference in new issue