mirror of
https://gitlab.com/msrd0/gotham-restful.git
synced 2025-02-22 20:52:27 +00:00
some minor improvements
This commit is contained in:
parent
992d9be195
commit
328ebf821e
13 changed files with 29 additions and 19 deletions
|
@ -26,7 +26,7 @@ test-all:
|
|||
- cargo -V
|
||||
script:
|
||||
- cargo test --workspace --all-features --doc
|
||||
- cargo tarpaulin --all --all-features --exclude-files 'cargo/*' --exclude-files 'gotham_restful_derive/*' --exclude-files 'example/*' --ignore-panics --ignore-tests --out Html -v
|
||||
- cargo tarpaulin --target-dir target/tarpaulin --all --all-features --exclude-files 'cargo/*' --exclude-files 'gotham_restful_derive/*' --exclude-files 'example/*' --ignore-panics --ignore-tests --out Html -v
|
||||
artifacts:
|
||||
paths:
|
||||
- tarpaulin-report.html
|
||||
|
|
|
@ -92,7 +92,7 @@ fn delete(id : u64)
|
|||
fn auth_read_all(auth : AuthStatus<()>) -> AuthSuccess<String>
|
||||
{
|
||||
match auth {
|
||||
AuthStatus::Authenticated(data) => Ok(format!("{:?}", data).into()),
|
||||
AuthStatus::Authenticated(data) => Ok(format!("{:?}", data)),
|
||||
_ => Err(Forbidden)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -52,8 +52,14 @@ where
|
|||
}
|
||||
}
|
||||
|
||||
impl<T> Copy for AuthStatus<T>
|
||||
where
|
||||
T : Copy + Send + 'static
|
||||
{
|
||||
}
|
||||
|
||||
/// The source of the authentication token in the request.
|
||||
#[derive(Clone, StateData)]
|
||||
#[derive(Clone, Debug, StateData)]
|
||||
pub enum AuthSource
|
||||
{
|
||||
/// Take the token from a cookie with the given name.
|
||||
|
@ -155,6 +161,7 @@ fn main() {
|
|||
}
|
||||
```
|
||||
*/
|
||||
#[derive(Debug)]
|
||||
pub struct AuthMiddleware<Data, Handler>
|
||||
{
|
||||
source : AuthSource,
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
#![allow(clippy::tabs_in_doc_comments)]
|
||||
#![warn(missing_debug_implementations, rust_2018_idioms)]
|
||||
#![deny(intra_doc_link_resolution_failure)]
|
||||
/*!
|
||||
This crate is an extension to the popular [gotham web framework][gotham] for Rust. The idea is to
|
||||
have several RESTful resources that can be added to the gotham router. This crate will take care
|
||||
|
|
|
@ -86,7 +86,7 @@ route.post("/foo")
|
|||
# });
|
||||
```
|
||||
*/
|
||||
#[derive(Clone)]
|
||||
#[derive(Clone, Debug)]
|
||||
pub struct AcceptHeaderMatcher
|
||||
{
|
||||
types : Vec<Mime>,
|
||||
|
|
|
@ -34,7 +34,7 @@ route.post("/foo")
|
|||
# });
|
||||
```
|
||||
*/
|
||||
#[derive(Clone)]
|
||||
#[derive(Clone, Debug)]
|
||||
pub struct ContentTypeMatcher
|
||||
{
|
||||
types : Vec<Mime>,
|
||||
|
|
|
@ -21,17 +21,15 @@ impl LookupTableFromTypes for LookupTable
|
|||
{
|
||||
if include_stars
|
||||
{
|
||||
types
|
||||
return types
|
||||
.enumerate()
|
||||
.flat_map(|(i, mime)| vec![("*/*".to_owned(), i), (format!("{}/*", mime.type_()), i), (mime.essence_str().to_owned(), i)].into_iter())
|
||||
.into_group_map()
|
||||
}
|
||||
else
|
||||
{
|
||||
types
|
||||
.enumerate()
|
||||
.map(|(i, mime)| (mime.essence_str().to_owned(), i))
|
||||
.into_group_map()
|
||||
.into_group_map();
|
||||
}
|
||||
|
||||
types
|
||||
.enumerate()
|
||||
.map(|(i, mime)| (mime.essence_str().to_owned(), i))
|
||||
.into_group_map()
|
||||
}
|
||||
}
|
||||
|
|
|
@ -16,6 +16,7 @@ pub trait GetOpenapi
|
|||
fn get_openapi(&mut self, path : &str);
|
||||
}
|
||||
|
||||
#[derive(Debug)]
|
||||
pub struct OpenapiRouter<'a, D>
|
||||
{
|
||||
pub router : &'a mut D,
|
||||
|
|
|
@ -2,6 +2,7 @@ use gotham::hyper::{Body, StatusCode};
|
|||
use mime::{Mime, APPLICATION_JSON};
|
||||
|
||||
/// A response, used to create the final gotham response from.
|
||||
#[derive(Debug)]
|
||||
pub struct Response
|
||||
{
|
||||
pub status : StatusCode,
|
||||
|
|
|
@ -8,7 +8,7 @@ combination with [`AuthSuccess`] or [`AuthResult`].
|
|||
[`AuthSuccess`]: type.AuthSuccess.html
|
||||
[`AuthResult`]: type.AuthResult.html
|
||||
*/
|
||||
#[derive(ResourceError)]
|
||||
#[derive(Debug, Clone, Copy, ResourceError)]
|
||||
pub enum AuthError
|
||||
{
|
||||
#[status(FORBIDDEN)]
|
||||
|
@ -54,7 +54,7 @@ error, or delegates to another error type. This type is best used with [`AuthRes
|
|||
|
||||
[`AuthResult`]: type.AuthResult.html
|
||||
*/
|
||||
#[derive(ResourceError)]
|
||||
#[derive(Debug, ResourceError)]
|
||||
pub enum AuthErrorOrOther<E>
|
||||
{
|
||||
#[status(UNAUTHORIZED)]
|
||||
|
|
|
@ -20,6 +20,7 @@ pub use no_content::NoContent;
|
|||
mod raw;
|
||||
pub use raw::Raw;
|
||||
|
||||
//#[allow(clippy::module_inception)]
|
||||
mod result;
|
||||
pub use result::IntoResponseError;
|
||||
|
||||
|
|
|
@ -31,7 +31,7 @@ fn read_all(_state: &mut State) {
|
|||
# }
|
||||
```
|
||||
*/
|
||||
#[derive(Clone, Copy, Default)]
|
||||
#[derive(Clone, Copy, Debug, Default)]
|
||||
pub struct NoContent;
|
||||
|
||||
impl From<()> for NoContent
|
||||
|
|
|
@ -53,7 +53,7 @@ pub trait WithOpenapi<D>
|
|||
{
|
||||
fn with_openapi<F>(&mut self, info : OpenapiInfo, block : F)
|
||||
where
|
||||
F : FnOnce(OpenapiRouter<D>);
|
||||
F : FnOnce(OpenapiRouter<'_, D>);
|
||||
}
|
||||
|
||||
/// This trait adds the `resource` method to gotham's routing. It allows you to register
|
||||
|
@ -320,7 +320,7 @@ macro_rules! implDrawResourceRoutes {
|
|||
{
|
||||
fn with_openapi<F>(&mut self, info : OpenapiInfo, block : F)
|
||||
where
|
||||
F : FnOnce(OpenapiRouter<$implType<'a, C, P>>)
|
||||
F : FnOnce(OpenapiRouter<'_, $implType<'a, C, P>>)
|
||||
{
|
||||
let router = OpenapiRouter {
|
||||
router: self,
|
||||
|
|
Loading…
Add table
Reference in a new issue