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.
Introduces response options for room-related API calls, allowing clients to specify which fields to include and which properties to expand.
This change provides more control over the data returned by the API,
reducing payload size and improving performance.
It also fixes an issue where the frontend was not able to request only the fields needed for specific components.
Moves shared type definitions from backend models to the `typings` package.
This change centralizes type definitions, improving code maintainability
and consistency across the project. It removes duplicated type
definitions in backend and uses shared types from `typings` package
instead.
Implements permission-based filtering to restrict access to sensitive room information.
This ensures that only authorized users can view specific fields based on their assigned permissions.
Refactors repository methods to accept an array of fields
instead of a comma-separated string, optimizing data retrieval
and reducing unnecessary string manipulation. Also, modifies
services and validators to use array of fields instead of strings.
Adds functionality to control the room creation and retrieval responses
using the `X-Fields` and `X-Expand` headers.
- `X-Fields` allows clients to specify which fields to include in the
response, optimizing bandwidth usage.
- `X-Expand` allows clients to request the full data of expandable
properties, such as `config`, avoiding subsequent GET requests.
This change introduces new request validators, service methods, and
helper functions to handle the header logic and process the room objects accordingly.
Introduces filtering capabilities for room and recording list endpoints.
This allows users to query rooms and recordings based on various criteria such as name, status, and other relevant properties.
It also implements expansion support for room properties, enabling retrieval of full object details instead of stubs.
The changes include:
- Defines data models for room and recording filter requests.
- Updates Zod schemas for robust input validation.
- Implements logic for collapsing and expanding room properties, improving API response structure and efficiency.