⚡ Adds DTOs
This commit is contained in:
29
src/api/tracker.rs
Normal file
29
src/api/tracker.rs
Normal 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())
|
||||
}
|
||||
Reference in New Issue
Block a user