Skip to content

Commit

Permalink
add applicationid param to private npm repository endpoint
Browse files Browse the repository at this point in the history
  • Loading branch information
dragonpoo committed Oct 8, 2024
1 parent a9f94b2 commit 5c37d58
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 11 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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<ResponseEntity<Resource>> getNpmPackageMeta(String name) {
return forwardToNodeService(name, NPM_REGISTRY_METADATA);
public Mono<ResponseEntity<Resource>> getNpmPackageMeta(String applicationId, String name) {
return forwardToNodeService(applicationId, name, NPM_REGISTRY_METADATA);
}

@Override
public Mono<ResponseEntity<Resource>> getNpmPackageAsset(String path) {
return forwardToNodeService(path, NPM_REGISTRY_ASSET);
public Mono<ResponseEntity<Resource>> getNpmPackageAsset(String applicationId, String path) {
return forwardToNodeService(applicationId, path, NPM_REGISTRY_ASSET);
}

@NotNull
private Mono<ResponseEntity<Resource>> forwardToNodeService(String path, String prefix) {
private Mono<ResponseEntity<Resource>> 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<String, Object> 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<String, Object> config = Map.of("npmRegistries", organizationCommonSettings.get("npmRegistries"), "workspaceId", orgMember.getId());
return WebClientBuildHelper.builder()
.systemProxy()
.build()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,15 +21,15 @@ public interface PrivateNpmRegistryEndpoint {
summary = "Get NPM registry Metadata",
description = "Retrieve the metadata of private NPM registry package."
)
@GetMapping("/registry/{name}")
public Mono<ResponseEntity<Resource>> getNpmPackageMeta(@PathVariable String name);
@GetMapping("/registry/{applicationId}/{name}")
public Mono<ResponseEntity<Resource>> getNpmPackageMeta(@PathVariable String applicationId, @PathVariable String name);

@Operation(
tags = TAG_NPM_REGISTRY_MANAGEMENT,
operationId = "getNpmPackageAsset",
summary = "Get NPM registry asset",
description = "Retrieve the asset of private NPM registry package."
)
@GetMapping("/package/{*path}")
public Mono<ResponseEntity<Resource>> getNpmPackageAsset(@PathVariable String path);
@GetMapping("/package/{applicationId}/{*path}")
public Mono<ResponseEntity<Resource>> getNpmPackageAsset(@PathVariable String applicationId, @PathVariable String path);
}

0 comments on commit 5c37d58

Please sign in to comment.