mirror of
https://github.com/AppFlowy-IO/AppFlowy-Cloud.git
synced 2025-04-19 03:24:42 -04:00
fix: fetch published collab sql
This commit is contained in:
parent
46435090c9
commit
b62552f382
8 changed files with 24 additions and 23 deletions
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"db_name": "PostgreSQL",
|
||||
"query": "\n SELECT metadata\n FROM af_published_collab\n WHERE workspace_id = (SELECT workspace_id FROM af_workspace_namespace WHERE namespace = $1)\n AND publish_name = $2\n ",
|
||||
"query": "\n SELECT metadata\n FROM af_published_collab\n WHERE workspace_id = (SELECT workspace_id FROM af_workspace_namespace WHERE namespace = $1)\n AND unpublished_at IS NULL\n AND publish_name = $2\n ",
|
||||
"describe": {
|
||||
"columns": [
|
||||
{
|
||||
|
@ -19,5 +19,5 @@
|
|||
false
|
||||
]
|
||||
},
|
||||
"hash": "30091f1518275d01227ece8988ea4d99aae2891322994ab462908c520b782411"
|
||||
"hash": "51a3a723b1825da7b9abd9cb36db0cf8220abf063098a73e4a6fc3f87352b395"
|
||||
}
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"db_name": "PostgreSQL",
|
||||
"query": "\n UPDATE af_published_collab\n SET\n blob = NULL,\n unpublished_at = NOW()\n WHERE workspace_id = $1\n AND view_id = ANY($2)\n ",
|
||||
"query": "\n UPDATE af_published_collab\n SET\n blob = E''::bytea,\n unpublished_at = NOW()\n WHERE workspace_id = $1\n AND view_id = ANY($2)\n ",
|
||||
"describe": {
|
||||
"columns": [],
|
||||
"parameters": {
|
||||
|
@ -11,5 +11,5 @@
|
|||
},
|
||||
"nullable": []
|
||||
},
|
||||
"hash": "9848af5453a70e7a3add208f8499698ca10d55da67436bb6c8e34c5818fd7a3a"
|
||||
"hash": "92c4d0e22b1f6f117c9f19589832f5f89cb5b903eee3c12f5e5fc0f70f3236e1"
|
||||
}
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"db_name": "PostgreSQL",
|
||||
"query": "\n SELECT view_id\n FROM af_published_collab\n WHERE workspace_id = $1\n AND publish_name = $2\n ",
|
||||
"query": "\n SELECT view_id\n FROM af_published_collab\n WHERE workspace_id = $1\n AND unpublished_at IS NULL\n AND publish_name = $2\n ",
|
||||
"describe": {
|
||||
"columns": [
|
||||
{
|
||||
|
@ -19,5 +19,5 @@
|
|||
false
|
||||
]
|
||||
},
|
||||
"hash": "2571550f7e2dd81103960741fecbf886f52f681c44344a814780b01fc06e4c8f"
|
||||
"hash": "cbe8402053d42529dce158b446d09a00982e1d7cdc33835776bfbefb4b4c1854"
|
||||
}
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"db_name": "PostgreSQL",
|
||||
"query": "\n SELECT blob\n FROM af_published_collab\n WHERE workspace_id = (SELECT workspace_id FROM af_workspace_namespace WHERE namespace = $1)\n AND publish_name = $2\n ",
|
||||
"query": "\n SELECT blob\n FROM af_published_collab\n WHERE workspace_id = (SELECT workspace_id FROM af_workspace_namespace WHERE namespace = $1)\n AND unpublished_at IS NULL\n AND publish_name = $2\n ",
|
||||
"describe": {
|
||||
"columns": [
|
||||
{
|
||||
|
@ -19,5 +19,5 @@
|
|||
false
|
||||
]
|
||||
},
|
||||
"hash": "8957cc00ca63bcc4d29c394a7a16f94965ee0d6bee3a4ef482d1f905f9e66b66"
|
||||
"hash": "fd2a37dd917717a9bb5e1db84f03f0e84e32d2fd081955389561c6567896ea9f"
|
||||
}
|
|
@ -301,6 +301,7 @@ pub async fn select_publish_collab_meta<'a, E: Executor<'a, Database = Postgres>
|
|||
SELECT metadata
|
||||
FROM af_published_collab
|
||||
WHERE workspace_id = (SELECT workspace_id FROM af_workspace_namespace WHERE namespace = $1)
|
||||
AND unpublished_at IS NULL
|
||||
AND publish_name = $2
|
||||
"#,
|
||||
publish_namespace,
|
||||
|
@ -313,7 +314,7 @@ pub async fn select_publish_collab_meta<'a, E: Executor<'a, Database = Postgres>
|
|||
}
|
||||
|
||||
#[inline]
|
||||
pub async fn delete_published_collabs<'a, E: Executor<'a, Database = Postgres>>(
|
||||
pub async fn set_published_collabs_as_unpublished<'a, E: Executor<'a, Database = Postgres>>(
|
||||
executor: E,
|
||||
workspace_id: &Uuid,
|
||||
view_ids: &[Uuid],
|
||||
|
@ -322,7 +323,7 @@ pub async fn delete_published_collabs<'a, E: Executor<'a, Database = Postgres>>(
|
|||
r#"
|
||||
UPDATE af_published_collab
|
||||
SET
|
||||
blob = NULL,
|
||||
blob = E''::bytea,
|
||||
unpublished_at = NOW()
|
||||
WHERE workspace_id = $1
|
||||
AND view_id = ANY($2)
|
||||
|
@ -454,7 +455,8 @@ pub async fn select_published_collab_blob<'a, E: Executor<'a, Database = Postgre
|
|||
SELECT blob
|
||||
FROM af_published_collab
|
||||
WHERE workspace_id = (SELECT workspace_id FROM af_workspace_namespace WHERE namespace = $1)
|
||||
AND publish_name = $2
|
||||
AND unpublished_at IS NULL
|
||||
AND publish_name = $2
|
||||
"#,
|
||||
publish_namespace,
|
||||
publish_name,
|
||||
|
|
|
@ -1489,7 +1489,8 @@ pub async fn select_view_id_from_publish_name(
|
|||
SELECT view_id
|
||||
FROM af_published_collab
|
||||
WHERE workspace_id = $1
|
||||
AND publish_name = $2
|
||||
AND unpublished_at IS NULL
|
||||
AND publish_name = $2
|
||||
"#,
|
||||
workspace_uuid,
|
||||
publish_name
|
||||
|
|
|
@ -27,11 +27,11 @@ use uuid::Uuid;
|
|||
use database::{
|
||||
file::{s3_client_impl::AwsS3BucketClientImpl, BucketClient, ResponseBlob},
|
||||
publish::{
|
||||
delete_published_collabs, insert_or_replace_publish_collabs, select_publish_collab_meta,
|
||||
select_published_collab_blob, select_published_collab_info,
|
||||
select_published_collab_workspace_view_id, select_published_data_for_view_id,
|
||||
select_published_metadata_for_view_id, select_user_is_collab_publisher_for_all_views,
|
||||
select_workspace_publish_namespace_exists, update_non_orginal_workspace_publish_namespace,
|
||||
insert_or_replace_publish_collabs, select_publish_collab_meta, select_published_collab_blob,
|
||||
select_published_collab_info, select_published_collab_workspace_view_id,
|
||||
select_published_data_for_view_id, select_published_metadata_for_view_id,
|
||||
select_user_is_collab_publisher_for_all_views, select_workspace_publish_namespace_exists,
|
||||
set_published_collabs_as_unpublished, update_non_orginal_workspace_publish_namespace,
|
||||
},
|
||||
workspace::select_user_is_workspace_owner,
|
||||
};
|
||||
|
@ -408,7 +408,7 @@ impl PublishedCollabStore for PublishedCollabPostgresStore {
|
|||
user_uuid: &Uuid,
|
||||
) -> Result<(), AppError> {
|
||||
check_workspace_owner_or_publisher(&self.pg_pool, user_uuid, workspace_id, view_ids).await?;
|
||||
delete_published_collabs(&self.pg_pool, workspace_id, view_ids).await?;
|
||||
set_published_collabs_as_unpublished(&self.pg_pool, workspace_id, view_ids).await?;
|
||||
Ok(())
|
||||
}
|
||||
|
||||
|
@ -598,7 +598,7 @@ impl PublishedCollabStore for PublishedCollabS3StoreWithPostgresFallback {
|
|||
.map(|view_id| get_collab_s3_key(workspace_id, view_id))
|
||||
.collect::<Vec<String>>();
|
||||
self.bucket_client.delete_blobs(object_keys).await?;
|
||||
delete_published_collabs(&self.pg_pool, workspace_id, view_ids).await?;
|
||||
set_published_collabs_as_unpublished(&self.pg_pool, workspace_id, view_ids).await?;
|
||||
Ok(())
|
||||
}
|
||||
|
||||
|
|
|
@ -423,16 +423,14 @@ async fn test_publish_doc() {
|
|||
let err = guest_client
|
||||
.get_published_collab::<MyCustomMetadata>(&my_namespace, publish_name_1)
|
||||
.await
|
||||
.err()
|
||||
.unwrap();
|
||||
.unwrap_err();
|
||||
assert_eq!(err.code, ErrorCode::RecordNotFound, "{:?}", err);
|
||||
|
||||
let guest_client = localhost_client();
|
||||
let err = guest_client
|
||||
.get_published_collab_blob(&my_namespace, publish_name_1)
|
||||
.await
|
||||
.err()
|
||||
.unwrap();
|
||||
.unwrap_err();
|
||||
assert_eq!(err.code, ErrorCode::RecordNotFound, "{:?}", err);
|
||||
|
||||
// default publish view should not be accessible
|
||||
|
|
Loading…
Add table
Reference in a new issue