Properly fix initial contacts setup

Partially reverts 263cdf544a because it wasn't necessary.
This commit is contained in:
Bruno Bernardino
2025-08-27 16:44:01 +01:00
parent 263cdf544a
commit 02d1d3e6fa
5 changed files with 9 additions and 34 deletions

View File

@@ -135,32 +135,7 @@ export class ContactModel {
): Promise<AddressBook[]> {
const client = await getClient(userId);
let davAddressBooks: DAVObject[] = [];
try {
davAddressBooks = await client.fetchAddressBooks();
} catch (_error) {
// It's possible the user doesn't exist in Radicale yet, so try creating it by doing a simple PROPFIND request for the main addressbook's address (Radicale will automatically create the user)
const userUrl = `${contactsConfig.cardDavUrl}/${userId}/`;
const xmlBody = `<?xml version="1.0" encoding="utf-8"?>
<propfind xmlns="DAV:" xmlns:card="urn:ietf:params:xml:ns:carddav">
<prop>
<card:addressbook-home-set/>
</prop>
</propfind>`;
await fetch(userUrl, {
method: 'PROPFIND',
headers: {
'Content-Type': 'application/xml; charset=utf-8',
'X-Remote-User': userId,
},
body: xmlBody,
});
davAddressBooks = await client.fetchAddressBooks();
}
const davAddressBooks: DAVObject[] = await client.fetchAddressBooks();
const addressBooks: AddressBook[] = davAddressBooks.map((davAddressBook) => {
const uid = davAddressBook.url.split('/').filter(Boolean).pop()!;