Adds DTOs

This commit is contained in:
2025-10-05 18:45:57 +02:00
parent 0d801609a3
commit 91837d736f
8 changed files with 97 additions and 21 deletions

29
src/api/tracker.rs Normal file
View File

@@ -0,0 +1,29 @@
use crate::dtos::TrackerDTO;
use crate::models::{AppState, Tracker};
use crate::schema::trackers::dsl::trackers;
use diesel::{QueryDsl, RunQueryDsl, SelectableHelper};
use rocket::State;
use rocket::serde::json::Json;
#[get("/?<offset>&<limit>")]
pub fn index(
offset: Option<i64>,
limit: Option<i64>,
data: &State<AppState>,
) -> Json<Vec<TrackerDTO>> {
let mut db = data.db.lock().unwrap();
let offset = offset.unwrap_or(0);
let limit = limit.unwrap_or(10);
println!("hey");
let results = trackers
.offset(offset)
.limit(limit)
.select(Tracker::as_select())
.load(&mut *db)
.expect("Error loading trackers");
println!("hi");
Json(results.iter().map(TrackerDTO::from).collect())
}