diff --git a/module-server/src/main/java/de/twomartens/wahlrecht/controller/v1/GreetingRestController.java b/module-server/src/main/java/de/twomartens/wahlrecht/controller/v1/GreetingRestController.java deleted file mode 100644 index 1509c39..0000000 --- a/module-server/src/main/java/de/twomartens/wahlrecht/controller/v1/GreetingRestController.java +++ /dev/null @@ -1,59 +0,0 @@ -package de.twomartens.wahlrecht.controller.v1; - -import de.twomartens.wahlrecht.mapper.v1.GreetingMapper; -import de.twomartens.wahlrecht.model.dto.v1.Greeting; -import de.twomartens.wahlrecht.service.GreetingService; -import io.swagger.v3.oas.annotations.Hidden; -import io.swagger.v3.oas.annotations.Operation; -import io.swagger.v3.oas.annotations.responses.ApiResponse; -import io.swagger.v3.oas.annotations.tags.Tag; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.mapstruct.factory.Mappers; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; - -@Slf4j -@RestController -@RequiredArgsConstructor -@RequestMapping(value = "/wahlrecht/v1") -@Tag(name = "Greeting Example", description = "all requests relating to greetings") -public class GreetingRestController { - - private final GreetingMapper mapper = Mappers.getMapper(GreetingMapper.class); - - private final GreetingService service; - - @Operation( - summary = "Returns a greeting message", - responses = {@ApiResponse( - responseCode = "200") - } - ) - @GetMapping("/greeting") - public Greeting greeting(@RequestParam(value = "name", defaultValue = "World") String name) { - return mapper.map(service.createGreeting(name)); - } - - @Operation( - summary = "Posts a greeting message to db", - responses = {@ApiResponse( - responseCode = "200") - } - ) - @PostMapping("/greeting") - public void postGreeting(@RequestBody Greeting greeting) { - service.postGreeting(mapper.map(greeting)); - } - - @Hidden - @GetMapping("/healthCheck") - public String checkHealth(@RequestParam(value = "message") String message) { - return message; - } - -} diff --git a/module-server/src/main/java/de/twomartens/wahlrecht/mapper/v1/GreetingMapper.java b/module-server/src/main/java/de/twomartens/wahlrecht/mapper/v1/GreetingMapper.java deleted file mode 100644 index 8322fe1..0000000 --- a/module-server/src/main/java/de/twomartens/wahlrecht/mapper/v1/GreetingMapper.java +++ /dev/null @@ -1,21 +0,0 @@ -package de.twomartens.wahlrecht.mapper.v1; - -import de.twomartens.wahlrecht.model.db.Greeting; -import org.mapstruct.CollectionMappingStrategy; -import org.mapstruct.Mapper; -import org.mapstruct.Mapping; -import org.mapstruct.NullValueCheckStrategy; -import org.mapstruct.ReportingPolicy; - -@Mapper(collectionMappingStrategy = CollectionMappingStrategy.ADDER_PREFERRED, - nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS, - unmappedTargetPolicy = ReportingPolicy.IGNORE) -public interface GreetingMapper { - - de.twomartens.wahlrecht.model.dto.v1.Greeting map(Greeting greeting); - - @Mapping(target = "id", ignore = true) - @Mapping(target = "created", ignore = true) - @Mapping(target = "lastModified", ignore = true) - Greeting map(de.twomartens.wahlrecht.model.dto.v1.Greeting greeting); -} diff --git a/module-server/src/main/java/de/twomartens/wahlrecht/model/db/Greeting.java b/module-server/src/main/java/de/twomartens/wahlrecht/model/db/Greeting.java deleted file mode 100644 index 1bf301b..0000000 --- a/module-server/src/main/java/de/twomartens/wahlrecht/model/db/Greeting.java +++ /dev/null @@ -1,41 +0,0 @@ -package de.twomartens.wahlrecht.model.db; - -import java.util.Date; -import lombok.AccessLevel; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.EqualsAndHashCode; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import lombok.ToString; -import lombok.experimental.FieldDefaults; -import org.bson.types.ObjectId; -import org.springframework.data.annotation.CreatedDate; -import org.springframework.data.annotation.Id; -import org.springframework.data.annotation.LastModifiedDate; -import org.springframework.data.mongodb.core.mapping.Document; - -@Document -@Getter -@Setter -@Builder -@EqualsAndHashCode -@ToString -@FieldDefaults(level = AccessLevel.PRIVATE) -@NoArgsConstructor(force = true, access = AccessLevel.PRIVATE) -@AllArgsConstructor(access = AccessLevel.PRIVATE) -public class Greeting { - - @Id - ObjectId id; - - @CreatedDate - Date created; - - @LastModifiedDate - Date lastModified; - - String message; - -} diff --git a/module-server/src/main/java/de/twomartens/wahlrecht/model/dto/v1/Greeting.java b/module-server/src/main/java/de/twomartens/wahlrecht/model/dto/v1/Greeting.java deleted file mode 100644 index eb98634..0000000 --- a/module-server/src/main/java/de/twomartens/wahlrecht/model/dto/v1/Greeting.java +++ /dev/null @@ -1,31 +0,0 @@ -package de.twomartens.wahlrecht.model.dto.v1; - -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.AccessLevel; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.EqualsAndHashCode; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import lombok.ToString; -import lombok.experimental.FieldDefaults; -import org.springframework.lang.NonNull; - -@Getter -@Setter -@Builder -@EqualsAndHashCode -@ToString -@FieldDefaults(level = AccessLevel.PRIVATE) -@NoArgsConstructor(force = true, access = AccessLevel.PRIVATE) -@AllArgsConstructor(access = AccessLevel.PRIVATE) -@Schema(description = "Data container for a greeting message") -public class Greeting { - - @NonNull - @Schema(description = "Data container for a greeting message", example = "Hello Helmut!", - defaultValue = "Hello World!") - private final String message; - -} diff --git a/module-server/src/main/java/de/twomartens/wahlrecht/repository/GreetingRepository.java b/module-server/src/main/java/de/twomartens/wahlrecht/repository/GreetingRepository.java deleted file mode 100644 index 0b13531..0000000 --- a/module-server/src/main/java/de/twomartens/wahlrecht/repository/GreetingRepository.java +++ /dev/null @@ -1,11 +0,0 @@ -package de.twomartens.wahlrecht.repository; - -import de.twomartens.wahlrecht.model.db.Greeting; -import java.util.Optional; -import org.springframework.data.mongodb.repository.MongoRepository; - -public interface GreetingRepository extends MongoRepository { - - Optional findByMessageIgnoreCase(String message); - -} diff --git a/module-server/src/main/java/de/twomartens/wahlrecht/service/GreetingService.java b/module-server/src/main/java/de/twomartens/wahlrecht/service/GreetingService.java deleted file mode 100644 index f1cf87d..0000000 --- a/module-server/src/main/java/de/twomartens/wahlrecht/service/GreetingService.java +++ /dev/null @@ -1,40 +0,0 @@ -package de.twomartens.wahlrecht.service; - -import de.twomartens.wahlrecht.model.db.Greeting; -import de.twomartens.wahlrecht.property.ServiceProperties; -import de.twomartens.wahlrecht.repository.GreetingRepository; -import io.micrometer.core.instrument.Counter; -import io.micrometer.core.instrument.MeterRegistry; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Service; - -@Slf4j -@Service -public class GreetingService { - - private final MeterRegistry meterRegistry; - private final ServiceProperties serviceProperties; - private final Counter counter; - - private final GreetingRepository greetingRepository; - - public GreetingService(MeterRegistry meterRegistry, ServiceProperties serviceProperties, - GreetingRepository greetingRepository) { - this.meterRegistry = meterRegistry; - this.serviceProperties = serviceProperties; - this.greetingRepository = greetingRepository; - counter = meterRegistry.counter("wahlrecht.callCounter"); - } - - public Greeting createGreeting(String name) { - log.info("Create greeting for '{}'", name); - counter.increment(); - meterRegistry.gauge("wahlrecht.nameLength", name.length()); - String greeting = serviceProperties.getGreeting(); - return Greeting.builder().message(String.format(greeting, name)).build(); - } - - public void postGreeting(Greeting greeting) { - greetingRepository.save(greeting); - } -}