This PR removes the `GET /rpc_server_snapshot` endpoint from Collab, as it is not being used (and also didn't seem to be functional). Release Notes: - N/A
75 lines
2.1 KiB
Rust
75 lines
2.1 KiB
Rust
pub mod events;
|
|
pub mod extensions;
|
|
|
|
use crate::Result;
|
|
use axum::{headers::Header, http::HeaderName};
|
|
use std::sync::OnceLock;
|
|
|
|
pub use extensions::fetch_extensions_from_blob_store_periodically;
|
|
|
|
pub struct CloudflareIpCountryHeader(String);
|
|
|
|
impl Header for CloudflareIpCountryHeader {
|
|
fn name() -> &'static HeaderName {
|
|
static CLOUDFLARE_IP_COUNTRY_HEADER: OnceLock<HeaderName> = OnceLock::new();
|
|
CLOUDFLARE_IP_COUNTRY_HEADER.get_or_init(|| HeaderName::from_static("cf-ipcountry"))
|
|
}
|
|
|
|
fn decode<'i, I>(values: &mut I) -> Result<Self, axum::headers::Error>
|
|
where
|
|
Self: Sized,
|
|
I: Iterator<Item = &'i axum::http::HeaderValue>,
|
|
{
|
|
let country_code = values
|
|
.next()
|
|
.ok_or_else(axum::headers::Error::invalid)?
|
|
.to_str()
|
|
.map_err(|_| axum::headers::Error::invalid())?;
|
|
|
|
Ok(Self(country_code.to_string()))
|
|
}
|
|
|
|
fn encode<E: Extend<axum::http::HeaderValue>>(&self, _values: &mut E) {
|
|
unimplemented!()
|
|
}
|
|
}
|
|
|
|
impl std::fmt::Display for CloudflareIpCountryHeader {
|
|
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
|
write!(f, "{}", self.0)
|
|
}
|
|
}
|
|
|
|
pub struct SystemIdHeader(String);
|
|
|
|
impl Header for SystemIdHeader {
|
|
fn name() -> &'static HeaderName {
|
|
static SYSTEM_ID_HEADER: OnceLock<HeaderName> = OnceLock::new();
|
|
SYSTEM_ID_HEADER.get_or_init(|| HeaderName::from_static("x-zed-system-id"))
|
|
}
|
|
|
|
fn decode<'i, I>(values: &mut I) -> Result<Self, axum::headers::Error>
|
|
where
|
|
Self: Sized,
|
|
I: Iterator<Item = &'i axum::http::HeaderValue>,
|
|
{
|
|
let system_id = values
|
|
.next()
|
|
.ok_or_else(axum::headers::Error::invalid)?
|
|
.to_str()
|
|
.map_err(|_| axum::headers::Error::invalid())?;
|
|
|
|
Ok(Self(system_id.to_string()))
|
|
}
|
|
|
|
fn encode<E: Extend<axum::http::HeaderValue>>(&self, _values: &mut E) {
|
|
unimplemented!()
|
|
}
|
|
}
|
|
|
|
impl std::fmt::Display for SystemIdHeader {
|
|
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
|
write!(f, "{}", self.0)
|
|
}
|
|
}
|