awpak_web_client/
request.rs1use reqwest::Method;
2use serde::{Deserialize, Serialize};
3use serde_json::Value;
4
5
6#[derive(Serialize, Deserialize, Clone)]
7pub struct AwpakRequest
8{
9 pub url : String,
10 pub method : AwpakMethod,
11 #[serde(default)]
12 pub headers : Vec<AwpakHeader>,
13 #[serde(default)]
14 pub query_params : Vec<AwpakQueryParam>,
15 #[serde(default)]
16 pub body : Option<AwpakBody>,
17 #[serde(default)]
18 pub timeout : Option<u64>
19}
20
21#[derive(Debug, Serialize, Deserialize, Clone)]
22pub enum AwpakMethod
23{
24 Options,
25 Get,
26 Post,
27 Put,
28 Delete,
29 Head,
30 Trace,
31 Connect,
32 Patch
33}
34
35impl From<AwpakMethod> for Method
36{
37 fn from( value: AwpakMethod ) -> Self
38 {
39 match value
40 {
41 AwpakMethod::Options => Method::OPTIONS,
42 AwpakMethod::Get => Method::GET,
43 AwpakMethod::Post => Method::POST,
44 AwpakMethod::Put => Method::PUT,
45 AwpakMethod::Delete => Method::DELETE,
46 AwpakMethod::Head => Method::HEAD,
47 AwpakMethod::Trace => Method::TRACE,
48 AwpakMethod::Connect => Method::CONNECT,
49 AwpakMethod::Patch => Method::PATCH
50 }
51 }
52}
53
54#[derive(Debug, Serialize, Deserialize, Clone)]
55pub struct AwpakQueryParam
56{
57 pub name : String,
58 pub value : String
59}
60
61#[derive(Debug, Serialize, Deserialize, Clone)]
62pub struct AwpakHeader
63{
64 pub name : String,
65 pub value : String
66}
67
68#[derive(Debug, Serialize, Deserialize, Clone)]
69pub enum AwpakBody
70{
71 Json( Value ),
72 Form( Vec<AwpakFormField> )
73}
74
75#[derive(Debug, Serialize, Deserialize, Clone)]
76pub struct AwpakFormField
77{
78 pub name : String,
79 pub value : String
80}