feat(sharing): let share recipients recolour a shared calendar
The colour dot for a shared (non-owned) local calendar was disabled and the
colour write hit the owner-only PUT /calendars/{id} (404 for recipients). The
dot is now always editable and colour changes go through the dedicated
PUT /calendars/{id}/color endpoint, storing a recipient's own per-user colour
server-side (synced across devices) without granting write or rename. Renaming
stays owner-only. Parity with Android + server.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -426,8 +426,11 @@ class CalendarrAPI {
|
||||
|
||||
// MARK: – Calendar colour
|
||||
|
||||
/// Colour-only update: works for owners AND share recipients (recipients get
|
||||
/// their own per-user colour; owners change the calendar's colour) — unlike
|
||||
/// the owner-only PUT /calendars/{id}, and never touches the name.
|
||||
func updateLocalCalendarColor(id: Int, color: String) async throws {
|
||||
_ = try await request("/api/local/calendars/\(id)", method: "PUT", body: ["color": color])
|
||||
_ = try await request("/api/local/calendars/\(id)/color", method: "PUT", body: ["color": color])
|
||||
}
|
||||
|
||||
func updateICalColor(id: Int, color: String) async throws {
|
||||
|
||||
Reference in New Issue
Block a user