Files
tuliprox/backend/src/model/config/reverse_proxy.rs
T

42 lines
1.5 KiB
Rust
Raw Normal View History

2025-06-24 01:06:25 +02:00
use shared::model::ReverseProxyConfigDto;
2025-06-19 17:09:00 +02:00
use crate::model::config::cache::CacheConfig;
use crate::model::{macros, GeoIpConfig, RateLimitConfig, StreamConfig};
2025-06-19 17:09:00 +02:00
2025-06-24 01:06:25 +02:00
#[derive(Debug, Clone)]
2025-06-19 17:09:00 +02:00
pub struct ReverseProxyConfig {
2025-06-24 01:06:25 +02:00
pub resource_rewrite_disabled: bool,
pub disable_referer_header: bool,
2025-06-19 17:09:00 +02:00
pub stream: Option<StreamConfig>,
pub cache: Option<CacheConfig>,
pub rate_limit: Option<RateLimitConfig>,
pub geoip: Option<GeoIpConfig>,
2025-06-19 17:09:00 +02:00
}
2025-06-24 01:06:25 +02:00
macros::from_impl!(ReverseProxyConfig);
2025-06-19 17:09:00 +02:00
2025-06-24 01:06:25 +02:00
impl From<&ReverseProxyConfigDto> for ReverseProxyConfig {
fn from(dto: &ReverseProxyConfigDto) -> Self {
Self {
resource_rewrite_disabled: dto.resource_rewrite_disabled,
disable_referer_header: dto.disable_referer_header,
stream: dto.stream.as_ref().map(Into::into),
cache: dto.cache.as_ref().map(Into::into),
rate_limit: dto.rate_limit.as_ref().map(Into::into),
geoip: dto.geoip.as_ref().map(Into::into),
2025-06-19 17:09:00 +02:00
}
2025-06-24 01:06:25 +02:00
}
}
2025-06-19 17:09:00 +02:00
2025-06-24 01:06:25 +02:00
impl From<&ReverseProxyConfig> for ReverseProxyConfigDto {
fn from(instance: &ReverseProxyConfig) -> Self {
Self {
resource_rewrite_disabled: instance.resource_rewrite_disabled,
disable_referer_header: instance.disable_referer_header,
stream: instance.stream.as_ref().map(Into::into),
cache: instance.cache.as_ref().map(Into::into),
rate_limit: instance.rate_limit.as_ref().map(Into::into),
geoip: instance.geoip.as_ref().map(Into::into),
2025-06-19 17:09:00 +02:00
}
}
}