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
|
WHEN new.is_approved = 1
|
||||||
BEGIN
|
BEGIN
|
||||||
UPDATE user SET can_download = 1 WHERE user.id = new.requested_by;
|
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;
|
END;
|
||||||
10
src/db.rs
10
src/db.rs
|
|
@ -73,6 +73,16 @@ pub struct Request {
|
||||||
pub is_approved: i64,
|
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 {
|
pub async fn db_init() -> SqlitePool {
|
||||||
let db_url = make_database_url();
|
let db_url = make_database_url();
|
||||||
if !Sqlite::database_exists(&db_url).await.unwrap_or(false) {
|
if !Sqlite::database_exists(&db_url).await.unwrap_or(false) {
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue