Skip to content

Commit 07da23f

Browse files
committed
Add fallback to npm repo config when anonymous user
1 parent 7a67082 commit 07da23f

File tree

1 file changed

+35
-17
lines changed

1 file changed

+35
-17
lines changed

server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/npm/PrivateNpmRegistryController.java

Lines changed: 35 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
import org.jetbrains.annotations.NotNull;
55
import org.lowcoder.api.home.SessionUserService;
66
import org.lowcoder.domain.application.service.ApplicationServiceImpl;
7+
import org.lowcoder.domain.organization.model.OrgMember;
8+
import org.lowcoder.domain.organization.model.Organization;
79
import org.lowcoder.domain.organization.service.OrgMemberServiceImpl;
810
import org.lowcoder.domain.organization.service.OrganizationService;
911
import org.lowcoder.infra.constant.NewUrl;
@@ -49,23 +51,39 @@ private Mono<ResponseEntity<Resource>> forwardToNodeService(String applicationId
4951

5052
String withoutLeadingSlash = path.startsWith("/") ? path.substring(1) : path;
5153
if(applicationId.equals("none")) {
52-
return sessionUserService.getVisitorOrgMemberCache().flatMap(orgMember -> organizationService.getOrgCommonSettings(orgMember.getOrgId()).flatMap(organizationCommonSettings -> {
53-
Map<String, Object> config = Map.of("npmRegistries", Objects.requireNonNullElse(organizationCommonSettings.get("npmRegistries"), new ArrayList<>(0)), "workspaceId", orgMember.getOrgId());
54-
return WebClientBuildHelper.builder()
55-
.systemProxy()
56-
.build()
57-
.post()
58-
.uri(nodeServerHelper.createUri(prefix + "/" + withoutLeadingSlash))
59-
.contentType(MediaType.APPLICATION_JSON)
60-
.body(BodyInserters.fromValue(config))
61-
.retrieve().toEntity(Resource.class)
62-
.map(response -> {
63-
return ResponseEntity
64-
.status(response.getStatusCode())
65-
.headers(response.getHeaders())
66-
.body(response.getBody());
67-
});
68-
}));
54+
return sessionUserService.getVisitorOrgMemberCache()
55+
.onErrorResume(e -> Mono.just(OrgMember.builder().orgId("default").build()))
56+
.flatMap(orgMember -> organizationService.getOrgCommonSettings(orgMember.getOrgId())
57+
.onErrorResume(e -> {
58+
// Handle errors fetching organization settings and provide defaults
59+
Organization.OrganizationCommonSettings defaultSettings = new Organization.OrganizationCommonSettings();
60+
defaultSettings.put("npmRegistries", new ArrayList<>(0));
61+
return Mono.just(defaultSettings);
62+
})
63+
.flatMap(organizationCommonSettings -> {
64+
Map<String, Object> config = Map.of(
65+
"npmRegistries", Objects.requireNonNullElse(
66+
organizationCommonSettings.get("npmRegistries"),
67+
new ArrayList<>(0)
68+
),
69+
"workspaceId", orgMember.getOrgId()
70+
);
71+
return WebClientBuildHelper.builder()
72+
.systemProxy()
73+
.build()
74+
.post()
75+
.uri(nodeServerHelper.createUri(prefix + "/" + withoutLeadingSlash))
76+
.contentType(MediaType.APPLICATION_JSON)
77+
.body(BodyInserters.fromValue(config))
78+
.retrieve()
79+
.toEntity(Resource.class)
80+
.map(response -> ResponseEntity
81+
.status(response.getStatusCode())
82+
.headers(response.getHeaders())
83+
.body(response.getBody())
84+
);
85+
}));
86+
6987
} else{
7088
return applicationServiceImpl.findById(applicationId).flatMap(application -> organizationService.getById(application.getOrganizationId())).flatMap(orgMember -> organizationService.getOrgCommonSettings(orgMember.getId()).flatMap(organizationCommonSettings -> {
7189
Map<String, Object> config = Map.of("npmRegistries", Objects.requireNonNullElse(organizationCommonSettings.get("npmRegistries"), new ArrayList<>(0)), "workspaceId", orgMember.getId());

0 commit comments

Comments
 (0)