Use double precision for coordinates
This commit is contained in:
parent
78185cd40d
commit
2f238e8d1c
4 changed files with 53 additions and 51 deletions
|
|
@ -1,11 +1,11 @@
|
||||||
CREATE TABLE places (
|
CREATE TABLE places (
|
||||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
|
||||||
name VARCHAR NOT NULL,
|
name VARCHAR NOT NULL,
|
||||||
address VARCHAR NOT NULL,
|
address VARCHAR NOT NULL,
|
||||||
open_hours VARCHAR NOT NULL,
|
open_hours VARCHAR NOT NULL,
|
||||||
icon VARCHAR NOT NULL,
|
icon VARCHAR NOT NULL,
|
||||||
description VARCHAR NOT NULL,
|
description VARCHAR NOT NULL,
|
||||||
longitude REAL NOT NULL,
|
longitude DOUBLE NOT NULL,
|
||||||
latitude REAL NOT NULL,
|
latitude DOUBLE NOT NULL,
|
||||||
active BOOLEAN NOT NULL DEFAULT TRUE
|
active BOOLEAN NOT NULL DEFAULT TRUE
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,35 @@
|
||||||
},
|
},
|
||||||
"query": "UPDATE places SET (name, address, open_hours, icon, description, longitude, latitude) = (?, ?, ?, ?, ?, ?, ?)"
|
"query": "UPDATE places SET (name, address, open_hours, icon, description, longitude, latitude) = (?, ?, ?, ?, ?, ?, ?)"
|
||||||
},
|
},
|
||||||
"8f8e9058b89c1f10360e08f8733c75e6ea2e8c15ff2c1e8a9f4a8ecd6e778642": {
|
"af66ec71413501f84c7f4cb0dd732c8ebfcd3da36a5f1177918c2277a8674c28": {
|
||||||
|
"describe": {
|
||||||
|
"columns": [],
|
||||||
|
"nullable": [],
|
||||||
|
"parameters": {
|
||||||
|
"Right": 1
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"query": "UPDATE places SET active = FALSE WHERE id = ?"
|
||||||
|
},
|
||||||
|
"e10f7e8f125a3f60338f6c35b195517d4304304599c75e4f26f071e2a09609dc": {
|
||||||
|
"describe": {
|
||||||
|
"columns": [
|
||||||
|
{
|
||||||
|
"name": "id",
|
||||||
|
"ordinal": 0,
|
||||||
|
"type_info": "Int64"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"nullable": [
|
||||||
|
false
|
||||||
|
],
|
||||||
|
"parameters": {
|
||||||
|
"Right": 7
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"query": "INSERT INTO places (name, address, open_hours, icon, description, longitude, latitude)VALUES (?, ?, ?, ?, ?, ?, ?)RETURNING id"
|
||||||
|
},
|
||||||
|
"fdc2eb1d98b93f2b61c756687f1a30edf2e4a74622e23b6b72a9509a9303385d": {
|
||||||
"describe": {
|
"describe": {
|
||||||
"columns": [
|
"columns": [
|
||||||
{
|
{
|
||||||
|
|
@ -44,12 +72,12 @@
|
||||||
"type_info": "Text"
|
"type_info": "Text"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "longitude",
|
"name": "longitude: f64",
|
||||||
"ordinal": 6,
|
"ordinal": 6,
|
||||||
"type_info": "Float"
|
"type_info": "Float"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "latitude",
|
"name": "latitude: f64",
|
||||||
"ordinal": 7,
|
"ordinal": 7,
|
||||||
"type_info": "Float"
|
"type_info": "Float"
|
||||||
}
|
}
|
||||||
|
|
@ -68,34 +96,6 @@
|
||||||
"Right": 0
|
"Right": 0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"query": "SELECT id, name, address, open_hours, icon, description, longitude, latitude FROM places WHERE active = TRUE"
|
"query": "SELECT id, name, address, open_hours, icon, description,longitude as \"longitude: f64\", latitude as \"latitude: f64\" FROM places WHERE active = TRUE"
|
||||||
},
|
|
||||||
"af66ec71413501f84c7f4cb0dd732c8ebfcd3da36a5f1177918c2277a8674c28": {
|
|
||||||
"describe": {
|
|
||||||
"columns": [],
|
|
||||||
"nullable": [],
|
|
||||||
"parameters": {
|
|
||||||
"Right": 1
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"query": "UPDATE places SET active = FALSE WHERE id = ?"
|
|
||||||
},
|
|
||||||
"e10f7e8f125a3f60338f6c35b195517d4304304599c75e4f26f071e2a09609dc": {
|
|
||||||
"describe": {
|
|
||||||
"columns": [
|
|
||||||
{
|
|
||||||
"name": "id",
|
|
||||||
"ordinal": 0,
|
|
||||||
"type_info": "Int64"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"nullable": [
|
|
||||||
false
|
|
||||||
],
|
|
||||||
"parameters": {
|
|
||||||
"Right": 7
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"query": "INSERT INTO places (name, address, open_hours, icon, description, longitude, latitude)VALUES (?, ?, ?, ?, ?, ?, ?)RETURNING id"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -9,6 +9,6 @@ pub struct Place {
|
||||||
pub open_hours: String,
|
pub open_hours: String,
|
||||||
pub icon: String,
|
pub icon: String,
|
||||||
pub description: String,
|
pub description: String,
|
||||||
pub longitude: f32,
|
pub longitude: f64,
|
||||||
pub latitude: f32,
|
pub latitude: f64,
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -16,20 +16,22 @@ struct Db(rocket_db_pools::sqlx::SqlitePool);
|
||||||
#[get("/places")]
|
#[get("/places")]
|
||||||
async fn get_places(mut db: Connection<Db>) -> Result<Json<Vec<Place>>> {
|
async fn get_places(mut db: Connection<Db>) -> Result<Json<Vec<Place>>> {
|
||||||
let places = rocket_db_pools::sqlx::query!(
|
let places = rocket_db_pools::sqlx::query!(
|
||||||
"SELECT id, name, address, open_hours, icon, description, longitude, latitude FROM places WHERE active = TRUE")
|
"SELECT id, name, address, open_hours, icon, description," +
|
||||||
.fetch(&mut *db)
|
r#"longitude as "longitude: f64", latitude as "latitude: f64" FROM places WHERE active = TRUE"#
|
||||||
.map_ok(|p| Place {
|
)
|
||||||
id: Some(p.id),
|
.fetch(&mut *db)
|
||||||
name: p.name,
|
.map_ok(|p| Place {
|
||||||
address: p.address,
|
id: Some(p.id),
|
||||||
open_hours: p.open_hours,
|
name: p.name,
|
||||||
icon: p.icon,
|
address: p.address,
|
||||||
description: p.description,
|
open_hours: p.open_hours,
|
||||||
latitude: p.latitude,
|
icon: p.icon,
|
||||||
longitude: p.longitude
|
description: p.description,
|
||||||
})
|
latitude: p.latitude,
|
||||||
.try_collect::<Vec<_>>()
|
longitude: p.longitude,
|
||||||
.await?;
|
})
|
||||||
|
.try_collect::<Vec<_>>()
|
||||||
|
.await?;
|
||||||
|
|
||||||
Ok(Json(places))
|
Ok(Json(places))
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue