feat(channels): implement fetch, edit, delete

This commit is contained in:
Paul Makles
2022-02-04 16:48:32 +00:00
parent 780b88eb2f
commit b58755dbeb
4 changed files with 145 additions and 17 deletions

View File

@@ -1,8 +1,14 @@
use revolt_quark::Result;
use revolt_quark::{Error, Result, models::{User, Channel}, Ref, Database, perms, ChannelPermission};
use rocket::serde::json::Value;
use rocket::{serde::json::Json, State};
#[get("/<target>")]
pub async fn req(/*user: UserRef, target: Ref*/ target: String) -> Result<Value> {
todo!()
pub async fn req(db: &State<Database>, user: User, target: Ref) -> Result<Json<Channel>> {
let target = target.as_channel(db).await?;
if perms(&user).channel(&target).calc_channel(db).await.get_view() {
Ok(Json(target))
} else {
Err(Error::MissingPermission { permission: ChannelPermission::View as i32 })
}
}