paperclip_core/v3/models/
paths.rs

1use super::v2;
2use std::collections::BTreeMap;
3
4impl From<v2::DefaultPathItemRaw> for openapiv3::PathItem {
5    fn from(v2: v2::DefaultPathItemRaw) -> Self {
6        let methods = v2
7            .methods
8            .iter()
9            .map(|(k, v)| (*k, v.clone().into()))
10            .collect::<BTreeMap<v2::HttpMethod, openapiv3::Operation>>();
11
12        openapiv3::PathItem {
13            get: methods.get(&v2::HttpMethod::Get).cloned(),
14            put: methods.get(&v2::HttpMethod::Put).cloned(),
15            post: methods.get(&v2::HttpMethod::Post).cloned(),
16            delete: methods.get(&v2::HttpMethod::Delete).cloned(),
17            options: methods.get(&v2::HttpMethod::Options).cloned(),
18            head: methods.get(&v2::HttpMethod::Head).cloned(),
19            patch: methods.get(&v2::HttpMethod::Patch).cloned(),
20            trace: None,
21            servers: vec![],
22            parameters: {
23                openapiv3::Operation::from(v2::DefaultOperationRaw {
24                    parameters: v2.parameters,
25                    ..Default::default()
26                })
27                .parameters
28            },
29            extensions: Default::default(),
30            description: None,
31            summary: None,
32        }
33    }
34}