[ 
https://issues.apache.org/jira/browse/FINERACT-2253?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18069353#comment-18069353
 ] 

lukman edited comment on FINERACT-2253 at 3/29/26 9:59 AM:
-----------------------------------------------------------

Hi [~aleks] 

Following our discussion on FINERACT-2169 to find something smaller in scope, I 
mapped out all sub-tasks under the org.apache.fineract.portfolio.account module 
and found that FINERACT-2253 is the right fit for my GSoC project.

Here's what I found:
 - FINERACT-2299 (Standing instructions history) is already merged via PR #4533 
 - FINERACT-2298 (Standing instructions CRUD) merged PR #4537
 - FINERACT-2253 (Account transfers) is still open — only 2 handlers: 
CreateAccountTransferCommandHandler and RefundByTransferCommandHandler

I've also reviewed the prototype PR #5126 and the feedback left there, so I 
have a clear understanding of what a proper implementation needs to cover: 
separate API and service layer DTOs, auditing, retry logic, and idempotency 
handling amongs other this that description above listed.

I'd love to hear your thoughts on this before I move forward. Does this align 
with what you had in mind?

Thank you!


was (Author: JIRAUSER312863):
Hi [~aleks] 

Following your discussion on FINERACT-2169 to find something smaller in scope, 
I mapped out all sub-tasks under the org.apache.fineract.portfolio.account 
module and found that FINERACT-2253 is the right fit for my GSoC project.

Here's what I found:
- FINERACT-2299 (Standing instructions history) is already merged via PR #4533 
- FINERACT-2298 (Standing instructions CRUD) merged PR #4537
- FINERACT-2253 (Account transfers) is still open — only 2 handlers: 
CreateAccountTransferCommandHandler and RefundByTransferCommandHandler

I've also reviewed the prototype PR #5126 and the feedback left there, so I 
have a clear understanding of what a proper implementation needs to cover: 
separate API and service layer DTOs, auditing, retry logic, and idempotency 
handling amongs other this that description above listed.

I'd love to hear your thoughts on this before I move forward. Does this align 
with what you had in mind?

Thank you!

> New command processing - Account (org.apache.fineract.portfolio.account)
> ------------------------------------------------------------------------
>
>                 Key: FINERACT-2253
>                 URL: https://issues.apache.org/jira/browse/FINERACT-2253
>             Project: Apache Fineract
>          Issue Type: Sub-task
>            Reporter: Aleksandar Vidakovic
>            Priority: Major
>
> (i) Edit only in text mode!
> 1. General
> (!) Remove all obsolete Swagger annotations (aka "dummy" classes)
> (!) Refactor input and return types of business logic services if needed (no 
> more references to JSON in the business logic)
> (!) Existing integration tests need to work as is without any changes
> (!) Input types are named with suffix "Request" (e.g. 
> "org.apache.fineract.infrastructure.businessdate.data.BusinessDateRequest")
> (!) Return types are named with suffix "Response" (e.g. 
> "org.apache.fineract.infrastructure.businessdate.data.BusinessDateResponse")
> (!) If you need to transform POJO types then use MapStruct where ever possible
> (!) Respect standard package structure
> 2. Read Requests
> (!) All "@GET" annotated functions in all JAX-RS resource classes are 
> returning proper Java types (aka "POJOs")
> (!) Return types are defined in the module's/package's DTO package (e.g. 
> "org.apache.fineract.infrastructure.businessdate.data")
> 3. Write Requests
> (!) All "@PUT" and "@POST" annotated functions in all JAX-RS resource classes 
> are returning proper Java types (aka "POJOs")
> (!) Input types are defined in the module's/package's DTO package (e.g. 
> "org.apache.fineract.infrastructure.businessdate.data")
> (!) Inject new "org.apache.fineract.command.core.CommandPipeline" component 
> and refactor legacy command structures to new concept
> (!) Create command specific child implementation of 
> "org.apache.fineract.command.core.Command"
> (!) Use Jakarta Validation instead of proprietary validation service
> (!) Create message resource bundles for the validation error messages
> 4. List refactored JAX-RS resource classes (canonical names) below
> - TBD
> 5. Command Handlers
> (!) Refactor legacy command handlers to new concept
> 6. Run Integration Tests
> (!) All related integration tests pass



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to