Skip to main content

earl_protocol_http/
schema.rs

1use std::collections::BTreeMap;
2
3use serde::{Deserialize, Serialize};
4use serde_json::Value;
5
6use earl_core::schema::{AuthTemplate, BodyTemplate, TransportTemplate};
7
8#[derive(Debug, Clone, Deserialize, Serialize)]
9#[serde(deny_unknown_fields)]
10pub struct HttpOperationTemplate {
11    pub method: String,
12    pub url: String,
13    pub path: Option<String>,
14    pub query: Option<BTreeMap<String, Value>>,
15    pub headers: Option<BTreeMap<String, Value>>,
16    pub cookies: Option<BTreeMap<String, Value>>,
17    pub auth: Option<AuthTemplate>,
18    pub body: Option<BodyTemplate>,
19    pub transport: Option<TransportTemplate>,
20}
21
22#[derive(Debug, Clone, Deserialize, Serialize)]
23#[serde(deny_unknown_fields)]
24pub struct GraphqlOperationTemplate {
25    #[serde(default)]
26    pub method: String,
27    pub url: String,
28    pub path: Option<String>,
29    pub query: Option<BTreeMap<String, Value>>,
30    pub headers: Option<BTreeMap<String, Value>>,
31    pub cookies: Option<BTreeMap<String, Value>>,
32    pub auth: Option<AuthTemplate>,
33    pub graphql: GraphqlTemplate,
34    pub transport: Option<TransportTemplate>,
35}
36
37#[derive(Debug, Clone, Deserialize, Serialize)]
38#[serde(deny_unknown_fields)]
39pub struct GraphqlTemplate {
40    pub query: String,
41    pub operation_name: Option<String>,
42    pub variables: Option<Value>,
43}