Skip to main content

browser_commander/playwright/protocol/
api_request_context.rs

1// @generated by scripts/generate-playwright-protocol.mjs from
2// rust/protocol/playwright/*.yml. Do not edit by hand.
3
4#![allow(clippy::all, missing_docs, unused_imports)]
5
6use serde::{Deserialize, Serialize};
7
8use super::*;
9use crate::playwright::connection::{
10    Binary, Channel, ChannelType, ObjectRef, ProtocolError, ProtocolEvent, Ref,
11};
12
13/// Initializer the driver sends when it creates a `APIRequestContext`.
14#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
15pub struct APIRequestContextInitializer {
16    #[serde(rename = "tracing")]
17    pub tracing: Ref<Tracing>,
18}
19
20/// Parameters of `APIRequestContext.fetch` ({method} "{url}").
21#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
22pub struct APIRequestContextFetchParams {
23    #[serde(rename = "url")]
24    pub url: String,
25    #[serde(rename = "encodedParams", default, skip_serializing_if = "Option::is_none")]
26    pub encoded_params: Option<String>,
27    #[serde(rename = "params", default, skip_serializing_if = "Option::is_none")]
28    pub params: Option<Vec<NameValue>>,
29    #[serde(rename = "method", default, skip_serializing_if = "Option::is_none")]
30    pub method: Option<String>,
31    #[serde(rename = "headers", default, skip_serializing_if = "Option::is_none")]
32    pub headers: Option<Vec<NameValue>>,
33    #[serde(rename = "postData", default, skip_serializing_if = "Option::is_none")]
34    pub post_data: Option<Binary>,
35    #[serde(rename = "jsonData", default, skip_serializing_if = "Option::is_none")]
36    pub json_data: Option<String>,
37    #[serde(rename = "formData", default, skip_serializing_if = "Option::is_none")]
38    pub form_data: Option<Vec<NameValue>>,
39    #[serde(rename = "multipartData", default, skip_serializing_if = "Option::is_none")]
40    pub multipart_data: Option<Vec<FormField>>,
41    #[serde(rename = "failOnStatusCode", default, skip_serializing_if = "Option::is_none")]
42    pub fail_on_status_code: Option<bool>,
43    #[serde(rename = "ignoreHTTPSErrors", default, skip_serializing_if = "Option::is_none")]
44    pub ignore_https_errors: Option<bool>,
45    #[serde(rename = "maxRedirects", default, skip_serializing_if = "Option::is_none")]
46    pub max_redirects: Option<i64>,
47    #[serde(rename = "maxRetries", default, skip_serializing_if = "Option::is_none")]
48    pub max_retries: Option<i64>,
49}
50
51/// Result of `APIRequestContext.fetch` ({method} "{url}").
52#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
53pub struct APIRequestContextFetchResult {
54    #[serde(rename = "response")]
55    pub response: APIResponse,
56}
57
58/// Parameters of `APIRequestContext.fetchResponseBody` (Get response body).
59#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
60pub struct APIRequestContextFetchResponseBodyParams {
61    #[serde(rename = "fetchUid")]
62    pub fetch_uid: String,
63}
64
65/// Result of `APIRequestContext.fetchResponseBody` (Get response body).
66#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
67pub struct APIRequestContextFetchResponseBodyResult {
68    #[serde(rename = "binary", default, skip_serializing_if = "Option::is_none")]
69    pub binary: Option<Binary>,
70}
71
72/// Parameters of `APIRequestContext.fetchLog`.
73#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
74pub struct APIRequestContextFetchLogParams {
75    #[serde(rename = "fetchUid")]
76    pub fetch_uid: String,
77}
78
79/// Result of `APIRequestContext.fetchLog`.
80#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
81pub struct APIRequestContextFetchLogResult {
82    #[serde(rename = "log")]
83    pub log: Vec<String>,
84}
85
86/// Parameters of `APIRequestContext.storageState` (Get storage state).
87#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
88pub struct APIRequestContextStorageStateParams {
89    #[serde(rename = "indexedDB", default, skip_serializing_if = "Option::is_none")]
90    pub indexed_db: Option<bool>,
91}
92
93/// Result of `APIRequestContext.storageState` (Get storage state).
94#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
95pub struct APIRequestContextStorageStateResult {
96    #[serde(rename = "cookies")]
97    pub cookies: Vec<NetworkCookie>,
98    #[serde(rename = "origins")]
99    pub origins: Vec<OriginStorage>,
100}
101
102/// Parameters of `APIRequestContext.disposeAPIResponse`.
103#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
104pub struct APIRequestContextDisposeAPIResponseParams {
105    #[serde(rename = "fetchUid")]
106    pub fetch_uid: String,
107}
108
109/// Parameters of `APIRequestContext.dispose`.
110#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
111pub struct APIRequestContextDisposeParams {
112    #[serde(rename = "reason", default, skip_serializing_if = "Option::is_none")]
113    pub reason: Option<String>,
114}
115
116/// Events a `APIRequestContext` channel can emit.
117#[derive(Debug, Clone, PartialEq)]
118pub enum APIRequestContextEvent {
119    /// An event this binding does not know (a newer driver).
120    Unknown {
121        /// Event name.
122        method: String,
123        /// Raw event parameters.
124        params: serde_json::Value,
125    },
126}
127
128impl ProtocolEvent for APIRequestContextEvent {
129    fn parse(method: &str, params: serde_json::Value) -> Result<Self, serde_json::Error> {
130        match method {
131            _ => Ok(Self::Unknown { method: method.to_string(), params }),
132        }
133    }
134}
135
136/// Channel for the `APIRequestContext` interface (`api.yml`).
137#[derive(Debug, Clone)]
138pub struct APIRequestContext {
139    channel: Channel,
140}
141
142impl ChannelType for APIRequestContext {
143    const INTERFACE: &'static str = "APIRequestContext";
144    type Initializer = APIRequestContextInitializer;
145    type Event = APIRequestContextEvent;
146
147    fn accepts(interface: &str) -> bool {
148        matches!(interface, "APIRequestContext")
149    }
150
151    fn from_channel(channel: Channel) -> Self {
152        Self { channel }
153    }
154
155    fn channel(&self) -> &Channel {
156        &self.channel
157    }
158}
159
160impl APIRequestContext {
161    /// `APIRequestContext.fetch` ("{method} "{url}"").
162    pub async fn fetch(&self, params: APIRequestContextFetchParams) -> Result<APIRequestContextFetchResult, ProtocolError> {
163        self.channel.send("fetch", &params).await
164    }
165
166    /// `APIRequestContext.fetchResponseBody` ("Get response body").
167    pub async fn fetch_response_body(&self, params: APIRequestContextFetchResponseBodyParams) -> Result<APIRequestContextFetchResponseBodyResult, ProtocolError> {
168        self.channel.send("fetchResponseBody", &params).await
169    }
170
171    /// `APIRequestContext.fetchLog` (internal).
172    pub async fn fetch_log(&self, params: APIRequestContextFetchLogParams) -> Result<APIRequestContextFetchLogResult, ProtocolError> {
173        self.channel.send("fetchLog", &params).await
174    }
175
176    /// `APIRequestContext.storageState` ("Get storage state").
177    pub async fn storage_state(&self, params: APIRequestContextStorageStateParams) -> Result<APIRequestContextStorageStateResult, ProtocolError> {
178        self.channel.send("storageState", &params).await
179    }
180
181    /// `APIRequestContext.disposeAPIResponse` (internal).
182    pub async fn dispose_api_response(&self, params: APIRequestContextDisposeAPIResponseParams) -> Result<(), ProtocolError> {
183        self.channel.send_no_result("disposeAPIResponse", &params).await
184    }
185
186    /// `APIRequestContext.dispose` (internal).
187    pub async fn dispose(&self, params: APIRequestContextDisposeParams) -> Result<(), ProtocolError> {
188        self.channel.send_no_result("dispose", &params).await
189    }
190}