ебать мой хуй

This commit is contained in:
Aleksandr 2026-01-01 11:06:38 +03:00
parent e3ed43148a
commit cbaea15f4f
6 changed files with 39 additions and 12 deletions

View file

@ -4,7 +4,12 @@ use eva::data;
use crate::requests::status_code;
use viendesu_core::{errors, requests::uploads as reqs, types::{file, upload}, uploads::UploadStream};
use viendesu_core::{
errors,
requests::uploads as reqs,
types::{file, upload},
uploads::UploadStream,
};
#[data]
pub struct ListPending {}
@ -17,7 +22,7 @@ status_code::map!(reqs::list_pending::Err => []);
pub struct Start {
pub file_name: Option<file::BaseName>,
pub hash: Option<file::Hash>,
pub class: file::ClassKind,
pub class: reqs::start::FileClass,
pub size: NonZeroU64,
}

View file

@ -16,11 +16,15 @@ use axum::{
use futures::StreamExt;
use serde::Deserialize;
use viendesu_core::errors::{Aux, AuxResult};
use viendesu_core::{
errors::{Aux, AuxResult},
types::session,
};
#[non_exhaustive]
pub struct Context<R: ServerRequest> {
pub request: R,
pub token: Option<session::Token>,
pub parts: Option<Parts>,
pub response_format: Format,
}
@ -82,6 +86,7 @@ where
Ok(Context {
request,
token: extract::session_token(&parts).map_err(|e| response::err(response_format, e))?,
parts: Some(parts),
response_format,
})

View file

@ -125,12 +125,7 @@ impl<R: ServerRequest, M, T: Types, Cx: MakeContext<R>> FinishedHandler<R, M, T,
.await
.map_err(|e| response::err(resp_format, e))?;
if let Some(token) = context
.parts
.as_ref()
.and_then(|p| extract::session_token(p).transpose())
{
let token = token.map_err(|e| response::err(resp_format, e))?;
if let Some(token) = context.token {
session
.authz()
.authenticate(token)

View file

@ -64,7 +64,7 @@ pub fn make_router<T: Types>(service: T::Service) -> axum::Router {
routes::make(scope)
.into_axum()
.layer(fastrace_axum::FastraceLayer)
.layer(cors::CorsLayer::permissive())
.layer(cors::CorsLayer::very_permissive())
}
#[perfect_derive(Clone)]

View file

@ -67,9 +67,12 @@ async fn load_upload_context(request: AxumRequest) -> Result<Ctx<Finish>, AxumRe
}
let (mut parts, body) = request.into_parts();
let id: upload::Id = extract::path(&mut parts).await?;
let response_format =
extract::response_format(&parts).map_err(|e| response::err(Default::default(), e))?;
let token = extract::session_token(&parts).map_err(|e| response::err(response_format, e))?;
let id: upload::Id = extract::path(&mut parts)
.await
.map_err(|e| response::err(response_format, e))?;
// This fucking sucks to the extent I can't express with words, the way its done
// is horrible, the reason behind this is even more, I wish authors of axum very pleasant
@ -95,6 +98,7 @@ async fn load_upload_context(request: AxumRequest) -> Result<Ctx<Finish>, AxumRe
});
Ok(Ctx {
token,
request: Finish {
id,
stream: UploadStream::unknown_size(Box::pin(stream)),