Skip to content

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

Merged
SbloodyS merged 1 commit intoapache:devfrom
ruanwenjun:chore/api-environment-service-typed-returns
May 9, 2026
Merged

[Improvement-18224][API] Migrate EnvironmentService Map<String,Object> returns to typed returns#18225
SbloodyS merged 1 commit intoapache:devfrom
ruanwenjun:chore/api-environment-service-typed-returns

Conversation

@ruanwenjun
Copy link
Copy Markdown
Member

Was this PR generated or assisted by AI?

YES, ops 4.7

Purpose of the pull request

related issue #18224

Brief change log

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

  • verifyEnvironment(String): void
  • queryEnvironmentByName(String): EnvironmentDto
  • queryEnvironmentByCode(Long): EnvironmentDto
  • queryAllEnvironmentList(User): List
  • deleteEnvironmentByCode(User, Long): void

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. EnvironmentControllerTest is unchanged on purpose.

Py4J boundary is preserved: PythonGateway.getEnvironmentInfo continues to throw IllegalArgumentException with the same message format on lookup failure, so Python SDK clients see no behavior change.

This is the first migration in the series tracked by #18224; the remaining services in dolphinscheduler-api will follow using the same template, after which BaseService.putMsg(Map) and BaseController.returnDataList(Map) can be removed.

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


Map<String, Object> result = environmentService.queryEnvironmentByCode(environmentCode);
return returnDataList(result);
public Result<EnvironmentDto> queryEnvironmentByCode(@Parameter(hidden = true) @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

ignore, will remove the loginUser at another PR, we should use ThreadLocal to hold this.

…> returns to typed returns

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

- verifyEnvironment(String): void
- queryEnvironmentByName(String): EnvironmentDto
- queryEnvironmentByCode(Long): EnvironmentDto
- queryAllEnvironmentList(User): List<EnvironmentDto>
- deleteEnvironmentByCode(User, Long): void

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. EnvironmentControllerTest is unchanged on purpose.

Py4J boundary is preserved: PythonGateway.getEnvironmentInfo continues to
throw IllegalArgumentException with the same message format on lookup
failure, so Python SDK clients see no behavior change.

This is the first migration in the series tracked by apache#18224; the remaining
services in dolphinscheduler-api will follow using the same template, after
which BaseService.putMsg(Map) and BaseController.returnDataList(Map) can
be removed.
@ruanwenjun ruanwenjun force-pushed the chore/api-environment-service-typed-returns branch from fd61a88 to f63d456 Compare May 8, 2026 03:27
@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

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

@SbloodyS SbloodyS merged commit 16044f7 into apache:dev May 9, 2026
121 of 124 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants