removing unused enum members
This commit is contained in:
parent
d013afe054
commit
1810e5ebc8
@ -1,13 +1,12 @@
|
|||||||
use mysql_async::Pool;
|
use mysql_async::Pool;
|
||||||
use mysql_async::prelude::{params, Queryable};
|
use mysql_async::prelude::{params, Queryable};
|
||||||
use crate::db_types::{UBigInt, Integer, VarChar};
|
use crate::db_types::{UBigInt, VarChar};
|
||||||
|
|
||||||
use crate::routes;
|
use crate::routes;
|
||||||
|
|
||||||
pub enum AuthReason {
|
pub enum AuthReason {
|
||||||
Good, //passed regular check
|
Good, //passed regular check
|
||||||
OpenAuth, // route does not require auth
|
OpenAuth, // route does not require auth
|
||||||
LimitPassed,
|
|
||||||
NoKey,
|
NoKey,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -26,13 +26,13 @@ mod invites;
|
|||||||
mod channels;
|
mod channels;
|
||||||
mod members;
|
mod members;
|
||||||
mod messages;
|
mod messages;
|
||||||
mod badges;
|
|
||||||
mod http_params;
|
mod http_params;
|
||||||
mod perms;
|
mod perms;
|
||||||
|
mod db_types;
|
||||||
|
|
||||||
async fn route_dispatcher(pool: &Pool, resp: &mut Response<Body>, meth: &Method, path: &str, params: serde_json::Value) {
|
async fn route_dispatcher(pool: &Pool, resp: &mut Response<Body>, meth: &Method, path: &str, params: serde_json::Value) {
|
||||||
// At some point we should have some way of hiding this obnoxious complexity
|
// At some point we should have some way of hiding this obnoxious complexity
|
||||||
|
use routes::resolve_dynamic_route;
|
||||||
match (meth, path) {
|
match (meth, path) {
|
||||||
(&Method::GET, routes::INVITE_JOIN) => {
|
(&Method::GET, routes::INVITE_JOIN) => {
|
||||||
if let Err(_) = invites::route_join_invite_code(pool, resp, params).await {
|
if let Err(_) = invites::route_join_invite_code(pool, resp, params).await {
|
||||||
@ -48,7 +48,23 @@ async fn route_dispatcher(pool: &Pool, resp: &mut Response<Body>, meth: &Method,
|
|||||||
(&Method::POST, routes::CHANNELS_CREATE) => channels::create_channel(pool, resp, params).await,
|
(&Method::POST, routes::CHANNELS_CREATE) => channels::create_channel(pool, resp, params).await,
|
||||||
|
|
||||||
(&Method::POST, routes::MESSAGE_SEND) => messages::send_message(pool, resp, params).await,
|
(&Method::POST, routes::MESSAGE_SEND) => messages::send_message(pool, resp, params).await,
|
||||||
_ => *resp.status_mut() = StatusCode::NOT_FOUND
|
_ => {
|
||||||
|
// We attempt dynamic routes as fallback for a few reasons
|
||||||
|
// 1. theres less of these than there are the static routes
|
||||||
|
// 2. because of the above and that this is wholly more expensive than static routse
|
||||||
|
// we can justify putting in tons of branches since we're likely to:
|
||||||
|
// far jump here, lose cache, and still be be network bound
|
||||||
|
// Computatinoal bounds are really of no concern with this api since
|
||||||
|
// we're not doing any heavy calculations at any point
|
||||||
|
if let Some(route) = resolve_dynamic_route(path) {
|
||||||
|
*resp.status_mut() = StatusCode::OK;
|
||||||
|
println!("Static part: {}", route.base);
|
||||||
|
println!("Dynamic part: {}", route.dynamic);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
*resp.status_mut() = StatusCode::NOT_FOUND
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -59,6 +75,7 @@ async fn main_responder(request: Request<Body>) -> Result<Response<Body>, hyper:
|
|||||||
let (parts, mut body) = request.into_parts();
|
let (parts, mut body) = request.into_parts();
|
||||||
let method = parts.method;
|
let method = parts.method;
|
||||||
let path = parts.uri.path();
|
let path = parts.uri.path();
|
||||||
|
// TODO: allow this to fail on occasion, like for the invite system
|
||||||
let params_res = http_params::parse_params(&mut body).await;
|
let params_res = http_params::parse_params(&mut body).await;
|
||||||
|
|
||||||
if let Ok(params) = params_res {
|
if let Ok(params) = params_res {
|
||||||
@ -68,7 +85,6 @@ async fn main_responder(request: Request<Body>) -> Result<Response<Body>, hyper:
|
|||||||
// Deal with permissions errors at this point
|
// Deal with permissions errors at this point
|
||||||
match auth_result {
|
match auth_result {
|
||||||
OpenAuth | Good => route_dispatcher(&pool, &mut response, &method, path, params).await,
|
OpenAuth | Good => route_dispatcher(&pool, &mut response, &method, path, params).await,
|
||||||
LimitPassed => *response.status_mut() = StatusCode::UNAUTHORIZED,
|
|
||||||
NoKey => *response.status_mut() = StatusCode::UNAUTHORIZED,
|
NoKey => *response.status_mut() = StatusCode::UNAUTHORIZED,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user