calsub: Add JSON as a supported format for calendar subscriptions #4196
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description:
Adding support for
Accept: application/json
on calendar subscription requests.This pull request introduces several changes to the
calsub/http.go
file, primarily enhancing the functionality to support JSON responses and refactoring existing code to improve maintainability.PayloadType
and typesJSONResponseV1
andJSONShiftV1
to structure JSON responses for calendar subscriptions.ServeICalData
function to handle requests withAccept: application/json
header, constructing and returning a JSON response with schedule and user shift details.userNameMap
function to encapsulate the logic for fetching and mapping user names from user IDs, replacing the inline code inServeICalData
.ServeICalData
to use the newuserNameMap
function, simplifying the logic for populating user names in the full schedule rendering.Describe any introduced API changes:
Calendar subscription requests including
Accept: application/json
will return JSON instead of ICAL data.