Make AddressObject object_id an extrinsic property

This commit is contained in:
Lennart K
2026-01-07 12:19:30 +01:00
parent a9f3833a32
commit 758793a11a
15 changed files with 98 additions and 94 deletions

View File

@@ -103,10 +103,10 @@ pub async fn put_object<AS: AddressbookStore>(
true
};
let object = AddressObject::from_vcf(object_id, body)?;
let object = AddressObject::from_vcf(body)?;
let etag = object.get_etag();
addr_store
.put_object(principal, addressbook_id, object, overwrite)
.put_object(&principal, &addressbook_id, &object_id, object, overwrite)
.await?;
let mut headers = HeaderMap::new();

View File

@@ -21,11 +21,12 @@ use rustical_store::auth::Principal;
pub struct AddressObjectResource {
pub object: AddressObject,
pub principal: String,
pub object_id: String,
}
impl ResourceName for AddressObjectResource {
fn get_name(&self) -> Cow<'_, str> {
Cow::from(format!("{}.vcf", self.object.get_id()))
Cow::from(format!("{}.vcf", self.object_id))
}
}

View File

@@ -57,6 +57,7 @@ impl<AS: AddressbookStore> ResourceService for AddressObjectResourceService<AS>
.await?;
Ok(AddressObjectResource {
object,
object_id: object_id.to_owned(),
principal: principal.to_owned(),
})
}