Foreign keys in messages now delete when parent key is deleted
This commit is contained in:
parent
41c28cc845
commit
543feef330
@ -64,15 +64,16 @@ impl FromDB<Channel> for Channel {
|
||||
}
|
||||
|
||||
async fn delete(p: &Pool, id: UBigInt) -> Response<Channel> {
|
||||
if let Ok(conn) = p.get_conn().await {
|
||||
let q = "DELETE FROM channels WHERE id = :id";
|
||||
let result: Result<Conn, SqlError> =
|
||||
conn.drop_exec(q, params!{"id" => id}).await;
|
||||
return match result {
|
||||
Ok(_) => Response::Success,
|
||||
Err(_) => Response::Other(sql_err!("Member::FromDB::delete Listen i dont know either"))
|
||||
}
|
||||
let conn = p.get_conn().await;
|
||||
if conn.is_err() {
|
||||
return Response::Other(no_conn!("Member::FromDB::delete"))
|
||||
}
|
||||
|
||||
// TODO: do something with the return values where possible
|
||||
return match conn.unwrap().prep_exec("DELETE FROM CHANNELS WHERE id = :id", params!{"id" => id}).await {
|
||||
Ok(_) => Response::Success,
|
||||
Err(_) => Response::Other(sql_err!("Channels::FromDB::delete"))
|
||||
}
|
||||
return Response::Other(no_conn!("Member::FromDB::delete"))
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
CREATE TABLE IF NOT EXISTS `channels` (
|
||||
`id` BIGINT UNSIGNED NOT NULL auto_increment,
|
||||
`name` UNIQUE VARCHAR(255) NOT NULL,
|
||||
`description` VARCHAR(1024),
|
||||
`description` VARCHAR(4096),
|
||||
`kind` INTEGER NOT NULL,
|
||||
PRIMARY KEY(`id`), UNIQUE KEY(`name`)
|
||||
);
|
||||
|
@ -4,8 +4,6 @@ CREATE TABLE IF NOT EXISTS `messages`(
|
||||
`time` BIGINT NOT NULL,
|
||||
`content` VARCHAR(2048) NOT NULL,
|
||||
`author_id` BIGINT UNSIGNED NOT NULL,
|
||||
`channel_name` VARCHAR(255) NOT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
FOREIGN KEY (`author_id`) REFERENCES members(`id`),
|
||||
FOREIGN KEY (`channel_name`) REFERENCES channels(`name`)
|
||||
FOREIGN KEY (`author_id`) REFERENCES members(`id`) ON DELETE CASCADE
|
||||
);
|
||||
|
@ -3,7 +3,7 @@ pub const INVITE_CREATE: &'static str = "/invite/create"; // requires none
|
||||
|
||||
pub const CHANNELS_LIST: &'static str = "/channels/list"; // requires none
|
||||
pub const CHANNELS_CREATE: &'static str = "/channels/create"; // requires @name @kind
|
||||
pub const CHANNELS_DELETE: &'static str = "/channels/delete"; // requires @name
|
||||
pub const CHANNELS_DELETE: &'static str = "/channels/delete"; // requires @channel_id
|
||||
|
||||
pub const MESSAGE_SEND: &'static str = "/message/send"; // requires @content
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user