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]
