[ 
https://issues.apache.org/jira/browse/FINERACT-2632?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Krishna Mewara updated FINERACT-2632:
-------------------------------------
    Description: 
the Clients API Swagger spec in {{ClientsApiResourceSwagger.java}} is missing 
several fields that the server accepts and returns. This causes the generated 
Feign/Retrofit client models to lack these fields, forcing test code to fall 
back to raw JSON construction via RestAssured instead of using type-safe 
request objects.

Same class of issue fixed for Savings in FINERACT-2626.

*Missing fields*

{{PostClientsRequest}} 
 * {{submittedOnDate}} - the submission date used when creating a pending 
client ({{{}active=false{}}}). Currently tests must repurpose 
{{activationDate}} as a workaround.

{{PostClientsClientIdRequest}} 
 * {{withdrawalDate}} - required by the {{withdraw}} command
 * {{withdrawalReasonId}} - required by the {{withdraw}} command
 * {{reopenedDate}} - required by the {{undoRejection}} and {{undoWithdrawal}} 
commands

{{PutClientsClientIdRequest}}
 * {{firstname}} - the server accepts this field for client name updates
 * {{lastname}} - the server accepts this field for client name updates

*Reference: how the server actually handles these fields*

The legacy {{ClientHelper.java}} integration test helper already uses all of 
these fields via raw JSON ({{{}getWithdrawClientAsJSON{}}}, 
{{{}getUndoRejectClientAsJSON{}}}, etc.), and the static Retrofit-style methods 
on {{ClientHelper}} accept them as typed request parameters. The server-side 
command handlers ({{{}ClientsApiResource{}}}, 
{{{}ClientWritePlatformServiceJpaRepositoryImpl{}}}) process them correctly 
only the Swagger spec is incomplete.

  was:
the Clients API Swagger spec in {{ClientsApiResourceSwagger.java}} is missing 
several fields that the server accepts and returns. This causes the generated 
Feign/Retrofit client models to lack these fields, forcing test code to fall 
back to raw JSON construction via RestAssured instead of using type-safe 
request objects.

Same class of issue fixed for Savings in FINERACT-2626.

*Missing fields*

{{PostClientsRequest}} 
 * {{submittedOnDate}} - the submission date used when creating a pending 
client ({{{}active=false{}}}). Currently tests must repurpose 
{{activationDate}} as a workaround.

{{PostClientsClientIdRequest}} 
 * {{withdrawalDate}} - required by the {{withdraw}} command
 * {{withdrawalReasonId}} - required by the {{withdraw}} command
 * {{reopenedDate}} - required by the {{undoRejection}} and {{undoWithdrawal}} 
commands

{{PutClientsClientIdRequest}}
 * {{firstname}} - the server accepts this field for client name updates
 * {{lastname}} - the server accepts this field for client name updates

*Reference: how the server actually handles these fields*

The legacy {{ClientHelper.java}} integration test helper already uses all of 
these fields via raw JSON ({{{}getWithdrawClientAsJSON{}}}, 
{{{}getUndoRejectClientAsJSON{}}}, etc.), and the static Retrofit-style methods 
on {{ClientHelper}} (lines 155–182) accept them as typed request parameters. 
The server-side command handlers ({{{}ClientsApiResource{}}}, 
{{{}ClientWritePlatformServiceJpaRepositoryImpl{}}}) process them correctly 
only the Swagger spec is incomplete.


> Add missing fields to Clients Swagger spec for type-safe Feign client 
> generation
> --------------------------------------------------------------------------------
>
>                 Key: FINERACT-2632
>                 URL: https://issues.apache.org/jira/browse/FINERACT-2632
>             Project: Apache Fineract
>          Issue Type: Improvement
>            Reporter: Krishna Mewara
>            Priority: Minor
>              Labels: feign-migration, swagger
>
> the Clients API Swagger spec in {{ClientsApiResourceSwagger.java}} is missing 
> several fields that the server accepts and returns. This causes the generated 
> Feign/Retrofit client models to lack these fields, forcing test code to fall 
> back to raw JSON construction via RestAssured instead of using type-safe 
> request objects.
> Same class of issue fixed for Savings in FINERACT-2626.
> *Missing fields*
> {{PostClientsRequest}} 
>  * {{submittedOnDate}} - the submission date used when creating a pending 
> client ({{{}active=false{}}}). Currently tests must repurpose 
> {{activationDate}} as a workaround.
> {{PostClientsClientIdRequest}} 
>  * {{withdrawalDate}} - required by the {{withdraw}} command
>  * {{withdrawalReasonId}} - required by the {{withdraw}} command
>  * {{reopenedDate}} - required by the {{undoRejection}} and 
> {{undoWithdrawal}} commands
> {{PutClientsClientIdRequest}}
>  * {{firstname}} - the server accepts this field for client name updates
>  * {{lastname}} - the server accepts this field for client name updates
> *Reference: how the server actually handles these fields*
> The legacy {{ClientHelper.java}} integration test helper already uses all of 
> these fields via raw JSON ({{{}getWithdrawClientAsJSON{}}}, 
> {{{}getUndoRejectClientAsJSON{}}}, etc.), and the static Retrofit-style 
> methods on {{ClientHelper}} accept them as typed request parameters. The 
> server-side command handlers ({{{}ClientsApiResource{}}}, 
> {{{}ClientWritePlatformServiceJpaRepositoryImpl{}}}) process them correctly 
> only the Swagger spec is incomplete.



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

Reply via email to