From 5c37d58f2a3f423d8e448ef528aeddedeb71a606 Mon Sep 17 00:00:00 2001 From: Thomasr Date: Tue, 8 Oct 2024 11:19:25 -0400 Subject: [PATCH] add applicationid param to private npm repository endpoint --- .../api/npm/PrivateNpmRegistryController.java | 18 +++++++++++------- .../api/npm/PrivateNpmRegistryEndpoint.java | 8 ++++---- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/npm/PrivateNpmRegistryController.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/npm/PrivateNpmRegistryController.java index 115cde35c..70ff12e07 100644 --- a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/npm/PrivateNpmRegistryController.java +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/npm/PrivateNpmRegistryController.java @@ -3,6 +3,8 @@ import lombok.RequiredArgsConstructor; import org.jetbrains.annotations.NotNull; import org.lowcoder.api.home.SessionUserService; +import org.lowcoder.domain.application.service.ApplicationServiceImpl; +import org.lowcoder.domain.organization.service.OrgMemberServiceImpl; import org.lowcoder.domain.organization.service.OrganizationService; import org.lowcoder.infra.constant.NewUrl; import org.lowcoder.infra.js.NodeServerHelper; @@ -27,22 +29,24 @@ public class PrivateNpmRegistryController implements PrivateNpmRegistryEndpoint{ private static final String NPM_REGISTRY_METADATA = "npm/registry"; private static final String NPM_REGISTRY_ASSET = "npm/package"; + private final OrgMemberServiceImpl orgMemberServiceImpl; + private final ApplicationServiceImpl applicationServiceImpl; @Override - public Mono> getNpmPackageMeta(String name) { - return forwardToNodeService(name, NPM_REGISTRY_METADATA); + public Mono> getNpmPackageMeta(String applicationId, String name) { + return forwardToNodeService(applicationId, name, NPM_REGISTRY_METADATA); } @Override - public Mono> getNpmPackageAsset(String path) { - return forwardToNodeService(path, NPM_REGISTRY_ASSET); + public Mono> getNpmPackageAsset(String applicationId, String path) { + return forwardToNodeService(applicationId, path, NPM_REGISTRY_ASSET); } @NotNull - private Mono> forwardToNodeService(String path, String prefix) { + private Mono> forwardToNodeService(String applicationId, String path, String prefix) { String withoutLeadingSlash = path.startsWith("/") ? path.substring(1) : path; - return sessionUserService.getVisitorOrgMemberCache().flatMap(orgMember -> organizationService.getOrgCommonSettings(orgMember.getOrgId()).flatMap(organizationCommonSettings -> { - Map config = Map.of("npmRegistries", organizationCommonSettings.get("npmRegistries"), "workspaceId", orgMember.getOrgId()); + return applicationServiceImpl.findById(applicationId).flatMap(application -> organizationService.getById(application.getOrganizationId())).flatMap(orgMember -> organizationService.getOrgCommonSettings(orgMember.getId()).flatMap(organizationCommonSettings -> { + Map config = Map.of("npmRegistries", organizationCommonSettings.get("npmRegistries"), "workspaceId", orgMember.getId()); return WebClientBuildHelper.builder() .systemProxy() .build() diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/npm/PrivateNpmRegistryEndpoint.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/npm/PrivateNpmRegistryEndpoint.java index 51dc79591..77a5982cd 100644 --- a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/npm/PrivateNpmRegistryEndpoint.java +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/npm/PrivateNpmRegistryEndpoint.java @@ -21,8 +21,8 @@ public interface PrivateNpmRegistryEndpoint { summary = "Get NPM registry Metadata", description = "Retrieve the metadata of private NPM registry package." ) - @GetMapping("/registry/{name}") - public Mono> getNpmPackageMeta(@PathVariable String name); + @GetMapping("/registry/{applicationId}/{name}") + public Mono> getNpmPackageMeta(@PathVariable String applicationId, @PathVariable String name); @Operation( tags = TAG_NPM_REGISTRY_MANAGEMENT, @@ -30,6 +30,6 @@ public interface PrivateNpmRegistryEndpoint { summary = "Get NPM registry asset", description = "Retrieve the asset of private NPM registry package." ) - @GetMapping("/package/{*path}") - public Mono> getNpmPackageAsset(@PathVariable String path); + @GetMapping("/package/{applicationId}/{*path}") + public Mono> getNpmPackageAsset(@PathVariable String applicationId, @PathVariable String path); }