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