use crate::models::PaginationParams;
use crate::filters::{api_log::ApiLogFilters, common::ListFilters};
#[derive(Debug, Clone)]
pub struct ListApiLogsRequest {
pub pagination: PaginationParams,
pub filters: ApiLogFilters,
}
impl ListApiLogsRequest {
pub fn new() -> Self {
Self {
pagination: PaginationParams::default(),
filters: ApiLogFilters::default(),
}
}
pub fn with_pagination(mut self, pagination: PaginationParams) -> Self {
self.pagination = pagination;
self
}
pub fn with_filters(mut self, filters: ApiLogFilters) -> Self {
self.filters = filters;
self
}
pub fn to_query_params(&self) -> Vec<(&str, String)> {
let mut params = self.pagination.to_query_params();
params.extend(self.filters.to_query_params());
params
}
}
impl Default for ListApiLogsRequest {
fn default() -> Self {
Self::new()
}
}
#[derive(Debug, Clone)]
pub struct GetApiLogRequest {
pub request_id: String,
}
impl GetApiLogRequest {
pub fn new(request_id: String) -> Self {
Self { request_id }
}
}