Feature: Add Note to Budget Command#179
Open
EstherNyumu wants to merge 2 commits intoitalanta:mainfrom
Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
This PR implements adding a note to a budget feature.
The Handler Class, AddNoteToBudgetHandler extends FunctionHandler<AddNoteToBudgetCommand, AddNoteToBudgetResult>. This ensures proper alignment with the repo’s serverless function pattern.
The Command Class, AddNoteToBudgetCommand carries the required data (budgetId, content, createdBy) to execute the operation.
The Result Class, AddNoteToBudgetResult returns a success flag which can be used to say to determine if the note has been added successfully, and the noteId of the newly created note.
The handler performs basic validation where the budgetId must be present, and the content for the content cannot be empty.
The getRepository method from tools is used to call addNote. This ensures decoupling from the actual database implementation and aligns with dependency injection practices.
The handler can be deployed as a serverless function in Google Cloud Functions via the existing monorepo tooling (@ngfi/functions).
Each execution of AddNoteToBudgetHandler is stateless, allowing horizontal scaling automatically in a serverless environment. The use of getRepository abstracts data access, so the handler remains lightweight and can scale without database connection bottlenecks. The validation ensures that invalid commands are rejected early, reducing unnecessary load on the backend.
This PR adds the command, result, and handler for Add Note to Budget it implements validation and repository integration, it fully adheres to the CQRS pattern and FunctionHandler architecture, it supports serverless deployment and scalable execution.