* api::channels::list_channels has more relevant docs
Better matching against return types so we're not throwing away errors This just entails swapping the if let for a match statement * db-lib::Message::send has more updated docs on what variants of Response it returns * api::messages::send_message has better error logging now and more relevant comments
This commit is contained in:
parent
ef73b39f4f
commit
c4d7eb9111
@ -65,7 +65,7 @@ impl Message {
|
|||||||
if let Ok(_) = file.write_all(data).await {
|
if let Ok(_) = file.write_all(data).await {
|
||||||
Response::Row(msg)
|
Response::Row(msg)
|
||||||
} else {
|
} else {
|
||||||
Response::Empty
|
Response::Other(format!("Couldn't write data to disk"))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Err(e) => {
|
Err(e) => {
|
||||||
@ -77,6 +77,8 @@ impl Message {
|
|||||||
|
|
||||||
pub async fn send(p: &Pool, content: &str, content_type: &str, cid: UBigInt, uid: UBigInt) -> Result<Response<Self>, SqlError> {
|
pub async fn send(p: &Pool, content: &str, content_type: &str, cid: UBigInt, uid: UBigInt) -> Result<Response<Self>, SqlError> {
|
||||||
//! @returns on_sucess -> Ok(Response::Row<Message>)
|
//! @returns on_sucess -> Ok(Response::Row<Message>)
|
||||||
|
//! @returns on_user_fail -> Ok(Response::RestrictedInput)
|
||||||
|
//! @returns on_caught_server_fail -> Ok(Response::Other)
|
||||||
//! @returns on_failure Err(SqlErr)
|
//! @returns on_failure Err(SqlErr)
|
||||||
if content_type == "text/plain" {
|
if content_type == "text/plain" {
|
||||||
match Self::insert_text(p, content, cid, uid).await {
|
match Self::insert_text(p, content, cid, uid).await {
|
||||||
|
@ -15,7 +15,7 @@ use crate::rtc;
|
|||||||
|
|
||||||
pub async fn list_channels(pool: &Pool, response: &mut Response<Body>, params: HashMap<String, String>) {
|
pub async fn list_channels(pool: &Pool, response: &mut Response<Body>, params: HashMap<String, String>) {
|
||||||
/*
|
/*
|
||||||
* @user-params -> for now none as i don't feel like dealing with it
|
* @kind : i32 1|2 => Specifies Voice or Text channels respectively
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if let Some(chan_kind) = qs_param!(params, "kind", i32) {
|
if let Some(chan_kind) = qs_param!(params, "kind", i32) {
|
||||||
@ -53,20 +53,22 @@ pub async fn create_channel(pool: &Pool, response: &mut Response<Body>, params:
|
|||||||
*response.status_mut() = if name.is_some() && kind.is_some() {
|
*response.status_mut() = if name.is_some() && kind.is_some() {
|
||||||
let (name, kind) = (name.unwrap(), kind.unwrap());
|
let (name, kind) = (name.unwrap(), kind.unwrap());
|
||||||
|
|
||||||
if let Ok(resp) = Channel::add(pool, name, description, kind).await {
|
match Channel::add(pool, name, description, kind).await {
|
||||||
match resp {
|
Ok(resp) => {
|
||||||
Row(channel) => {
|
match resp {
|
||||||
set_json_body(response, json!(channel));
|
Row(channel) => {
|
||||||
rtc::create_channel(channel).await;
|
set_json_body(response, json!({"channel": channel}));
|
||||||
StatusCode::OK
|
rtc::create_channel(channel).await;
|
||||||
},
|
StatusCode::OK
|
||||||
|
},
|
||||||
RestrictedInput(_) => StatusCode::UNPROCESSABLE_ENTITY,
|
RestrictedInput(_) => StatusCode::UNPROCESSABLE_ENTITY,
|
||||||
Other(_) => StatusCode::INTERNAL_SERVER_ERROR,
|
_ => StatusCode::INTERNAL_SERVER_ERROR
|
||||||
_ => StatusCode::INTERNAL_SERVER_ERROR
|
}
|
||||||
|
},
|
||||||
|
Err(e) => {
|
||||||
|
eprintln!("Error: {}", e);
|
||||||
|
StatusCode::INTERNAL_SERVER_ERROR
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
StatusCode::INTERNAL_SERVER_ERROR
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
StatusCode::BAD_REQUEST
|
StatusCode::BAD_REQUEST
|
||||||
|
@ -112,19 +112,22 @@ pub async fn send_message(pool: &Pool, response: &mut Response<Body>, body: Body
|
|||||||
*response.status_mut() = StatusCode::BAD_REQUEST;
|
*response.status_mut() = StatusCode::BAD_REQUEST;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
// ctype safe unwrap
|
// Safe unwrap with ctype - its container type is checked prior
|
||||||
match db::Message::send(pool, &content, ctype.unwrap(), channel_id.unwrap(), uid).await {
|
match db::Message::send(pool, &content, ctype.unwrap(), channel_id.unwrap(), uid).await {
|
||||||
Ok(Row(msg)) => {
|
Ok(Row(msg)) => {
|
||||||
use crate::rtc;
|
use crate::rtc;
|
||||||
rtc::new_message(pool, msg).await;
|
rtc::new_message(pool, msg).await;
|
||||||
},
|
},
|
||||||
Ok(Empty) => { }, // idk anymore
|
|
||||||
Ok(RestrictedInput(_msg)) => *response.status_mut() = StatusCode::BAD_REQUEST,
|
Ok(RestrictedInput(_msg)) => *response.status_mut() = StatusCode::BAD_REQUEST,
|
||||||
Ok(Other(msg)) => {
|
Ok(Other(msg)) => {
|
||||||
eprintln!("{}", msg);
|
eprintln!("{}", msg);
|
||||||
*response.status_mut() = StatusCode::INTERNAL_SERVER_ERROR;
|
*response.status_mut() = StatusCode::INTERNAL_SERVER_ERROR;
|
||||||
},
|
},
|
||||||
_ => *response.status_mut() = StatusCode::INTERNAL_SERVER_ERROR
|
Ok(_) => {}, // Can't happen because no branches return remaining variants
|
||||||
|
Err(e) => {
|
||||||
|
eprintln!("/message/send error: {}", e);
|
||||||
|
*response.status_mut() = StatusCode::INTERNAL_SERVER_ERROR
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user