From 44dee16e641a676131d3ed489f8764dc78cea5dd Mon Sep 17 00:00:00 2001 From: khorshuheng Date: Mon, 20 Jan 2025 14:30:14 +0800 Subject: [PATCH] feat: add comments enabled and duplicate enabled to publish info --- ...38926446f6473107d68dfcd82ffecddcee890.json} | 18 +++++++++++++++--- ...0b7be30d3e7a477c4ddd03533b781df2fb2c7.json} | 18 +++++++++++++++--- libs/database-entity/src/dto.rs | 12 ++++++++++++ libs/database/src/publish.rs | 8 ++++++-- 4 files changed, 48 insertions(+), 8 deletions(-) rename .sqlx/{query-e1c7d372486de8d609a2389a7af8af627af939f63302fb2a8549685eab437312.json => query-7a86f93afe6e77d4481920b08ed38926446f6473107d68dfcd82ffecddcee890.json} (58%) rename .sqlx/{query-8ca5095db6ae36bd60dd32861baa2d8cd87b7478f6aa226d441b5e409abf08ab.json => query-a18d0c9536dba734715903c8e8f0b7be30d3e7a477c4ddd03533b781df2fb2c7.json} (57%) diff --git a/.sqlx/query-e1c7d372486de8d609a2389a7af8af627af939f63302fb2a8549685eab437312.json b/.sqlx/query-7a86f93afe6e77d4481920b08ed38926446f6473107d68dfcd82ffecddcee890.json similarity index 58% rename from .sqlx/query-e1c7d372486de8d609a2389a7af8af627af939f63302fb2a8549685eab437312.json rename to .sqlx/query-7a86f93afe6e77d4481920b08ed38926446f6473107d68dfcd82ffecddcee890.json index d711f592..7360f778 100644 --- a/.sqlx/query-e1c7d372486de8d609a2389a7af8af627af939f63302fb2a8549685eab437312.json +++ b/.sqlx/query-7a86f93afe6e77d4481920b08ed38926446f6473107d68dfcd82ffecddcee890.json @@ -1,6 +1,6 @@ { "db_name": "PostgreSQL", - "query": "\n SELECT\n awn.namespace,\n apc.publish_name,\n apc.view_id,\n au.email AS publisher_email,\n apc.created_at AS publish_timestamp,\n apc.unpublished_at AS unpublished_timestamp\n FROM af_published_collab apc\n JOIN af_user au ON apc.published_by = au.uid\n JOIN af_workspace aw ON apc.workspace_id = aw.workspace_id\n JOIN af_workspace_namespace awn ON aw.workspace_id = awn.workspace_id AND awn.is_original = TRUE\n WHERE apc.view_id = ANY($1);\n ", + "query": "\n SELECT\n awn.namespace,\n apc.publish_name,\n apc.view_id,\n au.email AS publisher_email,\n apc.created_at AS publish_timestamp,\n apc.unpublished_at AS unpublished_timestamp,\n apc.comments_enabled,\n apc.duplicate_enabled\n FROM af_published_collab apc\n JOIN af_user au ON apc.published_by = au.uid\n JOIN af_workspace aw ON apc.workspace_id = aw.workspace_id\n JOIN af_workspace_namespace awn ON aw.workspace_id = awn.workspace_id AND awn.is_original = TRUE\n WHERE apc.view_id = ANY($1);\n ", "describe": { "columns": [ { @@ -32,6 +32,16 @@ "ordinal": 5, "name": "unpublished_timestamp", "type_info": "Timestamptz" + }, + { + "ordinal": 6, + "name": "comments_enabled", + "type_info": "Bool" + }, + { + "ordinal": 7, + "name": "duplicate_enabled", + "type_info": "Bool" } ], "parameters": { @@ -45,8 +55,10 @@ false, false, false, - true + true, + false, + false ] }, - "hash": "e1c7d372486de8d609a2389a7af8af627af939f63302fb2a8549685eab437312" + "hash": "7a86f93afe6e77d4481920b08ed38926446f6473107d68dfcd82ffecddcee890" } diff --git a/.sqlx/query-8ca5095db6ae36bd60dd32861baa2d8cd87b7478f6aa226d441b5e409abf08ab.json b/.sqlx/query-a18d0c9536dba734715903c8e8f0b7be30d3e7a477c4ddd03533b781df2fb2c7.json similarity index 57% rename from .sqlx/query-8ca5095db6ae36bd60dd32861baa2d8cd87b7478f6aa226d441b5e409abf08ab.json rename to .sqlx/query-a18d0c9536dba734715903c8e8f0b7be30d3e7a477c4ddd03533b781df2fb2c7.json index e3170ecd..cf78c263 100644 --- a/.sqlx/query-8ca5095db6ae36bd60dd32861baa2d8cd87b7478f6aa226d441b5e409abf08ab.json +++ b/.sqlx/query-a18d0c9536dba734715903c8e8f0b7be30d3e7a477c4ddd03533b781df2fb2c7.json @@ -1,6 +1,6 @@ { "db_name": "PostgreSQL", - "query": "\n SELECT\n awn.namespace,\n apc.publish_name,\n apc.view_id,\n au.email AS publisher_email,\n apc.created_at AS publish_timestamp,\n apc.unpublished_at AS unpublished_timestamp\n FROM af_published_collab apc\n JOIN af_user au ON apc.published_by = au.uid\n JOIN af_workspace aw ON apc.workspace_id = aw.workspace_id\n JOIN af_workspace_namespace awn ON aw.workspace_id = awn.workspace_id AND awn.is_original = TRUE\n WHERE apc.workspace_id = $1 AND apc.unpublished_at IS NULL;\n ", + "query": "\n SELECT\n awn.namespace,\n apc.publish_name,\n apc.view_id,\n au.email AS publisher_email,\n apc.created_at AS publish_timestamp,\n apc.unpublished_at AS unpublished_timestamp,\n apc.comments_enabled,\n apc.duplicate_enabled\n FROM af_published_collab apc\n JOIN af_user au ON apc.published_by = au.uid\n JOIN af_workspace aw ON apc.workspace_id = aw.workspace_id\n JOIN af_workspace_namespace awn ON aw.workspace_id = awn.workspace_id AND awn.is_original = TRUE\n WHERE apc.workspace_id = $1 AND apc.unpublished_at IS NULL;\n ", "describe": { "columns": [ { @@ -32,6 +32,16 @@ "ordinal": 5, "name": "unpublished_timestamp", "type_info": "Timestamptz" + }, + { + "ordinal": 6, + "name": "comments_enabled", + "type_info": "Bool" + }, + { + "ordinal": 7, + "name": "duplicate_enabled", + "type_info": "Bool" } ], "parameters": { @@ -45,8 +55,10 @@ false, false, false, - true + true, + false, + false ] }, - "hash": "8ca5095db6ae36bd60dd32861baa2d8cd87b7478f6aa226d441b5e409abf08ab" + "hash": "a18d0c9536dba734715903c8e8f0b7be30d3e7a477c4ddd03533b781df2fb2c7" } diff --git a/libs/database-entity/src/dto.rs b/libs/database-entity/src/dto.rs index e08aa347..29c4ab65 100644 --- a/libs/database-entity/src/dto.rs +++ b/libs/database-entity/src/dto.rs @@ -437,6 +437,18 @@ pub struct PublishInfo { pub publish_timestamp: DateTime, #[serde(default)] pub unpublished_timestamp: Option>, + #[serde(default = "default_comments_enabled")] + pub comments_enabled: bool, + #[serde(default = "default_duplicate_enabled")] + pub duplicate_enabled: bool, +} + +fn default_comments_enabled() -> bool { + true +} + +fn default_duplicate_enabled() -> bool { + true } #[derive(Debug, Serialize, Deserialize)] diff --git a/libs/database/src/publish.rs b/libs/database/src/publish.rs index e80f46d2..ce8d2a83 100644 --- a/libs/database/src/publish.rs +++ b/libs/database/src/publish.rs @@ -581,7 +581,9 @@ pub async fn select_publish_info_for_view_ids( apc.view_id, au.email AS publisher_email, apc.created_at AS publish_timestamp, - apc.unpublished_at AS unpublished_timestamp + apc.unpublished_at AS unpublished_timestamp, + apc.comments_enabled, + apc.duplicate_enabled FROM af_published_collab apc JOIN af_user au ON apc.published_by = au.uid JOIN af_workspace aw ON apc.workspace_id = aw.workspace_id @@ -630,7 +632,9 @@ pub async fn select_all_published_collab_info( apc.view_id, au.email AS publisher_email, apc.created_at AS publish_timestamp, - apc.unpublished_at AS unpublished_timestamp + apc.unpublished_at AS unpublished_timestamp, + apc.comments_enabled, + apc.duplicate_enabled FROM af_published_collab apc JOIN af_user au ON apc.published_by = au.uid JOIN af_workspace aw ON apc.workspace_id = aw.workspace_id