open_lark/core/request_builder/
header_builder.rs1use crate::core::{
2 config::Config,
3 constants::{CUSTOM_REQUEST_ID, USER_AGENT_HEADER},
4 req_option::RequestOption,
5 utils::user_agent,
6};
7use reqwest::RequestBuilder;
8
9pub struct HeaderBuilder;
11
12impl HeaderBuilder {
13 pub fn build_headers(
15 mut req_builder: RequestBuilder,
16 config: &Config,
17 option: &RequestOption,
18 ) -> RequestBuilder {
19 if !option.request_id.is_empty() {
21 req_builder = req_builder.header(CUSTOM_REQUEST_ID, &option.request_id);
22 }
23
24 for (key, value) in &option.header {
26 req_builder = req_builder.header(key, value);
27 }
28
29 for (key, value) in &config.header {
31 req_builder = req_builder.header(key, value);
32 }
33
34 req_builder = req_builder.header(USER_AGENT_HEADER, user_agent());
36
37 req_builder
38 }
39
40 pub fn add_header(req_builder: RequestBuilder, key: &str, value: &str) -> RequestBuilder {
42 req_builder.header(key, value)
43 }
44
45 pub fn add_headers(
47 mut req_builder: RequestBuilder,
48 headers: &[(String, String)],
49 ) -> RequestBuilder {
50 for (key, value) in headers {
51 req_builder = req_builder.header(key, value);
52 }
53 req_builder
54 }
55}