saidhanushae commented on issue #188:
URL: 
https://github.com/apache/fineract-consumer-facing/issues/188#issuecomment-6395026255

   Hi @Aman-Mittal  @edk12564 ,
   
   Since the discussion is leaning toward **Option 1** (keeping `AGENTS.md` and 
introducing a thin adapter + narrow interface so `FINERACT_GENERATED_API` stays 
contained), I'd love to help migrate these one feature at a time!
   
   I looked through `LayeringArchitectureTest` 
(`featuresDoNotCallFineractFeignClientsDirectly`) and 
`IdentityQueryServiceImpl`, which is the smallest slice to establish the 
pattern since it only makes a single call 
(`ClientIdentifierApi#retrieveAllClientIdentifiers(Long)`).
   
   Before I open the first PR for `identity`, could you confirm your preferred 
package placement and naming convention?
   1. **Adapter implementation:** Since 
`featuresDoNotCallFineractFeignClientsDirectly` forbids any class in 
`allFeatures()` from depending on `FINERACT_GENERATED_API`, the adapter 
wrapping `ClientIdentifierApi` would live under 
`org.apache.fineract.consumer.infrastructure.fineractclient` (e.g., 
`FineractClientIdentifierAdapter` / `ClientIdentifierGatewayImpl`).
   2. **Narrow interface & return type:** Should the narrow interface live 
alongside the adapter in `infrastructure.fineractclient` (or in the feature 
package), and should it return the generated `ClientIdentifierData` model or a 
narrow record/DTO so generated models don't leak into feature services either?
   
   Once confirmed, I can open a clean PR for `IdentityQueryServiceImpl` (plus 
updating `docs/consumer/architecture/modules.adoc` and shrinking the Arch Unit 
violation store) and follow up with the remaining services!


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to