|
4 | 4 | import io.edurt.datacap.common.response.CommonResponse; |
5 | 5 | import io.edurt.datacap.plugin.PluginManager; |
6 | 6 | import io.edurt.datacap.plugin.PluginMetadata; |
| 7 | +import io.edurt.datacap.plugin.PluginType; |
| 8 | +import io.edurt.datacap.service.common.PluginUtils; |
7 | 9 | import lombok.Data; |
| 10 | +import org.springframework.core.env.Environment; |
8 | 11 | import org.springframework.web.bind.annotation.DeleteMapping; |
9 | 12 | import org.springframework.web.bind.annotation.GetMapping; |
10 | 13 | import org.springframework.web.bind.annotation.PathVariable; |
11 | 14 | import org.springframework.web.bind.annotation.PostMapping; |
12 | 15 | import org.springframework.web.bind.annotation.RequestBody; |
13 | 16 | import org.springframework.web.bind.annotation.RequestMapping; |
| 17 | +import org.springframework.web.bind.annotation.RequestParam; |
14 | 18 | import org.springframework.web.bind.annotation.RestController; |
15 | 19 |
|
16 | 20 | import java.nio.file.Path; |
17 | 21 | import java.util.List; |
| 22 | +import java.util.stream.Collectors; |
18 | 23 |
|
19 | 24 | @RestController |
20 | 25 | @RequestMapping(value = "/api/v1/plugin") |
21 | 26 | @SuppressFBWarnings(value = {"EI_EXPOSE_REP2"}) |
22 | 27 | public class PluginController |
23 | 28 | { |
24 | 29 | private final PluginManager pluginManager; |
| 30 | + private final Environment environment; |
25 | 31 |
|
26 | | - public PluginController(PluginManager pluginManager) |
| 32 | + public PluginController(PluginManager pluginManager, Environment environment) |
27 | 33 | { |
28 | 34 | this.pluginManager = pluginManager; |
| 35 | + this.environment = environment; |
29 | 36 | } |
30 | 37 |
|
31 | 38 | @GetMapping |
32 | | - public CommonResponse<List<PluginMetadata>> getPlugins() |
| 39 | + public CommonResponse<List<PluginMetadata>> getPlugins(@RequestParam(value = "hasConfigure", required = false) boolean hasConfigure) |
33 | 40 | { |
| 41 | + List<PluginMetadata> plugins = pluginManager.getPluginInfos() |
| 42 | + .stream() |
| 43 | + .filter(v -> v.getType().equals(PluginType.CONNECTOR)) |
| 44 | + .collect(Collectors.toList()); |
| 45 | + |
| 46 | + if (hasConfigure) { |
| 47 | + plugins.forEach(plugin -> plugin.setConfigure(PluginUtils.loadYamlConfigure("JDBC", plugin.getName(), plugin.getName(), environment))); |
| 48 | + } |
| 49 | + |
34 | 50 | return CommonResponse.success(pluginManager.getPluginInfos()); |
35 | 51 | } |
36 | 52 |
|
|
0 commit comments