| 130 | } |
| 131 | |
| 132 | static async listAddressBooks( |
| 133 | userId: string, |
| 134 | ): Promise<AddressBook[]> { |
| 135 | const client = await getClient(userId); |
| 136 | |
| 137 | const davAddressBooks: DAVObject[] = await client.fetchAddressBooks(); |
| 138 | |
| 139 | const addressBooks: AddressBook[] = davAddressBooks.map((davAddressBook) => { |
| 140 | const uid = davAddressBook.url.split('/').filter(Boolean).pop()!; |
| 141 | |
| 142 | return { |
| 143 | ...davAddressBook, |
| 144 | uid, |
| 145 | }; |
| 146 | }); |
| 147 | |
| 148 | return addressBooks; |
| 149 | } |
| 150 | |
| 151 | static async createAddressBook( |
| 152 | userId: string, |