Add cookie editing and inherited request settings (#463)

This commit is contained in:
Gregory Schier
2026-05-18 08:59:49 -07:00
committed by GitHub
parent dcfdf077e7
commit fa40ceaa31
54 changed files with 5203 additions and 1101 deletions
+59 -2
View File
@@ -2,8 +2,9 @@ use crate::client_db::ClientDb;
use crate::connection_or_tx::ConnectionOrTx;
use crate::error::Result;
use crate::models::{
Environment, EnvironmentIden, Folder, FolderIden, GrpcRequest, GrpcRequestIden, HttpRequest,
HttpRequestHeader, HttpRequestIden, WebsocketRequest, WebsocketRequestIden,
AnyModel, Environment, EnvironmentIden, Folder, FolderIden, GrpcRequest, GrpcRequestIden,
HttpRequest, HttpRequestHeader, HttpRequestIden, ResolvedHttpRequestSettings, ResolvedSetting,
WebsocketRequest, WebsocketRequestIden,
};
use crate::util::UpdateSource;
use serde_json::Value;
@@ -141,4 +142,60 @@ impl<'a> ClientDb<'a> {
Ok(headers)
}
pub fn resolve_settings_for_folder(
&self,
folder: &Folder,
) -> Result<ResolvedHttpRequestSettings> {
let parent = if let Some(folder_id) = folder.folder_id.clone() {
let parent_folder = self.get_folder(&folder_id)?;
self.resolve_settings_for_folder(&parent_folder)?
} else {
let workspace = self.get_workspace(&folder.workspace_id)?;
self.resolve_settings_for_workspace(&workspace)
};
Ok(ResolvedHttpRequestSettings {
validate_certificates: if folder.setting_validate_certificates.enabled {
ResolvedSetting::from_model(
folder.setting_validate_certificates.value,
AnyModel::Folder(folder.clone()),
)
} else {
parent.validate_certificates
},
follow_redirects: if folder.setting_follow_redirects.enabled {
ResolvedSetting::from_model(
folder.setting_follow_redirects.value,
AnyModel::Folder(folder.clone()),
)
} else {
parent.follow_redirects
},
request_timeout: if folder.setting_request_timeout.enabled {
ResolvedSetting::from_model(
folder.setting_request_timeout.value,
AnyModel::Folder(folder.clone()),
)
} else {
parent.request_timeout
},
send_cookies: if folder.setting_send_cookies.enabled {
ResolvedSetting::from_model(
folder.setting_send_cookies.value,
AnyModel::Folder(folder.clone()),
)
} else {
parent.send_cookies
},
store_cookies: if folder.setting_store_cookies.enabled {
ResolvedSetting::from_model(
folder.setting_store_cookies.value,
AnyModel::Folder(folder.clone()),
)
} else {
parent.store_cookies
},
})
}
}