Skip to content

Commit 6fe0d70

Browse files
authored
FV-111 Sprint-ls3 nach sprint
FV-111 Sprint-ls3 nach sprint
2 parents d695cbc + 53ce1bf commit 6fe0d70

24 files changed

+233
-88
lines changed

pom.xml

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
<org.projectlombok.mapstructbinding.version>0.2.0</org.projectlombok.mapstructbinding.version>
4141
<shedlock.version>6.8.0</shedlock.version>
4242
<openapi-generator-version>7.13.0</openapi-generator-version>
43+
<openapi-ui.version>2.8.13</openapi-ui.version>
4344
<openapi.jackson-databind-nullable>0.2.6</openapi.jackson-databind-nullable>
4445
<ai.onnxruntime>1.22.0</ai.onnxruntime>
4546

@@ -151,6 +152,13 @@
151152
<version>${ai.onnxruntime}</version>
152153
</dependency>
153154

155+
<!-- OpenAPI / Swagger -->
156+
<dependency>
157+
<groupId>org.springdoc</groupId>
158+
<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
159+
<version>${openapi-ui.version}</version>
160+
</dependency>
161+
154162
<!-- ElasticSearch -->
155163
<dependency>
156164
<groupId>org.springframework.boot</groupId>
@@ -338,10 +346,6 @@
338346
</dependency>
339347

340348
<!-- Spring developer tools -->
341-
<dependency>
342-
<groupId>org.springframework.data</groupId>
343-
<artifactId>spring-data-rest-hal-explorer</artifactId>
344-
</dependency>
345349
<dependency>
346350
<groupId>org.projectlombok</groupId>
347351
<artifactId>lombok</artifactId>

src/main/java/de/muenchen/dave/controller/MapConfigController.java renamed to src/main/java/de/muenchen/dave/controller/ConfigurationController.java

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package de.muenchen.dave.controller;
22

3-
import de.muenchen.dave.domain.dtos.init.MapConfigDTO;
4-
import de.muenchen.dave.services.MapConfigService;
3+
import de.muenchen.dave.domain.dtos.init.ConfigurationDTO;
4+
import de.muenchen.dave.services.ConfigurationService;
55
import lombok.RequiredArgsConstructor;
66
import lombok.extern.slf4j.Slf4j;
77
import org.springframework.http.HttpStatus;
@@ -15,26 +15,26 @@
1515

1616
@Slf4j
1717
@RestController
18-
@RequestMapping("/mapconfig")
18+
@RequestMapping("/configuration")
1919
@RequiredArgsConstructor
20-
public class MapConfigController {
20+
public class ConfigurationController {
2121

22-
private final MapConfigService mapConfigService;
22+
private final ConfigurationService configurationService;
2323

2424
/**
2525
* Rest-Endpunkt für das Laden der MapConfig.
2626
*
27-
* @return Das MapConfigDTO
27+
* @return Das MapConfigurationDTO
2828
*/
2929
@GetMapping(produces = MediaType.APPLICATION_JSON_VALUE)
3030
@Transactional(readOnly = true)
31-
public ResponseEntity<MapConfigDTO> getMapConfig() {
31+
public ResponseEntity<ConfigurationDTO> getConfiguration() {
3232
log.debug("#getMapConfig");
3333
try {
34-
return ResponseEntity.ok(mapConfigService.getMapConfig());
34+
return ResponseEntity.ok(configurationService.getConfiguration());
3535
} catch (Exception ex) {
36-
log.error("Unerwarteter Fehler im MapConfigController beim Laden der MapConfig.", ex);
37-
throw new ResponseStatusException(HttpStatus.INTERNAL_SERVER_ERROR, "Es ist ein unerwarteter Fehler beim Laden der MapConfig aufgetreten.");
36+
log.error("Unerwarteter Fehler im ConfigurationController beim Laden der Configuration.", ex);
37+
throw new ResponseStatusException(HttpStatus.INTERNAL_SERVER_ERROR, "Es ist ein unerwarteter Fehler beim Laden der Configuration aufgetreten.");
3838
}
3939
}
4040

src/main/java/de/muenchen/dave/controller/ZaehlstelleController.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import de.muenchen.dave.domain.dtos.laden.LadeZaehlstelleWithUnreadMessageDTO;
88
import de.muenchen.dave.exceptions.BrokenInfrastructureException;
99
import de.muenchen.dave.exceptions.DataNotFoundException;
10+
import de.muenchen.dave.exceptions.PlausibilityException;
1011
import de.muenchen.dave.exceptions.ResourceNotFoundException;
1112
import de.muenchen.dave.security.SecurityContextInformationExtractor;
1213
import de.muenchen.dave.services.ZaehlstelleIndexService;
@@ -91,6 +92,8 @@ public ResponseEntity<BackendIdDTO> saveZaehlstelle(@RequestBody @NotNull final
9192
return ResponseEntity.ok(backendIdDTO);
9293
} catch (final BrokenInfrastructureException bie) {
9394
throw new ResponseStatusException(HttpStatus.INTERNAL_SERVER_ERROR);
95+
} catch (final PlausibilityException plausibilityException) {
96+
throw new ResponseStatusException(HttpStatus.BAD_REQUEST, plausibilityException.getMessage());
9497
} catch (final DataNotFoundException dataNotFoundException) {
9598
throw new ResponseStatusException(HttpStatus.NOT_FOUND);
9699
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package de.muenchen.dave.domain.dtos.init;
2+
3+
import lombok.AllArgsConstructor;
4+
import lombok.Data;
5+
6+
@Data
7+
@AllArgsConstructor
8+
public class ConfigurationDTO {
9+
10+
private MapConfigurationDTO map;
11+
12+
private ZaehlstelleConfigurationDTO zaehlstelle;
13+
14+
}

src/main/java/de/muenchen/dave/domain/dtos/init/MapConfigDTO.java renamed to src/main/java/de/muenchen/dave/domain/dtos/init/MapConfigurationDTO.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
@Data
77
@AllArgsConstructor
8-
public class MapConfigDTO {
8+
public class MapConfigurationDTO {
99

1010
private String lat;
1111
private String lng;
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package de.muenchen.dave.domain.dtos.init;
2+
3+
import lombok.AllArgsConstructor;
4+
import lombok.Data;
5+
6+
@Data
7+
@AllArgsConstructor
8+
public class ZaehlstelleConfigurationDTO {
9+
10+
private boolean automaticNumberAssignment;
11+
12+
private String linkDocumentationCsvFileForUploadZaehlung;
13+
}

src/main/java/de/muenchen/dave/domain/enums/Zaehlart.java

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,11 @@
33
import java.util.Arrays;
44
import java.util.List;
55
import java.util.Map;
6+
import java.util.Objects;
67
import java.util.stream.Collectors;
78
import lombok.AllArgsConstructor;
89
import lombok.Getter;
10+
import org.apache.commons.lang3.EnumUtils;
911

1012
@AllArgsConstructor
1113
@Getter
@@ -33,6 +35,12 @@ public enum Zaehlart {
3335
QR(Arrays.asList("QR", "Querschnitt", "Radverkehr")),
3436
// Radverkehrszählung
3537
R(Arrays.asList("R", "Rad", "Fahrrad", "Radverkehr", "Radverkehrszählung")),
38+
// Querschnitt je Straßenseite
39+
QJS(Arrays.asList("QjS", "Querschnitt", "Straßenseite")),
40+
// Fuß & Rad je Straßenseite
41+
FJS(Arrays.asList("FjS", "Fußverkehr", "Radverkehr", "Straßenseite")),
42+
// Querung
43+
QU(Arrays.asList("Qu", "Querung")),
3644
// Tunnel / Unterführung / Tief
3745
T(Arrays.asList("T", "Tunnel", "Unterführung", "Tief")),
3846
// Teilknoten
@@ -51,18 +59,27 @@ public static List<String> getBedeutungForZaehlart(final String zaehlart) {
5159
return getEnumattributeAsMap().get(zaehlart);
5260
}
5361

62+
/**
63+
* @param zaehlart für welche das Kürzel zurückgegeben werden soll.
64+
* @return das Kürzel der Zählart oder null falls die Zählart nicht existiert.
65+
*/
66+
public static String getKuerzelForZaehlartOrNullIfZaehlartNotExisting(final String zaehlart) {
67+
final var zaehlartAsEnum = EnumUtils.getEnum(Zaehlart.class, zaehlart);
68+
return Objects.isNull(zaehlartAsEnum) ? null : getZaehlartKuerzel(zaehlartAsEnum);
69+
}
70+
5471
/**
5572
* @return Eine {@link Map} mit dem Zaehlartkürzel als Key und der Liste an Bedeutungen als Value.
5673
*/
5774
public static Map<String, List<String>> getEnumattributeAsMap() {
5875
return Arrays.stream(Zaehlart.values())
5976
.collect(Collectors.toMap(
60-
Zaehlart::getZaehlartkürzel,
77+
Zaehlart::getZaehlartKuerzel,
6178
Zaehlart::getBedeutung));
6279
}
6380

64-
public static String getZaehlartkürzel(final Zaehlart zaehlart) {
65-
return zaehlart.getBedeutung().get(0);
81+
public static String getZaehlartKuerzel(final Zaehlart zaehlart) {
82+
return zaehlart.getBedeutung().getFirst();
6683
}
6784

6885
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,13 @@
11
package de.muenchen.dave.domain.pdf.assets;
22

3+
import lombok.Data;
4+
import lombok.EqualsAndHashCode;
5+
6+
@EqualsAndHashCode(callSuper = true)
7+
@Data
38
public class LogoAsset extends BaseAsset {
9+
private String logoIcon;
10+
11+
private String logoSubtitle;
12+
413
}

src/main/java/de/muenchen/dave/domain/pdf/templates/PdfBean.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,10 @@ public class PdfBean implements MustacheBean {
88

99
private String logoMustachePart;
1010

11+
private String logoIcon;
12+
13+
private String logoSubtitle;
14+
1115
private String globalCssMustachePart;
1216

1317
private String footerMustachePart;
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package de.muenchen.dave.services;
2+
3+
import de.muenchen.dave.domain.dtos.init.ConfigurationDTO;
4+
import de.muenchen.dave.domain.dtos.init.MapConfigurationDTO;
5+
import de.muenchen.dave.domain.dtos.init.ZaehlstelleConfigurationDTO;
6+
import lombok.Getter;
7+
import lombok.extern.slf4j.Slf4j;
8+
import org.springframework.beans.factory.annotation.Value;
9+
import org.springframework.stereotype.Service;
10+
11+
@Service
12+
@Slf4j
13+
@Getter
14+
public class ConfigurationService {
15+
16+
private final ConfigurationDTO configuration;
17+
18+
public ConfigurationService(
19+
@Value("${dave.map.center.lat:48.137227}") final String lat,
20+
@Value("${dave.map.center.lng:11.575517}") final String lng,
21+
@Value("${dave.map.center.zoom:12}") final Integer zoom,
22+
@Value("${dave.zaehlstelle.automatic-number-assignment:true}") final boolean zaehlstelleAutomaticNumberAssignment,
23+
@Value("${dave.zaehlstelle.link-documentation-csv-file-for-upload-zaehlung}") final String linkDocumentationCsvFileForUploadZaehlung) {
24+
final var zaehlstelleConfig = new ZaehlstelleConfigurationDTO(
25+
zaehlstelleAutomaticNumberAssignment,
26+
linkDocumentationCsvFileForUploadZaehlung);
27+
final var mapConfiguration = new MapConfigurationDTO(lat, lng, zoom);
28+
this.configuration = new ConfigurationDTO(mapConfiguration, zaehlstelleConfig);
29+
}
30+
31+
}

0 commit comments

Comments
 (0)