1
0
Fork 0
mirror of https://gitlab.com/msrd0/gotham-restful.git synced 2025-04-20 06:54:46 +00:00

separate RequestBody and ResponseBody traits from ResourceType

This commit is contained in:
Dominic 2019-10-20 00:54:27 +02:00
parent 3a03dc60fa
commit 57e4f36852
Signed by: msrd0
GPG key ID: DCC8C247452E98F9
6 changed files with 60 additions and 40 deletions

View file

@ -4,6 +4,7 @@ use crate::{
routing::*,
OpenapiSchema,
OpenapiType,
RequestBody,
ResourceType
};
use futures::future::ok;
@ -21,7 +22,7 @@ use log::error;
use mime::{APPLICATION_JSON, TEXT_PLAIN};
use openapiv3::{
Components, MediaType, OpenAPI, Operation, Parameter, ParameterData, ParameterSchemaOrContent, PathItem,
Paths, ReferenceOr, ReferenceOr::Item, ReferenceOr::Reference, RequestBody, Response, Responses, Schema,
Paths, ReferenceOr, ReferenceOr::Item, ReferenceOr::Reference, RequestBody as OARequestBody, Response, Responses, Schema,
SchemaKind, Server, StatusCode, Type
};
use serde::de::DeserializeOwned;
@ -280,7 +281,7 @@ fn new_operation(default_status : hyper::StatusCode, schema : ReferenceOr<Schema
links: IndexMap::new()
}));
let request_body = body_schema.map(|schema| Item(RequestBody {
let request_body = body_schema.map(|schema| Item(OARequestBody {
description: None,
content: schema_to_content(schema),
required: true
@ -367,7 +368,7 @@ macro_rules! implOpenapiRouter {
fn search<Handler, Query, Res>(&mut self)
where
Query : ResourceType + QueryStringExtractor<Body> + Send + Sync + 'static,
Query : ResourceType + DeserializeOwned + QueryStringExtractor<Body> + Send + Sync + 'static,
Res : ResourceResult,
Handler : ResourceSearch<Query, Res>
{
@ -383,7 +384,7 @@ macro_rules! implOpenapiRouter {
fn create<Handler, Body, Res>(&mut self)
where
Body : ResourceType,
Body : RequestBody,
Res : ResourceResult,
Handler : ResourceCreate<Body, Res>
{
@ -400,7 +401,7 @@ macro_rules! implOpenapiRouter {
fn update_all<Handler, Body, Res>(&mut self)
where
Body : ResourceType,
Body : RequestBody,
Res : ResourceResult,
Handler : ResourceUpdateAll<Body, Res>
{
@ -418,7 +419,7 @@ macro_rules! implOpenapiRouter {
fn update<Handler, ID, Body, Res>(&mut self)
where
ID : DeserializeOwned + Clone + RefUnwindSafe + Send + Sync + 'static,
Body : ResourceType,
Body : RequestBody,
Res : ResourceResult,
Handler : ResourceUpdate<ID, Body, Res>
{