Enables filtering of recording API responses (start, get, list, stop)
using both the `fields` query parameter and the `X-Fields` header.
The feature allows clients to request only specific fields in the
response, improving performance and reducing payload size.
When both are provided, values are merged (union of unique fields).
- Added support for `fields` and `extraFields` parameters in `deleteMeetRoom` and `bulkDeleteMeetRooms` methods to allow clients to specify which fields to include in the response.
- Updated the `RoomService` to handle field filtering logic when deleting rooms, ensuring only requested fields are returned in the response.
- Enhanced integration tests to verify that the API correctly filters responses based on `fields` and `extraFields` query parameters and headers during room deletion operations.
- Created new test cases to validate the behavior when some rooms fail to delete due to active meetings, ensuring the response includes the correct fields.
- Refactored existing tests to accommodate the new field filtering functionality and ensure comprehensive coverage.
Updates the room API to use `extraFields` instead of `expand` for including additional data in responses.
This change improves clarity and consistency in the API design.
It also simplifies the filtering logic by explicitly differentiating between
base fields (controlled by `fields`) and extra fields (controlled by `extraFields`).
The changes include:
- Renaming the query parameter and header
- Updating the validation schemas
- Adjusting the filtering logic in the controller and service layers
- Updating the frontend components and services
Organizes feature flags into sub-interfaces for media, UI, permissions, and appearance, enhancing code readability and maintainability.
This change improves the structure of the `RoomFeatures` interface by grouping related flags, making it easier to manage and understand the different categories of features within the application.
When deployed under a base path (e.g. /meet), the Stoplight "Try It"
requests were hitting /api/v1 instead of /meet/api/v1. This applies
the base path to the embedded OpenAPI spec's servers array at serve time,
following the same pattern used for the frontend index.html.
Also renames html-injection.utils to html-dynamic-base-path.utils and
updates function names for better wording.