(
dev_addr_prefix: lrwn::DevAddrPrefix,
)
| 319 | } |
| 320 | |
| 321 | pub async fn list_by_dev_addr_prefix_overlap( |
| 322 | dev_addr_prefix: lrwn::DevAddrPrefix, |
| 323 | ) -> Result<Vec<Tenant>, Error> { |
| 324 | let tenants: Vec<Tenant> = tenant::table |
| 325 | .order_by(tenant::name) |
| 326 | .load(&mut get_async_db_conn().await?) |
| 327 | .await?; |
| 328 | |
| 329 | Ok(tenants |
| 330 | .into_iter() |
| 331 | .filter(|t| { |
| 332 | let prefixes: Vec<lrwn::DevAddrPrefix> = |
| 333 | (*t.dev_addr_prefixes).iter().cloned().flatten().collect(); |
| 334 | |
| 335 | for p in prefixes { |
| 336 | if dev_addr_prefix.is_subset_of(&p) || p.is_subset_of(&dev_addr_prefix) { |
| 337 | return true; |
| 338 | } |
| 339 | } |
| 340 | |
| 341 | false |
| 342 | }) |
| 343 | .collect()) |
| 344 | } |
| 345 | |
| 346 | pub async fn add_user( |
| 347 | tu: TenantUser, |
no test coverage detected