From 2279026a8122cf08a96a230e61c44344090a50fa Mon Sep 17 00:00:00 2001
From: Felipe
Date: Tue, 28 Mar 2023 02:01:09 -0300
Subject: [PATCH] Add optional URL field (#14)
Co-authored-by: Felipe Contreras Salinas
Reviewed-on: https://oolong.ludwig.dog/pitbuster/huellas/pulls/14
---
Cargo.lock | 2 +-
migrations/20230315004723_add_url.sql | 1 +
src/place.rs | 1 +
src/routes.rs | 15 ++++++-----
static/index.html | 4 +++
ts-client/client.ts | 36 +++++++++++++++++++++------
6 files changed, 44 insertions(+), 15 deletions(-)
create mode 100644 migrations/20230315004723_add_url.sql
diff --git a/Cargo.lock b/Cargo.lock
index eec7613..e2c68f8 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -654,7 +654,7 @@ checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421"
[[package]]
name = "huellas"
-version = "0.1.3"
+version = "0.1.4"
dependencies = [
"rocket",
"rocket_db_pools",
diff --git a/migrations/20230315004723_add_url.sql b/migrations/20230315004723_add_url.sql
new file mode 100644
index 0000000..bd3762a
--- /dev/null
+++ b/migrations/20230315004723_add_url.sql
@@ -0,0 +1 @@
+ALTER TABLE places ADD url VARCHAR DEFAULT null;
diff --git a/src/place.rs b/src/place.rs
index 282176e..fdac142 100644
--- a/src/place.rs
+++ b/src/place.rs
@@ -11,4 +11,5 @@ pub struct Place {
pub description: String,
pub longitude: f64,
pub latitude: f64,
+ pub url: Option,
}
diff --git a/src/routes.rs b/src/routes.rs
index 679540d..91f1219 100644
--- a/src/routes.rs
+++ b/src/routes.rs
@@ -16,7 +16,7 @@ struct Db(rocket_db_pools::sqlx::SqlitePool);
#[get("/places")]
async fn get_places(mut db: Connection) -> Result>> {
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) -> Result>> {
description: p.description,
latitude: p.latitude,
longitude: p.longitude,
+ url: p.url,
})
.try_collect::>()
.await?;
@@ -59,8 +60,8 @@ struct Id {
async fn insert_place(mut db: Connection, mut place: Json) -> Result {
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, mut place: Json) -> 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, mut place: Json) -> Result<
async fn update_place(mut db: Connection, place: Json) -> Result {
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,
@@ -87,6 +89,7 @@ async fn update_place(mut db: Connection, place: Json) -> Result, id: i64) -> Result
+
+
+
+