reduce to 1 object per asset
This commit is contained in:
@@ -7,8 +7,8 @@ use serde_json::{json, Value};
|
||||
use uuid::Uuid;
|
||||
|
||||
use papercrate::jobs::{mark_job_succeeded, JOB_PURGE_DOCUMENT};
|
||||
use papercrate::models::{Job, NewDocumentAsset, NewDocumentAssetObject};
|
||||
use papercrate::schema::{document_asset_objects, document_assets};
|
||||
use papercrate::models::{Job, NewDocumentAsset};
|
||||
use papercrate::schema::document_assets;
|
||||
use papercrate::workers::{purge::PurgeDocumentJob, JobExecution, JobHandler};
|
||||
use std::sync::Arc;
|
||||
#[derive(Deserialize)]
|
||||
@@ -66,12 +66,6 @@ struct DocumentAssetInfo {
|
||||
|
||||
#[derive(Deserialize)]
|
||||
struct AssetProxyDetail {
|
||||
id: Uuid,
|
||||
objects: Vec<AssetProxyObject>,
|
||||
}
|
||||
|
||||
#[derive(Deserialize)]
|
||||
struct AssetProxyObject {
|
||||
id: Uuid,
|
||||
url: Option<String>,
|
||||
expires_at: Option<i64>,
|
||||
@@ -326,7 +320,7 @@ async fn asset_detail_uses_proxy_urls_when_configured() -> Result<()> {
|
||||
.map_err(|err| anyhow!("tenant connection: {err:?}"))?;
|
||||
|
||||
let asset_id = Uuid::new_v4();
|
||||
let object_id = Uuid::new_v4();
|
||||
let s3_key = "objects/preview.png".to_string();
|
||||
|
||||
diesel::insert_into(document_assets::table)
|
||||
.values(&NewDocumentAsset {
|
||||
@@ -335,18 +329,7 @@ async fn asset_detail_uses_proxy_urls_when_configured() -> Result<()> {
|
||||
asset_type: "preview".to_string(),
|
||||
mime_type: "image/png".to_string(),
|
||||
metadata: json!({}),
|
||||
cardinality: Some(1),
|
||||
tenant_id,
|
||||
})
|
||||
.execute(&mut conn)?;
|
||||
|
||||
diesel::insert_into(document_asset_objects::table)
|
||||
.values(&NewDocumentAssetObject {
|
||||
id: object_id,
|
||||
asset_id,
|
||||
ordinal: 1,
|
||||
s3_key: "objects/preview.png".to_string(),
|
||||
metadata: json!({}),
|
||||
s3_key: s3_key.clone(),
|
||||
tenant_id,
|
||||
})
|
||||
.execute(&mut conn)?;
|
||||
@@ -360,15 +343,12 @@ async fn asset_detail_uses_proxy_urls_when_configured() -> Result<()> {
|
||||
let body = body_to_vec(response.into_body()).await?;
|
||||
let asset_detail: AssetProxyDetail = serde_json::from_slice(&body)?;
|
||||
assert_eq!(asset_detail.id, asset_id);
|
||||
assert_eq!(asset_detail.objects.len(), 1);
|
||||
let object = &asset_detail.objects[0];
|
||||
assert_eq!(object.id, object_id);
|
||||
let url = object
|
||||
let url = asset_detail
|
||||
.url
|
||||
.as_deref()
|
||||
.ok_or_else(|| anyhow!("missing url"))?;
|
||||
assert!(url.starts_with("/api/download/"));
|
||||
assert!(object.expires_at.is_none());
|
||||
assert!(asset_detail.expires_at.is_some());
|
||||
|
||||
app.cleanup().await?;
|
||||
Ok(())
|
||||
|
||||
Reference in New Issue
Block a user