1
0
mirror of https://github.com/matrix-org/matrix-authentication-service.git synced 2025-11-20 12:02:22 +03:00

Layer to application/x-www-form-urlencoded bodies

This commit is contained in:
Quentin Gliech
2022-08-12 16:49:54 +02:00
parent 398379e21b
commit d94442f972
7 changed files with 142 additions and 8 deletions

View File

@@ -19,6 +19,7 @@ use tower_http::cors::CorsLayer;
use crate::layers::{
body_to_bytes::{BodyToBytes, BodyToBytesLayer},
form_urlencoded_request::{FormUrlencodedRequest, FormUrlencodedRequestLayer},
json_request::{JsonRequest, JsonRequestLayer},
json_response::{JsonResponse, JsonResponseLayer},
};
@@ -76,6 +77,10 @@ pub trait ServiceExt: Sized {
fn json_request<T>(self) -> JsonRequest<Self, T> {
JsonRequest::new(self)
}
fn form_urlencoded_request<T>(self) -> FormUrlencodedRequest<Self, T> {
FormUrlencodedRequest::new(self)
}
}
impl<S> ServiceExt for S {}
@@ -84,6 +89,7 @@ pub trait ServiceBuilderExt<L>: Sized {
fn response_to_bytes(self) -> ServiceBuilder<Stack<BodyToBytesLayer, L>>;
fn json_response<T>(self) -> ServiceBuilder<Stack<JsonResponseLayer<T>, L>>;
fn json_request<T>(self) -> ServiceBuilder<Stack<JsonRequestLayer<T>, L>>;
fn form_urlencoded_request<T>(self) -> ServiceBuilder<Stack<FormUrlencodedRequestLayer<T>, L>>;
}
impl<L> ServiceBuilderExt<L> for ServiceBuilder<L> {
@@ -98,4 +104,8 @@ impl<L> ServiceBuilderExt<L> for ServiceBuilder<L> {
fn json_request<T>(self) -> ServiceBuilder<Stack<JsonRequestLayer<T>, L>> {
self.layer(JsonRequestLayer::default())
}
fn form_urlencoded_request<T>(self) -> ServiceBuilder<Stack<FormUrlencodedRequestLayer<T>, L>> {
self.layer(FormUrlencodedRequestLayer::default())
}
}