add request_chat table for requesting access to download for chats
This commit is contained in:
parent
1213e35820
commit
bc045e9b72
2 changed files with 31 additions and 0 deletions
|
|
@ -48,4 +48,25 @@ AFTER UPDATE OF is_approved ON "request"
|
|||
WHEN new.is_approved = 1
|
||||
BEGIN
|
||||
UPDATE user SET can_download = 1 WHERE user.id = new.requested_by;
|
||||
END;
|
||||
|
||||
CREATE TABLE "request_chat"
|
||||
(
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
requested_by INTEGER NOT NULL UNIQUE,
|
||||
requested_for INTEGER NOT NULL UNIQUE,
|
||||
approved_by INTEGER UNIQUE,
|
||||
message TEXT,
|
||||
is_approved INTEGER NOT NULL,
|
||||
|
||||
FOREIGN KEY(requested_by) REFERENCES "user"(id),
|
||||
FOREIGN KEY(requested_for) REFERENCES "chat"(id),
|
||||
FOREIGN KEY(approved_by) REFERENCES "user"(id)
|
||||
);
|
||||
|
||||
CREATE TRIGGER "approve_chat"
|
||||
AFTER UPDATE OF is_approved ON "request_chat"
|
||||
WHEN new.is_approved = 1
|
||||
BEGIN
|
||||
UPDATE chat SET can_download = 1 WHERE chat.id = new.requested_for;
|
||||
END;
|
||||
10
src/db.rs
10
src/db.rs
|
|
@ -73,6 +73,16 @@ pub struct Request {
|
|||
pub is_approved: i64,
|
||||
}
|
||||
|
||||
#[derive(sqlx::FromRow)]
|
||||
pub struct RequestChat {
|
||||
pub id: i64,
|
||||
pub requested_by: i64,
|
||||
pub requested_for: i64,
|
||||
pub approved_by: Option<i64>,
|
||||
pub message: Option<String>,
|
||||
pub is_approved: i64,
|
||||
}
|
||||
|
||||
pub async fn db_init() -> SqlitePool {
|
||||
let db_url = make_database_url();
|
||||
if !Sqlite::database_exists(&db_url).await.unwrap_or(false) {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue