Skip to content

[Improvement-18224][API] Migrate SchedulerService Map<String,Object> returns to typed returns#18226

Open
ruanwenjun wants to merge 1 commit intoapache:devfrom
ruanwenjun:chore/api-scheduler-service-typed-returns
Open

[Improvement-18224][API] Migrate SchedulerService Map<String,Object> returns to typed returns#18226
ruanwenjun wants to merge 1 commit intoapache:devfrom
ruanwenjun:chore/api-scheduler-service-typed-returns

Conversation

@ruanwenjun
Copy link
Copy Markdown
Member

Was this PR generated or assisted by AI?

Purpose of the pull request

Refactor 5 SchedulerService methods from Map<String, Object> to typed return + ServiceException, with cascading updates to the controller, controller test and PythonGateway:

  • insertSchedule(...): Schedule
  • updateSchedule(...): Schedule
  • queryScheduleList(User, long): List
  • previewSchedule(User, String): List
  • updateScheduleByWorkflowDefinitionCode(...): Schedule

HTTP wire format is preserved: ApiExceptionHandler converts ServiceException to the same Result(code, msg) shape that BaseController.returnDataList(map) produced; success paths use Result.success(data) matching the prior JSON body byte-for-byte. The private updateSchedule helper now throws on validation failure and returns the persisted Schedule on success, replacing the Map-mutation contract.

Py4J boundary is preserved: PythonGateway.createOrUpdateSchedule reads the new scheduleId via Schedule#getId() instead of result.get("scheduleId"), so Python SDK clients see no behavior change.

Part of the migration series tracked by #18224.

Brief change log

Verify this pull request

This pull request is code cleanup without any test coverage.

(or)

This pull request is already covered by existing tests, such as (please describe tests).

(or)

This change added tests and can be verified as follows:

(or)

Pull Request Notice

Pull Request Notice

If your pull request contains incompatible change, you should also add it to docs/docs/en/guide/upgrade/incompatible.md

…returns to typed returns

Refactor 5 SchedulerService methods from Map<String, Object> to typed
return + ServiceException, with cascading updates to the controller,
controller test and PythonGateway:

- insertSchedule(...): Schedule
- updateSchedule(...): Schedule
- queryScheduleList(User, long): List<ScheduleVO>
- previewSchedule(User, String): List<String>
- updateScheduleByWorkflowDefinitionCode(...): Schedule

HTTP wire format is preserved: ApiExceptionHandler converts ServiceException
to the same Result(code, msg) shape that BaseController.returnDataList(map)
produced; success paths use Result.success(data) matching the prior JSON
body byte-for-byte. The private updateSchedule helper now throws on
validation failure and returns the persisted Schedule on success, replacing
the Map-mutation contract.

Py4J boundary is preserved: PythonGateway.createOrUpdateSchedule reads the
new scheduleId via Schedule#getId() instead of result.get("scheduleId"),
so Python SDK clients see no behavior change.

Part of the migration series tracked by apache#18224.
* @return the next five fire time
*/
Map<String, Object> previewSchedule(User loginUser, String schedule);
List<String> previewSchedule(User loginUser, String schedule);
@sonarqubecloud
Copy link
Copy Markdown

sonarqubecloud Bot commented May 8, 2026

Quality Gate Failed Quality Gate failed

Failed conditions
0.0% Coverage on New Code (required ≥ 60%)

See analysis details on SonarQube Cloud

@ruanwenjun ruanwenjun added this to the 3.4.2 milestone May 8, 2026
@ruanwenjun ruanwenjun added refactor improvement make more easy to user or prompt friendly labels May 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backend improvement make more easy to user or prompt friendly refactor test

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants