Skip to content

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

Merged
ruanwenjun merged 1 commit into
apache:devfrom
ruanwenjun:chore/api-scheduler-service-typed-returns
May 10, 2026
Merged

[Improvement-18224][API] Migrate SchedulerService Map<String,Object> returns to typed returns#18226
ruanwenjun merged 1 commit into
apache: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

* @return the next five fire time
*/
Map<String, Object> previewSchedule(User loginUser, String schedule);
List<String> previewSchedule(User loginUser, String schedule);
@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
Copy link
Copy Markdown
Member

@SbloodyS SbloodyS left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@ruanwenjun ruanwenjun force-pushed the chore/api-scheduler-service-typed-returns branch from 2df8d7b to 9081dee Compare May 10, 2026 00:22
@ruanwenjun ruanwenjun force-pushed the chore/api-scheduler-service-typed-returns branch from 9081dee to 27532b0 Compare May 10, 2026 04:38
…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.
@ruanwenjun ruanwenjun force-pushed the chore/api-scheduler-service-typed-returns branch from 27532b0 to 28c6046 Compare May 10, 2026 04:39
@sonarqubecloud
Copy link
Copy Markdown

Quality Gate Failed Quality Gate failed

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

See analysis details on SonarQube Cloud

@ruanwenjun ruanwenjun merged commit 7e51839 into apache:dev May 10, 2026
121 of 123 checks passed
@ruanwenjun ruanwenjun deleted the chore/api-scheduler-service-typed-returns branch May 10, 2026 05:30
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 ready-to-merge refactor test

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants