Skip to content

Conversation

@fulleni
Copy link
Member

@fulleni fulleni commented Dec 5, 2025

Status

READY

Description

This pull request introduces crucial business logic to enforce that users can only create a single engagement per entity, preventing redundant reactions or comments. It also refines the existing daily reaction limit mechanism to be more precise, ensuring limits are applied only when a reaction is genuinely being submitted. These changes enhance data integrity and user experience by preventing spam or accidental duplicate actions, while also keeping the project's core dependencies up-to-date.

Type of Change

  • ✨ New feature (non-breaking change which adds functionality)
  • 🛠️ Bug fix (non-breaking change which fixes an issue)
  • ❌ Breaking change (fix or feature that would cause existing functionality to change)
  • 🧹 Code refactor
  • ✅ Build configuration change
  • 📝 Documentation
  • 🗑️ Chore

- Updated core package reference from 8bae6eb to e66e076 in pubspec.yaml
- Updated corresponding reference in pubspec.lock
- Add a business logic check to prevent multiple engagements by the same user for the same entity
- Query existing engagements for the authenticated user and the entity in question
- Throw a ConflictException if an existing engagement is found
- Log a warning message when attempting to create a duplicate engagement
- Add condition to check reaction limit only if a reaction is present
- Update database query to count only engagements with reactions
- Refactor code to make reaction limit check more precise and efficient
@gemini-code-assist
Copy link

Summary of Changes

Hello @fulleni, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request introduces crucial business logic to enforce that users can only create a single engagement per entity, preventing redundant reactions or comments. It also refines the existing daily reaction limit mechanism to be more precise, ensuring limits are applied only when a reaction is genuinely being submitted. These changes enhance data integrity and user experience by preventing spam or accidental duplicate actions, while also keeping the project's core dependencies up-to-date.

Highlights

  • Unique User Engagements: Implemented a new business logic check to prevent users from creating multiple engagements (reactions or comments) for the same entity, ensuring uniqueness and preventing duplicate submissions.
  • Refined Reaction Limit Checks: Modified the daily reaction limit service to only count and enforce limits when an actual reaction is being created, providing more accurate and targeted limit enforcement.
  • Core Dependency Update: Updated the core package dependency to a newer commit, incorporating the latest changes and features from the upstream repository.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces important business logic for user content. It correctly prevents users from creating multiple engagements on the same item, avoiding duplicate reactions or comments. Additionally, it refactors the daily limit checks for engagements, making them more accurate by separately considering reactions and comments, which fixes a potential bug where all engagements were counted towards the reaction limit. My review includes one suggestion to improve code maintainability by removing duplicated code for timestamp calculation in the limit checking logic.

@fulleni fulleni merged commit 5f16d60 into main Dec 5, 2025
1 check failed
@fulleni fulleni deleted the feat/enforce-user-content-business-logic branch December 5, 2025 03:45
@github-project-automation github-project-automation bot moved this from Backlog to Done in Flutter News App Project Dec 5, 2025
@fulleni fulleni added this to the Market Contender Edition milestone Dec 5, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants