Skip to content

Commit 14dff90

Browse files
authored
Additional Presets (#1538)
* Additional Presets # Conflicts: # base/src/main/java/io/quarkus/code/rest/CodeQuarkusResource.java * make custom presets optional; choose to use default presets or nor
1 parent 14b8057 commit 14dff90

File tree

3 files changed

+36
-1
lines changed

3 files changed

+36
-1
lines changed

base/src/main/java/io/quarkus/code/config/CodeQuarkusConfig.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
package io.quarkus.code.config;
22

3+
import java.util.List;
34
import java.util.Optional;
45

56
import io.smallrye.config.ConfigMapping;
7+
import io.smallrye.config.WithDefault;
68

79
@ConfigMapping(prefix = "io.quarkus.code")
810
public interface CodeQuarkusConfig {
@@ -20,4 +22,10 @@ public interface CodeQuarkusConfig {
2022
Optional<String> hostname();
2123

2224
UIConfig ui();
25+
26+
Optional<List<PresetConfig>> customPresets();
27+
28+
@WithDefault(value = "true")
29+
boolean useDefaultPresets();
30+
2331
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package io.quarkus.code.config;
2+
3+
import java.util.List;
4+
5+
public interface PresetConfig {
6+
7+
String key();
8+
9+
String title();
10+
11+
String icon();
12+
13+
List<String> extensions();
14+
}

base/src/main/java/io/quarkus/code/rest/CodeQuarkusResource.java

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
import java.nio.charset.StandardCharsets;
2929
import java.time.format.DateTimeFormatter;
3030
import java.util.ArrayList;
31+
import java.util.Collections;
3132
import java.util.List;
3233
import java.util.Map;
3334
import java.util.logging.Logger;
@@ -39,6 +40,7 @@
3940
import jakarta.ws.rs.core.MediaType;
4041
import jakarta.ws.rs.core.Response;
4142

43+
import static java.util.Collections.emptyList;
4244
import static java.util.function.Predicate.not;
4345

4446
@Path("/")
@@ -173,7 +175,7 @@ public Uni<Response> presetsForStream(
173175

174176
private Uni<Response> presets(Map<String, ExtensionRef> extensionsById) {
175177
String lastUpdated = platformService.cacheLastUpdated().format(FORMATTER);
176-
final List<Preset> presets = platformService.presets().stream()
178+
final List<Preset> presets = getAllPresets().stream()
177179
.filter(p -> p.extensions().stream().allMatch(extensionsById::containsKey))
178180
.toList();
179181
Response response = Response.ok(presets)
@@ -182,6 +184,17 @@ private Uni<Response> presets(Map<String, ExtensionRef> extensionsById) {
182184
return Uni.createFrom().item(response);
183185
}
184186

187+
List<Preset> getAllPresets() {
188+
189+
List<Preset> presets = new ArrayList<>(config.useDefaultPresets() ? platformService.presets() : emptyList());
190+
191+
config.customPresets().ifPresent(customConfigs -> customConfigs.stream()
192+
.map(pc -> new Preset(pc.key(), pc.title(), pc.icon(), pc.extensions()))
193+
.forEach(presets::add));
194+
195+
return presets;
196+
}
197+
185198
private Uni<Response> extensions(
186199
boolean platformOnly,
187200
List<CodeQuarkusExtension> extensions,

0 commit comments

Comments
 (0)