| 535 | } |
| 536 | |
| 537 | pub async fn list_relay_gateways( |
| 538 | limit: i64, |
| 539 | offset: i64, |
| 540 | filters: &RelayGatewayFilters, |
| 541 | ) -> Result<Vec<RelayGatewayListItem>, Error> { |
| 542 | let mut q = relay_gateway::dsl::relay_gateway |
| 543 | .select(( |
| 544 | relay_gateway::relay_id, |
| 545 | relay_gateway::tenant_id, |
| 546 | relay_gateway::created_at, |
| 547 | relay_gateway::updated_at, |
| 548 | relay_gateway::last_seen_at, |
| 549 | relay_gateway::name, |
| 550 | relay_gateway::description, |
| 551 | relay_gateway::stats_interval_secs, |
| 552 | relay_gateway::region_config_id, |
| 553 | )) |
| 554 | .into_boxed(); |
| 555 | |
| 556 | if let Some(tenant_id) = &filters.tenant_id { |
| 557 | q = q.filter(relay_gateway::dsl::tenant_id.eq(fields::Uuid::from(tenant_id))); |
| 558 | } |
| 559 | |
| 560 | let items = q |
| 561 | .order_by(relay_gateway::dsl::name) |
| 562 | .limit(limit) |
| 563 | .offset(offset) |
| 564 | .load(&mut get_async_db_conn().await?) |
| 565 | .await?; |
| 566 | Ok(items) |
| 567 | } |
| 568 | |
| 569 | #[cfg(test)] |
| 570 | pub mod test { |