26 lines
647 B
Rust
26 lines
647 B
Rust
use actix_web::{get, web, HttpResponse};
|
|
use serde::{Deserialize, Serialize};
|
|
|
|
use sqlx::{Pool, Sqlite};
|
|
|
|
use crate::db::DbRelay;
|
|
|
|
use crate::handlers::errors::ApiError;
|
|
use crate::models::{convert_db_list, Relay};
|
|
|
|
#[derive(Debug, Serialize, Deserialize)]
|
|
pub struct RequestRelay {
|
|
name: String,
|
|
tags: Vec<String>,
|
|
}
|
|
|
|
#[get("/api/v1/relays")]
|
|
pub async fn index(pool: web::Data<Pool<Sqlite>>) -> Result<HttpResponse, ApiError> {
|
|
let mut pool_conn = pool.acquire().await?;
|
|
|
|
let db_relays = DbRelay::get_all(&mut pool_conn).await?;
|
|
|
|
let relays: Vec<Relay> = convert_db_list(&mut pool_conn, db_relays)?;
|
|
|
|
Ok(HttpResponse::Ok().json(relays))
|
|
}
|