pinakes: import in parallel; various UI improvements
Signed-off-by: NotAShelf <raf@notashelf.dev> Change-Id: I1eb47cd79cd4145c56af966f6756fe1d6a6a6964
This commit is contained in:
parent
278bcaa4b0
commit
116fe7b059
42 changed files with 4316 additions and 316 deletions
|
|
@ -277,6 +277,22 @@ pub struct DatabaseStatsResponse {
|
|||
pub backend_name: String,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
|
||||
pub struct SavedSearchResponse {
|
||||
pub id: String,
|
||||
pub name: String,
|
||||
pub query: String,
|
||||
pub sort_order: Option<String>,
|
||||
pub created_at: chrono::DateTime<chrono::Utc>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize)]
|
||||
pub struct CreateSavedSearchRequest {
|
||||
pub name: String,
|
||||
pub query: String,
|
||||
pub sort_order: Option<String>,
|
||||
}
|
||||
|
||||
#[allow(dead_code)]
|
||||
impl ApiClient {
|
||||
pub fn new(base_url: &str, api_key: Option<&str>) -> Self {
|
||||
|
|
@ -1053,6 +1069,50 @@ impl ApiClient {
|
|||
.await?)
|
||||
}
|
||||
|
||||
// ── Saved Searches ──
|
||||
|
||||
pub async fn list_saved_searches(&self) -> Result<Vec<SavedSearchResponse>> {
|
||||
Ok(self
|
||||
.client
|
||||
.get(self.url("/saved-searches"))
|
||||
.send()
|
||||
.await?
|
||||
.error_for_status()?
|
||||
.json()
|
||||
.await?)
|
||||
}
|
||||
|
||||
pub async fn create_saved_search(
|
||||
&self,
|
||||
name: &str,
|
||||
query: &str,
|
||||
sort_order: Option<&str>,
|
||||
) -> Result<SavedSearchResponse> {
|
||||
let req = CreateSavedSearchRequest {
|
||||
name: name.to_string(),
|
||||
query: query.to_string(),
|
||||
sort_order: sort_order.map(|s| s.to_string()),
|
||||
};
|
||||
Ok(self
|
||||
.client
|
||||
.post(self.url("/saved-searches"))
|
||||
.json(&req)
|
||||
.send()
|
||||
.await?
|
||||
.error_for_status()?
|
||||
.json()
|
||||
.await?)
|
||||
}
|
||||
|
||||
pub async fn delete_saved_search(&self, id: &str) -> Result<()> {
|
||||
self.client
|
||||
.delete(self.url(&format!("/saved-searches/{id}")))
|
||||
.send()
|
||||
.await?
|
||||
.error_for_status()?;
|
||||
Ok(())
|
||||
}
|
||||
|
||||
pub fn set_token(&mut self, token: &str) {
|
||||
let mut headers = header::HeaderMap::new();
|
||||
if let Ok(val) = header::HeaderValue::from_str(&format!("Bearer {token}")) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue