Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release #8622

Merged
merged 18 commits into from
Dec 25, 2024
Merged

Release #8622

merged 18 commits into from
Dec 25, 2024

Conversation

evereq
Copy link
Member

@evereq evereq commented Dec 25, 2024

PR

Please note: we will close your PR without comment if you do not check the boxes above and provide ALL requested information.


GloireMutaliko21 and others added 18 commits December 25, 2024 07:59
* feat: adds video model and refactors imports

Introduces a new video model to support video functionalities.

This includes properties for video metadata, storage information, and relationships with other models like time slots and employees.  Additionally, several imports are reorganized for better code structure.

* feat: adds Video entity

This introduces the `Video` entity to store video-related information, including title, file path, recording date, duration, size, URL, storage provider, description, resolution, codec, frame rate, and uploader details.  It includes validation and relationships with `TimeSlot` and `Employee` entities.

* feat: introduces file storage path generation

This change introduces a new mechanism for generating file storage paths.  It uses a combination of date, tenant ID, and employee ID to create unique and organized storage locations.  A factory class simplifies the creation of storage engines with this path generation logic.

* feat(videos): adds DTOs for video management

Introduces Data Transfer Objects (DTOs) for creating, updating, and deleting videos.  Includes a FileDTO for handling video uploads and a BaseVideoDTO for common video properties.  These DTOs provide type safety and validation for video-related operations.

* feat: adds video repositories for MikroORM and TypeORM

Introduces `MikroOrmVideoRepository` and `TypeOrmVideoRepository` to support different ORM integrations.

* feat: adds video service

Introduces a new service to manage video entities. It utilizes both TypeORM and MikroORM repositories for data access.

* feat: add video entity and migration

This commit introduces the `Video` entity and its corresponding database migration.  The migration creates the `videos` table with fields for video metadata like title, file path, duration, size, storage provider, and relations to other entities such as tenant, organization, time slot, and uploading employee. It also includes indexes for efficient querying.

The migration handles different database types (PostgreSQL, SQLite, Better SQLite3, MySQL) and includes specific up and down migration logic for each.

* feat: adds commands and handlers for video management

This commit introduces new commands and handlers for managing videos:

- Creates `CreateVideoCommand` and `CreateVideoHandler` to add new videos.
- Implements `UpdateVideoCommand` and `UpdateVideoHandler` to modify existing videos.
- Adds `DeleteVideoCommand` and `DeleteVideoHandler` to remove videos.

This change enables basic CRUD operations for videos within the application.

* feat: adds queries and handlers for fetching videos

This introduces new queries and handlers for retrieving video data:

- `GetVideoQuery` and `GetVideoQueryHandler`: Fetch a single video by ID.
- `GetVideosQuery` and `GetVideosQueryHandler`: Fetch a list of videos with pagination support.

* feat: adds video subscriber for lifecycle management

Implements a TypeORM subscriber for the `Video` entity to manage file storage during entity lifecycle events.

- Sets the `fullUrl` property after loading a video entity by retrieving the URL from the configured storage provider.
- Deletes the associated video file from storage after a video entity is deleted.

This ensures consistent data and efficient storage management by automatically handling file operations related to videos.

* feat(videos): implements video controller

This commit introduces a new video controller feature, including:

- Creating new video records with associated metadata and file uploads.
- Retrieving video records by ID.
- Listing all video records with pagination support.
- Deleting video records.

The implementation uses CQRS and leverages a file storage service for managing video files.  It also includes validation and error handling for file uploads and data integrity.

* feat: Implements video plugin module

This commit introduces a new video plugin. It includes:

- A new module for videos with controllers, services, and repositories.
- Integration with TypeORM and MikroORM for database operations.
- CQRS implementation for handling commands and queries.
- Role-based permission management.
- Routing configuration for the plugin.

* feat: adds video entity and subscriber

Introduces the `Video` entity and its corresponding subscriber to the core module.  This lays the foundation for managing video data within the application.

* feat: adds PluginModule to AppModule

Registers the PluginModule in the application's root module to enable plugin functionality.

* fix: cspell spelling

* feat(plugin-video-capture): create library for video capture plugin

* refactor: plugin video capture module & entity

* fix(migration): video table for plugin video capture

* fix(videos): Implement query handlers for video CRUD operations

* fix(migration): refactor `video` [table] for MySQL

* refactor: suggestion by coderabbit AI

* fix(migration): refactor `video` [table] for DBs

* fix(subscriber):  video subscriber initialization and event handling

* fix(cspell): typo spelling :-)

---------

Co-authored-by: Rahul R. <rahulrathore576@gmail.com>
* fix(plugin-videos): video upload and manage videos plugin

* fix(plugin-videos): updated README.md for videos plugin

* fix(migration): update video table schema for PostgreSQL and SQLite
* feat: create dashboard widget model

* feat: dashboard widget entity and migration

* fix: widget size type

---------

Co-authored-by: Rahul R. <rahulrathore576@gmail.com>
Copy link
Contributor

coderabbitai bot commented Dec 25, 2024

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.


Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR. (Beta)
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@evereq evereq merged commit 86afc79 into stage Dec 25, 2024
18 of 20 checks passed
Copy link

nx-cloud bot commented Dec 25, 2024

View your CI Pipeline Execution ↗ for commit 24d3b81.

Command Status Duration Result
nx build desktop --base-href ./ ✅ Succeeded 1m 45s View ↗
nx build desktop-api --output-path=dist/apps/de... ✅ Succeeded 26s View ↗
nx run api:desktop-api ✅ Succeeded 1m 17s View ↗
nx run gauzy:desktop-ui --base-href ./ ✅ Succeeded 3m 58s View ↗
nx build gauzy -c=production --prod --verbose ✅ Succeeded 3m 51s View ↗
nx build api -c=production --prod ✅ Succeeded 1m 8s View ↗
nx build desktop-ui-lib --configuration=develop... ✅ Succeeded 30s View ↗
nx build plugin-integration-wakatime ✅ Succeeded 4s View ↗
Additional runs (35) ✅ Succeeded ... View ↗

☁️ Nx Cloud last updated this comment at 2024-12-25 19:42:15 UTC

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants