URL handling in backend
This commit is contained in:
parent
f7afdf6785
commit
e728b0b56a
3 changed files with 11 additions and 7 deletions
2
Cargo.lock
generated
2
Cargo.lock
generated
|
|
@ -654,7 +654,7 @@ checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421"
|
|||
|
||||
[[package]]
|
||||
name = "huellas"
|
||||
version = "0.1.3"
|
||||
version = "0.1.4"
|
||||
dependencies = [
|
||||
"rocket",
|
||||
"rocket_db_pools",
|
||||
|
|
|
|||
|
|
@ -11,4 +11,5 @@ pub struct Place {
|
|||
pub description: String,
|
||||
pub longitude: f64,
|
||||
pub latitude: f64,
|
||||
pub url: Option<String>,
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ struct Db(rocket_db_pools::sqlx::SqlitePool);
|
|||
#[get("/places")]
|
||||
async fn get_places(mut db: Connection<Db>) -> Result<Json<Vec<Place>>> {
|
||||
let places = rocket_db_pools::sqlx::query!(
|
||||
"SELECT id, name, address, open_hours, icon, description," +
|
||||
"SELECT id, name, address, open_hours, icon, description, url," +
|
||||
r#"longitude as "longitude: f64", latitude as "latitude: f64" FROM places WHERE active = TRUE"#
|
||||
)
|
||||
.fetch(&mut *db)
|
||||
|
|
@ -29,6 +29,7 @@ async fn get_places(mut db: Connection<Db>) -> Result<Json<Vec<Place>>> {
|
|||
description: p.description,
|
||||
latitude: p.latitude,
|
||||
longitude: p.longitude,
|
||||
url: p.url,
|
||||
})
|
||||
.try_collect::<Vec<_>>()
|
||||
.await?;
|
||||
|
|
@ -59,8 +60,8 @@ struct Id {
|
|||
async fn insert_place(mut db: Connection<Db>, mut place: Json<Place>) -> Result<UpsertResponse> {
|
||||
let i = ::sqlx::query_as!(
|
||||
Id,
|
||||
"INSERT INTO places (name, address, open_hours, icon, description, longitude, latitude)\
|
||||
VALUES (?, ?, ?, ?, ?, ?, ?)\
|
||||
"INSERT INTO places (name, address, open_hours, icon, description, longitude, latitude, url)\
|
||||
VALUES (?, ?, ?, ?, ?, ?, ?, ?)\
|
||||
RETURNING id",
|
||||
place.name,
|
||||
place.address,
|
||||
|
|
@ -68,7 +69,8 @@ async fn insert_place(mut db: Connection<Db>, mut place: Json<Place>) -> Result<
|
|||
place.icon,
|
||||
place.description,
|
||||
place.longitude,
|
||||
place.latitude
|
||||
place.latitude,
|
||||
place.url
|
||||
)
|
||||
.fetch_one(&mut *db)
|
||||
.await?;
|
||||
|
|
@ -79,7 +81,7 @@ async fn insert_place(mut db: Connection<Db>, mut place: Json<Place>) -> Result<
|
|||
|
||||
async fn update_place(mut db: Connection<Db>, place: Json<Place>) -> Result<UpsertResponse> {
|
||||
let result = ::sqlx::query!(
|
||||
"UPDATE places SET (name, address, open_hours, icon, description, longitude, latitude) = (?, ?, ?, ?, ?, ?, ?) WHERE id = ?",
|
||||
"UPDATE places SET (name, address, open_hours, icon, description, longitude, latitude, url) = (?, ?, ?, ?, ?, ?, ?, ?) WHERE id = ?",
|
||||
place.name,
|
||||
place.address,
|
||||
place.open_hours,
|
||||
|
|
@ -88,6 +90,7 @@ async fn update_place(mut db: Connection<Db>, place: Json<Place>) -> Result<Upse
|
|||
place.longitude,
|
||||
place.latitude,
|
||||
place.id,
|
||||
place.url,
|
||||
)
|
||||
.execute(&mut *db)
|
||||
.await?;
|
||||
|
|
@ -105,7 +108,7 @@ async fn delete_place(mut db: Connection<Db>, id: i64) -> Result<Option<()>> {
|
|||
.execute(&mut *db)
|
||||
.await?;
|
||||
|
||||
Ok((result.rows_affected() == 1).then(|| ()))
|
||||
Ok((result.rows_affected() == 1).then_some(()))
|
||||
}
|
||||
|
||||
async fn run_migrations(rocket: Rocket<Build>) -> fairing::Result {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue