aboutsummaryrefslogtreecommitdiff
path: root/src/db
diff options
context:
space:
mode:
authorJoris2022-01-09 13:39:10 +0100
committerJoris2022-01-09 13:39:10 +0100
commit5166efe517291f5c9fc6326f30651ef799d6db65 (patch)
tree36df3d65c9e7218bff2264391032ecd28001a688 /src/db
parent99af88a840bef534540a4b273d24a8a17e7fc9b9 (diff)
Add id in event model
Diffstat (limited to 'src/db')
-rw-r--r--src/db/migrations/1-init.sql2
-rw-r--r--src/db/mod.rs17
2 files changed, 11 insertions, 8 deletions
diff --git a/src/db/migrations/1-init.sql b/src/db/migrations/1-init.sql
index 72fab80..39b845b 100644
--- a/src/db/migrations/1-init.sql
+++ b/src/db/migrations/1-init.sql
@@ -1,5 +1,5 @@
CREATE TABLE IF NOT EXISTS "events" (
- "id" INTEGER PRIMARY KEY,
+ "id" VARCHAR PRIMARY KEY,
"date" VARCHAR NOT NULL,
"start" VARCHAR NULL,
"end" VARCHAR NULL,
diff --git a/src/db/mod.rs b/src/db/mod.rs
index 6cfa2eb..23cec7e 100644
--- a/src/db/mod.rs
+++ b/src/db/mod.rs
@@ -1,6 +1,7 @@
use anyhow::Result;
use rusqlite::{params, Connection};
use rusqlite_migration::{Migrations, M};
+use uuid::Uuid;
use crate::model::event::Event;
@@ -13,22 +14,24 @@ pub fn init() -> Result<Connection> {
pub fn insert(conn: &Connection, event: &Event) -> Result<()> {
conn.execute(
- "INSERT INTO events (date, start, end, name, created, updated) VALUES (?, ?, ?, ?, datetime(), datetime())",
- params![event.date, event.start, event.end, event.name]
+ "INSERT INTO events (id, date, start, end, name, created, updated) VALUES (?, ?, ?, ?, ?, datetime(), datetime())",
+ params![event.id.to_hyphenated().to_string(), event.date, event.start, event.end, event.name]
)?;
Ok(())
}
pub fn list(conn: &Connection) -> Result<Vec<Event>> {
- let mut stmt = conn.prepare("SELECT date, start, end, name FROM events")?;
+ let mut stmt = conn.prepare("SELECT id, date, start, end, name FROM events")?;
let iter = stmt.query_map([], |row| {
+ let uuid: String = row.get(0)?;
Ok(Event {
- date: row.get(0)?,
- start: row.get(1)?,
- end: row.get(2)?,
- name: row.get(3)?,
+ id: Uuid::parse_str(&uuid).unwrap(),
+ date: row.get(1)?,
+ start: row.get(2)?,
+ end: row.get(3)?,
+ name: row.get(4)?,
})
})?;