From 0d2c1bacf9342a351ee4048ccc516069cbcfca1c Mon Sep 17 00:00:00 2001 From: Nicole Tietz-Sokolskaya Date: Sat, 1 Jun 2024 13:18:46 -0400 Subject: [PATCH] make everything work again --- migrations/2024-05-31-175324_users/up.sql | 4 +--- .../2024-05-31-203133_projects_and_documents/down.sql | 1 - .../2024-05-31-203133_projects_and_documents/up.sql | 10 ++-------- migrations/2024-05-31-204416_permissions/up.sql | 5 +---- src/handler/documents.rs | 4 ++++ src/models/documents.rs | 6 +----- src/models/project_memberships.rs | 3 --- src/models/projects.rs | 6 +----- src/models/users.rs | 6 +----- src/schema.rs | 8 -------- 10 files changed, 11 insertions(+), 42 deletions(-) diff --git a/migrations/2024-05-31-175324_users/up.sql b/migrations/2024-05-31-175324_users/up.sql index 900d9a6..09a52b3 100644 --- a/migrations/2024-05-31-175324_users/up.sql +++ b/migrations/2024-05-31-175324_users/up.sql @@ -3,7 +3,5 @@ CREATE TABLE IF NOT EXISTS users ( username TEXT NOT NULL UNIQUE CHECK (LENGTH(username) <= 32), password_hash TEXT NOT NULL, email TEXT NOT NULL UNIQUE CHECK (LENGTH(email) <= 100), - name TEXT NOT NULL CHECK (LENGTH(name) <= 100), - created TIMESTAMP NOT NULL, - updated TIMESTAMP NOT NULL + name TEXT NOT NULL CHECK (LENGTH(name) <= 100) ); diff --git a/migrations/2024-05-31-203133_projects_and_documents/down.sql b/migrations/2024-05-31-203133_projects_and_documents/down.sql index 55af339..5f271f1 100644 --- a/migrations/2024-05-31-203133_projects_and_documents/down.sql +++ b/migrations/2024-05-31-203133_projects_and_documents/down.sql @@ -1,3 +1,2 @@ - DROP TABLE IF EXISTS projects; DROP TABLE IF EXISTS documents; diff --git a/migrations/2024-05-31-203133_projects_and_documents/up.sql b/migrations/2024-05-31-203133_projects_and_documents/up.sql index c56e14f..9de4432 100644 --- a/migrations/2024-05-31-203133_projects_and_documents/up.sql +++ b/migrations/2024-05-31-203133_projects_and_documents/up.sql @@ -5,10 +5,7 @@ CREATE TABLE IF NOT EXISTS projects ( name TEXT NOT NULL, description TEXT NOT NULL, - key TEXT NOT NULL, - - created TIMESTAMP NOT NULL, - updated TIMESTAMP NOT NULL + key TEXT NOT NULL ); CREATE TABLE IF NOT EXISTS documents ( @@ -17,8 +14,5 @@ CREATE TABLE IF NOT EXISTS documents ( project_id UUID_TEXT NOT NULL, title TEXT NOT NULL, - content TEXT NOT NULL, - - created TIMESTAMP NOT NULL, - updated TIMESTAMP NOT NULL + content TEXT NOT NULL ); diff --git a/migrations/2024-05-31-204416_permissions/up.sql b/migrations/2024-05-31-204416_permissions/up.sql index d3044cd..fd9f817 100644 --- a/migrations/2024-05-31-204416_permissions/up.sql +++ b/migrations/2024-05-31-204416_permissions/up.sql @@ -4,8 +4,5 @@ CREATE TABLE IF NOT EXISTS project_memberships( user_id UUID_TEXT NOT NULL, project_id UUID_TEXT NOT NULL, - role TEXT NOT NULL, - - created TIMESTAMP NOT NULL, - updated TIMESTAMP NOT NULL + role TEXT NOT NULL ); diff --git a/src/handler/documents.rs b/src/handler/documents.rs index 5c97cd4..b66bb0b 100644 --- a/src/handler/documents.rs +++ b/src/handler/documents.rs @@ -26,10 +26,12 @@ async fn render_documents_page(ctx: Context, user: User) -> Result user, documents => documents, + projects => projects, }; Ok(ctx.render_resp("documents/list_documents.html", values)) @@ -122,10 +124,12 @@ pub async fn edit_document_page( } let document = documents::query::by_id(&mut db, &id.to_string()).map_err(internal_error)?; + let projects = permissions::query::accessible_projects(&mut db, &user.id).map_err(internal_error)?; let values = context! { user => user, document => document, + projects => projects, }; Ok(ctx.render_resp("documents/edit_document.html", values)) diff --git a/src/models/documents.rs b/src/models/documents.rs index 685130c..5b2f3c0 100644 --- a/src/models/documents.rs +++ b/src/models/documents.rs @@ -15,10 +15,6 @@ pub struct Document { pub project_id: String, pub title: String, pub content: String, - #[serde(skip)] - pub created: chrono::NaiveDateTime, - #[serde(skip)] - pub updated: chrono::NaiveDateTime, } #[derive(Insertable)] @@ -34,7 +30,7 @@ pub struct NewDocument { impl NewDocument { pub fn new(creator_id: &str, project_id: &str, title: String, content: String) -> Self { Self { - id: Uuid::new_v4().to_string(), + id: Uuid::now_v7().to_string(), creator_id: creator_id.to_string(), project_id: project_id.to_string(), title, diff --git a/src/models/project_memberships.rs b/src/models/project_memberships.rs index 8a60887..21a8def 100644 --- a/src/models/project_memberships.rs +++ b/src/models/project_memberships.rs @@ -50,9 +50,6 @@ pub struct ProjectMembership { #[diesel(serialize_as = String, deserialize_as = String)] pub role: ProjectRole, - - pub created: chrono::NaiveDateTime, - pub updated: chrono::NaiveDateTime, } #[derive(Insertable)] diff --git a/src/models/projects.rs b/src/models/projects.rs index e14c752..285c4db 100644 --- a/src/models/projects.rs +++ b/src/models/projects.rs @@ -15,10 +15,6 @@ pub struct Project { pub name: String, pub description: String, pub key: String, - #[serde(skip)] - pub created: chrono::NaiveDateTime, - #[serde(skip)] - pub updated: chrono::NaiveDateTime, } #[derive(Insertable)] @@ -34,7 +30,7 @@ pub struct NewProject { impl NewProject { pub fn new(creator_id: String, name: String, description: String, key: String) -> Self { Self { - id: Uuid::new_v4().to_string(), + id: Uuid::now_v7().to_string(), creator_id, name, description, diff --git a/src/models/users.rs b/src/models/users.rs index c723289..1d4da0a 100644 --- a/src/models/users.rs +++ b/src/models/users.rs @@ -17,10 +17,6 @@ pub struct User { pub password_hash: String, pub email: String, pub name: String, - #[serde(skip)] - pub created: chrono::NaiveDateTime, - #[serde(skip)] - pub updated: chrono::NaiveDateTime, } #[derive(Insertable)] @@ -37,7 +33,7 @@ impl NewUser { pub fn new(name: String, username: String, email: String, password: String) -> Self { let password_hash = password::hash(&password); Self { - id: Uuid::new_v4().to_string(), + id: Uuid::now_v7().to_string(), name, username, email, diff --git a/src/schema.rs b/src/schema.rs index 05c54f4..0cbe886 100644 --- a/src/schema.rs +++ b/src/schema.rs @@ -7,8 +7,6 @@ diesel::table! { project_id -> Text, title -> Text, content -> Text, - created -> Timestamp, - updated -> Timestamp, } } @@ -18,8 +16,6 @@ diesel::table! { user_id -> Text, project_id -> Text, role -> Text, - created -> Timestamp, - updated -> Timestamp, } } @@ -30,8 +26,6 @@ diesel::table! { name -> Text, description -> Text, key -> Text, - created -> Timestamp, - updated -> Timestamp, } } @@ -42,8 +36,6 @@ diesel::table! { password_hash -> Text, email -> Text, name -> Text, - created -> Timestamp, - updated -> Timestamp, } }